diff --git a/.github/workflows/issues.yml b/.github/workflows/issues.yml index 2f84d395ef..1e0c34e13c 100644 --- a/.github/workflows/issues.yml +++ b/.github/workflows/issues.yml @@ -8,7 +8,7 @@ jobs: steps: - uses: actions/checkout@v4.1.1 - name: Apply Issue Labels - uses: github/issue-labeler@v3.2 + uses: github/issue-labeler@v3.3 with: repo-token: "${{ secrets.GITHUB_TOKEN }}" configuration-path: .github/labeler-issue.yml diff --git a/.secrets.baseline b/.secrets.baseline index 7bcb59e158..3a62206e9a 100644 --- a/.secrets.baseline +++ b/.secrets.baseline @@ -3,8 +3,11 @@ "files": "go.mod|go.sum|.*.map|^.secrets.baseline$", "lines": null }, - "generated_at": "2023-10-06T11:01:49Z", + "generated_at": "2023-11-29T02:05:13Z", "plugins_used": [ + { + "name": "AWSKeyDetector" + }, { "name": "ArtifactoryDetector" }, @@ -18,6 +21,12 @@ { "name": "BasicAuthDetector" }, + { + "name": "BoxDetector" + }, + { + "name": "CloudantDetector" + }, { "ghe_instance": "github.ibm.com", "name": "GheDetector" @@ -42,6 +51,9 @@ "keyword_exclude": null, "name": "KeywordDetector" }, + { + "name": "MailchimpDetector" + }, { "name": "NpmDetector" }, @@ -56,6 +68,12 @@ }, { "name": "SquareOAuthDetector" + }, + { + "name": "StripeDetector" + }, + { + "name": "TwilioKeyDetector" } ], "results": { @@ -410,7 +428,15 @@ "hashed_secret": "dc61ac50e6f36d09340d8ca062da1f0d4215004f", "is_secret": false, "is_verified": false, - "line_number": 61, + "line_number": 62, + "type": "Secret Keyword", + "verified_result": null + }, + { + "hashed_secret": "f4adb76dda1dc36da0e225b8477887a30e7346c9", + "is_secret": false, + "is_verified": false, + "line_number": 131, "type": "Secret Keyword", "verified_result": null } @@ -454,7 +480,7 @@ "hashed_secret": "10c28f9cf0668595d45c1090a7b4a2ae98edfa58", "is_secret": false, "is_verified": false, - "line_number": 44, + "line_number": 51, "type": "Secret Keyword", "verified_result": null } @@ -529,6 +555,16 @@ "verified_result": null } ], + "examples/ibm-project/main.tf": [ + { + "hashed_secret": "06d988e96c3d9325c9fbc7c0ef3c6c0f2b4eb8e7", + "is_secret": false, + "is_verified": false, + "line_number": 45, + "type": "Secret Keyword", + "verified_result": null + } + ], "examples/ibm-satellite/README.md": [ { "hashed_secret": "91199272d5d6a574a51722ca6f3d1148edb1a0e7", @@ -624,7 +660,7 @@ "hashed_secret": "ba02c5a1aad447298fcfbd962a953e7706b8b430", "is_secret": false, "is_verified": false, - "line_number": 25, + "line_number": 27, "type": "Hex High Entropy String", "verified_result": null } @@ -634,7 +670,7 @@ "hashed_secret": "5ffafdbd72224c86c3601bacfa0b6f04f308b9f6", "is_secret": false, "is_verified": false, - "line_number": 62, + "line_number": 67, "type": "Secret Keyword", "verified_result": null } @@ -724,7 +760,7 @@ "hashed_secret": "731438016c5ab94431f61820f35e3ae5f8ad6004", "is_secret": false, "is_verified": false, - "line_number": 355, + "line_number": 417, "type": "Secret Keyword", "verified_result": null }, @@ -732,7 +768,7 @@ "hashed_secret": "12da2e35d6b50c902c014f1ab9e3032650368df7", "is_secret": false, "is_verified": false, - "line_number": 361, + "line_number": 423, "type": "Secret Keyword", "verified_result": null }, @@ -740,7 +776,7 @@ "hashed_secret": "813274ccae5b6b509379ab56982d862f7b5969b6", "is_secret": false, "is_verified": false, - "line_number": 1072, + "line_number": 1134, "type": "Base64 High Entropy String", "verified_result": null } @@ -750,7 +786,7 @@ "hashed_secret": "9184b0c38101bf24d78b2bb0d044deb1d33696fc", "is_secret": false, "is_verified": false, - "line_number": 130, + "line_number": 132, "type": "Secret Keyword", "verified_result": null }, @@ -758,7 +794,7 @@ "hashed_secret": "c427f185ddcb2440be9b77c8e45f1cd487a2e790", "is_secret": false, "is_verified": false, - "line_number": 1427, + "line_number": 1449, "type": "Base64 High Entropy String", "verified_result": null }, @@ -766,7 +802,7 @@ "hashed_secret": "1f7e33de15e22de9d2eaf502df284ed25ca40018", "is_secret": false, "is_verified": false, - "line_number": 1494, + "line_number": 1516, "type": "Secret Keyword", "verified_result": null }, @@ -774,7 +810,7 @@ "hashed_secret": "1f614c2eb6b3da22d89bd1b9fd47d7cb7c8fc670", "is_secret": false, "is_verified": false, - "line_number": 3248, + "line_number": 3325, "type": "Secret Keyword", "verified_result": null }, @@ -782,7 +818,7 @@ "hashed_secret": "7abfce65b8504403afc25c9790f358d513dfbcc6", "is_secret": false, "is_verified": false, - "line_number": 3261, + "line_number": 3338, "type": "Secret Keyword", "verified_result": null }, @@ -790,7 +826,7 @@ "hashed_secret": "0c2d85bf9a9b1579b16f220a4ea8c3d62b2e24b1", "is_secret": false, "is_verified": false, - "line_number": 3302, + "line_number": 3379, "type": "Secret Keyword", "verified_result": null } @@ -810,7 +846,7 @@ "hashed_secret": "da8cae6284528565678de15e03d461e23fe22538", "is_secret": false, "is_verified": false, - "line_number": 1845, + "line_number": 1858, "type": "Secret Keyword", "verified_result": null }, @@ -818,7 +854,7 @@ "hashed_secret": "1a0334cfa65f4be58b9d914b8e96e9d9478bfbac", "is_secret": false, "is_verified": false, - "line_number": 3242, + "line_number": 3239, "type": "Secret Keyword", "verified_result": null } @@ -828,7 +864,7 @@ "hashed_secret": "c8b6f5ef11b9223ac35a5663975a466ebe7ebba9", "is_secret": false, "is_verified": false, - "line_number": 1766, + "line_number": 1807, "type": "Secret Keyword", "verified_result": null }, @@ -836,7 +872,7 @@ "hashed_secret": "8abf4899c01104241510ba87685ad4de76b0c437", "is_secret": false, "is_verified": false, - "line_number": 1772, + "line_number": 1813, "type": "Secret Keyword", "verified_result": null } @@ -1232,15 +1268,7 @@ "hashed_secret": "3046d9f6cfaaeea6eed9bb7a4ab010fe49b0cfd4", "is_secret": false, "is_verified": false, - "line_number": 129, - "type": "Secret Keyword", - "verified_result": null - }, - { - "hashed_secret": "505032eaf8a3acf9b094a326dfb1cd0537c75a0d", - "is_secret": false, - "is_verified": false, - "line_number": 235, + "line_number": 104, "type": "Secret Keyword", "verified_result": null } @@ -1328,15 +1356,7 @@ "hashed_secret": "3046d9f6cfaaeea6eed9bb7a4ab010fe49b0cfd4", "is_secret": false, "is_verified": false, - "line_number": 94, - "type": "Secret Keyword", - "verified_result": null - }, - { - "hashed_secret": "505032eaf8a3acf9b094a326dfb1cd0537c75a0d", - "is_secret": false, - "is_verified": false, - "line_number": 364, + "line_number": 68, "type": "Secret Keyword", "verified_result": null } @@ -1775,14 +1795,6 @@ "line_number": 75, "type": "Secret Keyword", "verified_result": null - }, - { - "hashed_secret": "1348b145fa1a555461c1b790a2f66614781091e9", - "is_secret": false, - "is_verified": false, - "line_number": 153, - "type": "Private Key", - "verified_result": null } ], "ibm/service/codeengine/resource_ibm_code_engine_app.go": [ @@ -1913,14 +1925,6 @@ "line_number": 135, "type": "Secret Keyword", "verified_result": null - }, - { - "hashed_secret": "1348b145fa1a555461c1b790a2f66614781091e9", - "is_secret": false, - "is_verified": false, - "line_number": 276, - "type": "Private Key", - "verified_result": null } ], "ibm/service/contextbasedrestrictions/data_source_ibm_cbr_rule_test.go": [ @@ -1994,7 +1998,7 @@ "hashed_secret": "884a58e4c2c5d195d3876787bdc63af6c5af2924", "is_secret": false, "is_verified": false, - "line_number": 1589, + "line_number": 1595, "type": "Secret Keyword", "verified_result": null } @@ -2052,7 +2056,7 @@ "hashed_secret": "deab23f996709b4e3d14e5499d1cc2de677bfaa8", "is_secret": false, "is_verified": false, - "line_number": 1559, + "line_number": 1334, "type": "Secret Keyword", "verified_result": null }, @@ -2060,7 +2064,7 @@ "hashed_secret": "20a25bac21219ffff1904bde871ded4027eca2f8", "is_secret": false, "is_verified": false, - "line_number": 2212, + "line_number": 1923, "type": "Secret Keyword", "verified_result": null }, @@ -2068,7 +2072,7 @@ "hashed_secret": "b732fb611fd46a38e8667f9972e0cde777fbe37f", "is_secret": false, "is_verified": false, - "line_number": 2231, + "line_number": 1942, "type": "Secret Keyword", "verified_result": null }, @@ -2076,34 +2080,44 @@ "hashed_secret": "1f5e25be9b575e9f5d39c82dfd1d9f4d73f1975c", "is_secret": false, "is_verified": false, - "line_number": 2496, + "line_number": 2155, "type": "Secret Keyword", "verified_result": null } ], "ibm/service/database/resource_ibm_database_cassandra_test.go": [ { - "hashed_secret": "10c28f9cf0668595d45c1090a7b4a2ae98edfa58", + "hashed_secret": "2317aa72dafa0a07f05af47baa2e388f95dcf6f3", "is_secret": false, "is_verified": false, - "line_number": 726, + "line_number": 731, "type": "Secret Keyword", "verified_result": null } ], "ibm/service/database/resource_ibm_database_edb_test.go": [ { - "hashed_secret": "10c28f9cf0668595d45c1090a7b4a2ae98edfa58", + "hashed_secret": "2317aa72dafa0a07f05af47baa2e388f95dcf6f3", "is_secret": false, "is_verified": false, - "line_number": 189, + "line_number": 205, + "type": "Secret Keyword", + "verified_result": null + } + ], + "ibm/service/database/resource_ibm_database_elasticsearch_platinum_test.go": [ + { + "hashed_secret": "2317aa72dafa0a07f05af47baa2e388f95dcf6f3", + "is_secret": false, + "is_verified": false, + "line_number": 823, "type": "Secret Keyword", "verified_result": null } ], "ibm/service/database/resource_ibm_database_elasticsearch_test.go": [ { - "hashed_secret": "10c28f9cf0668595d45c1090a7b4a2ae98edfa58", + "hashed_secret": "2317aa72dafa0a07f05af47baa2e388f95dcf6f3", "is_secret": false, "is_verified": false, "line_number": 778, @@ -2113,28 +2127,28 @@ ], "ibm/service/database/resource_ibm_database_etcd_test.go": [ { - "hashed_secret": "10c28f9cf0668595d45c1090a7b4a2ae98edfa58", + "hashed_secret": "2317aa72dafa0a07f05af47baa2e388f95dcf6f3", "is_secret": false, "is_verified": false, - "line_number": 199, + "line_number": 213, "type": "Secret Keyword", "verified_result": null } ], "ibm/service/database/resource_ibm_database_mongodb_enterprise_test.go": [ { - "hashed_secret": "68ab9ef0953865fef0558010a9f7afcef110d5b8", + "hashed_secret": "8cbbbfad0206e5953901f679b0d26d583c4f5ffe", "is_secret": false, "is_verified": false, - "line_number": 199, + "line_number": 271, "type": "Secret Keyword", "verified_result": null }, { - "hashed_secret": "10c28f9cf0668595d45c1090a7b4a2ae98edfa58", + "hashed_secret": "2317aa72dafa0a07f05af47baa2e388f95dcf6f3", "is_secret": false, "is_verified": false, - "line_number": 257, + "line_number": 336, "type": "Secret Keyword", "verified_result": null } @@ -2144,73 +2158,131 @@ "hashed_secret": "5667b8489a17faa9ef54941db31ed762be280bec", "is_secret": false, "is_verified": false, - "line_number": 141, + "line_number": 157, "type": "Secret Keyword", "verified_result": null }, { - "hashed_secret": "10c28f9cf0668595d45c1090a7b4a2ae98edfa58", + "hashed_secret": "2317aa72dafa0a07f05af47baa2e388f95dcf6f3", "is_secret": false, "is_verified": false, - "line_number": 173, + "line_number": 189, "type": "Secret Keyword", "verified_result": null } ], "ibm/service/database/resource_ibm_database_mongodb_test.go": [ { - "hashed_secret": "10c28f9cf0668595d45c1090a7b4a2ae98edfa58", + "hashed_secret": "2317aa72dafa0a07f05af47baa2e388f95dcf6f3", "is_secret": false, "is_verified": false, - "line_number": 200, + "line_number": 214, "type": "Secret Keyword", "verified_result": null } ], "ibm/service/database/resource_ibm_database_mysql_test.go": [ { - "hashed_secret": "10c28f9cf0668595d45c1090a7b4a2ae98edfa58", + "hashed_secret": "2317aa72dafa0a07f05af47baa2e388f95dcf6f3", "is_secret": false, "is_verified": false, - "line_number": 134, + "line_number": 150, "type": "Secret Keyword", "verified_result": null } ], "ibm/service/database/resource_ibm_database_postgresql_test.go": [ { - "hashed_secret": "e407cbe1c64cadb886be6f42907e2dd1c06ca080", + "hashed_secret": "728e83f156932be9b1dc48a5c3f7a3bfbeeb08ce", "is_secret": false, "is_verified": false, - "line_number": 626, + "line_number": 490, "type": "Secret Keyword", "verified_result": null }, { - "hashed_secret": "10c28f9cf0668595d45c1090a7b4a2ae98edfa58", + "hashed_secret": "2317aa72dafa0a07f05af47baa2e388f95dcf6f3", "is_secret": false, "is_verified": false, - "line_number": 991, + "line_number": 658, "type": "Secret Keyword", "verified_result": null } ], "ibm/service/database/resource_ibm_database_rabbitmq_test.go": [ { - "hashed_secret": "10c28f9cf0668595d45c1090a7b4a2ae98edfa58", + "hashed_secret": "2317aa72dafa0a07f05af47baa2e388f95dcf6f3", "is_secret": false, "is_verified": false, - "line_number": 209, + "line_number": 223, "type": "Secret Keyword", "verified_result": null } ], "ibm/service/database/resource_ibm_database_redis_test.go": [ { - "hashed_secret": "10c28f9cf0668595d45c1090a7b4a2ae98edfa58", + "hashed_secret": "2317aa72dafa0a07f05af47baa2e388f95dcf6f3", "is_secret": false, "is_verified": false, - "line_number": 251, + "line_number": 272, + "type": "Secret Keyword", + "verified_result": null + } + ], + "ibm/service/database/resource_ibm_database_test.go": [ + { + "hashed_secret": "c237978e1983e0caf1c3a84f1c2e72a7fb2981f2", + "is_secret": false, + "is_verified": false, + "line_number": 19, + "type": "Secret Keyword", + "verified_result": null + }, + { + "hashed_secret": "d67007844d8f7fbc45ea3b27c4bea0bffafb53a0", + "is_secret": false, + "is_verified": false, + "line_number": 27, + "type": "Secret Keyword", + "verified_result": null + }, + { + "hashed_secret": "279fb854eb9fa001b4629518a45c921cfad6d697", + "is_secret": false, + "is_verified": false, + "line_number": 35, + "type": "Secret Keyword", + "verified_result": null + }, + { + "hashed_secret": "dad6fac3e5b6be7bb6f274970b4c50739a7e26ee", + "is_secret": false, + "is_verified": false, + "line_number": 59, + "type": "Secret Keyword", + "verified_result": null + }, + { + "hashed_secret": "8cbbbfad0206e5953901f679b0d26d583c4f5ffe", + "is_secret": false, + "is_verified": false, + "line_number": 67, + "type": "Secret Keyword", + "verified_result": null + }, + { + "hashed_secret": "f5ecb30890399c7b1d1781583478aaa9d0b0c89d", + "is_secret": false, + "is_verified": false, + "line_number": 91, + "type": "Secret Keyword", + "verified_result": null + }, + { + "hashed_secret": "6da9eab371358a331c59a76d80a0ffcd589fe3c9", + "is_secret": false, + "is_verified": false, + "line_number": 101, "type": "Secret Keyword", "verified_result": null } @@ -2484,7 +2556,7 @@ "hashed_secret": "b02fa7fd7ca08b5dc86c2548e40f8a21171ef977", "is_secret": false, "is_verified": false, - "line_number": 259, + "line_number": 265, "type": "Secret Keyword", "verified_result": null }, @@ -2492,7 +2564,7 @@ "hashed_secret": "d4c3d66fd0c38547a3c7a4c6bdc29c36911bc030", "is_secret": false, "is_verified": false, - "line_number": 296, + "line_number": 302, "type": "Secret Keyword", "verified_result": null } @@ -2744,7 +2816,7 @@ "hashed_secret": "b732fb611fd46a38e8667f9972e0cde777fbe37f", "is_secret": false, "is_verified": false, - "line_number": 1315, + "line_number": 1326, "type": "Secret Keyword", "verified_result": null } @@ -2754,7 +2826,17 @@ "hashed_secret": "b732fb611fd46a38e8667f9972e0cde777fbe37f", "is_secret": false, "is_verified": false, - "line_number": 373, + "line_number": 402, + "type": "Secret Keyword", + "verified_result": null + } + ], + "ibm/service/kubernetes/resource_ibm_container_ingress_secret_opaque_test.go": [ + { + "hashed_secret": "5df29b80b97dab81130058ac9af4a9b9d1c091b4", + "is_secret": false, + "is_verified": false, + "line_number": 276, "type": "Secret Keyword", "verified_result": null } @@ -2764,7 +2846,17 @@ "hashed_secret": "b732fb611fd46a38e8667f9972e0cde777fbe37f", "is_secret": false, "is_verified": false, - "line_number": 267, + "line_number": 291, + "type": "Secret Keyword", + "verified_result": null + } + ], + "ibm/service/kubernetes/resource_ibm_container_ingress_secret_tls_test.go": [ + { + "hashed_secret": "5df29b80b97dab81130058ac9af4a9b9d1c091b4", + "is_secret": false, + "is_verified": false, + "line_number": 239, "type": "Secret Keyword", "verified_result": null } @@ -2779,6 +2871,118 @@ "verified_result": null } ], + "ibm/service/project/data_source_ibm_project_config.go": [ + { + "hashed_secret": "3046d9f6cfaaeea6eed9bb7a4ab010fe49b0cfd4", + "is_secret": false, + "is_verified": false, + "line_number": 334, + "type": "Secret Keyword", + "verified_result": null + }, + { + "hashed_secret": "92f08f2d9a0dc3f0d4cb3796435a48508cf59ecd", + "is_secret": false, + "is_verified": false, + "line_number": 654, + "type": "Secret Keyword", + "verified_result": null + } + ], + "ibm/service/project/data_source_ibm_project_config_test.go": [ + { + "hashed_secret": "347cd9c53ff77d41a7b22aa56c7b4efaf54658e3", + "is_secret": false, + "is_verified": false, + "line_number": 58, + "type": "Secret Keyword", + "verified_result": null + } + ], + "ibm/service/project/data_source_ibm_project_environment.go": [ + { + "hashed_secret": "3046d9f6cfaaeea6eed9bb7a4ab010fe49b0cfd4", + "is_secret": false, + "is_verified": false, + "line_number": 119, + "type": "Secret Keyword", + "verified_result": null + }, + { + "hashed_secret": "92f08f2d9a0dc3f0d4cb3796435a48508cf59ecd", + "is_secret": false, + "is_verified": false, + "line_number": 293, + "type": "Secret Keyword", + "verified_result": null + } + ], + "ibm/service/project/data_source_ibm_project_environment_test.go": [ + { + "hashed_secret": "347cd9c53ff77d41a7b22aa56c7b4efaf54658e3", + "is_secret": false, + "is_verified": false, + "line_number": 55, + "type": "Secret Keyword", + "verified_result": null + } + ], + "ibm/service/project/resource_ibm_project_config.go": [ + { + "hashed_secret": "3046d9f6cfaaeea6eed9bb7a4ab010fe49b0cfd4", + "is_secret": false, + "is_verified": false, + "line_number": 236, + "type": "Secret Keyword", + "verified_result": null + }, + { + "hashed_secret": "92f08f2d9a0dc3f0d4cb3796435a48508cf59ecd", + "is_secret": false, + "is_verified": false, + "line_number": 884, + "type": "Secret Keyword", + "verified_result": null + } + ], + "ibm/service/project/resource_ibm_project_config_test.go": [ + { + "hashed_secret": "347cd9c53ff77d41a7b22aa56c7b4efaf54658e3", + "is_secret": false, + "is_verified": false, + "line_number": 61, + "type": "Secret Keyword", + "verified_result": null + } + ], + "ibm/service/project/resource_ibm_project_environment.go": [ + { + "hashed_secret": "3046d9f6cfaaeea6eed9bb7a4ab010fe49b0cfd4", + "is_secret": false, + "is_verified": false, + "line_number": 72, + "type": "Secret Keyword", + "verified_result": null + }, + { + "hashed_secret": "92f08f2d9a0dc3f0d4cb3796435a48508cf59ecd", + "is_secret": false, + "is_verified": false, + "line_number": 504, + "type": "Secret Keyword", + "verified_result": null + } + ], + "ibm/service/project/resource_ibm_project_environment_test.go": [ + { + "hashed_secret": "347cd9c53ff77d41a7b22aa56c7b4efaf54658e3", + "is_secret": false, + "is_verified": false, + "line_number": 62, + "type": "Secret Keyword", + "verified_result": null + } + ], "ibm/service/pushnotification/resource_ibm_push_notification_chrome.go": [ { "hashed_secret": "8a4036fbf3e13c7a84bac77ddae25de1cdfc4d43", @@ -2834,7 +3038,7 @@ "hashed_secret": "3c2ecad9b250fd6d99893e4d05ec02ca19aa95d0", "is_secret": false, "is_verified": false, - "line_number": 383, + "line_number": 389, "type": "Secret Keyword", "verified_result": null } @@ -2882,7 +3086,7 @@ "hashed_secret": "83747cea2b26d7652ed39218ddcdb1461c570535", "is_secret": false, "is_verified": false, - "line_number": 80, + "line_number": 79, "type": "Hex High Entropy String", "verified_result": null } @@ -2902,7 +3106,7 @@ "hashed_secret": "83747cea2b26d7652ed39218ddcdb1461c570535", "is_secret": false, "is_verified": false, - "line_number": 95, + "line_number": 94, "type": "Hex High Entropy String", "verified_result": null } @@ -2922,7 +3126,7 @@ "hashed_secret": "49f3bb8f759241df51c899d3725d877bad58f66e", "is_secret": false, "is_verified": false, - "line_number": 1414, + "line_number": 1405, "type": "Secret Keyword", "verified_result": null }, @@ -2930,7 +3134,7 @@ "hashed_secret": "b732fb611fd46a38e8667f9972e0cde777fbe37f", "is_secret": false, "is_verified": false, - "line_number": 1417, + "line_number": 1408, "type": "Secret Keyword", "verified_result": null } @@ -2996,7 +3200,7 @@ "hashed_secret": "3046d9f6cfaaeea6eed9bb7a4ab010fe49b0cfd4", "is_secret": false, "is_verified": false, - "line_number": 181, + "line_number": 185, "type": "Secret Keyword", "verified_result": null }, @@ -3004,7 +3208,7 @@ "hashed_secret": "b732fb611fd46a38e8667f9972e0cde777fbe37f", "is_secret": false, "is_verified": false, - "line_number": 308, + "line_number": 312, "type": "Secret Keyword", "verified_result": null } @@ -3052,7 +3256,7 @@ "hashed_secret": "3046d9f6cfaaeea6eed9bb7a4ab010fe49b0cfd4", "is_secret": false, "is_verified": false, - "line_number": 193, + "line_number": 197, "type": "Secret Keyword", "verified_result": null }, @@ -3060,7 +3264,7 @@ "hashed_secret": "b732fb611fd46a38e8667f9972e0cde777fbe37f", "is_secret": false, "is_verified": false, - "line_number": 335, + "line_number": 339, "type": "Secret Keyword", "verified_result": null } @@ -3070,7 +3274,7 @@ "hashed_secret": "3046d9f6cfaaeea6eed9bb7a4ab010fe49b0cfd4", "is_secret": false, "is_verified": false, - "line_number": 231, + "line_number": 235, "type": "Secret Keyword", "verified_result": null }, @@ -3078,7 +3282,7 @@ "hashed_secret": "b732fb611fd46a38e8667f9972e0cde777fbe37f", "is_secret": false, "is_verified": false, - "line_number": 410, + "line_number": 414, "type": "Secret Keyword", "verified_result": null } @@ -3124,7 +3328,7 @@ "hashed_secret": "3046d9f6cfaaeea6eed9bb7a4ab010fe49b0cfd4", "is_secret": false, "is_verified": false, - "line_number": 296, + "line_number": 299, "type": "Secret Keyword", "verified_result": null }, @@ -3132,7 +3336,7 @@ "hashed_secret": "b732fb611fd46a38e8667f9972e0cde777fbe37f", "is_secret": false, "is_verified": false, - "line_number": 479, + "line_number": 482, "type": "Secret Keyword", "verified_result": null } @@ -3226,7 +3430,7 @@ "hashed_secret": "347cd9c53ff77d41a7b22aa56c7b4efaf54658e3", "is_secret": false, "is_verified": false, - "line_number": 46, + "line_number": 48, "type": "Secret Keyword", "verified_result": null } @@ -3254,7 +3458,7 @@ "hashed_secret": "3046d9f6cfaaeea6eed9bb7a4ab010fe49b0cfd4", "is_secret": false, "is_verified": false, - "line_number": 158, + "line_number": 162, "type": "Secret Keyword", "verified_result": null }, @@ -3262,7 +3466,7 @@ "hashed_secret": "b732fb611fd46a38e8667f9972e0cde777fbe37f", "is_secret": false, "is_verified": false, - "line_number": 274, + "line_number": 278, "type": "Secret Keyword", "verified_result": null } @@ -3598,7 +3802,7 @@ "hashed_secret": "4d55af37dbbb6a42088d917caa1ca25428ec42c9", "is_secret": false, "is_verified": false, - "line_number": 788, + "line_number": 849, "type": "Secret Keyword", "verified_result": null } @@ -3628,7 +3832,7 @@ "hashed_secret": "f855f5027fd8fdb2df3f6a6f1cf858fffcbedb0c", "is_secret": false, "is_verified": false, - "line_number": 92841, + "line_number": 96613, "type": "Secret Keyword", "verified_result": null }, @@ -3636,7 +3840,7 @@ "hashed_secret": "5fb0fa884132a8724a8d7cba55853737e442adbd", "is_secret": false, "is_verified": false, - "line_number": 115304, + "line_number": 119402, "type": "Secret Keyword", "verified_result": null }, @@ -3644,7 +3848,7 @@ "hashed_secret": "1e5c2f367f02e47a8c160cda1cd9d91decbac441", "is_secret": false, "is_verified": false, - "line_number": 145758, + "line_number": 151610, "type": "Secret Keyword", "verified_result": null } @@ -3914,7 +4118,7 @@ "hashed_secret": "d47dcacc720a39e236679ac3e311a0d58bb6519e", "is_secret": false, "is_verified": false, - "line_number": 153, + "line_number": 152, "type": "Secret Keyword", "verified_result": null }, @@ -3922,7 +4126,7 @@ "hashed_secret": "e66e7d67fdf3c596c435fc7828b13205e4950a0f", "is_secret": false, "is_verified": false, - "line_number": 155, + "line_number": 154, "type": "Secret Keyword", "verified_result": null } @@ -4121,18 +4325,18 @@ ], "website/docs/r/database.html.markdown": [ { - "hashed_secret": "10c28f9cf0668595d45c1090a7b4a2ae98edfa58", + "hashed_secret": "2317aa72dafa0a07f05af47baa2e388f95dcf6f3", "is_secret": false, "is_verified": false, - "line_number": 488, + "line_number": 494, "type": "Secret Keyword", "verified_result": null }, { - "hashed_secret": "e407cbe1c64cadb886be6f42907e2dd1c06ca080", + "hashed_secret": "ddf75a48487b387b1dc328ac0a942377b377c556", "is_secret": false, "is_verified": false, - "line_number": 553, + "line_number": 559, "type": "Secret Keyword", "verified_result": null }, @@ -4140,7 +4344,7 @@ "hashed_secret": "91199272d5d6a574a51722ca6f3d1148edb1a0e7", "is_secret": false, "is_verified": false, - "line_number": 577, + "line_number": 583, "type": "Secret Keyword", "verified_result": null } @@ -4175,16 +4379,6 @@ "verified_result": null } ], - "website/docs/r/en_destination_huawei.html.markdown": [ - { - "hashed_secret": "167a06dbc64c344aeb0bd749d1962d2ef9731f06", - "is_secret": false, - "is_verified": false, - "line_number": 24, - "type": "Secret Keyword", - "verified_result": null - } - ], "website/docs/r/en_destination_ios.html.markdown": [ { "hashed_secret": "e1e03a31507ee39abca8fc86cf37b8347dc32002", @@ -4311,6 +4505,16 @@ "verified_result": null } ], + "website/docs/r/logs_router_tenant.html.markdown": [ + { + "hashed_secret": "d47dcacc720a39e236679ac3e311a0d58bb6519e", + "is_secret": false, + "is_verified": false, + "line_number": 78, + "type": "Secret Keyword", + "verified_result": null + } + ], "website/docs/r/metrics_router_route.html.markdown": [ { "hashed_secret": "d47dcacc720a39e236679ac3e311a0d58bb6519e", @@ -4365,6 +4569,26 @@ "verified_result": null } ], + "website/docs/r/project_config.html.markdown": [ + { + "hashed_secret": "06d988e96c3d9325c9fbc7c0ef3c6c0f2b4eb8e7", + "is_secret": false, + "is_verified": false, + "line_number": 22, + "type": "Secret Keyword", + "verified_result": null + } + ], + "website/docs/r/project_environment.html.markdown": [ + { + "hashed_secret": "06d988e96c3d9325c9fbc7c0ef3c6c0f2b4eb8e7", + "is_secret": false, + "is_verified": false, + "line_number": 22, + "type": "Secret Keyword", + "verified_result": null + } + ], "website/docs/r/resource_instance.html.markdown": [ { "hashed_secret": "d62552e3d0606ac398b6ee5cbd49e763ac9c3933", @@ -4390,7 +4614,7 @@ "hashed_secret": "d47dcacc720a39e236679ac3e311a0d58bb6519e", "is_secret": false, "is_verified": false, - "line_number": 104, + "line_number": 105, "type": "Secret Keyword", "verified_result": null }, @@ -4398,7 +4622,7 @@ "hashed_secret": "e66e7d67fdf3c596c435fc7828b13205e4950a0f", "is_secret": false, "is_verified": false, - "line_number": 106, + "line_number": 107, "type": "Secret Keyword", "verified_result": null } diff --git a/CHANGELOG.md b/CHANGELOG.md index 35deeb797a..be65d39357 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,248 @@ +# 1.60.0 (Nov 29, 2023) +Features +* Support for Projects + - **Datasources** + - ibm_project + - ibm_project_config + - ibm_project_environment + - **Resources** + - ibm_project + - ibm_project_config + - ibm_project_environment + +* Support for Code Engine + - **Datasources** + - ibm_code_engine_domain_mapping + - **Resources** + - ibm_code_engine_domain_mapping + +* Support for Power Instance + - **Resources** + - ibm_pi_workspace + +Enhancements +* support offline restore for MongoDB EE PITR ([4601](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4601)) +* bump ContinuousDelivery Go SDK version ([4918](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4918)) +* Added nest conditions to rule.conditions IAM Policies ([4896](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4896)) +* Updates to SCC tool ([4920](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4920)) +* Add entitlement option to Satellite cluster/workerpool create ([4894](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4894)) +* VPC ID Filter is added when Subnet Name is specified ([4892](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4892)) +* add optional account id to kms config ([4944](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4944)) + +BugFixes +* resolved nil pointer issue on vpn gateway resource ([4903](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4903)) +* Private/direct COS endpoint settings conflicts with IBM Cloud docs, VPE options, and COS config endpoint ([4919](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4919)) +* add missing required argument name to the doc ([4909](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4909)) +* Fix wrong sintax in doc for Ingress Secret Opaque ([4917](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4917)) +* schematics agent doc fixes ([4933](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4933)) +* Fix some job parameters for code engine ([4923](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4923)) +* CIS - remove deafult value for min_tls_version ([4947](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4947)) +* Update Power Workspace/s and Datacenter/s DataSource Documentation ([4904](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4904)) +* validation on encryption with catalog images fixed ([4940](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4940)) +* issue-13603-fix attachment terraform ([4952](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4952)) +* Fixed catalog service extensions and values metadata params of workspace ds ([4957](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4957)) + +# 1.60.0-beta1 (Nov 23, 2023) +Features +* Support for Projects + - **Datasources** + - ibm_project + - ibm_project_config + - ibm_project_environment + - **Resources** + - ibm_project + - ibm_project_config + - ibm_project_environment + +* Support for Code Engine + - **Datasources** + - ibm_code_engine_domain_mapping + - **Resources** + - ibm_code_engine_domain_mapping + +* Support for Power Instance + - **Resources** + - ibm_pi_workspace + +Enhancements +* support offline restore for MongoDB EE PITR ([4601](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4601)) +* bump ContinuousDelivery Go SDK version ([4918](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4918)) +* Added nest conditions to rule.conditions IAM Policies ([4896](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4896)) +* Updates to SCC tool ([4920](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4920)) +* Add entitlement option to Satellite cluster/workerpool create ([4894](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4894)) +* VPC ID Filter is added when Subnet Name is specified ([4892](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4892)) +* add optional account id to kms config ([4944](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4944)) + +BugFixes +* resolved nil pointer issue on vpn gateway resource ([4903](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4903)) +* Private/direct COS endpoint settings conflicts with IBM Cloud docs, VPE options, and COS config endpoint ([4919](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4919)) +* add missing required argument name to the doc ([4909](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4909)) +* Fix wrong sintax in doc for Ingress Secret Opaque ([4917](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4917)) +* schematics agent doc fixes ([4933](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4933)) +* Fix some job parameters for code engine ([4923](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4923)) +* CIS - remove deafult value for min_tls_version ([4947](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4947)) +* Update Power Workspace/s and Datacenter/s DataSource Documentation ([4904](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4904)) +* validation on encryption with catalog images fixed ([4940](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4940)) + +# 1.60.0-beta0 (Nov 15, 2023) +Features +* Support for Projects + - **Datasources** + - ibm_project + - ibm_project_config + - **Resources** + - ibm_project + - ibm_project_config +Enhancements +* support offline restore for MongoDB EE PITR ([4601](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4601)) +* bump ContinuousDelivery Go SDK version ([4918](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4918)) +* Added nest conditions to rule.conditions IAM Policies ([4896](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4896)) +* Updates to SCC tool ([4920](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4920)) + +BugFixes +* resolved nil pointer issue on vpn gateway resource ([4903](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4903)) +* Private/direct COS endpoint settings conflicts with IBM Cloud docs, VPE options, and COS config endpoint ([4919](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4919)) +* add missing required argument name to the doc ([4909](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4909)) + +# 1.59.1 (Nov 20, 2023) + +Bug Fixes +* ibm_schematics_workspace: provider crash during terraform plan ([4907](https://github.com/IBM-Cloud/terraform-provider-ibm/issues/4907)) + + +# 1.59.0 (Oct 30, 2023) + +Features +* Support Usage Reports + - **Datasources** + - ibm_billing_snapshot_list + - **Resources** + - ibm_billing_report_snapshot + +* Support Power Instance + - **Datasources** + - ibm_pi_workspace + - ibm_pi_workspaces + - ibm_pi_datacenter + - ibm_pi_datacenters + +* Support Schematics Agents + - **Datasources** + - ibm_schematics_policies + - ibm_schematics_policy + - ibm_schematics_agents + - ibm_schematics_agent + - ibm_schematics_agent_prs + - ibm_schematics_agent_deploy + - ibm_schematics_agent_health + - **Resources** + - ibm_schematics_policy + - ibm_schematics_agent + - ibm_schematics_agent_prs + - ibm_schematics_agent_deploy + - ibm_schematics_agent_health + +* Support Event Notification + - **Datasources** + - ibm_en_destination_custom_email + - ibm_en_subscription_custom_email + - **Resources** + - ibm_en_destination_custom_email + - ibm_en_subscription_custom_email + + +Enhancements +* Get secret by name ([4825](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4825)) +* VPN for VPC: Customer should be able to recover their gateway or server for unhealthy status ([4858](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4858)) +* support for tf 1.5 in schematics workspace ([4853](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4853)) +* Deprecated match_resource_types and Intoduced match_resource_type ([4863](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4863)) +* Enterprise BaaS feature ([4845](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4845)) +* sarama golang library update ([4810](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4810)) +* Adding NUMA and Profile Status to instance, instance profile and dedicated hosts ([4871](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4871)) +* update terraform as per latest eventstreams go sdk release 1.4.0 ([4862](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4862)) +* Add path to invoke update without determining changed CRN data, add validator for name of secrets ([4859](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4859)) +* Feature: ReplicationEnabledField for Storage Pool ([4875](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4875)) +* Remove deprecated scaling attributes ([4481](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4481)) +* update CD Go SDK version ([4887](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4887)) +* Adding updates to the scc resources/datasources ([4865](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4865)) +* Add support for Elasticsearch Platinum ([4712](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4712)) +* Add support for security groups for network load balancers ([4888](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4888)) + + +Bug Fixes +* Fix handling of bundle_certs in Secrets Manager public cert ([4854](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4854)) +* add description in docs for Key Protect ([4846](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4846)) +* Update iam_service_policy.html.markdown ([4836](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4836)) +* v1.58.0 ibm_container_cluster_config: new endpoint_type returning self-signed private endpoint ([4861](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4861)) +* Doc correction: Share mount target doc corrections ([4889](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4889)) +* Fix indentation for subcategory ([4891](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4891)) + +# 1.59.0-beta0 (Oct 25, 2023) + +Features +* Support Usage Reports + - **Datasources** + - ibm_billing_snapshot_list + - **Resources** + - ibm_billing_report_snapshot + +* Support Power Instance + - **Datasources** + - ibm_pi_workspace + - ibm_pi_workspaces + - ibm_pi_datacenter + - ibm_pi_datacenters + +* Support Schematics Agents + - **Datasources** + - ibm_schematics_policies + - ibm_schematics_policy + - ibm_schematics_agents + - ibm_schematics_agent + - ibm_schematics_agent_prs + - ibm_schematics_agent_deploy + - ibm_schematics_agent_health + - **Resources** + - ibm_schematics_policy + - ibm_schematics_agent + - ibm_schematics_agent_prs + - ibm_schematics_agent_deploy + - ibm_schematics_agent_health + +* Support Event Notification + - **Datasources** + - ibm_en_destination_custom_email + - ibm_en_subscription_custom_email + - **Resources** + - ibm_en_destination_custom_email + - ibm_en_subscription_custom_email + + +Enhancements +* Get secret by name ([4825](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4825)) +* VPN for VPC: Customer should be able to recover their gateway or server for unhealthy status ([4858](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4858)) +* support for tf 1.5 in schematics workspace ([4853](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4853)) +* Deprecated match_resource_types and Intoduced match_resource_type ([4863](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4863)) +* Enterprise BaaS feature ([4845](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4845)) +* sarama golang library update ([4810](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4810)) +* Adding NUMA and Profile Status to instance, instance profile and dedicated hosts ([4871](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4871)) +* update terraform as per latest eventstreams go sdk release 1.4.0 ([4862](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4862)) +* Add path to invoke update without determining changed CRN data, add validator for name of secrets ([4859](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4859)) +* Feature: ReplicationEnabledField for Storage Pool ([4875](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4875)) + +Bug Fixes +* Fix handling of bundle_certs in Secrets Manager public cert ([4854](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4854)) +* add description in docs for Key Protect ([4846](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4846)) +* Update iam_service_policy.html.markdown ([4836](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4836)) +* v1.58.0 ibm_container_cluster_config: new endpoint_type returning self-signed private endpoint ([4861](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4861)) + # 1.58.1 (Oct 04, 2023) Bug Fixes * Timing issue while destroying Key Protect resources ([4837](https://github.com/IBM-Cloud/terraform-provider-ibm/issues/4837)) * ibm_cos_bucket data lookup is throwing NoSuchWebsiteConfiguration in new version 1.58.0 ([4838](https://github.com/IBM-Cloud/terraform-provider-ibm/issues/4838)) * Metrics router and atracker: Updated platform-services-go-sdk to fetch Madrid endpoint ([4830](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/4830)) + # 1.58.0 (Sep 29, 2023) Features diff --git a/README.md b/README.md index f02c0b8005..5678123644 100644 --- a/README.md +++ b/README.md @@ -124,11 +124,19 @@ Issuing `make testacc` will now run the testcase with names matching `TestAccIBM You will also need to export the following environment variables for running the Acceptance tests. * `IC_API_KEY`- The IBM Cloud API Key +* `IC_REGION` - The IBM Cloud [region](https://cloud.ibm.com/docs/overview?topic=overview-locations) used by test resources - defaults to `us-south` * `IAAS_CLASSIC_API_KEY` - The IBM Cloud Classic Infrastructure API Key * `IAAS_CLASSIC_USERNAME` - The IBM Cloud Classic Infrastructure username associated with the Classic InfrastAPI Key. Additional environment variables may be required depending on the tests being run. Check console log for warning messages about required variables. +Alternatively, look for the name of the function by PreCheck under the specific test case and inspect [ibm/acctest/acctest.go](https://github.com/IBM-Cloud/terraform-provider-ibm/blob/master/ibm/acctest/acctest.go) to find the list of environment variables required for the test. + +``` + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, +``` # IBM Cloud Ansible Modules diff --git a/examples/ibm-code-engine/README.md b/examples/ibm-code-engine/README.md index 7e02d44418..33ac34cd9b 100644 --- a/examples/ibm-code-engine/README.md +++ b/examples/ibm-code-engine/README.md @@ -8,6 +8,7 @@ The following types of resources are supported: * code_engine_binding * code_engine_build * code_engine_config_map +* code_engine_domain_mapping * code_engine_job * code_engine_project * code_engine_secret @@ -117,6 +118,20 @@ resource "ibm_code_engine_binding" "code_engine_secret_instance" { } ``` +code_engine_domain_mapping resource: + +```hcl +resource "ibm_code_engine_domain_mapping" "code_engine_domain_mapping_instance" { + project_id = var.code_engine_project_id + name = var.code_engine_domain_mapping_name + component { + name = var.code_engine_domain_mapping_component_name + resource_type = var.code_engine_domain_mapping_component_resource_type + } + tls_secret = var.code_engine_binding_secret_name +} +``` + ## CodeEngineV2 Data sources code_engine_project data source: @@ -176,12 +191,21 @@ data "ibm_code_engine_secret" "code_engine_secret_instance" { code_engine_binding data source: ```hcl -data "ibm_code_engine_secret" "code_engine_secret_instance" { +data "ibm_code_engine_binding" "code_engine_binding_instance" { project_id = var.code_engine_project_id binding_id = var.code_engine_binding_id } ``` +code_engine_domain_mapping data source: + +```hcl +data "ibm_code_engine_domain_mapping" "code_engine_domain_mapping_instance" { + project_id = var.code_engine_project_id + name = var.code_engine_domain_mapping_name +} +``` + ## Inputs | Name | Description | Type | Required | @@ -226,7 +250,7 @@ data "ibm_code_engine_secret" "code_engine_secret_instance" { | data | The key-value pair for the config map. Values must be specified in `KEY=VALUE` format. Each `KEY` field must consist of alphanumeric characters, `-`, `_` or `.` and must not be exceed a max length of 253 characters. Each `VALUE` field can consists of any character and must not be exceed a max length of 1048576 characters. | `map(string)` | false | | image_reference | The name of the image that is used for this job. The format is `REGISTRY/NAMESPACE/REPOSITORY:TAG` where `REGISTRY` and `TAG` are optional. If `REGISTRY` is not specified, the default is `docker.io`. If `TAG` is not specified, the default is `latest`. If the image reference points to a registry that requires authentication, make sure to also specify the property `image_secret`. | `string` | true | | image_secret | The name of the image registry access secret. The image registry access secret is used to authenticate with a private registry when you download the container image. If the image reference points to a registry that requires authentication, the job / job runs will be created but submitted job runs will fail, until this property is provided, too. This property must not be set on a job run, which references a job template. | `string` | false | -| run_mode | The mode for runs of the job. Valid values are `task` and `daemon`. In `task` mode, the `max_execution_time` and `retry_limit` properties apply. In `daemon` mode, since there is no timeout and failed instances are restarted indefinitely, the `max_execution_time` and `retry_limit` properties are not allowed. | `string` | false | +| run_mode | The mode for runs of the job. Valid values are `task` and `daemon`. In `task` mode, the `scale_max_execution_time` and `scale_retry_limit` properties apply. In `daemon` mode, since there is no timeout and failed instances are restarted indefinitely, the `scale_max_execution_time` and `scale_retry_limit` properties are not allowed. | `string` | false | | scale_array_spec | Define a custom set of array indices as comma-separated list containing single values and hyphen-separated ranges like `5,12-14,23,27`. Each instance can pick up its array index via environment variable `JOB_INDEX`. The number of unique array indices specified here determines the number of job instances to run. | `string` | false | | scale_max_execution_time | The maximum execution time in seconds for runs of the job. This property can only be specified if `run_mode` is `task`. | `number` | false | | scale_memory_limit | Optional amount of memory set for the instance of the job. For valid values see [Supported memory and CPU combinations](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo). The units for specifying memory are Megabyte (M) or Gigabyte (G), whereas G and M are the shorthand expressions for GB and MB. For more information see [Units of measurement](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo#unit-measurements). | `string` | false | @@ -234,6 +258,7 @@ data "ibm_code_engine_secret" "code_engine_secret_instance" { | resource_group_id | Optional ID of the resource group for your project deployment. If this field is not defined, the default resource group of the account will be used. | `string` | false | | format | Specify the format of the secret. | `string` | true | | service_access | Properties for Service Access Secret Prototypes. | `` | false | +| tls_secret | The name of the TLS secret that holds the certificate and private key of the domain mapping. | `string` | true | ## Outputs @@ -244,5 +269,6 @@ data "ibm_code_engine_secret" "code_engine_secret_instance" { | code_engine_binding | code_engine_binding object | | code_engine_build | code_engine_build object | | code_engine_config_map | code_engine_config_map object | +| code_engine_domain_mapping | code_engine_domain_mapping object | | code_engine_job | code_engine_job object | | code_engine_secret | code_engine_secret object | diff --git a/examples/ibm-code-engine/main.tf b/examples/ibm-code-engine/main.tf index ffb78487b2..e196dbfd81 100644 --- a/examples/ibm-code-engine/main.tf +++ b/examples/ibm-code-engine/main.tf @@ -65,7 +65,6 @@ resource "ibm_code_engine_job" "code_engine_job_instance" { } // Provision code_engine_secret resource instance for format service_access - resource "ibm_code_engine_secret" "code_engine_secret_service_access" { project_id = ibm_code_engine_project.code_engine_project_instance.project_id name = var.code_engine_secret_service_access_name @@ -85,7 +84,6 @@ resource "ibm_code_engine_secret" "code_engine_secret_service_access" { } // Provision code_engine_binding resource instance - resource "ibm_code_engine_binding" "code_engine_binding_instance" { project_id = ibm_code_engine_project.code_engine_project_instance.project_id component { @@ -96,6 +94,17 @@ resource "ibm_code_engine_binding" "code_engine_binding_instance" { secret_name = ibm_code_engine_secret.code_engine_secret_instance.name } +// Provision code_engine_domain_mapping resource instance +resource "ibm_code_engine_domain_mapping" "code_engine_domain_mapping_instance" { + project_id = ibm_code_engine_project.code_engine_project_instance.project_id + name = var.code_engine_domain_mapping_name + component { + name = ibm_code_engine_app.code_engine_app_instance.name + resource_type = ibm_code_engine_app.code_engine_app_instance.resource_type + } + tls_secret = ibm_code_engine_secret.code_engine_secret_instance.name +} + ////////////////// // Data sources @@ -139,3 +148,9 @@ data "ibm_code_engine_binding" "code_engine_binding_data" { project_id = data.ibm_code_engine_project.code_engine_project_data.project_id binding_id = ibm_code_engine_binding.code_engine_binding_instance.binding_id } + +// Create code_engine_domain_mapping data source +data "ibm_code_engine_domain_mapping" "code_engine_domain_mapping_data" { + project_id = data.ibm_code_engine_project.code_engine_project_data.project_id + name = var.code_engine_domain_mapping_name +} diff --git a/examples/ibm-code-engine/outputs.tf b/examples/ibm-code-engine/outputs.tf index 5e06c6750b..7126482655 100644 --- a/examples/ibm-code-engine/outputs.tf +++ b/examples/ibm-code-engine/outputs.tf @@ -42,3 +42,9 @@ output "ibm_code_engine_binding" { value = ibm_code_engine_binding.code_engine_binding_instance description = "code_engine_binding resource instance" } +// This allows code_engine_domain_mapping data to be referenced by other resources and the terraform CLI +// Modify this if only certain data should be exposed +output "ibm_code_engine_domain_mapping" { + value = ibm_code_engine_domain_mapping.code_engine_domain_mapping_instance + description = "code_engine_domain_mapping resource instance" +} diff --git a/examples/ibm-code-engine/variables.tf b/examples/ibm-code-engine/variables.tf index 15621a89fe..86f1b0a770 100644 --- a/examples/ibm-code-engine/variables.tf +++ b/examples/ibm-code-engine/variables.tf @@ -119,6 +119,12 @@ variable "code_engine_binding_prefix" { default = "MY_PREFIX" } +// Resource arguments for code_engine_domain_mapping +variable "code_engine_domain_mapping_name" { + description = "The name of the domain mapping." + type = string +} + // Data source arguments for code_engine_project variable "code_engine_project_id" { description = "The ID of the project." diff --git a/examples/ibm-database/main.tf b/examples/ibm-database/main.tf index 048f47a70d..1f7f6d9c8d 100644 --- a/examples/ibm-database/main.tf +++ b/examples/ibm-database/main.tf @@ -36,8 +36,15 @@ resource "ibm_database" "test_acc" { tags = ["tag1", "tag2"] // adminpassword = "password12" - members_memory_allocation_mb = 3072 - members_disk_allocation_mb = 20480 + group { + group_id = "member" + memory { + allocation_mb = 2048 + } + disk { + allocation_mb = 10240 + } + } users { name = "user123" diff --git a/examples/ibm-logs-router/README.md b/examples/ibm-logs-router/README.md new file mode 100644 index 0000000000..51da09060a --- /dev/null +++ b/examples/ibm-logs-router/README.md @@ -0,0 +1,81 @@ +# Example for IBM Logs Router V1 + +This example illustrates how to use IBM LogsRouterV1 + +The following types of resources are supported: + +* logs_router_tenant + +## Usage + +To run this example, execute the following commands: + +```bash +$ terraform init +$ terraform plan +$ terraform apply +``` + +Run `terraform destroy` when you don't need these resources. + + +## IbmLogsRouterV1 resources + +logs_router_tenant resource: + +```hcl +resource "logs_router_tenant" "logs_router_tenant_instance" { + target_type = var.logs_router_tenant_target_type + target_host = var.logs_router_tenant_target_host + target_port = var.logs_router_tenant_target_port + target_instance_crn = var.logs_router_tenant_target_instance_crn +} +``` + +## IbmLogsRouterV1 data sources + +logs_router_tenant data source: + +```hcl +data "logs_router_tenant" "logs_router_tenant_instance" { + tenant_id = ibm_logs_router_tenant.logs_router_tenant_instance.id +} +``` + +## Assumptions + +1. TODO + +## Notes + +1. TODO + +## Requirements + +| Name | Version | +|------|---------| +| terraform | ~> 0.12 | + +## Providers + +| Name | Version | +|------|---------| +| ibm | 1.13.1 | + +## Inputs + +| Name | Description | Type | Required | +|------|-------------|------|---------| +| ibmcloud\_api\_key | IBM Cloud API key | `string` | true | +| target_type | Type of log-sink. | `string` | true | +| target_host | Host name of log-sink. | `string` | true | +| target_port | Network port of log sink. | `number` | true | +| target_instance_crn | Cloud resource name of the log-sink target instance. | `string` | true | +| tenant_id | The instance ID of the tenant. | `` | true | + +## Outputs + +| Name | Description | +|------|-------------| +| logs_router_tenant | logs_router_tenant object | +| logs_router_tenant | logs_router_tenant object | diff --git a/examples/ibm-logs-router/main.tf b/examples/ibm-logs-router/main.tf new file mode 100644 index 0000000000..1be39ee095 --- /dev/null +++ b/examples/ibm-logs-router/main.tf @@ -0,0 +1,17 @@ +provider "ibm" { + ibmcloud_api_key = var.ibmcloud_api_key +} + +// Provision logs_router_tenant resource instance +resource "ibm_logs_router_tenant" "logs_router_tenant_instance" { + target_type = var.logs_router_tenant_target_type + target_host = var.logs_router_tenant_target_host + target_port = var.logs_router_tenant_target_port + target_instance_crn = var.logs_router_tenant_target_instance_crn +} + +// Create logs_router_tenant data source +data "ibm_logs_router_tenant" "logs_router_tenant_instance" { + tenant_id = ibm_logs_router_tenant.logs_router_tenant_instance.id +} + diff --git a/examples/ibm-logs-router/outputs.tf b/examples/ibm-logs-router/outputs.tf new file mode 100644 index 0000000000..813aeb5bcb --- /dev/null +++ b/examples/ibm-logs-router/outputs.tf @@ -0,0 +1,6 @@ +// This output allows logs_router_tenant data to be referenced by other resources and the terraform CLI +// Modify this output if only certain data should be exposed +output "ibm_logs_router_tenant" { + value = ibm_logs_router_tenant.logs_router_tenant_instance + description = "logs_router_tenant resource instance" +} diff --git a/examples/ibm-logs-router/variables.tf b/examples/ibm-logs-router/variables.tf new file mode 100644 index 0000000000..34a9f372ff --- /dev/null +++ b/examples/ibm-logs-router/variables.tf @@ -0,0 +1,33 @@ +variable "ibmcloud_api_key" { + description = "IBM Cloud API key" + type = string +} + +// Resource arguments for logs_router_tenant +variable "logs_router_tenant_target_type" { + description = "Type of log-sink." + type = string + default = "logdna" +} +variable "logs_router_tenant_target_host" { + description = "Host name of log-sink." + type = string + default = "www.example.com" +} +variable "logs_router_tenant_target_port" { + description = "Network port of log sink." + type = number + default = 10 +} +variable "logs_router_tenant_target_instance_crn" { + description = "Cloud resource name of the log-sink target instance." + type = string + default = "crn:v1:bluemix:public:logdna:us-east:a/36ff82794a734d7580b90c97b0327d28:f08aea7c-dde9-4452-b552-225af4b51eaa::" +} + +// Data source arguments for logs_router_tenant +variable "logs_router_tenant_tenant_id" { + description = "The instance ID of the tenant." + type = string + default = "f3a466c9-c4db-4eee-95cc-ba82db58e2b5" +} diff --git a/examples/ibm-logs-router/versions.tf b/examples/ibm-logs-router/versions.tf new file mode 100644 index 0000000000..54c9d03e8d --- /dev/null +++ b/examples/ibm-logs-router/versions.tf @@ -0,0 +1,9 @@ +terraform { + required_version = ">= 1.0" + required_providers { + ibm = { + source = "IBM-Cloud/ibm" + version = "1.52.0-beta0" + } + } +} diff --git a/examples/ibm-project/README.md b/examples/ibm-project/README.md index 010899110e..8d4faefa78 100644 --- a/examples/ibm-project/README.md +++ b/examples/ibm-project/README.md @@ -2,13 +2,15 @@ This example illustrates how to use the ProjectV1 -These types of resources are supported: +The following types of resources are supported: -* Project definition +* project_config +* project +* project_environment ## Usage -To run this example you need to execute: +To run this example, execute the following commands: ```bash $ terraform init @@ -21,25 +23,55 @@ Run `terraform destroy` when you don't need these resources. ## ProjectV1 resources -project_instance resource: +project_config resource: ```hcl -resource "project_instance" "project_instance" { - name = var.project_instance_name - description = var.project_instance_description - configs = var.project_instance_configs - resource_group = var.project_instance_resource_group - location = var.project_instance_location +resource "project_config" "project_config_instance" { + project_id = ibm_project.project_instance.project_id + definition = var.project_config_definition } ``` +project resource: -## ProjectV1 Data sources +```hcl +resource "project" "project_instance" { + location = var.project_location + resource_group = var.project_resource_group + definition = var.project_definition +} +``` +project_environment resource: -project_event_notification data source: +```hcl +resource "project_environment" "project_environment_instance" { + project_id = ibm_project.project_instance.project_id + definition = var.project_environment_definition +} +``` + +## ProjectV1 data sources + +project_config data source: ```hcl -data "project_event_notification" "project_event_notification_instance" { - id = var.project_event_notification_id +data "project_config" "project_config_instance" { + project_id = ibm_project.project_instance.id + project_config_id = ibm_project_config.project_config_instance.project_config_id +} +``` +project data source: + +```hcl +data "project" "project_instance" { + project_id = ibm_project.project_instance.id +} +``` +project_environment data source: + +```hcl +data "ibm_project_environment" "project_environment_instance" { + project_id = ibm_project_environment.project_environment_instance.project_id + project_environment_id = ibm_project_environment.project_environment_instance.project_environment_id } ``` @@ -68,16 +100,21 @@ data "project_event_notification" "project_event_notification_instance" { | Name | Description | Type | Required | |------|-------------|------|---------| | ibmcloud\_api\_key | IBM Cloud API key | `string` | true | -| name | The project name. | `string` | true | -| description | A project's descriptive text. | `string` | false | -| configs | The project configurations. | `list()` | false | -| resource_group | The resource group where the project's data and tools are created. | `string` | true | -| location | The location where the project's data and tools are created. | `string` | true | | project_id | The unique project ID. | `string` | true | +| schematics | A schematics workspace associated to a project configuration, with scripts. | `` | false | +| definition | The name and description of a project configuration. | `` | true | +| location | The IBM Cloud location where a resource is deployed. | `string` | true | +| resource_group | The resource group name where the project's data and tools are created. | `string` | true | +| definition | The definition of the project. | `` | true | +| definition | The environment definition. | `` | true | +| project_id | The unique project ID. | `string` | true | +| project_config_id | The unique config ID. | `string` | true | +| project_environment_id | The environment ID. | `string` | true | ## Outputs | Name | Description | |------|-------------| -| project_instance | project_instance object | -| project_event_notification | project_event_notification object | +| project_config | project_config object | +| project | project object | +| project_environment | project_environment object | diff --git a/examples/ibm-project/main.tf b/examples/ibm-project/main.tf index d3348263c7..038e99910a 100644 --- a/examples/ibm-project/main.tf +++ b/examples/ibm-project/main.tf @@ -2,14 +2,16 @@ provider "ibm" { ibmcloud_api_key = var.ibmcloud_api_key } -// Provision project_instance resource instance -resource "ibm_project_instance" "project_instance" { - name = "My static website" - description = "Sample static website test using the IBM catalog deployable architecture" - configs { +// Provision project_config resource instance +resource "ibm_project_config" "project_config_instance" { + project_id = ibm_project.project_instance.project_id + definition { name = "static-website-dev" - labels = [ "env:dev", "billing:internal" ] description = "Website - development" + authorizations { + method = "api_key" + api_key = "" + } locator_id = "1082e7d2-5e2f-0a11-a3bc-f88a8e1931fc.145be7c1-9ec4-4719-b586-584ee52fbed0-global" input { name = "app_repo_name" @@ -19,15 +21,45 @@ resource "ibm_project_instance" "project_instance" { value = "static-website-dev-app-repo" } } - resource_group = "Default" - location = "us-south" } -// Data source is not linked to a resource instance -// Uncomment if an existing data source instance exists -/* -// Create project_event_notification data source -data "ibm_project_event_notification" "project_event_notification_instance" { - project_id = var.project_event_notification_id +// Provision project resource instance +resource "ibm_project" "project_instance" { + location = var.project_location + resource_group = var.project_resource_group + definition { + name = "My static website" + description = "Sample static website test using the IBM catalog deployable architecture" + destroy_on_delete = true + } +} + +// Provision project_environment resource instance +resource "ibm_project_environment" "project_environment_instance" { + project_id = ibm_project.project_instance.project_id + definition { + name = "environment-stage" + description = "environment for stage project" + authorizations { + method = "api_key" + api_key = "" + } + } +} + +// Create project_config data source +data "ibm_project_config" "project_config_instance" { + project_id = ibm_project_config.project_config_instance.project_id + project_config_id = ibm_project_config.project_config_instance.project_config_id +} + +// Create project data source +data "ibm_project" "project_instance" { + project_id = ibm_project.project_instance.id +} + +// Create project_environment data source +data "ibm_project_environment" "project_environment_instance" { + project_id = ibm_project.project_instance.id + project_environment_id = var.project_environment_project_environment_id } -*/ diff --git a/examples/ibm-project/outputs.tf b/examples/ibm-project/outputs.tf index 8a59bbf786..76db5b5331 100644 --- a/examples/ibm-project/outputs.tf +++ b/examples/ibm-project/outputs.tf @@ -1,6 +1,20 @@ -// This allows project_instance data to be referenced by other resources and the terraform CLI -// Modify this if only certain data should be exposed -output "ibm_project_instance" { - value = ibm_project_instance.project_instance - description = "project_instance resource instance" +// This output allows project_config data to be referenced by other resources and the terraform CLI +// Modify this output if only certain data should be exposed +output "ibm_project_config" { + value = ibm_project_config.project_config_instance + description = "project_config resource instance" + sensitive = true +} +// This output allows project data to be referenced by other resources and the terraform CLI +// Modify this output if only certain data should be exposed +output "ibm_project" { + value = ibm_project.project_instance + description = "project resource instance" +} +// This output allows project_environment data to be referenced by other resources and the terraform CLI +// Modify this output if only certain data should be exposed +output "ibm_project_environment" { + value = ibm_project_environment.project_environment_instance + description = "project_environment resource instance" + sensitive = true } diff --git a/examples/ibm-project/variables.tf b/examples/ibm-project/variables.tf index 240c070647..82c28185f4 100644 --- a/examples/ibm-project/variables.tf +++ b/examples/ibm-project/variables.tf @@ -3,31 +3,59 @@ variable "ibmcloud_api_key" { type = string } -// Resource arguments for project_instance -variable "project_instance_name" { - description = "The project name." +// Resource arguments for project_config +variable "project_config_project_id" { + description = "The unique project ID." + type = string + default = "project_id" +} + +// Resource arguments for project +variable "project_location" { + description = "The IBM Cloud location where a resource is deployed." + type = string + default = "us-south" +} +variable "project_resource_group" { + description = "The resource group name where the project's data and tools are created." + type = string + default = "Default" +} + +// Resource arguments for project_environment +variable "project_environment_project_id" { + description = "The unique project ID." type = string - default = "acme-microservice" + default = "project_id" } -variable "project_instance_description" { - description = "A project's descriptive text." + +// Data source arguments for project_config +variable "project_config_project_id" { + description = "The unique project ID." type = string - default = "A microservice to deploy on top of ACME infrastructure." + default = "project_id" } -variable "project_instance_resource_group" { - description = "Group name of the customized collection of resources." +variable "project_config_id" { + description = "The unique config ID." type = string - default = "resource_group" + default = "project_config_id" } -variable "project_instance_location" { - description = "Data center locations for resource deployment." + +// Data source arguments for project +variable "project_id" { + description = "The unique project ID." type = string - default = "location" + default = "project_id" } -// Data source arguments for project_event_notification -variable "project_event_notification_id" { +// Data source arguments for project_environment +variable "project_environment_project_id" { description = "The unique project ID." type = string - default = "id" + default = "project_id" +} +variable "project_environment_id" { + description = "The environment ID." + type = string + default = "project_environment_id" } diff --git a/examples/ibm-project/versions.tf b/examples/ibm-project/versions.tf index ee0f9705a2..d9b6f790b9 100644 --- a/examples/ibm-project/versions.tf +++ b/examples/ibm-project/versions.tf @@ -1,3 +1,3 @@ terraform { required_version = ">= 0.12" -} \ No newline at end of file +} diff --git a/examples/ibm-schematics/README.md b/examples/ibm-schematics/README.md index db92621b68..8b277d348c 100644 --- a/examples/ibm-schematics/README.md +++ b/examples/ibm-schematics/README.md @@ -7,6 +7,11 @@ These types of resources are supported: * schematics_workspace * schematics_action * schematics_job +* schematics_policy +* schematics_agent +* schematics_agent_prs +* schematics_agent_deploy +* schematics_agent_health ## Usage @@ -89,6 +94,64 @@ resource "schematics_job" "schematics_job_instance" { x_github_token = var.schematics_job_x_github_token } ``` +schematics_policy resource: + +```hcl +resource "schematics_policy" "schematics_policy_instance" { + name = var.schematics_policy_name + description = var.schematics_policy_description + resource_group = var.schematics_policy_resource_group + tags = var.schematics_policy_tags + location = var.schematics_policy_location + state = var.schematics_policy_state + kind = var.schematics_policy_kind + target = var.schematics_policy_target + parameter = var.schematics_policy_parameter + scoped_resources = var.schematics_policy_scoped_resources +} +``` +schematics_agent resource: + +```hcl +resource "schematics_agent" "schematics_agent_instance" { + name = var.schematics_agent_name + resource_group = var.schematics_agent_resource_group + version = var.schematics_agent_version + schematics_location = var.schematics_agent_schematics_location + agent_location = var.schematics_agent_agent_location + agent_infrastructure = var.schematics_agent_agent_infrastructure + description = var.schematics_agent_description + tags = var.schematics_agent_tags + agent_metadata = var.schematics_agent_agent_metadata + agent_inputs = var.schematics_agent_agent_inputs + user_state = var.schematics_agent_user_state + agent_kpi = var.schematics_agent_agent_kpi +} +``` +schematics_agent_prs resource: + +```hcl +resource "schematics_agent_prs" "schematics_agent_prs_instance" { + agent_id = var.schematics_agent_prs_agent_id + force = var.schematics_agent_prs_force +} +``` +schematics_agent_deploy resource: + +```hcl +resource "schematics_agent_deploy" "schematics_agent_deploy_instance" { + agent_id = var.schematics_agent_deploy_agent_id + force = var.schematics_agent_deploy_force +} +``` +schematics_agent_health resource: + +```hcl +resource "schematics_agent_health" "schematics_agent_health_instance" { + agent_id = var.schematics_agent_health_agent_id + force = var.schematics_agent_health_force +} +``` ## SchematicsV1 Data sources @@ -128,6 +191,54 @@ data "schematics_job" "schematics_job_instance" { job_id = var.schematics_job_job_id } ``` +schematics_policies data source: + +```hcl +data "schematics_policies" "schematics_policies_instance" { + policy_kind = var.schematics_policies_policy_kind +} +``` +schematics_policy data source: + +```hcl +data "schematics_policy" "schematics_policy_instance" { + policy_id = var.schematics_policy_policy_id +} +``` +schematics_agents data source: + +```hcl +data "schematics_agents" "schematics_agents_instance" { +} +``` +schematics_agent data source: + +```hcl +data "schematics_agent" "schematics_agent_instance" { + agent_id = var.schematics_agent_agent_id +} +``` +schematics_agent_prs data source: + +```hcl +data "schematics_agent_prs" "schematics_agent_prs_instance" { + agent_id = var.schematics_agent_prs_agent_id +} +``` +schematics_agent_deploy data source: + +```hcl +data "schematics_agent_deploy" "schematics_agent_deploy_instance" { + agent_id = var.schematics_agent_deploy_agent_id +} +``` +schematics_agent_health data source: + +```hcl +data "schematics_agent_health" "schematics_agent_health_instance" { + agent_id = var.schematics_agent_health_agent_id +} +``` ## Assumptions @@ -141,13 +252,13 @@ data "schematics_job" "schematics_job_instance" { | Name | Version | |------|---------| -| terraform | ~> 0.12 | +| terraform | ~> 1.5 | ## Providers | Name | Version | |------|---------| -| ibm | 1.13.1 | +| ibm | 1.58.1 | ## Inputs @@ -207,7 +318,37 @@ data "schematics_job" "schematics_job_instance" { | workspace_id | The ID of the workspace for which you want to retrieve detailed information. To find the workspace ID, use the `GET /v1/workspaces` API. | `string` | true | | action_id | Use GET or actions API to look up the action IDs in your IBM Cloud account. | `string` | true | | job_id | Use GET jobs API to look up the Job IDs in your IBM Cloud account. | `string` | true | - +| schematics_policy_name | Name of Schematics customization policy. | `string` | true | +| schematics_policy_description | The description of Schematics customization policy. | `string` | false | +| schematics_policy_resource_group | The resource group name for the policy. By default, Policy will be created in `default` Resource Group. | `string` | false | +| schematics_policy_tags | Tags for the Schematics customization policy. | `list(string)` | false | +| schematics_policy_location | List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics. | `string` | false | +| schematics_policy_kind | Policy kind or categories for managing and deriving policy decision * `agent_assignment_policy` Agent assignment policy for job execution. | `string` | false | +| target | The objects for the Schematics policy. | `` | false | +| parameter | The parameter to tune the Schematics policy. | `` | false | +| scoped_resources | List of scoped Schematics resources targeted by the policy. | `list()` | false | +| schematics_agent_name | The name of the agent (must be unique, for an account). | `string` | true | +| schematics_agent_resource_group | The resource-group name for the agent. By default, agent will be registered in Default Resource Group. | `string` | true | +| schematics_agent_version | Agent version. | `string` | true | +| schematics_agent_schematics_location | List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit thejegccnhbrgfulbgbrnftiuudlikviubvnnhlbkcfrhl +e location of the IBM Cloud resources, provisioned using Schematics. | `string` | true | +| schematics_agent_agent_location | The location where agent is deployed in the user environment. | `string` | true | +| agent_infrastructure | The infrastructure parameters used by the agent. | `` | true | +| schematics_agent_description | Agent description. | `string` | false | +| schematics_agent_tags | Tags for the agent. | `list(string)` | false | +| agent_metadata | The metadata of an agent. | `list()` | false | +| agent_inputs | Additional input variables for the agent. | `list()` | false | +| user_state | User defined status of the agent. | `` | false | +| agent_kpi | Schematics Agent key performance indicators. | `` | false | +| schematics_agent_prs_agent_id | Agent ID to get the details of agent. | `string` | true | +| schematics_agent_prs_force | Equivalent to -force options in the command line, default is false. | `bool` | false | +| schematics_agent_deploy_agent_id | Agent ID to get the details of agent. | `string` | true | +| schematics_agent_deploy_force | Equivalent to -force options in the command line, default is false. | `bool` | false | +| schematics_agent_health_agent_id | Agent ID to get the details of agent. | `string` | true | +| schematics_agent_health_force | Equivalent to -force options in the command line, default is false. | `bool` | false | +| schematics_policies_policy_kind | Policy kind or categories for managing and deriving policy decision * `agent_assignment_policy` Agent assignment policy for job execution. | `string` | false | +| schematics_policy_policy_id | ID to get the details of policy. | `string` | true | +| schematics_agent_agent_id | Agent ID to get the details of agent. | `string` | true | ## Outputs | Name | Description | @@ -217,6 +358,8 @@ data "schematics_job" "schematics_job_instance" { | schematics_job | schematics_job object | | schematics_output | schematics_output object | | schematics_state | schematics_state object | -| schematics_workspace | schematics_workspace object | -| schematics_action | schematics_action object | -| schematics_job | schematics_job object | +| ibm_schematics_policy | schematics_policy resource instance | +| ibm_schematics_agent | schematics_agent resource instance | +| ibm_schematics_agent_prs | schematics_agent_prs resource instance | +| ibm_schematics_agent_deploy | schematics_agent_deploy resource instance | +| ibm_schematics_agent_health | schematics_agent_health resource instance | diff --git a/examples/ibm-schematics/main.tf b/examples/ibm-schematics/main.tf index 2ad82673fc..c1129177da 100644 --- a/examples/ibm-schematics/main.tf +++ b/examples/ibm-schematics/main.tf @@ -87,3 +87,147 @@ data "ibm_schematics_action" "schematics_action_instance" { data "ibm_schematics_job" "schematics_job_instance" { job_id = var.schematics_job_job_id } + +// Provision schematics_policy resource instance +resource "ibm_schematics_policy" "schematics_policy_instance" { + name = var.schematics_policy_name + description = var.schematics_policy_description + resource_group = var.schematics_policy_resource_group + tags = var.schematics_policy_tags + location = var.schematics_policy_location + kind = var.schematics_policy_kind + target { + selector_kind = "ids" + selector_ids = [ "selector_ids" ] + selector_scope { + kind = "workspace" + tags = [ "tags" ] + resource_groups = [ "resource_groups" ] + locations = [ "us-south" ] + } + } + parameter { + agent_assignment_policy_parameter { + selector_kind = "ids" + selector_ids = [ "selector_ids" ] + selector_scope { + kind = "workspace" + tags = [ "tags" ] + resource_groups = [ "resource_groups" ] + locations = [ "us-south" ] + } + } + } + scoped_resources { + kind = "workspace" + id = "id" + } +} + +// Provision schematics_agent resource instance +resource "ibm_schematics_agent" "schematics_agent_instance" { + name = var.schematics_agent_name + resource_group = var.schematics_agent_resource_group + version = var.schematics_agent_version + schematics_location = var.schematics_agent_schematics_location + agent_location = var.schematics_agent_agent_location + agent_infrastructure { + infra_type = "ibm_kubernetes" + cluster_id = "cluster_id" + cluster_resource_group = "cluster_resource_group" + cos_instance_name = "cos_instance_name" + cos_bucket_name = "cos_bucket_name" + cos_bucket_region = "cos_bucket_region" + } + description = var.schematics_agent_description + tags = var.schematics_agent_tags + agent_metadata { + name = "purpose" + value = ["git", "terraform", "ansible"] + } + agent_inputs { + name = "name" + value = "value" + use_default = true + metadata { + type = "boolean" + aliases = [ "aliases" ] + description = "description" + cloud_data_type = "cloud_data_type" + default_value = "default_value" + link_status = "normal" + secure = true + immutable = true + hidden = true + required = true + options = [ "options" ] + min_value = 1 + max_value = 1 + min_length = 1 + max_length = 1 + matches = "matches" + position = 1 + group_by = "group_by" + source = "source" + } + } + user_state { + state = "enable" + } + agent_kpi { + availability_indicator = "available" + lifecycle_indicator = "consistent" + percent_usage_indicator = "percent_usage_indicator" + application_indicators = [ null ] + infra_indicators = [ null ] + } +} + +// Provision schematics_agent_prs resource instance +resource "ibm_schematics_agent_prs" "schematics_agent_prs_instance" { + agent_id = var.schematics_agent_prs_agent_id + force = var.schematics_agent_prs_force +} + +// Provision schematics_agent_deploy resource instance +resource "ibm_schematics_agent_deploy" "schematics_agent_deploy_instance" { + agent_id = var.schematics_agent_deploy_agent_id + force = var.schematics_agent_deploy_force +} + +// Provision schematics_agent_health resource instance +resource "ibm_schematics_agent_health" "schematics_agent_health_instance" { + agent_id = var.schematics_agent_health_agent_id + force = var.schematics_agent_health_force +} + +// Create schematics_policies data source +data "ibm_schematics_policies" "schematics_policies_instance" { + policy_kind = var.schematics_policies_policy_kind +} + + +// Create schematics_policy data source +data "ibm_schematics_policy" "schematics_policy_instance" { + policy_id = ibm_schematics_policy.schematics_policy_instance.id +} + +// Create schematics_agents data source +data "ibm_schematics_agents" "schematics_agents_instance" { +} +// Create schematics_agent data source +data "ibm_schematics_agent" "schematics_agent_instance" { + agent_id = ibm_schematics_agent.schematics_agent_instance.id +} +// Create schematics_agent_prs data source +data "ibm_schematics_agent_prs" "schematics_agent_prs_instance" { + agent_id = ibm_schematics_agent.schematics_agent_instance.id +} +// Create schematics_agent_deploy data source +data "ibm_schematics_agent_deploy" "schematics_agent_deploy_instance" { + agent_id = ibm_schematics_agent.schematics_agent_instance.id +} +// Create schematics_agent_health data source +data "ibm_schematics_agent_health" "schematics_agent_health_instance" { + agent_id = ibm_schematics_agent.schematics_agent_instance.id +} \ No newline at end of file diff --git a/examples/ibm-schematics/outputs.tf b/examples/ibm-schematics/outputs.tf index c6804a05dd..cbd8cb9c1f 100644 --- a/examples/ibm-schematics/outputs.tf +++ b/examples/ibm-schematics/outputs.tf @@ -16,3 +16,35 @@ output "ibm_schematics_job" { value = ibm_schematics_job.schematics_job_instance description = "schematics_job resource instance" } + +// This allows schematics_policy data to be referenced by other resources and the terraform CLI +// Modify this if only certain data should be exposed +output "ibm_schematics_policy" { + value = ibm_schematics_policy.schematics_policy_instance + description = "schematics_policy resource instance" +} +// This allows schematics_agent data to be referenced by other resources and the terraform CLI +// Modify this if only certain data should be exposed +output "ibm_schematics_agent" { + value = ibm_schematics_agent.schematics_agent_instance + description = "schematics_agent resource instance" +} +// This allows schematics_agent_prs data to be referenced by other resources and the terraform CLI +// Modify this if only certain data should be exposed +output "ibm_schematics_agent_prs" { + value = ibm_schematics_agent_prs.schematics_agent_prs_instance + description = "schematics_agent_prs resource instance" +} +// This allows schematics_agent_deploy data to be referenced by other resources and the terraform CLI +// Modify this if only certain data should be exposed +output "ibm_schematics_agent_deploy" { + value = ibm_schematics_agent_deploy.schematics_agent_deploy_instance + description = "schematics_agent_deploy resource instance" +} +// This allows schematics_agent_health data to be referenced by other resources and the terraform CLI +// Modify this if only certain data should be exposed +output "ibm_schematics_agent_health" { + value = ibm_schematics_agent_health.schematics_agent_health_instance + description = "schematics_agent_health resource instance" +} + diff --git a/examples/ibm-schematics/variables.tf b/examples/ibm-schematics/variables.tf index 2e9d10dc1b..7d52f21bb1 100644 --- a/examples/ibm-schematics/variables.tf +++ b/examples/ibm-schematics/variables.tf @@ -287,3 +287,130 @@ variable "schematics_job_job_id" { type = string default = "job_id" } + + +// Resource arguments for schematics_policy +variable "schematics_policy_name" { + description = "Name of Schematics customization policy." + type = string + default = "Agent1-DevWS" +} +variable "schematics_policy_description" { + description = "The description of Schematics customization policy." + type = string + default = "Policy for job execution of secured workspaces on agent1" +} +variable "schematics_policy_resource_group" { + description = "The resource group name for the policy. By default, Policy will be created in `default` Resource Group." + type = string + default = "Default" +} +variable "schematics_policy_tags" { + description = "Tags for the Schematics customization policy." + type = list(string) + default = ["policy:secured-job"] +} +variable "schematics_policy_location" { + description = "List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics." + type = string + default = "us-south" +} +variable "schematics_policy_kind" { + description = "Policy kind or categories for managing and deriving policy decision * `agent_assignment_policy` Agent assignment policy for job execution." + type = string + default = "agent_assignment_policy" +} + +// Resource arguments for schematics_agent +variable "schematics_agent_name" { + description = "The name of the agent (must be unique, for an account)." + type = string + default = "MyDevAgent" +} +variable "schematics_agent_resource_group" { + description = "The resource-group name for the agent. By default, agent will be registered in Default Resource Group." + type = string + default = "Default" +} +variable "schematics_agent_version" { + description = "Agent version." + type = string + default = "1.0.0-beta2" +} +variable "schematics_agent_schematics_location" { + description = "List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics." + type = string + default = "us-south" +} +variable "schematics_agent_agent_location" { + description = "The location where agent is deployed in the user environment." + type = string + default = "us-south" +} +variable "schematics_agent_description" { + description = "Agent description." + type = string + default = "Create Agent" +} +variable "schematics_agent_tags" { + description = "Tags for the agent." + type = list(string) + default = [ "tags" ] +} + +// Resource arguments for schematics_agent_prs +variable "schematics_agent_prs_agent_id" { + description = "Agent ID to get the details of agent." + type = string + default = "agent_id" +} +variable "schematics_agent_prs_force" { + description = "Equivalent to -force options in the command line, default is false." + type = bool + default = true +} + +// Resource arguments for schematics_agent_deploy +variable "schematics_agent_deploy_agent_id" { + description = "Agent ID to get the details of agent." + type = string + default = "agent_id" +} +variable "schematics_agent_deploy_force" { + description = "Equivalent to -force options in the command line, default is false." + type = bool + default = true +} + +// Resource arguments for schematics_agent_health +variable "schematics_agent_health_agent_id" { + description = "Agent ID to get the details of agent." + type = string + default = "agent_id" +} +variable "schematics_agent_health_force" { + description = "Equivalent to -force options in the command line, default is false." + type = bool + default = true +} + +// Data source arguments for schematics_policies +variable "schematics_policies_policy_kind" { + description = "Policy kind or categories for managing and deriving policy decision * `agent_assignment_policy` Agent assignment policy for job execution." + type = string + default = "agent_assignment_policy" +} + +// Data source arguments for schematics_policy +variable "schematics_policy_policy_id" { + description = "ID to get the details of policy." + type = string + default = "policy_id" +} + +// Data source arguments for schematics_agent +variable "schematics_agent_agent_id" { + description = "Agent ID to get the details of agent." + type = string + default = "agent_id" +} \ No newline at end of file diff --git a/examples/ibm-schematics/versions.tf b/examples/ibm-schematics/versions.tf index 2c7021a3aa..f4431d843e 100644 --- a/examples/ibm-schematics/versions.tf +++ b/examples/ibm-schematics/versions.tf @@ -1,8 +1,8 @@ terraform { - required_providers { - ibm = { - source = "IBM-Cloud/ibm" - version = "1.19.0" - } - } - } \ No newline at end of file + required_providers { + ibm = { + source = "IBM-Cloud/ibm" + version = "1.58.1" + } + } +} \ No newline at end of file diff --git a/go.mod b/go.mod index c1a1b52b72..bffd2441f8 100644 --- a/go.mod +++ b/go.mod @@ -3,31 +3,32 @@ module github.com/IBM-Cloud/terraform-provider-ibm go 1.18 require ( - github.com/IBM-Cloud/bluemix-go v0.0.0-20231017073329-75ebe90c98ba - github.com/IBM-Cloud/container-services-go-sdk v0.0.0-20230822142550-30562e113de9 - github.com/IBM-Cloud/power-go-client v1.5.2 + github.com/IBM-Cloud/bluemix-go v0.0.0-20231123082353-50e8cc9c6959 + github.com/IBM-Cloud/container-services-go-sdk v0.0.0-20231106114255-c50117860a3c + github.com/IBM-Cloud/power-go-client v1.5.4 github.com/IBM/apigateway-go-sdk v0.0.0-20210714141226-a5d5d49caaca github.com/IBM/appconfiguration-go-admin-sdk v0.3.0 github.com/IBM/appid-management-go-sdk v0.0.0-20210908164609-dd0e0eaf732f github.com/IBM/cloud-databases-go-sdk v0.3.2 github.com/IBM/cloudant-go-sdk v0.0.43 - github.com/IBM/code-engine-go-sdk v0.0.0-20230606173928-4863db061918 + github.com/IBM/code-engine-go-sdk v0.0.0-20231106200405-99e81b3ee752 github.com/IBM/container-registry-go-sdk v1.1.0 - github.com/IBM/continuous-delivery-go-sdk v1.2.0 - github.com/IBM/event-notifications-go-admin-sdk v0.2.4 - github.com/IBM/eventstreams-go-sdk v1.2.0 + github.com/IBM/continuous-delivery-go-sdk v1.3.0 + github.com/IBM/event-notifications-go-admin-sdk v0.2.7 + github.com/IBM/eventstreams-go-sdk v1.4.0 github.com/IBM/go-sdk-core/v3 v3.2.4 - github.com/IBM/go-sdk-core/v5 v5.14.1 + github.com/IBM/go-sdk-core/v5 v5.15.0 github.com/IBM/ibm-cos-sdk-go v1.10.0 github.com/IBM/ibm-cos-sdk-go-config v1.2.0 github.com/IBM/ibm-hpcs-tke-sdk v0.0.0-20211109141421-a4b61b05f7d1 github.com/IBM/ibm-hpcs-uko-sdk v0.0.20-beta github.com/IBM/keyprotect-go-client v0.12.2 + github.com/IBM/logs-router-go-sdk v1.0.0 github.com/IBM/networking-go-sdk v0.42.2 - github.com/IBM/platform-services-go-sdk v0.52.0 - github.com/IBM/project-go-sdk v0.0.10 + github.com/IBM/platform-services-go-sdk v0.54.0 + github.com/IBM/project-go-sdk v0.1.1 github.com/IBM/push-notifications-go-sdk v0.0.0-20210310100607-5790b96c47f5 - github.com/IBM/scc-go-sdk/v5 v5.1.2 + github.com/IBM/scc-go-sdk/v5 v5.1.3 github.com/IBM/schematics-go-sdk v0.2.2 github.com/IBM/secrets-manager-go-sdk/v2 v2.0.1 github.com/IBM/vpc-beta-go-sdk v0.6.0 @@ -40,7 +41,7 @@ require ( github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32 github.com/go-openapi/strfmt v0.21.7 github.com/golang-jwt/jwt v3.2.2+incompatible - github.com/google/go-cmp v0.5.9 + github.com/google/go-cmp v0.6.0 github.com/google/uuid v1.3.0 github.com/hashicorp/go-uuid v1.0.3 github.com/hashicorp/go-version v1.6.0 @@ -94,8 +95,9 @@ require ( github.com/evanphx/json-patch/v5 v5.6.0 // indirect github.com/fatih/color v1.15.0 // indirect github.com/frankban/quicktest v1.14.3 // indirect - github.com/fsnotify/fsnotify v1.6.0 // indirect - github.com/go-jose/go-jose/v3 v3.0.0 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect + github.com/gabriel-vasile/mimetype v1.4.2 // indirect + github.com/go-jose/go-jose/v3 v3.0.1 // indirect github.com/go-logr/logr v1.2.4 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/analysis v0.21.4 // indirect @@ -110,7 +112,7 @@ require ( github.com/go-ozzo/ozzo-validation/v4 v4.3.0 // indirect github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect - github.com/go-playground/validator/v10 v10.13.0 // indirect + github.com/go-playground/validator/v10 v10.15.5 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/golang/snappy v0.0.4 // indirect @@ -125,7 +127,7 @@ require ( github.com/hashicorp/go-immutable-radix v1.3.1 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-plugin v1.5.0 // indirect - github.com/hashicorp/go-retryablehttp v0.7.2 // indirect + github.com/hashicorp/go-retryablehttp v0.7.4 // indirect github.com/hashicorp/go-rootcerts v1.0.2 // indirect github.com/hashicorp/go-secure-stdlib/parseutil v0.1.7 // indirect github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect @@ -159,7 +161,7 @@ require ( github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/compress v1.16.7 // indirect github.com/kube-object-storage/lib-bucket-provisioner v0.0.0-20221122204822-d1a8c34382f1 // indirect - github.com/leodido/go-urn v1.2.3 // indirect + github.com/leodido/go-urn v1.2.4 // indirect github.com/libopenstorage/secrets v0.0.0-20220823020833-2ecadaf59d8a // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect @@ -198,7 +200,7 @@ require ( github.com/vmihailenco/msgpack/v4 v4.3.12 // indirect github.com/vmihailenco/tagparser v0.1.1 // indirect github.com/zclconf/go-cty v1.11.0 // indirect - go.mongodb.org/mongo-driver v1.11.6 // indirect + go.mongodb.org/mongo-driver v1.12.1 // indirect go.opentelemetry.io/otel v1.14.0 // indirect go.opentelemetry.io/otel/trace v1.14.0 // indirect go.uber.org/ratelimit v0.2.0 // indirect @@ -211,7 +213,7 @@ require ( gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 // indirect - google.golang.org/grpc v1.57.0 // indirect + google.golang.org/grpc v1.57.1 // indirect google.golang.org/protobuf v1.31.0 // indirect gopkg.in/go-playground/validator.v9 v9.31.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect diff --git a/go.sum b/go.sum index a631e1886f..4477787f09 100644 --- a/go.sum +++ b/go.sum @@ -100,13 +100,13 @@ github.com/DataDog/datadog-go v2.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3 github.com/DataDog/datadog-go v3.2.0+incompatible h1:qSG2N4FghB1He/r2mFrWKCaL7dXCilEuNEeAn20fdD4= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/DataDog/zstd v1.4.4/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= -github.com/IBM-Cloud/bluemix-go v0.0.0-20231017073329-75ebe90c98ba h1:8U4HByOYJiaGWBpGjdRIzyzu0NBzjywh//CZnSbEsPw= -github.com/IBM-Cloud/bluemix-go v0.0.0-20231017073329-75ebe90c98ba/go.mod h1:mt+O8ryLVANrBKlA4RxKdENp3q6Q7mKQIi2nkiibZbU= -github.com/IBM-Cloud/container-services-go-sdk v0.0.0-20230822142550-30562e113de9 h1:sXRzCK3Glxpyu66Tu2NjztLdT5sDwj4qly+MJKRhdWY= -github.com/IBM-Cloud/container-services-go-sdk v0.0.0-20230822142550-30562e113de9/go.mod h1:xUQL9SGAjoZFd4GNjrjjtEpjpkgU7RFXRyHesbKTjiY= +github.com/IBM-Cloud/bluemix-go v0.0.0-20231123082353-50e8cc9c6959 h1:dvvI4ybsYx6M7fFGrg3HjlNnYxEBi9jJdSU0JhjJbG8= +github.com/IBM-Cloud/bluemix-go v0.0.0-20231123082353-50e8cc9c6959/go.mod h1:jIGLnIfj+uBv2ALz3rVHzNbNwt0V/bEWNeJKECa8Q+k= +github.com/IBM-Cloud/container-services-go-sdk v0.0.0-20231106114255-c50117860a3c h1:tRS4VuOG3lHNG+yrsh3vZZQDVNLuFJB0oZbTJp9YXds= +github.com/IBM-Cloud/container-services-go-sdk v0.0.0-20231106114255-c50117860a3c/go.mod h1:xUQL9SGAjoZFd4GNjrjjtEpjpkgU7RFXRyHesbKTjiY= github.com/IBM-Cloud/ibm-cloud-cli-sdk v0.5.3/go.mod h1:RiUvKuHKTBmBApDMUQzBL14pQUGKcx/IioKQPIcRQjs= -github.com/IBM-Cloud/power-go-client v1.5.2 h1:p8+vY9+wtr4BIa2+Y4EVI0jlvRg+FLWsbOpWYNlKXDw= -github.com/IBM-Cloud/power-go-client v1.5.2/go.mod h1:Vd8aSxWA30soUhE2U+tmzaYDUVNOmQE3/npny7BsN6Y= +github.com/IBM-Cloud/power-go-client v1.5.4 h1:fk+QgOdZvwq696UynehfGrMGMHXDYOJfRCE3Pec9o6c= +github.com/IBM-Cloud/power-go-client v1.5.4/go.mod h1:ZsKqKC4d4MAWujkttW1w9tG7xjlIbkIpVENX476ghVY= github.com/IBM-Cloud/softlayer-go v1.0.5-tf h1:koUAyF9b6X78lLLruGYPSOmrfY2YcGYKOj/Ug9nbKNw= github.com/IBM-Cloud/softlayer-go v1.0.5-tf/go.mod h1:6HepcfAXROz0Rf63krk5hPZyHT6qyx2MNvYyHof7ik4= github.com/IBM/apigateway-go-sdk v0.0.0-20210714141226-a5d5d49caaca h1:crniVcf+YcmgF03NmmfonXwSQ73oJF+IohFYBwknMxs= @@ -119,16 +119,16 @@ github.com/IBM/cloud-databases-go-sdk v0.3.2 h1:AUi7/xswqCwuXIlSyuXtDZJIm4d0ZicU github.com/IBM/cloud-databases-go-sdk v0.3.2/go.mod h1:nCIVfeZnhBYIiwByT959dFP4VWUeNLxomDYy63tTC6M= github.com/IBM/cloudant-go-sdk v0.0.43 h1:YxTy4RpAEezX32YIWnds76hrBREmO4u6IkBz1WylNuQ= github.com/IBM/cloudant-go-sdk v0.0.43/go.mod h1:WeYrJPaHTw19943ndWnVfwMIlZ5z0XUM2uEXNBrwZ1M= -github.com/IBM/code-engine-go-sdk v0.0.0-20230606173928-4863db061918 h1:RfHezAVs3HegiGOcMmTXqsBPqZqfwZZHqje1EMriHBQ= -github.com/IBM/code-engine-go-sdk v0.0.0-20230606173928-4863db061918/go.mod h1:IP6U/1NxgxzPeYdyiEwMaZyzelTw82JGHWl7bY78eQM= +github.com/IBM/code-engine-go-sdk v0.0.0-20231106200405-99e81b3ee752 h1:S5NT0aKKUqd9hnIrPN/qUijKx9cZjJi3kfFpog0ByDA= +github.com/IBM/code-engine-go-sdk v0.0.0-20231106200405-99e81b3ee752/go.mod h1:noWxHQUgW9msjOrDpV17gnwWbTbUlSmWMGq7/Vi/n9I= github.com/IBM/container-registry-go-sdk v1.1.0 h1:sYyknIod8R4RJZQqAheiduP6wbSTphE9Ag8ho28yXjc= github.com/IBM/container-registry-go-sdk v1.1.0/go.mod h1:4TwsCnQtVfZ4Vkapy/KPvQBKFc3VOyUZYkwRU4FTPrs= -github.com/IBM/continuous-delivery-go-sdk v1.2.0 h1:FcgB5EvVrZLUnyR4S/mBocHHo9gJ5IQkSlCa6nqmr2A= -github.com/IBM/continuous-delivery-go-sdk v1.2.0/go.mod h1:oW51tS5/MDCcEM7lUvjK1H9GFC/oKsRbyYfmvGyMGmw= -github.com/IBM/event-notifications-go-admin-sdk v0.2.4 h1:WWUxwrKQxvExEK+xaAQOs6gP54LvJDPi3KatDTMfwh0= -github.com/IBM/event-notifications-go-admin-sdk v0.2.4/go.mod h1:1TlGAFP47DybbovJfHtYYgSI8xpLL8Q0wao6vsAlb6c= -github.com/IBM/eventstreams-go-sdk v1.2.0 h1:eP0afHArMGjwhGqvZAhhu/3EDKRch2JehpveqF1TUjs= -github.com/IBM/eventstreams-go-sdk v1.2.0/go.mod h1:2tuAxaYLctfqfr5jvyqSrxxEQGMwYPm3yJGWSj85YVQ= +github.com/IBM/continuous-delivery-go-sdk v1.3.0 h1:WsILMVpNWD/5G40ltWeXbOj4y5ODQSq1hKXAnDJuNjw= +github.com/IBM/continuous-delivery-go-sdk v1.3.0/go.mod h1:oW51tS5/MDCcEM7lUvjK1H9GFC/oKsRbyYfmvGyMGmw= +github.com/IBM/event-notifications-go-admin-sdk v0.2.7 h1:Y6YPiXZO3/oAhs7rY6ekowJAsf9J05g2UFq3wjFkuCs= +github.com/IBM/event-notifications-go-admin-sdk v0.2.7/go.mod h1:iI6/TJt4GQBDsl8NYzoIYGnsNjMG0kOVIEl7mcM5v1E= +github.com/IBM/eventstreams-go-sdk v1.4.0 h1:yS/Ns29sBOe8W2tynQmz9HTKqQZ0ckse4Py5Oy/F2rM= +github.com/IBM/eventstreams-go-sdk v1.4.0/go.mod h1:2tuAxaYLctfqfr5jvyqSrxxEQGMwYPm3yJGWSj85YVQ= github.com/IBM/go-sdk-core/v3 v3.0.0/go.mod h1:JI5NS2+iCoY/D8Oq3JNEZNA7qO42agu6fnaUmDsRcJA= github.com/IBM/go-sdk-core/v3 v3.2.4 h1:WKYJYYKlZnw1y/gM+Qbf5EQVAL9xaoD54+ooJZz/iBQ= github.com/IBM/go-sdk-core/v3 v3.2.4/go.mod h1:lk9eOzNbNltPf3CBpcg1Ewkhw4qC3u2QCCKDRsUA2M0= @@ -139,8 +139,8 @@ github.com/IBM/go-sdk-core/v5 v5.7.0/go.mod h1:+YbdhrjCHC84ls4MeBp+Hj4NZCni+tDAc github.com/IBM/go-sdk-core/v5 v5.9.2/go.mod h1:YlOwV9LeuclmT/qi/LAK2AsobbAP42veV0j68/rlZsE= github.com/IBM/go-sdk-core/v5 v5.9.5/go.mod h1:YlOwV9LeuclmT/qi/LAK2AsobbAP42veV0j68/rlZsE= github.com/IBM/go-sdk-core/v5 v5.10.2/go.mod h1:WZPFasUzsKab/2mzt29xPcfruSk5js2ywAPwW4VJjdI= -github.com/IBM/go-sdk-core/v5 v5.14.1 h1:WR1r0zz+gDW++xzZjF41r9ueY4JyjS2vgZjiYs8lO3c= -github.com/IBM/go-sdk-core/v5 v5.14.1/go.mod h1:MUvIr/1mgGh198ZXL+ByKz9Qs1JoEh80v/96x8jPXNY= +github.com/IBM/go-sdk-core/v5 v5.15.0 h1:AhFoWVk3i58f9vnDoEoZumI/zbtRoP5moWIz5YQOmZg= +github.com/IBM/go-sdk-core/v5 v5.15.0/go.mod h1:5Obavm/s1Tc2PxivEIfgCvj/HJ5h3QIOjLHS5y8QJf0= github.com/IBM/ibm-cos-sdk-go v1.3.1/go.mod h1:YLBAYobEA8bD27P7xpMwSQeNQu6W3DNBtBComXrRzRY= github.com/IBM/ibm-cos-sdk-go v1.10.0 h1:/2VIev2/jBei39OqU2+nSZQnoWJ+KtkiSAIDkqsd7uU= github.com/IBM/ibm-cos-sdk-go v1.10.0/go.mod h1:C8KRTRaoD3CWPPBOa6FCOpdh0ZMlUjKAAA4i3F+Q/sc= @@ -153,18 +153,20 @@ github.com/IBM/ibm-hpcs-uko-sdk v0.0.20-beta/go.mod h1:MLVNHMYoKsvovJZ4v1gQCpIYt github.com/IBM/keyprotect-go-client v0.5.1/go.mod h1:5TwDM/4FRJq1ZOlwQL1xFahLWQ3TveR88VmL1u3njyI= github.com/IBM/keyprotect-go-client v0.12.2 h1:Cjxcqin9Pl0xz3MnxdiVd4v/eIa79xL3hQpSbwOr/DQ= github.com/IBM/keyprotect-go-client v0.12.2/go.mod h1:yr8h2noNgU8vcbs+vhqoXp3Lmv73PI0zAc6VMgFvWwM= +github.com/IBM/logs-router-go-sdk v1.0.0 h1:cGBjf7wJye/WuzFljqN7yB8ToIxLIiffWaQGW9rSTcI= +github.com/IBM/logs-router-go-sdk v1.0.0/go.mod h1:FJpyZctp5DmRms/MtvRUuWBF/CAk76WJzAsJc4EIM/Y= github.com/IBM/networking-go-sdk v0.42.2 h1:caqjx4jyFHi10Vlf3skHvlL6K3YJRVstsmCBmvdyqkA= github.com/IBM/networking-go-sdk v0.42.2/go.mod h1:lTUZwtUkMANMnrLHFIgRhHrkBfwASY/Iho1fabaPHxo= -github.com/IBM/platform-services-go-sdk v0.52.0 h1:hbf640xE8T0Rwy2IUf5Pu4OATabGS4IDMnEInXUXs4o= -github.com/IBM/platform-services-go-sdk v0.52.0/go.mod h1:6LxcUhIaSLP4SuQJXF9oLXBamSQogs5D9BcVwr4hmfU= -github.com/IBM/project-go-sdk v0.0.10 h1:vHSuemwZ4S4c6BEb22tzsEcPTs/5LnZ0yKpP3GG/GL8= -github.com/IBM/project-go-sdk v0.0.10/go.mod h1:lqe0M4cKvABI1iHR1b+KfasVcxQL6nl2VJ8eOyQs8Ig= +github.com/IBM/platform-services-go-sdk v0.54.0 h1:WjHWm9ZAJvlq07E1WXXtEe+d/B0sazWD6cEWVT7EMLU= +github.com/IBM/platform-services-go-sdk v0.54.0/go.mod h1:CWSprvsCsXWvujmBzbtoJSmbRZS9FVV3O594b0t/GiM= +github.com/IBM/project-go-sdk v0.1.1 h1:x1PkGUTkKpgxoXs/6IG4U1mk5BgaPEaRMVpXTs52rE4= +github.com/IBM/project-go-sdk v0.1.1/go.mod h1:lqe0M4cKvABI1iHR1b+KfasVcxQL6nl2VJ8eOyQs8Ig= github.com/IBM/push-notifications-go-sdk v0.0.0-20210310100607-5790b96c47f5 h1:NPUhkoOCRuv3OFWt19PmwjXGGTKlvmbuPg9fUrBUNe4= github.com/IBM/push-notifications-go-sdk v0.0.0-20210310100607-5790b96c47f5/go.mod h1:b07XHUVh0XYnQE9s2mqgjYST1h9buaQNqN4EcKhOsX0= github.com/IBM/sarama v1.41.2 h1:ZDBZfGPHAD4uuAtSv4U22fRZBgst0eEwGFzLj0fb85c= github.com/IBM/sarama v1.41.2/go.mod h1:xdpu7sd6OE1uxNdjYTSKUfY8FaKkJES9/+EyjSgiGQk= -github.com/IBM/scc-go-sdk/v5 v5.1.2 h1:9axGtNlP3bHhoE9yJgCuc+g5/VdyhYqfhZ5oS3ovCFI= -github.com/IBM/scc-go-sdk/v5 v5.1.2/go.mod h1:YtAVlzq10bwR82QX4ZavhDIwa1s85RuVO9N/KmXVcuk= +github.com/IBM/scc-go-sdk/v5 v5.1.3 h1:8zqJx/HgChTlMaC21HzthIR4HbFkuJ3dR/D68254jRg= +github.com/IBM/scc-go-sdk/v5 v5.1.3/go.mod h1:YtAVlzq10bwR82QX4ZavhDIwa1s85RuVO9N/KmXVcuk= github.com/IBM/schematics-go-sdk v0.2.2 h1:8S3hoVLzF/ZRgWDaLqwHnLmZvlEBHCKgHszmMh7yD2E= github.com/IBM/schematics-go-sdk v0.2.2/go.mod h1:Tw2OSAPdpC69AxcwoyqcYYaGTTW6YpERF9uNEU+BFRQ= github.com/IBM/secrets-manager-go-sdk/v2 v2.0.1 h1:0Ouu31RsuOLdH26oNsnPErEjctWTplLEIXxwExnTZT0= @@ -442,9 +444,11 @@ github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3 github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= -github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA= +github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= +github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= github.com/gammazero/deque v0.0.0-20190130191400-2afb3858e9c7/go.mod h1:GeIq9qoE43YdGnDXURnmKTnGg15pQz4mYkXSTChbneI= github.com/gammazero/workerpool v0.0.0-20190406235159-88d534f22b56/go.mod h1:w9RqFVO2BM3xwWEcAB8Fwp0OviTBBEiRmSBDfbXnd3w= github.com/getkin/kin-openapi v0.76.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg= @@ -468,8 +472,8 @@ github.com/go-git/go-git/v5 v5.4.2/go.mod h1:gQ1kArt6d+n+BGd+/B/I74HwRTLhth2+zti github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-jose/go-jose/v3 v3.0.0 h1:s6rrhirfEP/CGIoc6p+PZAeogN2SxKav6Wp7+dyMWVo= -github.com/go-jose/go-jose/v3 v3.0.0/go.mod h1:RNkWWRld676jZEYoV3+XK8L2ZnNSvIsxFMht0mSX+u8= +github.com/go-jose/go-jose/v3 v3.0.1 h1:pWmKFVtt+Jl0vBZTIpz/eAKwsm6LkIxDVVbFHKkchhA= +github.com/go-jose/go-jose/v3 v3.0.1/go.mod h1:RNkWWRld676jZEYoV3+XK8L2ZnNSvIsxFMht0mSX+u8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= @@ -592,8 +596,8 @@ github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+ github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.13.0 h1:cFRQdfaSMCOSfGCCLB20MHvuoHb/s5G8L5pu2ppK5AQ= -github.com/go-playground/validator/v10 v10.13.0/go.mod h1:dwu7+CG8/CtBiJFZDz4e+5Upb6OLw04gtBYw0mcG/z4= +github.com/go-playground/validator/v10 v10.15.5 h1:LEBecTWb/1j5TNY1YYG2RcOUN3R7NLylN+x8TTueE24= +github.com/go-playground/validator/v10 v10.15.5/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= @@ -705,8 +709,9 @@ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= github.com/google/go-metrics-stackdriver v0.2.0 h1:rbs2sxHAPn2OtUj9JdR/Gij1YKGl0BTVD0augB+HEjE= github.com/google/go-metrics-stackdriver v0.2.0/go.mod h1:KLcPyp3dWJAFD+yHisGlJSZktIsTjb50eB72U2YZ9K0= @@ -850,8 +855,8 @@ github.com/hashicorp/go-retryablehttp v0.6.2/go.mod h1:gEx6HMUGxYYhJScX7W1Il64m6 github.com/hashicorp/go-retryablehttp v0.6.6/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= github.com/hashicorp/go-retryablehttp v0.7.0/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= github.com/hashicorp/go-retryablehttp v0.7.1/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= -github.com/hashicorp/go-retryablehttp v0.7.2 h1:AcYqCvkpalPnPF2pn0KamgwamS42TqUDDYFRKq/RAd0= -github.com/hashicorp/go-retryablehttp v0.7.2/go.mod h1:Jy/gPYAdjqffZ/yFGCFV2doI5wjtH1ewM9u8iYVjtX8= +github.com/hashicorp/go-retryablehttp v0.7.4 h1:ZQgVdpTdAL7WpMIwLzCfbalOcSUdkDZnpUv3/+BxzFA= +github.com/hashicorp/go-retryablehttp v0.7.4/go.mod h1:Jy/gPYAdjqffZ/yFGCFV2doI5wjtH1ewM9u8iYVjtX8= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= github.com/hashicorp/go-rootcerts v1.0.1/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= @@ -1106,8 +1111,8 @@ github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LE github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= -github.com/leodido/go-urn v1.2.3 h1:6BE2vPT0lqoz3fmOesHZiaiFh7889ssCo2GMvLCfiuA= -github.com/leodido/go-urn v1.2.3/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4= +github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q= +github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/libopenstorage/autopilot-api v0.6.1-0.20210128210103-5fbb67948648/go.mod h1:6JLrPbR3ZJQFbUY/+QJMl/aF00YdIrLf8/GWAplgvJs= github.com/libopenstorage/openstorage v8.0.0+incompatible/go.mod h1:Sp1sIObHjat1BeXhfMqLZ14wnOzEhNx2YQedreMcUyc= @@ -1226,8 +1231,8 @@ github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLA github.com/nsf/jsondiff v0.0.0-20200515183724-f29ed568f4ce h1:RPclfga2SEJmgMmz2k+Mg7cowZ8yv4Trqw9UsJby758= github.com/nwaples/rardecode v1.0.0/go.mod h1:5DzqNKiOdpKKBH87u8VlvAnPZMXcGRhxWkRpHbbfGS0= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= -github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= +github.com/nxadm/tail v1.4.11 h1:8feyoE3OzPrcshW5/MJ4sGESc5cqmGkGCWlco4l0bqY= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA= github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU= @@ -1266,8 +1271,8 @@ github.com/onsi/ginkgo/v2 v2.9.2/go.mod h1:WHcJJG2dIlcCqVfBAwUCrJxSPFb6v4azBwgxe github.com/onsi/ginkgo/v2 v2.9.5/go.mod h1:tvAoo1QUJwNEU2ITftXTpR7R1RbCzoZUOs3RonqW57k= github.com/onsi/ginkgo/v2 v2.9.7/go.mod h1:cxrmXWykAwTwhQsJOPfdIDiJ+l2RYq7U8hFU+M/1uw0= github.com/onsi/ginkgo/v2 v2.11.0/go.mod h1:ZhrRA5XmEE3x3rhlzamx/JJvujdZoJ2uvgI7kR0iZvM= -github.com/onsi/ginkgo/v2 v2.12.0 h1:UIVDowFPwpg6yMUpPjGkYvf06K3RAiJXUhCxEwQVHRI= -github.com/onsi/ginkgo/v2 v2.12.0/go.mod h1:ZNEzXISYlqpb8S36iN71ifqLi3vVD1rVJGvWRCJOUpQ= +github.com/onsi/ginkgo/v2 v2.13.0 h1:0jY9lJquiL8fcf3M4LAXN5aMlS/b2BV86HFFPCPMgE4= +github.com/onsi/ginkgo/v2 v2.13.0/go.mod h1:TE309ZR8s5FsKKpuB1YAQYBzCaAfUgatB/xlT/ETL/o= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v0.0.0-20190113212917-5533ce8a0da3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.4.2/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= @@ -1298,8 +1303,8 @@ github.com/onsi/gomega v1.27.6/go.mod h1:PIQNjfQwkP3aQAH7lf7j87O/5FiNr+ZR8+ipb+q github.com/onsi/gomega v1.27.7/go.mod h1:1p8OOlwo2iUUDsHnOrjE5UKYJ+e3W8eQ3qSlRahPmr4= github.com/onsi/gomega v1.27.8/go.mod h1:2J8vzI/s+2shY9XHRApDkdgPo1TKT7P2u6fXeJKFnNQ= github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M= -github.com/onsi/gomega v1.28.0 h1:i2rg/p9n/UqIDAMFUJ6qIUUMcsqOuUHgbpbu235Vr1c= -github.com/onsi/gomega v1.28.0/go.mod h1:A1H2JE76sI14WIP57LMKj7FVfCHx3g3BcZVjJG8bjX8= +github.com/onsi/gomega v1.29.0 h1:KIA/t2t5UBzoirT4H9tsML45GEbo3ouUnBHsCfD2tVg= +github.com/onsi/gomega v1.29.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= @@ -1510,7 +1515,6 @@ github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcU github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tencentcloud/tencentcloud-sdk-go v3.0.171+incompatible h1:K3fcS92NS8cRntIdu8Uqy2ZSePvX73nNhOkKuPGJLXQ= -github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tj/assert v0.0.0-20171129193455-018094318fb0/go.mod h1:mZ9/Rh9oLWpLLDRpvE+3b7gP/C2YyLFYxNmcLnPTMe0= github.com/tj/assert v0.0.3 h1:Df/BlaZ20mq6kuai7f5z2TvPFiwC3xaWJSDQNiIS3Rk= @@ -1543,8 +1547,10 @@ github.com/xanzy/ssh-agent v0.3.0/go.mod h1:3s9xbODqPuuhK9JV1R321M/FlMZSBvE5aY6e github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs= github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= +github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3kKLN4= github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM= github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= +github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM= github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= github.com/xdg/stringprep v0.0.0-20180714160509-73f8eece6fdc/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= @@ -1587,8 +1593,8 @@ go.mongodb.org/mongo-driver v1.7.3/go.mod h1:NqaYOwnXWr5Pm7AOpO5QFxKJ503nbMse/R7 go.mongodb.org/mongo-driver v1.7.5/go.mod h1:VXEWRZ6URJIkUq2SCAyapmhH0ZLRBP+FT4xhp5Zvxng= go.mongodb.org/mongo-driver v1.10.0/go.mod h1:wsihk0Kdgv8Kqu1Anit4sfK+22vSFbUrAVEYRhCXrA8= go.mongodb.org/mongo-driver v1.11.3/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g= -go.mongodb.org/mongo-driver v1.11.6 h1:XM7G6PjiGAO5betLF13BIa5TlLUUE3uJ/2Ox3Lz1K+o= -go.mongodb.org/mongo-driver v1.11.6/go.mod h1:G9TgswdsWjX4tmDA5zfs2+6AEPpYJwqblyjsfuh8oXY= +go.mongodb.org/mongo-driver v1.12.1 h1:nLkghSU8fQNaK7oUmDhQFsnrtcoNy7Z6LVFKsEecqgE= +go.mongodb.org/mongo-driver v1.12.1/go.mod h1:/rGBTebI3XYboVmgz+Wv3Bcbl3aD0QF9zl6kDDw18rQ= go.opencensus.io v0.19.1/go.mod h1:gug0GbSHa8Pafr0d2urOSgoXHZ6x/RUlaiT0d9pqb4A= go.opencensus.io v0.19.2/go.mod h1:NO/8qkisMZLZ1FCsKNqtJPwc8/TaclWyY0B6wcYNg9M= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= @@ -1921,7 +1927,6 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1932,6 +1937,7 @@ golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= @@ -1960,6 +1966,7 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= @@ -2185,8 +2192,8 @@ google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.41.0/go.mod h1:U3l9uK9J0sini8mHphKoXyaqDA/8VyGnDee1zzIUK6k= -google.golang.org/grpc v1.57.0 h1:kfzNeI/klCGD2YPMUlaGNT3pxvYfga7smW3Vth8Zsiw= -google.golang.org/grpc v1.57.0/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo= +google.golang.org/grpc v1.57.1 h1:upNTNqv0ES+2ZOOqACwVtS3Il8M12/+Hz41RCPzAjQg= +google.golang.org/grpc v1.57.1/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= diff --git a/ibm/acctest/acctest.go b/ibm/acctest/acctest.go index 19b72beb82..bee8b7cb2b 100644 --- a/ibm/acctest/acctest.go +++ b/ibm/acctest/acctest.go @@ -4,14 +4,22 @@ package acctest import ( + "context" "fmt" "os" "strconv" + "strings" + "sync" "testing" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/provider" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + terraformsdk "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" +) - "github.com/IBM-Cloud/terraform-provider-ibm/ibm/provider" +const ( + ProviderName = "ibm" + ProviderNameAlternate = "ibmalternate" ) var ( @@ -146,7 +154,6 @@ var ( IksClusterVpcID string IksClusterSubnetID string IksClusterResourceGroupID string - IcdDbRegion string IcdDbDeploymentId string IcdDbBackupId string IcdDbTaskId string @@ -192,6 +199,7 @@ var ( PiStoragePool string PiStorageType string Pi_shared_processor_pool_id string + Pi_resource_group_id string ) var ( @@ -304,11 +312,22 @@ var ( CeProjectId string CeServiceInstanceID string CeResourceKeyID string + CeDomainMappingName string + CeTLSCert string + CeTLSKey string +) + +// Satellite tests +var ( + SatelliteSSHPubKey string ) // for IAM Identity var IamIdentityAssignmentTargetAccountId string +// Projects +var ProjectsConfigApiKey string + func init() { testlogger := os.Getenv("TF_LOG") if testlogger != "" { @@ -317,6 +336,11 @@ func init() { IamIdentityAssignmentTargetAccountId = os.Getenv("IAM_IDENTITY_ASSIGNMENT_TARGET_ACCOUNT") + ProjectsConfigApiKey = os.Getenv("IBM_PROJECTS_CONFIG_APIKEY") + if ProjectsConfigApiKey == "" { + fmt.Println("[WARN] Set the environment variable IBM_PROJECTS_CONFIG_APIKEY for testing IBM Projects Config resources, the tests will fail if this is not set") + } + AppIDTenantID = os.Getenv("IBM_APPID_TENANT_ID") if AppIDTenantID == "" { fmt.Println("[WARN] Set the environment variable IBM_APPID_TENANT_ID for testing AppID resources, AppID tests will fail if this is not set") @@ -850,12 +874,6 @@ func init() { fmt.Println("[INFO] Set the environment variable ISSnapshotCRN for ibm_is_snapshot resource else it is set to default value 'crn:v1:bluemix:public:is:ca-tor:a/xxxxxxxx::snapshot:xxxx-xxxxc-xxx-xxxx-xxxx-xxxxxxxxxx'") } - IcdDbRegion = os.Getenv("ICD_DB_REGION") - if IcdDbRegion == "" { - IcdDbRegion = "eu-gb" - fmt.Println("[INFO] Set the environment variable ICD_DB_REGION for testing ibm_cloud_databases else it is set to default value 'eu-gb'") - } - IcdDbDeploymentId = os.Getenv("ICD_DB_DEPLOYMENT_ID") if IcdDbDeploymentId == "" { IcdDbDeploymentId = "crn:v1:bluemix:public:databases-for-redis:au-syd:a/40ddc34a953a8c02f10987b59085b60e:5042afe1-72c2-4231-89cc-c949e5d56251::" @@ -1047,6 +1065,12 @@ func init() { fmt.Println("[WARN] Set the environment variable PI_SHARED_PROCESSOR_POOL_ID for testing ibm_pi_shared_processor_pool resource else it is set to default value 'tf-pi-shared-processor-pool'") } + Pi_resource_group_id = os.Getenv("PI_RESOURCE_GROUP_ID") + if Pi_resource_group_id == "" { + Pi_resource_group_id = "" + fmt.Println("[WARN] Set the environment variable PI_RESOURCE_GROUP_ID for testing ibm_pi_workspace resource else it is set to default value ''") + } + WorkspaceID = os.Getenv("SCHEMATICS_WORKSPACE_ID") if WorkspaceID == "" { WorkspaceID = "us-south.workspace.tf-acc-test-schematics-state-test.392cd99f" @@ -1515,6 +1539,29 @@ func init() { CeResourceKeyID = "" fmt.Println("[WARN] Set the environment variable IBM_CODE_ENGINE_RESOURCE_KEY_ID with the ID of a resource key to access a service instance") } + + CeDomainMappingName = os.Getenv("IBM_CODE_ENGINE_DOMAIN_MAPPING_NAME") + if CeDomainMappingName == "" { + CeDomainMappingName = "" + fmt.Println("[WARN] Set the environment variable IBM_CODE_ENGINE_DOMAIN_MAPPING_NAME with the name of a domain mapping") + } + + CeTLSCert = os.Getenv("IBM_CODE_ENGINE_TLS_CERT") + if CeTLSCert == "" { + CeTLSCert = "" + fmt.Println("[WARN] Set the environment variable IBM_CODE_ENGINE_TLS_CERT with the TLS certificate in base64 format") + } + + CeTLSKey = os.Getenv("IBM_CODE_ENGINE_TLS_KEY") + if CeTLSKey == "" { + CeTLSKey = "" + fmt.Println("[WARN] Set the environment variable IBM_CODE_ENGINE_TLS_KEY with a TLS key in base64 format") + } + + SatelliteSSHPubKey = os.Getenv("IBM_SATELLITE_SSH_PUB_KEY") + if SatelliteSSHPubKey == "" { + fmt.Println("[WARN] Set the environment variable IBM_SATELLITE_SSH_PUB_KEY with a ssh public key or ibm_satellite_* tests may fail") + } } var ( @@ -1522,10 +1569,18 @@ var ( TestAccProvider *schema.Provider ) +// testAccProviderConfigure ensures Provider is only configured once +// +// The PreCheck(t) function is invoked for every test and this prevents +// extraneous reconfiguration to the same values each time. However, this does +// not prevent reconfiguration that may happen should the address of +// Provider be errantly reused in ProviderFactories. +var testAccProviderConfigure sync.Once + func init() { TestAccProvider = provider.Provider() TestAccProviders = map[string]*schema.Provider{ - "ibm": TestAccProvider, + ProviderName: TestAccProvider, } } @@ -1549,6 +1604,13 @@ func TestAccPreCheck(t *testing.T) { if v := os.Getenv("IAAS_CLASSIC_USERNAME"); v == "" { t.Fatal("IAAS_CLASSIC_USERNAME must be set for acceptance tests") } + + testAccProviderConfigure.Do(func() { + diags := TestAccProvider.Configure(context.Background(), terraformsdk.NewResourceConfigRaw(nil)) + if diags.HasError() { + t.Fatalf("configuring provider: %s", diags[0].Summary) + } + }) } func TestAccPreCheckEnterprise(t *testing.T) { @@ -1662,6 +1724,21 @@ func TestAccPreCheckCodeEngine(t *testing.T) { if CeProjectId == "" { t.Fatal("IBM_CODE_ENGINE_PROJECT_INSTANCE_ID must be set for acceptance tests") } + if CeServiceInstanceID == "" { + t.Fatal("IBM_CODE_ENGINE_SERVICE_INSTANCE_ID must be set for acceptance tests") + } + if CeResourceKeyID == "" { + t.Fatal("IBM_CODE_ENGINE_RESOURCE_KEY_ID must be set for acceptance tests") + } + if CeDomainMappingName == "" { + t.Fatal("IBM_CODE_ENGINE_DOMAIN_MAPPING_NAME must be set for acceptance tests") + } + if CeTLSCert == "" { + t.Fatal("IBM_CODE_ENGINE_DOMAIN_MAPPING_TLS_CERT must be set for acceptance tests") + } + if CeTLSKey == "" { + t.Fatal("IBM_CODE_ENGINE_DOMAIN_MAPPING_TLS_KEY must be set for acceptance tests") + } } func TestAccPreCheckUsage(t *testing.T) { @@ -1688,3 +1765,52 @@ func TestAccPreCheckScc(t *testing.T) { t.Fatal("IBMCLOUD_SCC_REPORT_ID missing. Set the environment variable IBMCLOUD_SCC_REPORT_ID with a VALID REPORT_ID") } } + +func TestAccPreCheckSatelliteSSH(t *testing.T) { + TestAccPreCheck(t) + if SatelliteSSHPubKey == "" { + t.Fatal("IBM_SATELLITE_SSH_PUB_KEY missing. Set the environment variable IBM_SATELLITE_SSH_PUB_KEY with a VALID ssh public key") + } +} + +func TestAccProviderFactories() map[string]func() (*schema.Provider, error) { + return map[string]func() (*schema.Provider, error){ + ProviderName: func() (*schema.Provider, error) { return provider.Provider(), nil }, + ProviderNameAlternate: func() (*schema.Provider, error) { return provider.Provider(), nil }, + } +} + +func Region() string { + region, _ := schema.MultiEnvDefaultFunc([]string{"IC_REGION", "IBMCLOUD_REGION", "BM_REGION", "BLUEMIX_REGION"}, "us-south")() + + return region.(string) +} + +func RegionAlternate() string { + region, _ := schema.MultiEnvDefaultFunc([]string{"IC_REGION_ALTERNATE", "IBMCLOUD_REGION_ALTERNATE"}, "eu-gb")() + + return region.(string) +} + +func ConfigAlternateRegionProvider() string { + return configNamedRegionalProvider(ProviderNameAlternate, RegionAlternate()) +} + +// ConfigCompose can be called to concatenate multiple strings to build test configurations +func ConfigCompose(config ...string) string { + var str strings.Builder + + for _, conf := range config { + str.WriteString(conf) + } + + return str.String() +} + +func configNamedRegionalProvider(providerName string, region string) string { + return fmt.Sprintf(` +provider %[1]q { + region = %[2]q +} +`, providerName, region) +} diff --git a/ibm/conns/config.go b/ibm/conns/config.go index ff89bd307f..88eb394709 100644 --- a/ibm/conns/config.go +++ b/ibm/conns/config.go @@ -29,6 +29,7 @@ import ( "github.com/IBM/go-sdk-core/v5/core" cosconfig "github.com/IBM/ibm-cos-sdk-go-config/resourceconfigurationv1" kp "github.com/IBM/keyprotect-go-client" + "github.com/IBM/logs-router-go-sdk/ibmlogsrouteropenapi30v0" cisalertsv1 "github.com/IBM/networking-go-sdk/alertsv1" cisoriginpull "github.com/IBM/networking-go-sdk/authenticatedoriginpullapiv1" cisbotanalyticsv1 "github.com/IBM/networking-go-sdk/botanalyticsv1" @@ -228,6 +229,7 @@ type ClientSession interface { ResourceManagementAPIv2() (managementv2.ResourceManagementAPIv2, error) ResourceControllerAPI() (controller.ResourceControllerAPI, error) ResourceControllerAPIV2() (controllerv2.ResourceControllerAPIV2, error) + IbmLogsRouterOpenApi30V0() (*ibmlogsrouteropenapi30v0.IbmLogsRouterOpenApi30V0, error) SoftLayerSession() *slsession.Session IBMPISession() (*ibmpisession.IBMPISession, error) UserManagementAPI() (usermanagementv2.UserManagementAPI, error) @@ -542,6 +544,10 @@ type clientSession struct { secretsManagerClient *secretsmanagerv2.SecretsManagerV2 secretsManagerClientErr error + // Logs Routing + ibmLogsRouterOpenApi30Client *ibmlogsrouteropenapi30v0.IbmLogsRouterOpenApi30V0 + ibmLogsRouterOpenApi30ClientErr error + // Schematics service options schematicsClient *schematicsv1.SchematicsV1 schematicsClientErr error @@ -1169,6 +1175,11 @@ func (session clientSession) MetricsRouterV3() (*metricsrouterv3.MetricsRouterV3 return session.metricsRouterClient, session.metricsRouterClientErr } +// Logs Router API +func (session clientSession) IbmLogsRouterOpenApi30V0() (*ibmlogsrouteropenapi30v0.IbmLogsRouterOpenApi30V0, error) { + return session.ibmLogsRouterOpenApi30Client, session.ibmLogsRouterOpenApi30ClientErr +} + func (session clientSession) ESschemaRegistrySession() (*schemaregistryv1.SchemaregistryV1, error) { return session.esSchemaRegistryClient, session.esSchemaRegistryErr } @@ -1296,6 +1307,7 @@ func (c *Config) ClientSession() (interface{}, error) { session.cdToolchainClientErr = errEmptyBluemixCredentials session.codeEngineClientErr = errEmptyBluemixCredentials session.projectClientErr = errEmptyBluemixCredentials + session.ibmLogsRouterOpenApi30ClientErr = errEmptyBluemixCredentials return session, nil } @@ -1678,6 +1690,22 @@ func (c *Config) ClientSession() (interface{}, error) { }) } + // LOGS ROUTER service + ibmLogsRouterOpenApi30ClientOptions := &ibmlogsrouteropenapi30v0.IbmLogsRouterOpenApi30V0Options{ + Authenticator: authenticator, + } + session.ibmLogsRouterOpenApi30Client, err = ibmlogsrouteropenapi30v0.NewIbmLogsRouterOpenApi30V0(ibmLogsRouterOpenApi30ClientOptions) + if err == nil { + // Enable retries for API calls + session.ibmLogsRouterOpenApi30Client.Service.EnableRetries(c.RetryCount, c.RetryDelay) + // Add custom header for analytics + session.ibmLogsRouterOpenApi30Client.SetDefaultHeaders(gohttp.Header{ + "X-Original-User-Agent": {fmt.Sprintf("terraform-provider-ibm/%s", version.Version)}, + }) + } else { + session.ibmLogsRouterOpenApi30ClientErr = fmt.Errorf("Error occurred while configuring IBM logs-router service: %q", err) + } + // ATRACKER Version 2 var atrackerClientV2URL string var atrackerURLV2Err error diff --git a/ibm/flex/structures.go b/ibm/flex/structures.go index 5f89a520a6..f4370020f9 100644 --- a/ibm/flex/structures.go +++ b/ibm/flex/structures.go @@ -1641,42 +1641,55 @@ func FlattenV2PolicyResourceTags(resource iampolicymanagementv1.V2PolicyResource return result } +func getConditionValues(v interface{}) []string { + var values []string + switch value := v.(type) { + case string: + values = append(values, value) + case []interface{}: + for _, v := range value { + values = append(values, fmt.Sprint(v)) + } + case nil: + default: + values = append(values, fmt.Sprintf("%v", value)) + } + return values +} + func FlattenRuleConditions(rule iampolicymanagementv1.V2PolicyRule) []map[string]interface{} { result := make([]map[string]interface{}, 0) if len(rule.Conditions) > 0 { - for _, c := range rule.Conditions { - var values []string - switch value := c.Value.(type) { - case string: - values = append(values, value) - case []interface{}: - for _, v := range value { - values = append(values, fmt.Sprint(v)) + for _, cIntf := range rule.Conditions { + c := cIntf.(*iampolicymanagementv1.NestedCondition) + if len(c.Conditions) > 0 { + nestedConditions := make([]map[string]interface{}, 0) + for _, nc := range c.Conditions { + values := getConditionValues(nc.Value) + nestedCondition := map[string]interface{}{ + "key": nc.Key, + "value": values, + "operator": nc.Operator, + } + nestedConditions = append(nestedConditions, nestedCondition) } - default: - values = append(values, value.(string)) - } - - condition := map[string]interface{}{ - "key": c.Key, - "value": values, - "operator": c.Operator, + condition := map[string]interface{}{ + "operator": c.Operator, + "conditions": nestedConditions, + } + result = append(result, condition) + } else { + values := getConditionValues(c.Value) + condition := map[string]interface{}{ + "key": c.Key, + "value": values, + "operator": c.Operator, + } + result = append(result, condition) } - result = append(result, condition) } } else { - var values []string - switch value := rule.Value.(type) { - case string: - values = append(values, value) - case []interface{}: - for _, v := range value { - values = append(values, fmt.Sprint(v)) - } - default: - values = append(values, value.(string)) - } - + values := getConditionValues(rule.Value) condition := map[string]interface{}{ "key": rule.Key, "value": values, @@ -3932,39 +3945,64 @@ func GenerateV2PolicyOptions(d *schema.ResourceData, meta interface{}) (iampolic return iampolicymanagementv1.CreateV2PolicyOptions{Control: policyControl, Resource: &policyResource}, nil } -func GeneratePolicyRule(d *schema.ResourceData, ruleConditions interface{}) *iampolicymanagementv1.V2PolicyRule { - conditions := []iampolicymanagementv1.RuleAttribute{} +func generatePolicyRuleCondition(c map[string]interface{}) iampolicymanagementv1.RuleAttribute { + key := c["key"].(string) + operator := c["operator"].(string) + r := iampolicymanagementv1.RuleAttribute{ + Key: &key, + Operator: &operator, + } - for _, condition := range ruleConditions.(*schema.Set).List() { - c := condition.(map[string]interface{}) - key := c["key"].(string) - operator := c["operator"].(string) - r := iampolicymanagementv1.RuleAttribute{ - Key: &key, - Operator: &operator, - } + interfaceValues := c["value"].([]interface{}) + values := make([]string, len(interfaceValues)) + for i, v := range interfaceValues { + values[i] = fmt.Sprint(v) + } - interfaceValues := c["value"].([]interface{}) - values := make([]string, len(interfaceValues)) - for i, v := range interfaceValues { - values[i] = fmt.Sprint(v) - } + if len(values) > 1 { + r.Value = &values + } else if operator == "stringExists" && values[0] == "true" { + r.Value = true + } else if operator == "stringExists" && values[0] == "false" { + r.Value = false + } else { + r.Value = &values[0] + } + return r +} - if len(values) > 1 { - r.Value = &values - } else if operator == "stringExists" && values[0] == "true" { - r.Value = true +func GeneratePolicyRule(d *schema.ResourceData, ruleConditions interface{}) *iampolicymanagementv1.V2PolicyRule { + conditions := []iampolicymanagementv1.NestedConditionIntf{} + + for _, ruleCondition := range ruleConditions.(*schema.Set).List() { + rc := ruleCondition.(map[string]interface{}) + con := rc["conditions"].([]interface{}) + if len(con) > 0 { + nestedConditions := []iampolicymanagementv1.RuleAttribute{} + for _, nc := range con { + nestedConditions = append(nestedConditions, generatePolicyRuleCondition(nc.(map[string]interface{}))) + } + nestedCondition := &iampolicymanagementv1.NestedCondition{} + nestedConditionsOperator := rc["operator"].(string) + nestedCondition.Operator = &nestedConditionsOperator + nestedCondition.Conditions = nestedConditions + conditions = append(conditions, nestedCondition) } else { - r.Value = &values[0] + ruleAttribute := generatePolicyRuleCondition(rc) + nestedCondition := &iampolicymanagementv1.NestedCondition{ + Key: ruleAttribute.Key, + Operator: ruleAttribute.Operator, + Value: ruleAttribute.Value, + } + conditions = append(conditions, nestedCondition) } - - conditions = append(conditions, r) } rule := new(iampolicymanagementv1.V2PolicyRule) if len(conditions) == 1 { - rule.Key = conditions[0].Key - rule.Operator = conditions[0].Operator - rule.Value = conditions[0].Value + ruleCondition := conditions[0].(*iampolicymanagementv1.NestedCondition) + rule.Key = ruleCondition.Key + rule.Operator = ruleCondition.Operator + rule.Value = ruleCondition.Value } else { ruleOperator := d.Get("rule_operator").(string) rule.Operator = &ruleOperator diff --git a/ibm/provider/provider.go b/ibm/provider/provider.go index 81f78432a6..aa758ebf66 100644 --- a/ibm/provider/provider.go +++ b/ibm/provider/provider.go @@ -38,6 +38,7 @@ import ( "github.com/IBM-Cloud/terraform-provider-ibm/ibm/service/iampolicy" "github.com/IBM-Cloud/terraform-provider-ibm/ibm/service/kms" "github.com/IBM-Cloud/terraform-provider-ibm/ibm/service/kubernetes" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/service/logsrouter" "github.com/IBM-Cloud/terraform-provider-ibm/ibm/service/metricsrouter" "github.com/IBM-Cloud/terraform-provider-ibm/ibm/service/power" "github.com/IBM-Cloud/terraform-provider-ibm/ibm/service/project" @@ -570,6 +571,13 @@ func Provider() *schema.Provider { "ibm_schematics_job": schematics.DataSourceIBMSchematicsJob(), "ibm_schematics_inventory": schematics.DataSourceIBMSchematicsInventory(), "ibm_schematics_resource_query": schematics.DataSourceIBMSchematicsResourceQuery(), + "ibm_schematics_policies": schematics.DataSourceIbmSchematicsPolicies(), + "ibm_schematics_policy": schematics.DataSourceIbmSchematicsPolicy(), + "ibm_schematics_agents": schematics.DataSourceIbmSchematicsAgents(), + "ibm_schematics_agent": schematics.DataSourceIbmSchematicsAgent(), + "ibm_schematics_agent_prs": schematics.DataSourceIbmSchematicsAgentPrs(), + "ibm_schematics_agent_deploy": schematics.DataSourceIbmSchematicsAgentDeploy(), + "ibm_schematics_agent_health": schematics.DataSourceIbmSchematicsAgentHealth(), // Added for Power Resources "ibm_pi_catalog_images": power.DataSourceIBMPICatalogImages(), @@ -619,6 +627,10 @@ func Provider() *schema.Provider { "ibm_pi_volume_remote_copy_relationship": power.DataSourceIBMPIVolumeRemoteCopyRelationship(), "ibm_pi_volume_onboardings": power.DataSourceIBMPIVolumeOnboardings(), "ibm_pi_volume_onboarding": power.DataSourceIBMPIVolumeOnboarding(), + "ibm_pi_workspace": power.DatasourceIBMPIWorkspace(), + "ibm_pi_workspaces": power.DatasourceIBMPIWorkspaces(), + "ibm_pi_datacenter": power.DataSourceIBMPIDatacenter(), + "ibm_pi_datacenters": power.DataSourceIBMPIDatacenters(), // Added for private dns zones @@ -732,6 +744,9 @@ func Provider() *schema.Provider { "ibm_metrics_router_targets": metricsrouter.DataSourceIBMMetricsRouterTargets(), "ibm_metrics_router_routes": metricsrouter.DataSourceIBMMetricsRouterRoutes(), + // Logs Router + "ibm_logs_router_tenant": logsrouter.DataSourceIbmLogsRouterTenant(), + // Security and Complaince Center(soon to be deprecated) "ibm_scc_account_location": scc.DataSourceIBMSccAccountLocation(), "ibm_scc_account_locations": scc.DataSourceIBMSccAccountLocations(), @@ -762,44 +777,46 @@ func Provider() *schema.Provider { "ibm_cbr_rule": contextbasedrestrictions.DataSourceIBMCbrRule(), // Added for Event Notifications - "ibm_en_source": eventnotification.DataSourceIBMEnSource(), - "ibm_en_destinations": eventnotification.DataSourceIBMEnDestinations(), - "ibm_en_topic": eventnotification.DataSourceIBMEnTopic(), - "ibm_en_topics": eventnotification.DataSourceIBMEnTopics(), - "ibm_en_subscriptions": eventnotification.DataSourceIBMEnSubscriptions(), - "ibm_en_destination_webhook": eventnotification.DataSourceIBMEnWebhookDestination(), - "ibm_en_destination_android": eventnotification.DataSourceIBMEnFCMDestination(), - "ibm_en_destination_ios": eventnotification.DataSourceIBMEnAPNSDestination(), - "ibm_en_destination_chrome": eventnotification.DataSourceIBMEnChromeDestination(), - "ibm_en_destination_firefox": eventnotification.DataSourceIBMEnFirefoxDestination(), - "ibm_en_destination_slack": eventnotification.DataSourceIBMEnSlackDestination(), - "ibm_en_subscription_sms": eventnotification.DataSourceIBMEnSMSSubscription(), - "ibm_en_subscription_email": eventnotification.DataSourceIBMEnEmailSubscription(), - "ibm_en_subscription_webhook": eventnotification.DataSourceIBMEnWebhookSubscription(), - "ibm_en_subscription_android": eventnotification.DataSourceIBMEnFCMSubscription(), - "ibm_en_subscription_ios": eventnotification.DataSourceIBMEnFCMSubscription(), - "ibm_en_subscription_chrome": eventnotification.DataSourceIBMEnFCMSubscription(), - "ibm_en_subscription_firefox": eventnotification.DataSourceIBMEnFCMSubscription(), - "ibm_en_subscription_slack": eventnotification.DataSourceIBMEnSlackSubscription(), - "ibm_en_subscription_safari": eventnotification.DataSourceIBMEnFCMSubscription(), - "ibm_en_destination_safari": eventnotification.DataSourceIBMEnSafariDestination(), - "ibm_en_destination_msteams": eventnotification.DataSourceIBMEnMSTeamsDestination(), - "ibm_en_subscription_msteams": eventnotification.DataSourceIBMEnFCMSubscription(), - "ibm_en_destination_cf": eventnotification.DataSourceIBMEnCFDestination(), - "ibm_en_subscription_cf": eventnotification.DataSourceIBMEnFCMSubscription(), - "ibm_en_destination_pagerduty": eventnotification.DataSourceIBMEnPagerDutyDestination(), - "ibm_en_subscription_pagerduty": eventnotification.DataSourceIBMEnFCMSubscription(), - "ibm_en_integration": eventnotification.DataSourceIBMEnIntegration(), - "ibm_en_integrations": eventnotification.DataSourceIBMEnIntegrations(), - "ibm_en_destination_sn": eventnotification.DataSourceIBMEnServiceNowDestination(), - "ibm_en_subscription_sn": eventnotification.DataSourceIBMEnFCMSubscription(), - "ibm_en_destination_ce": eventnotification.DataSourceIBMEnCodeEngineDestination(), - "ibm_en_subscription_ce": eventnotification.DataSourceIBMEnFCMSubscription(), - "ibm_en_destination_cos": eventnotification.DataSourceIBMEnCOSDestination(), - "ibm_en_subscription_cos": eventnotification.DataSourceIBMEnFCMSubscription(), - "ibm_en_destination_huawei": eventnotification.DataSourceIBMEnHuaweiDestination(), - "ibm_en_subscription_huawei": eventnotification.DataSourceIBMEnFCMSubscription(), - "ibm_en_sources": eventnotification.DataSourceIBMEnSources(), + "ibm_en_source": eventnotification.DataSourceIBMEnSource(), + "ibm_en_destinations": eventnotification.DataSourceIBMEnDestinations(), + "ibm_en_topic": eventnotification.DataSourceIBMEnTopic(), + "ibm_en_topics": eventnotification.DataSourceIBMEnTopics(), + "ibm_en_subscriptions": eventnotification.DataSourceIBMEnSubscriptions(), + "ibm_en_destination_webhook": eventnotification.DataSourceIBMEnWebhookDestination(), + "ibm_en_destination_android": eventnotification.DataSourceIBMEnFCMDestination(), + "ibm_en_destination_ios": eventnotification.DataSourceIBMEnAPNSDestination(), + "ibm_en_destination_chrome": eventnotification.DataSourceIBMEnChromeDestination(), + "ibm_en_destination_firefox": eventnotification.DataSourceIBMEnFirefoxDestination(), + "ibm_en_destination_slack": eventnotification.DataSourceIBMEnSlackDestination(), + "ibm_en_subscription_sms": eventnotification.DataSourceIBMEnSMSSubscription(), + "ibm_en_subscription_email": eventnotification.DataSourceIBMEnEmailSubscription(), + "ibm_en_subscription_webhook": eventnotification.DataSourceIBMEnWebhookSubscription(), + "ibm_en_subscription_android": eventnotification.DataSourceIBMEnFCMSubscription(), + "ibm_en_subscription_ios": eventnotification.DataSourceIBMEnFCMSubscription(), + "ibm_en_subscription_chrome": eventnotification.DataSourceIBMEnFCMSubscription(), + "ibm_en_subscription_firefox": eventnotification.DataSourceIBMEnFCMSubscription(), + "ibm_en_subscription_slack": eventnotification.DataSourceIBMEnSlackSubscription(), + "ibm_en_subscription_safari": eventnotification.DataSourceIBMEnFCMSubscription(), + "ibm_en_destination_safari": eventnotification.DataSourceIBMEnSafariDestination(), + "ibm_en_destination_msteams": eventnotification.DataSourceIBMEnMSTeamsDestination(), + "ibm_en_subscription_msteams": eventnotification.DataSourceIBMEnFCMSubscription(), + "ibm_en_destination_cf": eventnotification.DataSourceIBMEnCFDestination(), + "ibm_en_subscription_cf": eventnotification.DataSourceIBMEnFCMSubscription(), + "ibm_en_destination_pagerduty": eventnotification.DataSourceIBMEnPagerDutyDestination(), + "ibm_en_subscription_pagerduty": eventnotification.DataSourceIBMEnFCMSubscription(), + "ibm_en_integration": eventnotification.DataSourceIBMEnIntegration(), + "ibm_en_integrations": eventnotification.DataSourceIBMEnIntegrations(), + "ibm_en_destination_sn": eventnotification.DataSourceIBMEnServiceNowDestination(), + "ibm_en_subscription_sn": eventnotification.DataSourceIBMEnFCMSubscription(), + "ibm_en_destination_ce": eventnotification.DataSourceIBMEnCodeEngineDestination(), + "ibm_en_subscription_ce": eventnotification.DataSourceIBMEnFCMSubscription(), + "ibm_en_destination_cos": eventnotification.DataSourceIBMEnCOSDestination(), + "ibm_en_subscription_cos": eventnotification.DataSourceIBMEnFCMSubscription(), + "ibm_en_destination_huawei": eventnotification.DataSourceIBMEnHuaweiDestination(), + "ibm_en_subscription_huawei": eventnotification.DataSourceIBMEnFCMSubscription(), + "ibm_en_sources": eventnotification.DataSourceIBMEnSources(), + "ibm_en_destination_custom_email": eventnotification.DataSourceIBMEnCustomEmailDestination(), + "ibm_en_subscription_custom_email": eventnotification.DataSourceIBMEnCustomEmailSubscription(), // Added for Toolchain "ibm_cd_toolchain": cdtoolchain.DataSourceIBMCdToolchain(), @@ -835,16 +852,19 @@ func Provider() *schema.Provider { "ibm_cd_tekton_pipeline": cdtektonpipeline.DataSourceIBMCdTektonPipeline(), // Added for Code Engine - "ibm_code_engine_app": codeengine.DataSourceIbmCodeEngineApp(), - "ibm_code_engine_binding": codeengine.DataSourceIbmCodeEngineBinding(), - "ibm_code_engine_build": codeengine.DataSourceIbmCodeEngineBuild(), - "ibm_code_engine_config_map": codeengine.DataSourceIbmCodeEngineConfigMap(), - "ibm_code_engine_job": codeengine.DataSourceIbmCodeEngineJob(), - "ibm_code_engine_project": codeengine.DataSourceIbmCodeEngineProject(), - "ibm_code_engine_secret": codeengine.DataSourceIbmCodeEngineSecret(), + "ibm_code_engine_app": codeengine.DataSourceIbmCodeEngineApp(), + "ibm_code_engine_binding": codeengine.DataSourceIbmCodeEngineBinding(), + "ibm_code_engine_build": codeengine.DataSourceIbmCodeEngineBuild(), + "ibm_code_engine_config_map": codeengine.DataSourceIbmCodeEngineConfigMap(), + "ibm_code_engine_domain_mapping": codeengine.DataSourceIbmCodeEngineDomainMapping(), + "ibm_code_engine_job": codeengine.DataSourceIbmCodeEngineJob(), + "ibm_code_engine_project": codeengine.DataSourceIbmCodeEngineProject(), + "ibm_code_engine_secret": codeengine.DataSourceIbmCodeEngineSecret(), // Added for Project - "ibm_project_event_notification": project.DataSourceIbmProjectEventNotification(), + "ibm_project": project.DataSourceIbmProject(), + "ibm_project_config": project.DataSourceIbmProjectConfig(), + "ibm_project_environment": project.DataSourceIbmProjectEnvironment(), }, ResourcesMap: map[string]*schema.Resource{ @@ -1155,6 +1175,7 @@ func Provider() *schema.Provider { "ibm_pi_placement_group": power.ResourceIBMPIPlacementGroup(), "ibm_pi_spp_placement_group": power.ResourceIBMPISPPPlacementGroup(), "ibm_pi_shared_processor_pool": power.ResourceIBMPISharedProcessorPool(), + "ibm_pi_workspace": power.ResourceIBMPIWorkspace(), // Private DNS related resources "ibm_dns_zone": dnsservices.ResourceIBMPrivateDNSZone(), @@ -1207,6 +1228,11 @@ func Provider() *schema.Provider { "ibm_schematics_job": schematics.ResourceIBMSchematicsJob(), "ibm_schematics_inventory": schematics.ResourceIBMSchematicsInventory(), "ibm_schematics_resource_query": schematics.ResourceIBMSchematicsResourceQuery(), + "ibm_schematics_policy": schematics.ResourceIbmSchematicsPolicy(), + "ibm_schematics_agent": schematics.ResourceIbmSchematicsAgent(), + "ibm_schematics_agent_prs": schematics.ResourceIbmSchematicsAgentPrs(), + "ibm_schematics_agent_deploy": schematics.ResourceIbmSchematicsAgentDeploy(), + "ibm_schematics_agent_health": schematics.ResourceIbmSchematicsAgentHealth(), // Added for Secrets Manager "ibm_sm_secret_group": secretsmanager.AddInstanceFields(secretsmanager.ResourceIbmSmSecretGroup()), @@ -1254,6 +1280,9 @@ func Provider() *schema.Provider { "ibm_metrics_router_route": metricsrouter.ResourceIBMMetricsRouterRoute(), "ibm_metrics_router_settings": metricsrouter.ResourceIBMMetricsRouterSettings(), + // Logs Router + "ibm_logs_router_tenant": logsrouter.ResourceIbmLogsRouterTenant(), + // Security and Compliance Center(soon to be deprecated) "ibm_scc_account_settings": scc.ResourceIBMSccAccountSettings(), "ibm_scc_rule_attachment": scc.ResourceIBMSccRuleAttachment(), @@ -1272,40 +1301,42 @@ func Provider() *schema.Provider { "ibm_cbr_rule": contextbasedrestrictions.ResourceIBMCbrRule(), // Added for Event Notifications - "ibm_en_source": eventnotification.ResourceIBMEnSource(), - "ibm_en_topic": eventnotification.ResourceIBMEnTopic(), - "ibm_en_destination_webhook": eventnotification.ResourceIBMEnWebhookDestination(), - "ibm_en_destination_android": eventnotification.ResourceIBMEnFCMDestination(), - "ibm_en_destination_chrome": eventnotification.ResourceIBMEnChromeDestination(), - "ibm_en_destination_firefox": eventnotification.ResourceIBMEnFirefoxDestination(), - "ibm_en_destination_ios": eventnotification.ResourceIBMEnAPNSDestination(), - "ibm_en_destination_slack": eventnotification.ResourceIBMEnSlackDestination(), - "ibm_en_subscription_sms": eventnotification.ResourceIBMEnSMSSubscription(), - "ibm_en_subscription_email": eventnotification.ResourceIBMEnEmailSubscription(), - "ibm_en_subscription_webhook": eventnotification.ResourceIBMEnWebhookSubscription(), - "ibm_en_subscription_android": eventnotification.ResourceIBMEnFCMSubscription(), - "ibm_en_subscription_ios": eventnotification.ResourceIBMEnFCMSubscription(), - "ibm_en_subscription_chrome": eventnotification.ResourceIBMEnFCMSubscription(), - "ibm_en_subscription_firefox": eventnotification.ResourceIBMEnFCMSubscription(), - "ibm_en_subscription_slack": eventnotification.ResourceIBMEnSlackSubscription(), - "ibm_en_subscription_safari": eventnotification.ResourceIBMEnFCMSubscription(), - "ibm_en_destination_safari": eventnotification.ResourceIBMEnSafariDestination(), - "ibm_en_destination_msteams": eventnotification.ResourceIBMEnMSTeamsDestination(), - "ibm_en_subscription_msteams": eventnotification.ResourceIBMEnFCMSubscription(), - "ibm_en_destination_cf": eventnotification.ResourceIBMEnCFDestination(), - "ibm_en_subscription_cf": eventnotification.ResourceIBMEnFCMSubscription(), - "ibm_en_destination_pagerduty": eventnotification.ResourceIBMEnPagerDutyDestination(), - "ibm_en_subscription_pagerduty": eventnotification.ResourceIBMEnFCMSubscription(), - "ibm_en_integration": eventnotification.ResourceIBMEnIntegration(), - "ibm_en_destination_sn": eventnotification.ResourceIBMEnServiceNowDestination(), - "ibm_en_subscription_sn": eventnotification.ResourceIBMEnFCMSubscription(), - "ibm_en_destination_ce": eventnotification.ResourceIBMEnCodeEngineDestination(), - "ibm_en_subscription_ce": eventnotification.ResourceIBMEnFCMSubscription(), - "ibm_en_destination_cos": eventnotification.ResourceIBMEnCOSDestination(), - "ibm_en_subscription_cos": eventnotification.ResourceIBMEnFCMSubscription(), - "ibm_en_destination_huawei": eventnotification.ResourceIBMEnHuaweiDestination(), - "ibm_en_subscription_huawei": eventnotification.ResourceIBMEnFCMSubscription(), - "ibm_en_ibmsource": eventnotification.ResourceIBMEnIBMSource(), + "ibm_en_source": eventnotification.ResourceIBMEnSource(), + "ibm_en_topic": eventnotification.ResourceIBMEnTopic(), + "ibm_en_destination_webhook": eventnotification.ResourceIBMEnWebhookDestination(), + "ibm_en_destination_android": eventnotification.ResourceIBMEnFCMDestination(), + "ibm_en_destination_chrome": eventnotification.ResourceIBMEnChromeDestination(), + "ibm_en_destination_firefox": eventnotification.ResourceIBMEnFirefoxDestination(), + "ibm_en_destination_ios": eventnotification.ResourceIBMEnAPNSDestination(), + "ibm_en_destination_slack": eventnotification.ResourceIBMEnSlackDestination(), + "ibm_en_subscription_sms": eventnotification.ResourceIBMEnSMSSubscription(), + "ibm_en_subscription_email": eventnotification.ResourceIBMEnEmailSubscription(), + "ibm_en_subscription_webhook": eventnotification.ResourceIBMEnWebhookSubscription(), + "ibm_en_subscription_android": eventnotification.ResourceIBMEnFCMSubscription(), + "ibm_en_subscription_ios": eventnotification.ResourceIBMEnFCMSubscription(), + "ibm_en_subscription_chrome": eventnotification.ResourceIBMEnFCMSubscription(), + "ibm_en_subscription_firefox": eventnotification.ResourceIBMEnFCMSubscription(), + "ibm_en_subscription_slack": eventnotification.ResourceIBMEnSlackSubscription(), + "ibm_en_subscription_safari": eventnotification.ResourceIBMEnFCMSubscription(), + "ibm_en_destination_safari": eventnotification.ResourceIBMEnSafariDestination(), + "ibm_en_destination_msteams": eventnotification.ResourceIBMEnMSTeamsDestination(), + "ibm_en_subscription_msteams": eventnotification.ResourceIBMEnFCMSubscription(), + "ibm_en_destination_cf": eventnotification.ResourceIBMEnCFDestination(), + "ibm_en_subscription_cf": eventnotification.ResourceIBMEnFCMSubscription(), + "ibm_en_destination_pagerduty": eventnotification.ResourceIBMEnPagerDutyDestination(), + "ibm_en_subscription_pagerduty": eventnotification.ResourceIBMEnFCMSubscription(), + "ibm_en_integration": eventnotification.ResourceIBMEnIntegration(), + "ibm_en_destination_sn": eventnotification.ResourceIBMEnServiceNowDestination(), + "ibm_en_subscription_sn": eventnotification.ResourceIBMEnFCMSubscription(), + "ibm_en_destination_ce": eventnotification.ResourceIBMEnCodeEngineDestination(), + "ibm_en_subscription_ce": eventnotification.ResourceIBMEnFCMSubscription(), + "ibm_en_destination_cos": eventnotification.ResourceIBMEnCOSDestination(), + "ibm_en_subscription_cos": eventnotification.ResourceIBMEnFCMSubscription(), + "ibm_en_destination_huawei": eventnotification.ResourceIBMEnHuaweiDestination(), + "ibm_en_subscription_huawei": eventnotification.ResourceIBMEnFCMSubscription(), + "ibm_en_ibmsource": eventnotification.ResourceIBMEnIBMSource(), + "ibm_en_destination_custom_email": eventnotification.ResourceIBMEnCustomEmailDestination(), + "ibm_en_subscription_custom_email": eventnotification.ResourceIBMEnCustomEmailSubscription(), // Added for Toolchain "ibm_cd_toolchain": cdtoolchain.ResourceIBMCdToolchain(), @@ -1340,16 +1371,19 @@ func Provider() *schema.Provider { "ibm_cd_tekton_pipeline": cdtektonpipeline.ResourceIBMCdTektonPipeline(), // Added for Code Engine - "ibm_code_engine_app": codeengine.ResourceIbmCodeEngineApp(), - "ibm_code_engine_binding": codeengine.ResourceIbmCodeEngineBinding(), - "ibm_code_engine_build": codeengine.ResourceIbmCodeEngineBuild(), - "ibm_code_engine_config_map": codeengine.ResourceIbmCodeEngineConfigMap(), - "ibm_code_engine_job": codeengine.ResourceIbmCodeEngineJob(), - "ibm_code_engine_project": codeengine.ResourceIbmCodeEngineProject(), - "ibm_code_engine_secret": codeengine.ResourceIbmCodeEngineSecret(), + "ibm_code_engine_app": codeengine.ResourceIbmCodeEngineApp(), + "ibm_code_engine_binding": codeengine.ResourceIbmCodeEngineBinding(), + "ibm_code_engine_build": codeengine.ResourceIbmCodeEngineBuild(), + "ibm_code_engine_config_map": codeengine.ResourceIbmCodeEngineConfigMap(), + "ibm_code_engine_domain_mapping": codeengine.ResourceIbmCodeEngineDomainMapping(), + "ibm_code_engine_job": codeengine.ResourceIbmCodeEngineJob(), + "ibm_code_engine_project": codeengine.ResourceIbmCodeEngineProject(), + "ibm_code_engine_secret": codeengine.ResourceIbmCodeEngineSecret(), // Added for Project - "ibm_project_instance": project.ResourceIbmProjectInstance(), + "ibm_project": project.ResourceIbmProject(), + "ibm_project_config": project.ResourceIbmProjectConfig(), + "ibm_project_environment": project.ResourceIbmProjectEnvironment(), }, ConfigureFunc: providerConfigure, @@ -1499,6 +1533,7 @@ func Validator() validate.ValidatorDict { "ibm_schematics_workspace": schematics.ResourceIBMSchematicsWorkspaceValidator(), "ibm_schematics_inventory": schematics.ResourceIBMSchematicsInventoryValidator(), "ibm_schematics_resource_query": schematics.ResourceIBMSchematicsResourceQueryValidator(), + "ibm_schematics_policy": schematics.ResourceIbmSchematicsPolicyValidator(), "ibm_resource_instance": resourcecontroller.ResourceIBMResourceInstanceValidator(), "ibm_resource_key": resourcecontroller.ResourceIBMResourceKeyValidator(), "ibm_is_virtual_endpoint_gateway": vpc.ResourceIBMISEndpointGatewayValidator(), @@ -1512,6 +1547,7 @@ func Validator() validate.ValidatorDict { "ibm_metrics_router_target": metricsrouter.ResourceIBMMetricsRouterTargetValidator(), "ibm_metrics_router_route": metricsrouter.ResourceIBMMetricsRouterRouteValidator(), "ibm_metrics_router_settings": metricsrouter.ResourceIBMMetricsRouterSettingsValidator(), + "ibm_logs_router_tenant": logsrouter.ResourceIbmLogsRouterTenantValidator(), "ibm_satellite_endpoint": satellite.ResourceIBMSatelliteEndpointValidator(), "ibm_cbr_zone": contextbasedrestrictions.ResourceIBMCbrZoneValidator(), "ibm_cbr_rule": contextbasedrestrictions.ResourceIBMCbrRuleValidator(), @@ -1595,16 +1631,19 @@ func Validator() validate.ValidatorDict { "ibm_sm_public_certificate_configuration_dns_classic_infrastructure": secretsmanager.ResourceIbmSmPublicCertificateConfigurationDNSClassicInfrastructureValidator(), // // Added for Code Engine - "ibm_code_engine_app": codeengine.ResourceIbmCodeEngineAppValidator(), - "ibm_code_engine_binding": codeengine.ResourceIbmCodeEngineBindingValidator(), - "ibm_code_engine_build": codeengine.ResourceIbmCodeEngineBuildValidator(), - "ibm_code_engine_config_map": codeengine.ResourceIbmCodeEngineConfigMapValidator(), - "ibm_code_engine_job": codeengine.ResourceIbmCodeEngineJobValidator(), - "ibm_code_engine_project": codeengine.ResourceIbmCodeEngineProjectValidator(), - "ibm_code_engine_secret": codeengine.ResourceIbmCodeEngineSecretValidator(), + "ibm_code_engine_app": codeengine.ResourceIbmCodeEngineAppValidator(), + "ibm_code_engine_binding": codeengine.ResourceIbmCodeEngineBindingValidator(), + "ibm_code_engine_build": codeengine.ResourceIbmCodeEngineBuildValidator(), + "ibm_code_engine_config_map": codeengine.ResourceIbmCodeEngineConfigMapValidator(), + "ibm_code_engine_domain_mapping": codeengine.ResourceIbmCodeEngineDomainMappingValidator(), + "ibm_code_engine_job": codeengine.ResourceIbmCodeEngineJobValidator(), + "ibm_code_engine_project": codeengine.ResourceIbmCodeEngineProjectValidator(), + "ibm_code_engine_secret": codeengine.ResourceIbmCodeEngineSecretValidator(), // Added for Project - "ibm_project_instance": project.ResourceIbmProjectInstanceValidator(), + "ibm_project": project.ResourceIbmProjectValidator(), + "ibm_project_config": project.ResourceIbmProjectConfigValidator(), + "ibm_project_environment": project.ResourceIbmProjectEnvironmentValidator(), }, DataSourceValidatorDictionary: map[string]*validate.ResourceValidator{ "ibm_is_subnet": vpc.DataSourceIBMISSubnetValidator(), diff --git a/ibm/service/cdtoolchain/data_source_ibm_cd_toolchain_tool_securitycompliance.go b/ibm/service/cdtoolchain/data_source_ibm_cd_toolchain_tool_securitycompliance.go index 11cf10dc7d..143fe95bb7 100644 --- a/ibm/service/cdtoolchain/data_source_ibm_cd_toolchain_tool_securitycompliance.go +++ b/ibm/service/cdtoolchain/data_source_ibm_cd_toolchain_tool_securitycompliance.go @@ -96,31 +96,6 @@ func DataSourceIBMCdToolchainToolSecuritycompliance() *schema.Resource { Computed: true, Description: "The kind of pipeline evidence to be displayed in Security and Compliance Center for this toolchain. The values are; `cd` which will use evidence generated by a Continuous Deployment pipeline, or `cc` which will use evidence generated by a Continuous Compliance pipeline.", }, - "trigger_scan": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Deprecated: "This argument is deprecated and may be removed in a future release", - Description: "Set to `enabled` to indicate that a DevSecOps pipeline task should trigger a Security and Compliance Center run of a Hybrid cloud validation scan. Note, each scan may incur charges. When enabled, other parameters become relevant that are needed to trigger that scan; `api_key`, `scope`, `profile`. Hybrid cloud scans are deprecated and are planned to be removed. This option will stop working at that time. For more information see the [Security and Compliance Center Release Notes](https://cloud.ibm.com/docs/security-compliance?topic=security-compliance-release-notes#security-compliance-march312023).", - }, - "api_key": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Sensitive: true, - Deprecated: "This argument is deprecated and may be removed in a future release", - Description: "The IBM Cloud API key used to access the Security and Compliance Center API. This parameter is only relevant when the `trigger_scan` parameter is `enabled`. For information about the deprecation see the `trigger_scan` parameter. You can use a toolchain secret reference for this parameter. For more information, see [Protecting your sensitive data in Continuous Delivery](https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-cd_data_security#cd_secure_credentials).", - }, - "scope": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Deprecated: "This argument is deprecated and may be removed in a future release", - Description: "The name of a Security and Compliance Center scope, which has previously been created in that service. When the `trigger_scan` parameter is set to `enabled`, then the Validation scan will scan all the resources in that scope. Select a scope that contains this toolchain, so that the scan will find the evidence that has been recently updated by the DevSecOps pipeline-run. This parameter is only relevant when the `trigger_scan` parameter is `enabled`. For information about the deprecation see the `trigger_scan` parameter.", - }, - "profile": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Deprecated: "This argument is deprecated and may be removed in a future release", - Description: "The name of a Security and Compliance Center, Hybrid cloud profile. Usually, use the predefined profile \"IBM Cloud Security Best Practices v1.0.0\", which contains the DevSecOps toolchain goals. Or use a user-authored customized profile that has been configured to contain those goals. When the `trigger_scan` parameter is set to `enabled`, then the Validation scan will use the controls and goals in the configured profile. If configured with a profile that does not check the DevSecOps toolchain goals, it might incorrectly indicate that the toolchain status is passed even though some of the DevSecOps scans had actually failed. This parameter is only relevant when the `trigger_scan` parameter is `enabled`. For information about the deprecation see the `trigger_scan` parameter.", - }, "use_profile_attachment": &schema.Schema{ Type: schema.TypeString, Computed: true, @@ -140,7 +115,7 @@ func DataSourceIBMCdToolchainToolSecuritycompliance() *schema.Resource { "profile_name": &schema.Schema{ Type: schema.TypeString, Computed: true, - Description: "The name of a Security and Compliance Center profile. Usually, use one of the predefined profiles \"IBM Cloud Security Best Practices\" or \"IBM Cloud for Financial Services\", which contain the DevSecOps Toolchain rules. Or use a user-authored customized profile that has been configured to contain those rules. This parameter is only relevant when the `use_profile_attachment` parameter is `enabled`.", + Description: "The name of a Security and Compliance Center profile. Usually, use the \"IBM Cloud Framework for Financial Services\" predefined profile, which contains the DevSecOps Toolchain rules. Or use a user-authored customized profile that has been configured to contain those rules. This parameter is only relevant when the `use_profile_attachment` parameter is `enabled`.", }, "profile_version": &schema.Schema{ Type: schema.TypeString, @@ -232,7 +207,6 @@ func dataSourceIBMCdToolchainToolSecuritycomplianceRead(context context.Context, if toolchainTool.Parameters != nil { remapFields := map[string]string{ "evidence_repo_url": "evidence_repo_name", - "api_key": "api-key", } modelMap := GetParametersFromRead(toolchainTool.Parameters, DataSourceIBMCdToolchainToolSecuritycompliance(), remapFields) parameters = append(parameters, modelMap) diff --git a/ibm/service/cdtoolchain/data_source_ibm_cd_toolchain_tool_securitycompliance_test.go b/ibm/service/cdtoolchain/data_source_ibm_cd_toolchain_tool_securitycompliance_test.go index 2f1d8428b3..280fa471cb 100644 --- a/ibm/service/cdtoolchain/data_source_ibm_cd_toolchain_tool_securitycompliance_test.go +++ b/ibm/service/cdtoolchain/data_source_ibm_cd_toolchain_tool_securitycompliance_test.go @@ -87,10 +87,6 @@ func testAccCheckIBMCdToolchainToolSecuritycomplianceDataSourceConfigBasic(tcNam parameters { name = "compliance" evidence_namespace = "cd" - trigger_scan = "disabled" - api_key = "api_key" - scope = "my-scope" - profile = "IBM Cloud Security Best Practices v1.0.0" evidence_repo_url = "https://github.example.com//compliance-evidence-" } } @@ -118,10 +114,6 @@ func testAccCheckIBMCdToolchainToolSecuritycomplianceDataSourceConfig(tcName str parameters { name = "compliance" evidence_namespace = "cd" - trigger_scan = "disabled" - api_key = "api_key" - scope = "my-scope" - profile = "IBM Cloud Security Best Practices v1.0.0" evidence_repo_url = "https://github.example.com//compliance-evidence-" } name = "%s" diff --git a/ibm/service/cdtoolchain/resource_ibm_cd_toolchain_tool_securitycompliance.go b/ibm/service/cdtoolchain/resource_ibm_cd_toolchain_tool_securitycompliance.go index 1da7eaadfe..be80157483 100644 --- a/ibm/service/cdtoolchain/resource_ibm_cd_toolchain_tool_securitycompliance.go +++ b/ibm/service/cdtoolchain/resource_ibm_cd_toolchain_tool_securitycompliance.go @@ -56,35 +56,9 @@ func ResourceIBMCdToolchainToolSecuritycompliance() *schema.Resource { Description: "The name for this tool integration, shown on the toolchain page.", }, "evidence_namespace": &schema.Schema{ - Type: schema.TypeString, - Required: true, - Description: "The kind of pipeline evidence to be displayed in Security and Compliance Center for this toolchain. The values are; `cd` which will use evidence generated by a Continuous Deployment pipeline, or `cc` which will use evidence generated by a Continuous Compliance pipeline.", - }, - "trigger_scan": &schema.Schema{ - Type: schema.TypeString, - Optional: true, - Deprecated: "This argument is deprecated and may be removed in a future release", - Description: "Set to `enabled` to indicate that a DevSecOps pipeline task should trigger a Security and Compliance Center run of a Hybrid cloud validation scan. Note, each scan may incur charges. When enabled, other parameters become relevant that are needed to trigger that scan; `api_key`, `scope`, `profile`. Hybrid cloud scans are deprecated and are planned to be removed. This option will stop working at that time. For more information see the [Security and Compliance Center Release Notes](https://cloud.ibm.com/docs/security-compliance?topic=security-compliance-release-notes#security-compliance-march312023).", - }, - "api_key": &schema.Schema{ - Type: schema.TypeString, - Optional: true, - DiffSuppressFunc: flex.SuppressHashedRawSecret, - Sensitive: true, - Deprecated: "This argument is deprecated and may be removed in a future release", - Description: "The IBM Cloud API key used to access the Security and Compliance Center API. This parameter is only relevant when the `trigger_scan` parameter is `enabled`. For information about the deprecation see the `trigger_scan` parameter. You can use a toolchain secret reference for this parameter. For more information, see [Protecting your sensitive data in Continuous Delivery](https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-cd_data_security#cd_secure_credentials).", - }, - "scope": &schema.Schema{ Type: schema.TypeString, Optional: true, - Deprecated: "This argument is deprecated and may be removed in a future release", - Description: "The name of a Security and Compliance Center scope, which has previously been created in that service. When the `trigger_scan` parameter is set to `enabled`, then the Validation scan will scan all the resources in that scope. Select a scope that contains this toolchain, so that the scan will find the evidence that has been recently updated by the DevSecOps pipeline-run. This parameter is only relevant when the `trigger_scan` parameter is `enabled`. For information about the deprecation see the `trigger_scan` parameter.", - }, - "profile": &schema.Schema{ - Type: schema.TypeString, - Optional: true, - Deprecated: "This argument is deprecated and may be removed in a future release", - Description: "The name of a Security and Compliance Center, Hybrid cloud profile. Usually, use the predefined profile \"IBM Cloud Security Best Practices v1.0.0\", which contains the DevSecOps toolchain goals. Or use a user-authored customized profile that has been configured to contain those goals. When the `trigger_scan` parameter is set to `enabled`, then the Validation scan will use the controls and goals in the configured profile. If configured with a profile that does not check the DevSecOps toolchain goals, it might incorrectly indicate that the toolchain status is passed even though some of the DevSecOps scans had actually failed. This parameter is only relevant when the `trigger_scan` parameter is `enabled`. For information about the deprecation see the `trigger_scan` parameter.", + Description: "The kind of pipeline evidence to be displayed in Security and Compliance Center for this toolchain. The values are; `cd` which will use evidence generated by a Continuous Deployment pipeline, or `cc` which will use evidence generated by a Continuous Compliance pipeline.", }, "use_profile_attachment": &schema.Schema{ Type: schema.TypeString, @@ -106,7 +80,7 @@ func ResourceIBMCdToolchainToolSecuritycompliance() *schema.Resource { "profile_name": &schema.Schema{ Type: schema.TypeString, Optional: true, - Description: "The name of a Security and Compliance Center profile. Usually, use one of the predefined profiles \"IBM Cloud Security Best Practices\" or \"IBM Cloud for Financial Services\", which contain the DevSecOps Toolchain rules. Or use a user-authored customized profile that has been configured to contain those rules. This parameter is only relevant when the `use_profile_attachment` parameter is `enabled`.", + Description: "The name of a Security and Compliance Center profile. Usually, use the \"IBM Cloud Framework for Financial Services\" predefined profile, which contains the DevSecOps Toolchain rules. Or use a user-authored customized profile that has been configured to contain those rules. This parameter is only relevant when the `use_profile_attachment` parameter is `enabled`.", }, "profile_version": &schema.Schema{ Type: schema.TypeString, @@ -223,7 +197,6 @@ func resourceIBMCdToolchainToolSecuritycomplianceCreate(context context.Context, createToolOptions.SetToolTypeID("security_compliance") remapFields := map[string]string{ "evidence_repo_url": "evidence_repo_name", - "api_key": "api-key", } parametersModel := GetParametersForCreate(d, ResourceIBMCdToolchainToolSecuritycompliance(), remapFields) createToolOptions.SetParameters(parametersModel) @@ -292,7 +265,6 @@ func resourceIBMCdToolchainToolSecuritycomplianceRead(context context.Context, d } remapFields := map[string]string{ "evidence_repo_url": "evidence_repo_name", - "api_key": "api-key", } parametersMap := GetParametersFromRead(toolchainTool.Parameters, ResourceIBMCdToolchainToolSecuritycompliance(), remapFields) if err = d.Set("parameters", []map[string]interface{}{parametersMap}); err != nil { @@ -361,7 +333,6 @@ func resourceIBMCdToolchainToolSecuritycomplianceUpdate(context context.Context, if d.HasChange("parameters") { remapFields := map[string]string{ "evidence_repo_url": "evidence_repo_name", - "api_key": "api-key", } parameters := GetParametersForUpdate(d, ResourceIBMCdToolchainToolSecuritycompliance(), remapFields) patchVals.Parameters = parameters diff --git a/ibm/service/cdtoolchain/resource_ibm_cd_toolchain_tool_securitycompliance_test.go b/ibm/service/cdtoolchain/resource_ibm_cd_toolchain_tool_securitycompliance_test.go index 59e4162c65..a2ed43f81b 100644 --- a/ibm/service/cdtoolchain/resource_ibm_cd_toolchain_tool_securitycompliance_test.go +++ b/ibm/service/cdtoolchain/resource_ibm_cd_toolchain_tool_securitycompliance_test.go @@ -90,10 +90,6 @@ func testAccCheckIBMCdToolchainToolSecuritycomplianceConfigBasic(tcName string, parameters { name = "compliance" evidence_namespace = "cd" - trigger_scan = "disabled" - api_key = "api_key" - scope = "my-scope" - profile = "IBM Cloud Security Best Practices v1.0.0" evidence_repo_url = "https://github.example.com//compliance-evidence-" } } @@ -116,10 +112,6 @@ func testAccCheckIBMCdToolchainToolSecuritycomplianceConfig(tcName string, rgNam parameters { name = "compliance" evidence_namespace = "cd" - trigger_scan = "disabled" - api_key = "api_key" - scope = "my-scope" - profile = "IBM Cloud Security Best Practices v1.0.0" evidence_repo_url = "https://github.example.com//compliance-evidence-" } name = "%s" diff --git a/ibm/service/cis/resource_ibm_cis_domain_settings.go b/ibm/service/cis/resource_ibm_cis_domain_settings.go index 5a83a01ae0..47bb6046a7 100644 --- a/ibm/service/cis/resource_ibm_cis_domain_settings.go +++ b/ibm/service/cis/resource_ibm_cis_domain_settings.go @@ -127,7 +127,6 @@ func ResourceIBMCISSettings() *schema.Resource { ValidateFunc: validate.InvokeValidator( ibmCISDomainSettings, cisDomainSettingsTLSVersionValidatorID), - Default: "1.1", }, cisDomainSettingsCNAMEFlattening: { Type: schema.TypeString, diff --git a/ibm/service/cis/resource_ibm_cis_tls_settings.go b/ibm/service/cis/resource_ibm_cis_tls_settings.go index d6552318bc..76fab72351 100644 --- a/ibm/service/cis/resource_ibm_cis_tls_settings.go +++ b/ibm/service/cis/resource_ibm_cis_tls_settings.go @@ -56,7 +56,6 @@ func ResourceIBMCISTLSSettings() *schema.Resource { Description: "Minimum version of TLS required", Optional: true, ValidateFunc: validate.InvokeValidator(ibmCISTLSSettings, cisTLSSettingsMinTLSVersion), - Default: "1.1", }, }, Create: resourceCISTLSSettingsUpdate, diff --git a/ibm/service/codeengine/README.md b/ibm/service/codeengine/README.md index ba10429863..e4283df92a 100644 --- a/ibm/service/codeengine/README.md +++ b/ibm/service/codeengine/README.md @@ -8,4 +8,4 @@ This area is primarily for IBM provider contributors and maintainers. For inform * IBM Provider Docs: [Home](https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs) * IBM Provider Docs: [One of the resources](https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/resources/code_engine_app) * IBM API Docs: [IBM API Docs for ]() -* IBM SDK: [IBM SDK for ](https://github.com/IBM/appconfiguration-go-admin-sdk/tree/master/codeenginev2) +* IBM SDK: [IBM SDK for ](https://github.com/IBM/code-engine-go-sdk/tree/main/codeenginev2) diff --git a/ibm/service/codeengine/data_source_ibm_code_engine_domain_mapping.go b/ibm/service/codeengine/data_source_ibm_code_engine_domain_mapping.go new file mode 100644 index 0000000000..af313eb1fd --- /dev/null +++ b/ibm/service/codeengine/data_source_ibm_code_engine_domain_mapping.go @@ -0,0 +1,219 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package codeengine + +import ( + "context" + "fmt" + "log" + + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM/code-engine-go-sdk/codeenginev2" +) + +func DataSourceIbmCodeEngineDomainMapping() *schema.Resource { + return &schema.Resource{ + ReadContext: dataSourceIbmCodeEngineDomainMappingRead, + + Schema: map[string]*schema.Schema{ + "project_id": &schema.Schema{ + Type: schema.TypeString, + Required: true, + Description: "The ID of the project.", + }, + "name": &schema.Schema{ + Type: schema.TypeString, + Required: true, + Description: "The name of your domain mapping.", + }, + "cname_target": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Exposes the value of the CNAME record that needs to be configured in the DNS settings of the domain, to route traffic properly to the target Code Engine region.", + }, + "component": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "A reference to another component.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The name of the referenced component.", + }, + "resource_type": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The type of the referenced resource.", + }, + }, + }, + }, + "created_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The timestamp when the resource was created.", + }, + "domain_mapping_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The identifier of the resource.", + }, + "entity_tag": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The version of the domain mapping instance, which is used to achieve optimistic locking.", + }, + "href": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "When you provision a new domain mapping, a URL is created identifying the location of the instance.", + }, + "resource_type": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The type of the CE Resource.", + }, + "status": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The current status of the domain mapping.", + }, + "status_details": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The detailed status of the domain mapping.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "reason": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Optional information to provide more context in case of a 'failed' or 'warning' status.", + }, + }, + }, + }, + "tls_secret": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The name of the TLS secret that holds the certificate and private key of this domain mapping.", + }, + "user_managed": &schema.Schema{ + Type: schema.TypeBool, + Computed: true, + Description: "Exposes whether the domain mapping is managed by the user or by Code Engine.", + }, + "visibility": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Exposes whether the domain mapping is reachable through the public internet, or private IBM network, or only through other components within the same Code Engine project.", + }, + }, + } +} + +func dataSourceIbmCodeEngineDomainMappingRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + codeEngineClient, err := meta.(conns.ClientSession).CodeEngineV2() + if err != nil { + return diag.FromErr(err) + } + + getDomainMappingOptions := &codeenginev2.GetDomainMappingOptions{} + + getDomainMappingOptions.SetProjectID(d.Get("project_id").(string)) + getDomainMappingOptions.SetName(d.Get("name").(string)) + + domainMapping, response, err := codeEngineClient.GetDomainMappingWithContext(context, getDomainMappingOptions) + if err != nil { + log.Printf("[DEBUG] GetDomainMappingWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("GetDomainMappingWithContext failed %s\n%s", err, response)) + } + + d.SetId(fmt.Sprintf("%s/%s", *getDomainMappingOptions.ProjectID, *getDomainMappingOptions.Name)) + + if err = d.Set("cname_target", domainMapping.CnameTarget); err != nil { + return diag.FromErr(fmt.Errorf("Error setting cname_target: %s", err)) + } + + component := []map[string]interface{}{} + if domainMapping.Component != nil { + modelMap, err := dataSourceIbmCodeEngineDomainMappingComponentRefToMap(domainMapping.Component) + if err != nil { + return diag.FromErr(err) + } + component = append(component, modelMap) + } + if err = d.Set("component", component); err != nil { + return diag.FromErr(fmt.Errorf("Error setting component %s", err)) + } + + if err = d.Set("created_at", domainMapping.CreatedAt); err != nil { + return diag.FromErr(fmt.Errorf("Error setting created_at: %s", err)) + } + + if err = d.Set("entity_tag", domainMapping.EntityTag); err != nil { + return diag.FromErr(fmt.Errorf("Error setting entity_tag: %s", err)) + } + + if err = d.Set("href", domainMapping.Href); err != nil { + return diag.FromErr(fmt.Errorf("Error setting href: %s", err)) + } + + if err = d.Set("domain_mapping_id", domainMapping.ID); err != nil { + return diag.FromErr(fmt.Errorf("Error setting domain_mapping_id: %s", err)) + } + + if err = d.Set("resource_type", domainMapping.ResourceType); err != nil { + return diag.FromErr(fmt.Errorf("Error setting resource_type: %s", err)) + } + + if err = d.Set("status", domainMapping.Status); err != nil { + return diag.FromErr(fmt.Errorf("Error setting status: %s", err)) + } + + statusDetails := []map[string]interface{}{} + if domainMapping.StatusDetails != nil { + modelMap, err := dataSourceIbmCodeEngineDomainMappingDomainMappingStatusToMap(domainMapping.StatusDetails) + if err != nil { + return diag.FromErr(err) + } + statusDetails = append(statusDetails, modelMap) + } + if err = d.Set("status_details", statusDetails); err != nil { + return diag.FromErr(fmt.Errorf("Error setting status_details %s", err)) + } + + if err = d.Set("tls_secret", domainMapping.TlsSecret); err != nil { + return diag.FromErr(fmt.Errorf("Error setting tls_secret: %s", err)) + } + + if err = d.Set("user_managed", domainMapping.UserManaged); err != nil { + return diag.FromErr(fmt.Errorf("Error setting user_managed: %s", err)) + } + + if err = d.Set("visibility", domainMapping.Visibility); err != nil { + return diag.FromErr(fmt.Errorf("Error setting visibility: %s", err)) + } + + return nil +} + +func dataSourceIbmCodeEngineDomainMappingComponentRefToMap(model *codeenginev2.ComponentRef) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + modelMap["name"] = model.Name + modelMap["resource_type"] = model.ResourceType + return modelMap, nil +} + +func dataSourceIbmCodeEngineDomainMappingDomainMappingStatusToMap(model *codeenginev2.DomainMappingStatus) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.Reason != nil { + modelMap["reason"] = model.Reason + } + return modelMap, nil +} diff --git a/ibm/service/codeengine/data_source_ibm_code_engine_domain_mapping_test.go b/ibm/service/codeengine/data_source_ibm_code_engine_domain_mapping_test.go new file mode 100644 index 0000000000..9a852e3f14 --- /dev/null +++ b/ibm/service/codeengine/data_source_ibm_code_engine_domain_mapping_test.go @@ -0,0 +1,107 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package codeengine_test + +import ( + "fmt" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" +) + +func TestAccIbmCodeEngineDomainMappingDataSourceBasic(t *testing.T) { + appName := fmt.Sprintf("tf-app-domain-mapping-%d", acctest.RandIntRange(10, 1000)) + secretName := fmt.Sprintf("tf-secret-domain-mapping-%d", acctest.RandIntRange(10, 1000)) + + projectID := acc.CeProjectId + domainMappingName := acc.CeDomainMappingName + domainMappingTLSKey := decodeBase64EnvVar(acc.CeTLSKey, CeTlsKey) + domainMappingTLSCert := decodeBase64EnvVar(acc.CeTLSCert, CeTlsCert) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheckCodeEngine(t) }, + Providers: acc.TestAccProviders, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmCodeEngineDomainMappingDataSourceConfigBasic(projectID, appName, domainMappingTLSKey, domainMappingTLSCert, secretName, domainMappingName), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("data.ibm_code_engine_domain_mapping.code_engine_domain_mapping_instance", "id"), + resource.TestCheckResourceAttrSet("data.ibm_code_engine_domain_mapping.code_engine_domain_mapping_instance", "href"), + resource.TestCheckResourceAttrSet("data.ibm_code_engine_domain_mapping.code_engine_domain_mapping_instance", "status"), + resource.TestCheckResourceAttrSet("data.ibm_code_engine_domain_mapping.code_engine_domain_mapping_instance", "cname_target"), + resource.TestCheckResourceAttrSet("data.ibm_code_engine_domain_mapping.code_engine_domain_mapping_instance", "user_managed"), + resource.TestCheckResourceAttrSet("data.ibm_code_engine_domain_mapping.code_engine_domain_mapping_instance", "visibility"), + resource.TestCheckResourceAttr("data.ibm_code_engine_domain_mapping.code_engine_domain_mapping_instance", "project_id", projectID), + resource.TestCheckResourceAttr("data.ibm_code_engine_domain_mapping.code_engine_domain_mapping_instance", "name", domainMappingName), + resource.TestCheckResourceAttr("data.ibm_code_engine_domain_mapping.code_engine_domain_mapping_instance", "resource_type", "domain_mapping_v2"), + resource.TestCheckResourceAttr("data.ibm_code_engine_domain_mapping.code_engine_domain_mapping_instance", "component.0.resource_type", "app_v2"), + resource.TestCheckResourceAttr("data.ibm_code_engine_domain_mapping.code_engine_domain_mapping_instance", "component.0.name", appName), + resource.TestCheckResourceAttr("data.ibm_code_engine_domain_mapping.code_engine_domain_mapping_instance", "tls_secret", secretName), + ), + }, + }, + }) +} + +func testAccCheckIbmCodeEngineDomainMappingDataSourceConfigBasic(projectID string, appName string, tlsKey string, tslCert string, secretName string, domainMappingName string) string { + return fmt.Sprintf(` + data "ibm_code_engine_project" "code_engine_project_instance" { + project_id = "%s" + } + + resource "ibm_code_engine_app" "code_engine_app_instance" { + project_id = data.ibm_code_engine_project.code_engine_project_instance.project_id + image_reference = "icr.io/codeengine/helloworld" + name = "%s" + + lifecycle { + ignore_changes = [ + run_env_variables + ] + } + } + + variable "tls_secret_data" { + type = map(string) + default = { + "tls_key" = < 0 before scaling %s", groupId, resourceName) - } - if value < resource.Minimum/nodeCount || value > resource.Maximum/nodeCount || value%(resource.StepSize/nodeCount) != 0 { - if !(value == 0 && resource.IsOptional) { - return fmt.Errorf("%s group %s must be >= %d and <= %d in increments of %d", groupId, resourceName, resource.Minimum/nodeCount, resource.Maximum/nodeCount, resource.StepSize/nodeCount) - } - } - if value != resource.Allocation/nodeCount && !resource.IsAdjustable { - return fmt.Errorf("%s can not change %s value after create", groupId, resourceName) - } - if value < resource.Allocation/nodeCount && !resource.CanScaleDown { - return fmt.Errorf("can not scale %s group %s below %d to %d", groupId, resourceName, resource.Allocation/nodeCount, value) - } - return nil -} - -func checkGroupValue(name string, limits GroupResource, divider int, diff *schema.ResourceDiff) error { - if diff.HasChange(name) { - oldSetting, newSetting := diff.GetChange(name) - old := oldSetting.(int) - new := newSetting.(int) - - if new < limits.Minimum/divider || new > limits.Maximum/divider || new%(limits.StepSize/divider) != 0 { - if !(new == 0 && limits.IsOptional) { - return fmt.Errorf("%s must be >= %d and <= %d in increments of %d", name, limits.Minimum/divider, limits.Maximum/divider/divider, limits.StepSize/divider) - } - } - if old != new && !limits.IsAdjustable { - return fmt.Errorf("%s can not change value after create", name) - } - if new < old && !limits.CanScaleDown { - return fmt.Errorf("%s can not scale down from %d to %d", name, old, new) - } - return nil - } - return nil -} - type CountLimit struct { Units string AllocationCount int @@ -1110,45 +1007,6 @@ type CountLimit struct { CanScaleDown bool } -func checkCountValue(name string, limits CountLimit, divider int, diff *schema.ResourceDiff) error { - groupLimit := GroupResource{ - Units: limits.Units, - Allocation: limits.AllocationCount, - Minimum: limits.MinimumCount, - Maximum: limits.MaximumCount, - StepSize: limits.StepSizeCount, - IsAdjustable: limits.IsAdjustable, - IsOptional: limits.IsOptional, - CanScaleDown: limits.CanScaleDown, - } - return checkGroupValue(name, groupLimit, divider, diff) -} - -type MbLimit struct { - Units string - AllocationMb int - MinimumMb int - MaximumMb int - StepSizeMb int - IsAdjustable bool - IsOptional bool - CanScaleDown bool -} - -func checkMbValue(name string, limits MbLimit, divider int, diff *schema.ResourceDiff) error { - groupLimit := GroupResource{ - Units: limits.Units, - Allocation: limits.AllocationMb, - Minimum: limits.MinimumMb, - Maximum: limits.MaximumMb, - StepSize: limits.StepSizeMb, - IsAdjustable: limits.IsAdjustable, - IsOptional: limits.IsOptional, - CanScaleDown: limits.CanScaleDown, - } - return checkGroupValue(name, groupLimit, divider, diff) -} - func resourceIBMDatabaseInstanceDiff(_ context.Context, diff *schema.ResourceDiff, meta interface{}) (err error) { err = flex.ResourceTagsCustomizeDiff(diff) if err != nil { @@ -1156,67 +1014,7 @@ func resourceIBMDatabaseInstanceDiff(_ context.Context, diff *schema.ResourceDif } service := diff.Get("service").(string) - planPhase := diff.Get("plan_validation").(bool) - - if service == "databases-for-postgresql" || - service == "databases-for-elasticsearch" || - service == "databases-for-cassandra" || - service == "databases-for-enterprisedb" { - if planPhase { - groupDefaults, err := getDatabaseServiceDefaults(service, meta) - if err != nil { - return err - } - - err = checkMbValue("members_memory_allocation_mb", MbLimit(groupDefaults.Memory), 1, diff) - if err != nil { - return err - } - - err = checkMbValue("members_disk_allocation_mb", MbLimit(groupDefaults.Disk), 1, diff) - if err != nil { - return err - } - - err = checkCountValue("members_cpu_allocation_count", CountLimit(groupDefaults.Cpu), 1, diff) - if err != nil { - return err - } - - err = checkCountValue("node_count", CountLimit(groupDefaults.Members), 1, diff) - if err != nil { - return err - } - - var divider = groupDefaults.Members.MinimumCount - err = checkMbValue("node_memory_allocation_mb", MbLimit(groupDefaults.Memory), divider, diff) - if err != nil { - return err - } - - err = checkMbValue("node_disk_allocation_mb", MbLimit(groupDefaults.Disk), divider, diff) - if err != nil { - return err - } - - if diff.HasChange("node_cpu_allocation_count") { - err = checkCountValue("node_cpu_allocation_count", CountLimit(groupDefaults.Cpu), divider, diff) - if err != nil { - return err - } - } else if diff.HasChange("node_count") { - if _, ok := diff.GetOk("node_cpu_allocation_count"); !ok { - _, newSetting := diff.GetChange("node_count") - min := groupDefaults.Cpu.MinimumCount / divider - if newSetting != min { - return fmt.Errorf("node_cpu_allocation_count must be set when node_count is greater then the minimum %d", min) - } - } - } - } - } else if diff.HasChange("node_count") || diff.HasChange("node_memory_allocation_mb") || diff.HasChange("node_disk_allocation_mb") || diff.HasChange("node_cpu_allocation_count") { - return fmt.Errorf("[ERROR] node_count, node_memory_allocation_mb, node_disk_allocation_mb, node_cpu_allocation_count only supported for postgresql, elasticsearch and cassandra") - } + plan := diff.Get("plan").(string) _, logicalReplicationSet := diff.GetOk("logical_replication_slot") @@ -1273,6 +1071,11 @@ func resourceIBMDatabaseInstanceDiff(_ context.Context, diff *schema.ResourceDif } } + _, offlineRestoreOk := diff.GetOk("offline_restore") + if offlineRestoreOk && service != "databases-for-mongodb" && plan != "enterprise" { + return fmt.Errorf("[ERROR] offline_restore is only supported for databases-for-mongodb enterprise") + } + return nil } @@ -1373,24 +1176,6 @@ func resourceIBMDatabaseInstanceCreate(context context.Context, d *schema.Resour } } } - if memory, ok := d.GetOk("members_memory_allocation_mb"); ok { - params.Memory = memory.(int) - } - if memory, ok := d.GetOk("node_memory_allocation_mb"); ok { - params.Memory = memory.(int) * initialNodeCount - } - if disk, ok := d.GetOk("members_disk_allocation_mb"); ok { - params.Disk = disk.(int) - } - if disk, ok := d.GetOk("node_disk_allocation_mb"); ok { - params.Disk = disk.(int) * initialNodeCount - } - if cpu, ok := d.GetOk("members_cpu_allocation_count"); ok { - params.CPU = cpu.(int) - } - if cpu, ok := d.GetOk("node_cpu_allocation_count"); ok { - params.CPU = cpu.(int) * initialNodeCount - } if version, ok := d.GetOk("version"); ok { params.Version = version.(string) } @@ -1424,6 +1209,10 @@ func resourceIBMDatabaseInstanceCreate(context context.Context, d *schema.Resour params.PITRTimeStamp = &pitrTimeTrimmed } + if offlineRestore, ok := d.GetOk("offline_restore"); ok { + params.OfflineRestore = offlineRestore.(bool) + } + serviceEndpoint := d.Get("service_endpoints").(string) params.ServiceEndpoints = serviceEndpoint parameters, _ := json.Marshal(params) @@ -1451,20 +1240,6 @@ func resourceIBMDatabaseInstanceCreate(context context.Context, d *schema.Resour return diag.FromErr(err) } - if node_count, ok := d.GetOk("node_count"); ok { - if initialNodeCount != node_count { - icdClient, err := meta.(conns.ClientSession).ICDAPI() - if err != nil { - return diag.FromErr(fmt.Errorf("[ERROR] Error getting database client settings: %s", err)) - } - - err = horizontalScale(d, meta, icdClient) - if err != nil { - return diag.FromErr(err) - } - } - } - if group, ok := d.GetOk("group"); ok { groups := expandGroups(group.(*schema.Set).List()) groupsResponse, err := getGroups(*instance.ID, meta) @@ -1653,9 +1428,16 @@ func resourceIBMDatabaseInstanceCreate(context context.Context, d *schema.Resour return diag.FromErr(fmt.Errorf("[ERROR] Error getting database client settings: %s", err)) } - for _, user := range userList.(*schema.Set).List() { - userEl := user.(map[string]interface{}) - err := userUpdateCreate(userEl, instanceID, meta, d) + users := expandUsers(userList.(*schema.Set).List()) + for _, user := range users { + // Note: Some db users exist after provisioning (i.e. admin, repl) + // so we must attempt both methods + err := user.Update(instanceID, d, meta) + + if err != nil { + err = user.Create(instanceID, d, meta) + } + if err != nil { return diag.FromErr(err) } @@ -1702,11 +1484,6 @@ func resourceIBMDatabaseInstanceCreate(context context.Context, d *schema.Resour return diag.FromErr(fmt.Errorf("[ERROR] Error Logical Replication can only be set for databases-for-postgresql instances")) } - cloudDatabasesClient, err := meta.(conns.ClientSession).CloudDatabasesV5() - if err != nil { - return diag.FromErr(fmt.Errorf("[ERROR] Error getting database client settings: %s", err)) - } - _, logicalReplicationList := d.GetChange("logical_replication_slot") add := logicalReplicationList.(*schema.Set).List() @@ -1863,16 +1640,6 @@ func resourceIBMDatabaseInstanceRead(context context.Context, d *schema.Resource } d.Set("groups", flex.FlattenIcdGroups(groupList)) - d.Set("node_count", groupList.Groups[0].Members.AllocationCount) - - d.Set("members_memory_allocation_mb", groupList.Groups[0].Memory.AllocationMb) - d.Set("node_memory_allocation_mb", groupList.Groups[0].Memory.AllocationMb/groupList.Groups[0].Members.AllocationCount) - - d.Set("members_disk_allocation_mb", groupList.Groups[0].Disk.AllocationMb) - d.Set("node_disk_allocation_mb", groupList.Groups[0].Disk.AllocationMb/groupList.Groups[0].Members.AllocationCount) - - d.Set("members_cpu_allocation_count", groupList.Groups[0].Cpu.AllocationCount) - d.Set("node_cpu_allocation_count", groupList.Groups[0].Cpu.AllocationCount/groupList.Groups[0].Members.AllocationCount) getAutoscalingConditionsOptions := &clouddatabasesv5.GetAutoscalingConditionsOptions{ ID: instance.ID, @@ -1985,19 +1752,11 @@ func resourceIBMDatabaseInstanceUpdate(context context.Context, d *schema.Resour return diag.FromErr(fmt.Errorf("[ERROR] Error getting database client settings: %s", err)) } - icdClient, err := meta.(conns.ClientSession).ICDAPI() if err != nil { return diag.FromErr(fmt.Errorf("[ERROR] Error getting database client settings: %s", err)) } icdId := flex.EscapeUrlParm(instanceID) - if d.HasChange("node_count") { - err = horizontalScale(d, meta, icdClient) - if err != nil { - return diag.FromErr(err) - } - } - if d.HasChange("configuration") { if config, ok := d.GetOk("configuration"); ok { var rawConfig map[string]json.RawMessage @@ -2034,54 +1793,6 @@ func resourceIBMDatabaseInstanceUpdate(context context.Context, d *schema.Resour } } - if d.HasChange("members_memory_allocation_mb") || d.HasChange("members_disk_allocation_mb") || d.HasChange("members_cpu_allocation_count") || d.HasChange("node_memory_allocation_mb") || d.HasChange("node_disk_allocation_mb") || d.HasChange("node_cpu_allocation_count") { - params := icdv4.GroupReq{} - if d.HasChange("members_memory_allocation_mb") { - memory := d.Get("members_memory_allocation_mb").(int) - memoryReq := icdv4.MemoryReq{AllocationMb: memory} - params.GroupBdy.Memory = &memoryReq - } - if d.HasChange("node_memory_allocation_mb") || d.HasChange("node_count") { - memory := d.Get("node_memory_allocation_mb").(int) - count := d.Get("node_count").(int) - memoryReq := icdv4.MemoryReq{AllocationMb: memory * count} - params.GroupBdy.Memory = &memoryReq - } - if d.HasChange("members_disk_allocation_mb") { - disk := d.Get("members_disk_allocation_mb").(int) - diskReq := icdv4.DiskReq{AllocationMb: disk} - params.GroupBdy.Disk = &diskReq - } - if d.HasChange("node_disk_allocation_mb") || d.HasChange("node_count") { - disk := d.Get("node_disk_allocation_mb").(int) - count := d.Get("node_count").(int) - diskReq := icdv4.DiskReq{AllocationMb: disk * count} - params.GroupBdy.Disk = &diskReq - } - if d.HasChange("members_cpu_allocation_count") { - cpu := d.Get("members_cpu_allocation_count").(int) - cpuReq := icdv4.CpuReq{AllocationCount: cpu} - params.GroupBdy.Cpu = &cpuReq - } - if d.HasChange("node_cpu_allocation_mb") || d.HasChange("node_count") { - cpu := d.Get("node_cpu_allocation_count").(int) - count := d.Get("node_count").(int) - CpuReq := icdv4.CpuReq{AllocationCount: cpu * count} - params.GroupBdy.Cpu = &CpuReq - } - - task, err := icdClient.Groups().UpdateGroup(icdId, "member", params) - if err != nil { - return diag.FromErr(fmt.Errorf("[ERROR] Error updating database scaling group: %s", err)) - } - - _, err = waitForDatabaseTaskComplete(task.Id, d, meta, d.Timeout(schema.TimeoutUpdate)) - if err != nil { - return diag.FromErr(fmt.Errorf( - "[ERROR] Error waiting for database (%s) scaling group update task to complete: %s", icdId, err)) - } - } - if d.HasChange("group") { oldGroup, newGroup := d.GetChange("group") if oldGroup == nil { @@ -2268,65 +1979,38 @@ func resourceIBMDatabaseInstanceUpdate(context context.Context, d *schema.Resour if d.HasChange("users") { oldUsers, newUsers := d.GetChange("users") - userChanges := make(map[string]*userChange) - userKey := func(raw map[string]interface{}) string { - if raw["role"].(string) != "" { - return fmt.Sprintf("%s-%s-%s", raw["type"].(string), raw["role"].(string), raw["name"].(string)) - } else { - return fmt.Sprintf("%s-%s", raw["type"].(string), raw["name"].(string)) - } - } - - for _, raw := range oldUsers.(*schema.Set).List() { - user := raw.(map[string]interface{}) - k := userKey(user) - userChanges[k] = &userChange{Old: user} - } - - for _, raw := range newUsers.(*schema.Set).List() { - user := raw.(map[string]interface{}) - k := userKey(user) - if _, ok := userChanges[k]; !ok { - userChanges[k] = &userChange{} - } - userChanges[k].New = user - } + userChanges := expandUserChanges(oldUsers.(*schema.Set).List(), newUsers.(*schema.Set).List()) for _, change := range userChanges { - // Delete Old User - if change.Old != nil && change.New == nil { - deleteDatabaseUserOptions := &clouddatabasesv5.DeleteDatabaseUserOptions{ - ID: &instanceID, - UserType: core.StringPtr(change.Old["type"].(string)), - Username: core.StringPtr(change.Old["name"].(string)), - } - - deleteDatabaseUserResponse, response, err := cloudDatabasesClient.DeleteDatabaseUser(deleteDatabaseUserOptions) + // Delete User + if change.isDelete() { + // Delete Old User + err = change.Old.Delete(instanceID, d, meta) if err != nil { - return diag.FromErr(fmt.Errorf( - "[ERROR] DeleteDatabaseUser (%s) failed %s\n%s", *deleteDatabaseUserOptions.Username, err, response)) - + return diag.FromErr(err) } + } - taskID := *deleteDatabaseUserResponse.Task.ID - _, err = waitForDatabaseTaskComplete(taskID, d, meta, d.Timeout(schema.TimeoutUpdate)) + if change.isCreate() || change.isUpdate() { - if err != nil { - return diag.FromErr(fmt.Errorf( - "[ERROR] Error waiting for database (%s) user (%s) delete task to complete: %s", icdId, *deleteDatabaseUserOptions.Username, err)) - } + // Note: User Update is not supported for ops_manager user type + // Delete (ignoring errors), then re-create + if change.isUpdate() && !change.New.isUpdatable() { + change.Old.Delete(instanceID, d, meta) - continue - } + err = change.New.Create(instanceID, d, meta) + } else { + // Note: Some db users exist after provisioning (i.e. admin, repl) + // so we must attempt both methods + err = change.New.Update(instanceID, d, meta) - if change.New != nil { - // No change - if change.Old != nil && change.Old["password"].(string) == change.New["password"].(string) && change.Old["name"].(string) == change.New["name"].(string) { - continue + // Create User if Update failed + if err != nil { + err = change.New.Create(instanceID, d, meta) + } } - err := userUpdateCreate(change.New, instanceID, meta, d) if err != nil { return diag.FromErr(err) } @@ -2392,24 +2076,24 @@ func resourceIBMDatabaseInstanceUpdate(context context.Context, d *schema.Resour if len(remove) > 0 { for _, entry := range remove { newEntry := entry.(map[string]interface{}) - deleteDatabaseUserOptions := &clouddatabasesv5.DeleteLogicalReplicationSlotOptions{ + deleteLogicalReplicationSlotOptions := &clouddatabasesv5.DeleteLogicalReplicationSlotOptions{ ID: &instanceID, Name: core.StringPtr(newEntry["name"].(string)), } - deleteDatabaseUserResponse, response, err := cloudDatabasesClient.DeleteLogicalReplicationSlot(deleteDatabaseUserOptions) + deleteLogicalReplicationSlotResponse, response, err := cloudDatabasesClient.DeleteLogicalReplicationSlot(deleteLogicalReplicationSlotOptions) if err != nil { return diag.FromErr(fmt.Errorf( - "[ERROR] DeleteDatabaseUser (%s) failed %s\n%s", *deleteDatabaseUserOptions.Name, err, response)) + "[ERROR] DeleteLogicalReplicationSlot (%s) failed %s\n%s", *deleteLogicalReplicationSlotOptions.Name, err, response)) } - taskID := *deleteDatabaseUserResponse.Task.ID + taskID := *deleteLogicalReplicationSlotResponse.Task.ID _, err = waitForDatabaseTaskComplete(taskID, d, meta, d.Timeout(schema.TimeoutUpdate)) if err != nil { return diag.FromErr(fmt.Errorf( - "[ERROR] Error waiting for database (%s) logical replication slot (%s) delete task to complete: %s", icdId, *deleteDatabaseUserOptions.Name, err)) + "[ERROR] Error waiting for database (%s) logical replication slot (%s) delete task to complete: %s", icdId, *deleteLogicalReplicationSlotOptions.Name, err)) } } } @@ -2418,31 +2102,6 @@ func resourceIBMDatabaseInstanceUpdate(context context.Context, d *schema.Resour return resourceIBMDatabaseInstanceRead(context, d, meta) } -func horizontalScale(d *schema.ResourceData, meta interface{}, icdClient icdv4.ICDServiceAPI) error { - params := icdv4.GroupReq{} - - icdId := flex.EscapeUrlParm(d.Id()) - - members := d.Get("node_count").(int) - membersReq := icdv4.MembersReq{AllocationCount: members} - params.GroupBdy.Members = &membersReq - - _, err := icdClient.Groups().UpdateGroup(icdId, "member", params) - - if err != nil { - return fmt.Errorf("[ERROR] Error updating database scaling group: %s", err) - } - - // ScaleOut is handled with an ICD API call, however, the check is is on the instance status - _, err = waitForDatabaseInstanceUpdate(d, meta) - if err != nil { - return fmt.Errorf( - "[ERROR] Error waiting for database (%s) horizontal scale to complete: %s", d.Id(), err) - } - - return nil -} - func getConnectionString(d *schema.ResourceData, userName, connectionEndpoint string, meta interface{}) (flex.CsEntry, error) { csEntry := flex.CsEntry{} icdClient, err := meta.(conns.ClientSession).ICDAPI() @@ -2640,7 +2299,6 @@ func waitForDatabaseInstanceCreate(d *schema.ResourceData, meta interface{}, ins waitErr := waitForICDReady(meta, instanceID) if waitErr != nil { return false, fmt.Errorf("[ERROR] Error ICD interface not ready after create: %s with error %s\n", instanceID, waitErr) - } return stateConf.WaitForState() @@ -2695,7 +2353,10 @@ func waitForDatabaseTaskComplete(taskId string, d *schema.ResourceData, meta int delayDuration := 5 * time.Second timeout := time.After(t) - delay := time.Tick(delayDuration) + ticker := time.NewTicker(delayDuration) + delay := ticker.C + defer ticker.Stop() + getTaskOptions := &clouddatabasesv5.GetTaskOptions{ ID: &taskId, } @@ -3042,7 +2703,28 @@ func expandGroups(_groups []interface{}) []*Group { return groups } -func checkV5Groups(_ context.Context, diff *schema.ResourceDiff, meta interface{}) (err error) { +func validateGroupScaling(groupId string, resourceName string, value int, resource *GroupResource, nodeCount int) error { + if nodeCount == 0 { + nodeCount = 1 + } + if resource.StepSize == 0 { + return fmt.Errorf("%s group must have members scaled > 0 before scaling %s", groupId, resourceName) + } + if value < resource.Minimum/nodeCount || value > resource.Maximum/nodeCount || value%(resource.StepSize/nodeCount) != 0 { + if !(value == 0 && resource.IsOptional) { + return fmt.Errorf("%s group %s must be >= %d and <= %d in increments of %d", groupId, resourceName, resource.Minimum/nodeCount, resource.Maximum/nodeCount, resource.StepSize/nodeCount) + } + } + if value != resource.Allocation/nodeCount && !resource.IsAdjustable { + return fmt.Errorf("%s can not change %s value after create", groupId, resourceName) + } + if value < resource.Allocation/nodeCount && !resource.CanScaleDown { + return fmt.Errorf("can not scale %s group %s below %d to %d", groupId, resourceName, resource.Allocation/nodeCount, value) + } + return nil +} + +func validateGroupsDiff(_ context.Context, diff *schema.ResourceDiff, meta interface{}) (err error) { instanceID := diff.Id() service := diff.Get("service").(string) plan := diff.Get("plan").(string) @@ -3066,7 +2748,7 @@ func checkV5Groups(_ context.Context, diff *schema.ResourceDiff, meta interface{ tfGroups := expandGroups(group.(*schema.Set).List()) - // Check group_ids are unique + // validate group_ids are unique groupIds = make([]string, 0, len(tfGroups)) for _, g := range tfGroups { groupIds = append(groupIds, g.ID) @@ -3098,28 +2780,28 @@ func checkV5Groups(_ context.Context, diff *schema.ResourceDiff, meta interface{ nodeCount := groupDefaults.Members.Allocation if group.Members != nil { - err = checkGroupScaling(groupId, "members", group.Members.Allocation, groupDefaults.Members, 1) + err = validateGroupScaling(groupId, "members", group.Members.Allocation, groupDefaults.Members, 1) if err != nil { return err } } if group.Memory != nil { - err = checkGroupScaling(groupId, "memory", group.Memory.Allocation, groupDefaults.Memory, nodeCount) + err = validateGroupScaling(groupId, "memory", group.Memory.Allocation, groupDefaults.Memory, nodeCount) if err != nil { return err } } if group.Disk != nil { - err = checkGroupScaling(groupId, "disk", group.Disk.Allocation, groupDefaults.Disk, nodeCount) + err = validateGroupScaling(groupId, "disk", group.Disk.Allocation, groupDefaults.Disk, nodeCount) if err != nil { return err } } if group.CPU != nil { - err = checkGroupScaling(groupId, "cpu", group.CPU.Allocation, groupDefaults.CPU, nodeCount) + err = validateGroupScaling(groupId, "cpu", group.CPU.Allocation, groupDefaults.CPU, nodeCount) if err != nil { return err } @@ -3130,73 +2812,278 @@ func checkV5Groups(_ context.Context, diff *schema.ResourceDiff, meta interface{ return nil } -// Updates and creates users. Because we cannot get users, we first attempt to update the users, then create them -func userUpdateCreate(userData map[string]interface{}, instanceID string, meta interface{}, d *schema.ResourceData) (err error) { - cloudDatabasesClient, _ := meta.(conns.ClientSession).CloudDatabasesV5() +func validateUsersDiff(_ context.Context, diff *schema.ResourceDiff, meta interface{}) (err error) { + oldUsers, newUsers := diff.GetChange("users") + userChanges := expandUserChanges(oldUsers.(*schema.Set).List(), newUsers.(*schema.Set).List()) + + for _, change := range userChanges { + if change.isDelete() { + continue + } + + if change.isCreate() || change.isUpdate() { + err = change.New.Validate() + if err != nil { + return err + } + } + } + + return nil +} + +func expandUsers(_users []interface{}) []*DatabaseUser { + if len(_users) == 0 { + return nil + } + + users := make([]*DatabaseUser, 0, len(_users)) + + for _, userRaw := range _users { + if tfUser, ok := userRaw.(map[string]interface{}); ok { + + user := DatabaseUser{ + Username: tfUser["name"].(string), + Password: tfUser["password"].(string), + Role: tfUser["role"].(string), + Type: tfUser["type"].(string), + } + + users = append(users, &user) + } + } + + return users +} + +func expandUserChanges(_oldUsers []interface{}, _newUsers []interface{}) (userChanges []*userChange) { + oldUsers := expandUsers(_oldUsers) + newUsers := expandUsers(_newUsers) + + userChangeMap := make(map[string]*userChange) + + for _, user := range oldUsers { + userChangeMap[user.ID()] = &userChange{Old: user} + } + + for _, user := range newUsers { + if _, ok := userChangeMap[user.ID()]; !ok { + userChangeMap[user.ID()] = &userChange{} + } + userChangeMap[user.ID()].New = user + } + + userChanges = make([]*userChange, 0, len(userChangeMap)) + + for _, user := range userChangeMap { + userChanges = append(userChanges, user) + } + + return userChanges +} + +func (c *userChange) isDelete() bool { + return c.Old != nil && c.New == nil +} + +func (c *userChange) isCreate() bool { + return c.Old == nil && c.New != nil +} + +func (c *userChange) isUpdate() bool { + return c.New != nil && + c.Old != nil && + ((c.Old.Password != c.New.Password) || + (c.Old.Role != c.New.Role)) +} + +func (u *DatabaseUser) ID() (id string) { + return fmt.Sprintf("%s-%s", u.Type, u.Username) +} + +func (u *DatabaseUser) Create(instanceID string, d *schema.ResourceData, meta interface{}) (err error) { + cloudDatabasesClient, err := meta.(conns.ClientSession).CloudDatabasesV5() + if err != nil { + return fmt.Errorf("[ERROR] Error getting database client settings: %w", err) + } + + //Attempt to create user + userEntry := &clouddatabasesv5.User{ + Username: core.StringPtr(u.Username), + Password: core.StringPtr(u.Password), + } + + // User Role only for ops_manager user type + if u.Type == "ops_manager" && u.Role != "" { + userEntry.Role = core.StringPtr(u.Role) + } + + createDatabaseUserOptions := &clouddatabasesv5.CreateDatabaseUserOptions{ + ID: &instanceID, + UserType: core.StringPtr(u.Type), + User: userEntry, + } + + createDatabaseUserResponse, response, err := cloudDatabasesClient.CreateDatabaseUser(createDatabaseUserOptions) + if err != nil { + return fmt.Errorf("[ERROR] CreateDatabaseUser (%s) failed %w\n%s", *userEntry.Username, err, response) + } + + taskID := *createDatabaseUserResponse.Task.ID + _, err = waitForDatabaseTaskComplete(taskID, d, meta, d.Timeout(schema.TimeoutUpdate)) + + if err != nil { + return fmt.Errorf( + "[ERROR] Error waiting for database (%s) user (%s) create task to complete: %w", instanceID, *userEntry.Username, err) + } + + return nil +} + +func (u *DatabaseUser) Update(instanceID string, d *schema.ResourceData, meta interface{}) (err error) { + cloudDatabasesClient, err := meta.(conns.ClientSession).CloudDatabasesV5() + if err != nil { + return fmt.Errorf("[ERROR] Error getting database client settings: %s", err) + } + // Attempt to update user password passwordSettingUser := &clouddatabasesv5.APasswordSettingUser{ - Password: core.StringPtr(userData["password"].(string)), + Password: core.StringPtr(u.Password), } changeUserPasswordOptions := &clouddatabasesv5.ChangeUserPasswordOptions{ ID: &instanceID, - UserType: core.StringPtr(userData["type"].(string)), - Username: core.StringPtr(userData["name"].(string)), + UserType: core.StringPtr(u.Type), + Username: core.StringPtr(u.Username), User: passwordSettingUser, } changeUserPasswordResponse, response, err := cloudDatabasesClient.ChangeUserPassword(changeUserPasswordOptions) // user was found but an error occurs while triggering task - if response.StatusCode != 404 && err != nil { - return fmt.Errorf("[ERROR] ChangeUserPassword (%s) failed %s\n%s", *changeUserPasswordOptions.Username, err, response) + if err != nil || (response.StatusCode < 200 || response.StatusCode >= 300) { + return fmt.Errorf("[ERROR] ChangeUserPassword (%s) failed %w\n%s", *changeUserPasswordOptions.Username, err, response) } - updatePass := true // Assume that update password passed + taskID := *changeUserPasswordResponse.Task.ID + _, err = waitForDatabaseTaskComplete(taskID, d, meta, d.Timeout(schema.TimeoutUpdate)) - if userData["type"].(string) == "ops_manager" && response.StatusCode == 404 { - updatePass = false // when user_password api can't find an ops_manager user, it returns a 404 and does not get to the point of creating a task - } else { - // when user_password api can't find a database user, its task fails - taskID := *changeUserPasswordResponse.Task.ID - updatePass, err = waitForDatabaseTaskComplete(taskID, d, meta, d.Timeout(schema.TimeoutUpdate)) + if err != nil { + return fmt.Errorf( + "[ERROR] Error waiting for database (%s) user (%s) create task to complete: %w", instanceID, *changeUserPasswordOptions.Username, err) + } - if err != nil { - log.Printf("[ERROR] Error waiting for database (%s) user (%s) password update task to complete: %s", instanceID, *changeUserPasswordOptions.Username, err) - } + return nil +} + +func (u *DatabaseUser) Delete(instanceID string, d *schema.ResourceData, meta interface{}) (err error) { + cloudDatabasesClient, err := meta.(conns.ClientSession).CloudDatabasesV5() + if err != nil { + return fmt.Errorf("[ERROR] Error getting database client settings: %s", err) } - // Updating the password has failed - if !updatePass { - //Attempt to create user - userEntry := &clouddatabasesv5.User{ - Username: core.StringPtr(userData["name"].(string)), - Password: core.StringPtr(userData["password"].(string)), - } + deleteDatabaseUserOptions := &clouddatabasesv5.DeleteDatabaseUserOptions{ + ID: &instanceID, + UserType: core.StringPtr(u.Type), + Username: core.StringPtr(u.Username), + } - // User Role only for ops_manager user type - if userData["type"].(string) == "ops_manager" && userData["role"].(string) != "" { - userEntry.Role = core.StringPtr(userData["role"].(string)) - } + deleteDatabaseUserResponse, response, err := cloudDatabasesClient.DeleteDatabaseUser(deleteDatabaseUserOptions) + + if err != nil { + return fmt.Errorf( + "[ERROR] DeleteDatabaseUser (%s) failed %s\n%s", *deleteDatabaseUserOptions.Username, err, response) + + } + + taskID := *deleteDatabaseUserResponse.Task.ID + _, err = waitForDatabaseTaskComplete(taskID, d, meta, d.Timeout(schema.TimeoutUpdate)) + + if err != nil { + return fmt.Errorf( + "[ERROR] Error waiting for database (%s) user (%s) delete task to complete: %s", instanceID, *deleteDatabaseUserOptions.Username, err) + } + + return nil +} + +func (u *DatabaseUser) isUpdatable() bool { + return u.Type != "ops_manager" +} - createDatabaseUserOptions := &clouddatabasesv5.CreateDatabaseUserOptions{ - ID: &instanceID, - UserType: core.StringPtr(userData["type"].(string)), - User: userEntry, +func (u *DatabaseUser) Validate() error { + var errs []error + + var specialChars string + switch u.Type { + case "ops_manager": + specialChars = opsManagerUserSpecialChars + default: + specialChars = databaseUserSpecialChars + } + + // Format for regexp + var specialCharPattern string + var bs strings.Builder + for i, c := range strings.Split(specialChars, "") { + if i > 0 { + bs.WriteByte('|') } + bs.WriteString(regexp.QuoteMeta(c)) + } - createDatabaseUserResponse, response, err := cloudDatabasesClient.CreateDatabaseUser(createDatabaseUserOptions) - if err != nil { - return fmt.Errorf("[ERROR] CreateDatabaseUser (%s) failed %s\n%s", *userEntry.Username, err, response) + specialCharPattern = bs.String() + + var allowedCharacters = regexp.MustCompile(fmt.Sprintf("^(?:[a-zA-Z0-9]|%s)+$", specialCharPattern)) + var beginWithSpecialChar = regexp.MustCompile(fmt.Sprintf("^(?:%s)", specialCharPattern)) + var containsLetter = regexp.MustCompile("[a-zA-Z]") + var containsNumber = regexp.MustCompile("[0-9]") + var containsSpecialChar = regexp.MustCompile(fmt.Sprintf("(?:%s)", specialCharPattern)) + + if u.Type == "ops_manager" && !containsSpecialChar.MatchString(u.Password) { + errs = append(errs, fmt.Errorf( + "password must contain at least one special character (%s)", specialChars)) + } + + if u.Type == "database" && beginWithSpecialChar.MatchString(u.Password) { + errs = append(errs, fmt.Errorf( + "password must not begin with a special character (%s)", specialChars)) + } + + if !containsLetter.MatchString(u.Password) { + errs = append(errs, errors.New("password must contain at least one letter")) + } + + if !containsNumber.MatchString(u.Password) { + errs = append(errs, errors.New("password must contain at least one number")) + } + + if !allowedCharacters.MatchString(u.Password) { + errs = append(errs, errors.New("password must not contain invalid characters")) + } + + if len(errs) == 0 { + return nil + } + + var b []byte + for i, err := range errs { + if i > 0 { + b = append(b, '\n') } + b = append(b, err.Error()...) + } - taskID := *createDatabaseUserResponse.Task.ID - _, err = waitForDatabaseTaskComplete(taskID, d, meta, d.Timeout(schema.TimeoutUpdate)) + return fmt.Errorf("database user (%s) validation error:\n%w", u.Username, errors.New(string(b))) +} + +func DatabaseUserPasswordValidator(userType string) schema.SchemaValidateFunc { + return func(i interface{}, k string) (warnings []string, errors []error) { + user := &DatabaseUser{Username: "admin", Type: userType, Password: i.(string)} + err := user.Validate() if err != nil { - return fmt.Errorf( - "[ERROR] Error waiting for database (%s) user (%s) create task to complete: %s", instanceID, *userEntry.Username, err) + errors = append(errors, err) } + return } - - return nil } diff --git a/ibm/service/database/resource_ibm_database_cassandra_test.go b/ibm/service/database/resource_ibm_database_cassandra_test.go index 3f8b3de7f3..2701ecb344 100644 --- a/ibm/service/database/resource_ibm_database_cassandra_test.go +++ b/ibm/service/database/resource_ibm_database_cassandra_test.go @@ -33,10 +33,8 @@ func TestAccIBMCassandraDatabaseInstanceBasic(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-cassandra"), resource.TestCheckResourceAttr(name, "plan", "enterprise"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "adminuser", "admin"), - resource.TestCheckResourceAttr(name, "members_memory_allocation_mb", "36864"), - resource.TestCheckResourceAttr(name, "members_disk_allocation_mb", "61440"), resource.TestCheckResourceAttr(name, "allowlist.#", "1"), resource.TestCheckResourceAttr(name, "users.#", "1"), resource.TestCheckResourceAttr(name, "connectionstrings.#", "2"), @@ -51,9 +49,7 @@ func TestAccIBMCassandraDatabaseInstanceBasic(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-cassandra"), resource.TestCheckResourceAttr(name, "plan", "enterprise"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "members_memory_allocation_mb", "38400"), - resource.TestCheckResourceAttr(name, "members_disk_allocation_mb", "61440"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "allowlist.#", "2"), resource.TestCheckResourceAttr(name, "users.#", "2"), resource.TestCheckResourceAttr(name, "connectionstrings.#", "3"), @@ -67,9 +63,7 @@ func TestAccIBMCassandraDatabaseInstanceBasic(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-cassandra"), resource.TestCheckResourceAttr(name, "plan", "enterprise"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "members_memory_allocation_mb", "36864"), - resource.TestCheckResourceAttr(name, "members_disk_allocation_mb", "61440"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "allowlist.#", "0"), resource.TestCheckResourceAttr(name, "users.#", "0"), resource.TestCheckResourceAttr(name, "connectionstrings.#", "1"), @@ -99,12 +93,8 @@ func TestAccIBMDatabaseInstance_Cassandra_Node(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-cassandra"), resource.TestCheckResourceAttr(name, "plan", "enterprise"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "adminuser", "admin"), - resource.TestCheckResourceAttr(name, "node_count", "3"), - resource.TestCheckResourceAttr(name, "node_memory_allocation_mb", "12288"), - resource.TestCheckResourceAttr(name, "node_disk_allocation_mb", "20480"), - resource.TestCheckResourceAttr(name, "node_cpu_allocation_count", "6"), resource.TestCheckResourceAttr(name, "allowlist.#", "1"), resource.TestCheckResourceAttr(name, "users.#", "1"), @@ -121,11 +111,7 @@ func TestAccIBMDatabaseInstance_Cassandra_Node(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-cassandra"), resource.TestCheckResourceAttr(name, "plan", "enterprise"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "node_count", "3"), - resource.TestCheckResourceAttr(name, "node_memory_allocation_mb", "12416"), - resource.TestCheckResourceAttr(name, "node_disk_allocation_mb", "20480"), - resource.TestCheckResourceAttr(name, "node_cpu_allocation_count", "6"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "allowlist.#", "2"), resource.TestCheckResourceAttr(name, "users.#", "2"), resource.TestCheckResourceAttr(name, "connectionstrings.#", "3"), @@ -139,11 +125,7 @@ func TestAccIBMDatabaseInstance_Cassandra_Node(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-cassandra"), resource.TestCheckResourceAttr(name, "plan", "enterprise"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "node_count", "3"), - resource.TestCheckResourceAttr(name, "node_memory_allocation_mb", "12288"), - resource.TestCheckResourceAttr(name, "node_disk_allocation_mb", "20480"), - resource.TestCheckResourceAttr(name, "node_cpu_allocation_count", "6"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "allowlist.#", "0"), resource.TestCheckResourceAttr(name, "users.#", "0"), resource.TestCheckResourceAttr(name, "connectionstrings.#", "1"), @@ -156,11 +138,7 @@ func TestAccIBMDatabaseInstance_Cassandra_Node(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-cassandra"), resource.TestCheckResourceAttr(name, "plan", "enterprise"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "node_count", "4"), - resource.TestCheckResourceAttr(name, "node_memory_allocation_mb", "12288"), - resource.TestCheckResourceAttr(name, "node_disk_allocation_mb", "20480"), - resource.TestCheckResourceAttr(name, "node_cpu_allocation_count", "6"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "allowlist.#", "0"), resource.TestCheckResourceAttr(name, "users.#", "0"), resource.TestCheckResourceAttr(name, "connectionstrings.#", "1"), @@ -195,12 +173,8 @@ func TestAccIBMDatabaseInstance_Cassandra_Group(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-cassandra"), resource.TestCheckResourceAttr(name, "plan", "enterprise"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "adminuser", "admin"), - resource.TestCheckResourceAttr(name, "node_count", "3"), - resource.TestCheckResourceAttr(name, "node_memory_allocation_mb", "12288"), - resource.TestCheckResourceAttr(name, "node_disk_allocation_mb", "20480"), - resource.TestCheckResourceAttr(name, "node_cpu_allocation_count", "6"), resource.TestCheckResourceAttr(name, "groups.0.count", "3"), resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "36864"), resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "61440"), @@ -220,11 +194,7 @@ func TestAccIBMDatabaseInstance_Cassandra_Group(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-cassandra"), resource.TestCheckResourceAttr(name, "plan", "enterprise"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "node_count", "3"), - resource.TestCheckResourceAttr(name, "node_memory_allocation_mb", "12416"), - resource.TestCheckResourceAttr(name, "node_disk_allocation_mb", "20480"), - resource.TestCheckResourceAttr(name, "node_cpu_allocation_count", "6"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "groups.0.count", "3"), resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "37248"), resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "61440"), @@ -242,11 +212,7 @@ func TestAccIBMDatabaseInstance_Cassandra_Group(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-cassandra"), resource.TestCheckResourceAttr(name, "plan", "enterprise"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "node_count", "3"), - resource.TestCheckResourceAttr(name, "node_memory_allocation_mb", "12288"), - resource.TestCheckResourceAttr(name, "node_disk_allocation_mb", "20480"), - resource.TestCheckResourceAttr(name, "node_cpu_allocation_count", "6"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "groups.0.count", "3"), resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "36864"), resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "61440"), @@ -263,11 +229,7 @@ func TestAccIBMDatabaseInstance_Cassandra_Group(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-cassandra"), resource.TestCheckResourceAttr(name, "plan", "enterprise"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "node_count", "4"), - resource.TestCheckResourceAttr(name, "node_memory_allocation_mb", "12288"), - resource.TestCheckResourceAttr(name, "node_disk_allocation_mb", "20480"), - resource.TestCheckResourceAttr(name, "node_cpu_allocation_count", "6"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "groups.0.count", "4"), resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "49152"), resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "81920"), @@ -304,7 +266,7 @@ func TestAccIBMDatabaseInstanceCassandraImport(t *testing.T) { resource.TestCheckResourceAttr(resourceName, "name", serviceName), resource.TestCheckResourceAttr(resourceName, "service", "databases-for-cassandra"), resource.TestCheckResourceAttr(resourceName, "plan", "enterprise"), - resource.TestCheckResourceAttr(resourceName, "location", acc.IcdDbRegion), + resource.TestCheckResourceAttr(resourceName, "location", acc.Region()), ), }, { @@ -312,7 +274,7 @@ func TestAccIBMDatabaseInstanceCassandraImport(t *testing.T) { ImportState: true, ImportStateVerify: true, ImportStateVerifyIgnore: []string{ - "wait_time_minutes", "plan_validation"}, + "wait_time_minutes"}, }, }, }) @@ -333,12 +295,10 @@ func testAccCheckIBMDatabaseInstanceCassandraBasic(databaseResourceGroup string, service = "databases-for-cassandra" plan = "enterprise" location = "%[3]s" - adminpassword = "password12" - members_memory_allocation_mb = 36864 - members_disk_allocation_mb = 61440 + adminpassword = "password12345678" users { name = "user123" - password = "password12" + password = "password12345678" } allowlist { address = "172.168.1.2/32" @@ -351,7 +311,7 @@ func testAccCheckIBMDatabaseInstanceCassandraBasic(databaseResourceGroup string, delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceCassandraFullyspecified(databaseResourceGroup string, name string) string { @@ -367,16 +327,14 @@ func testAccCheckIBMDatabaseInstanceCassandraFullyspecified(databaseResourceGrou service = "databases-for-cassandra" plan = "enterprise" location = "%[3]s" - adminpassword = "password12" - members_memory_allocation_mb = 38400 - members_disk_allocation_mb = 61440 + adminpassword = "password12345678" users { name = "user123" - password = "password12" + password = "password12345678" } users { name = "user124" - password = "password12" + password = "password12345678" } allowlist { address = "172.168.1.2/32" @@ -393,7 +351,7 @@ func testAccCheckIBMDatabaseInstanceCassandraFullyspecified(databaseResourceGrou delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceCassandraReduced(databaseResourceGroup string, name string) string { @@ -409,9 +367,7 @@ func testAccCheckIBMDatabaseInstanceCassandraReduced(databaseResourceGroup strin service = "databases-for-cassandra" plan = "enterprise" location = "%[3]s" - adminpassword = "password12" - members_memory_allocation_mb = 36864 - members_disk_allocation_mb = 61440 + adminpassword = "password12345678" timeouts { create = "480m" @@ -419,7 +375,7 @@ func testAccCheckIBMDatabaseInstanceCassandraReduced(databaseResourceGroup strin delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceCassandraNodeBasic(databaseResourceGroup string, name string) string { @@ -435,15 +391,27 @@ func testAccCheckIBMDatabaseInstanceCassandraNodeBasic(databaseResourceGroup str service = "databases-for-cassandra" plan = "enterprise" location = "%[3]s" - adminpassword = "password12" - node_count = 3 - node_memory_allocation_mb = 12288 - node_disk_allocation_mb = 20480 - node_cpu_allocation_count = 6 + adminpassword = "password12345678" + + group { + group_id = "member" + + memory { + allocation_mb = 12288 + } + + disk { + allocation_mb = 20480 + } + + cpu { + allocation_count = 6 + } + } users { name = "user123" - password = "password12" + password = "password12345678" } allowlist { address = "172.168.1.2/32" @@ -456,7 +424,7 @@ func testAccCheckIBMDatabaseInstanceCassandraNodeBasic(databaseResourceGroup str delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceCassandraNodeFullyspecified(databaseResourceGroup string, name string) string { @@ -473,19 +441,32 @@ func testAccCheckIBMDatabaseInstanceCassandraNodeFullyspecified(databaseResource plan = "enterprise" location = "%[3]s" version = "5.1" - adminpassword = "password12" - node_count = 3 - node_memory_allocation_mb = 12416 - node_disk_allocation_mb = 20480 - node_cpu_allocation_count = 6 + adminpassword = "password12345678" + + group { + group_id = "member" + members { + allocation_count = 3 + } + memory { + allocation_mb = 12416 + } + disk { + allocation_mb = 20480 + } + + cpu { + allocation_count = 6 + } + } users { name = "user123" - password = "password12" + password = "password12345678" } users { name = "user124" - password = "password12" + password = "password12345678" } allowlist { address = "172.168.1.2/32" @@ -502,7 +483,7 @@ func testAccCheckIBMDatabaseInstanceCassandraNodeFullyspecified(databaseResource delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceCassandraNodeReduced(databaseResourceGroup string, name string) string { @@ -519,11 +500,23 @@ func testAccCheckIBMDatabaseInstanceCassandraNodeReduced(databaseResourceGroup s plan = "enterprise" location = "%[3]s" version = "5.1" - adminpassword = "password12" - node_count = 3 - node_memory_allocation_mb = 12288 - node_disk_allocation_mb = 20480 - node_cpu_allocation_count = 6 + adminpassword = "password12345678" + + group { + group_id = "member" + members { + allocation_count = 3 + } + memory { + allocation_mb = 12288 + } + disk { + allocation_mb = 20480 + } + cpu { + allocation_count = 6 + } + } timeouts { create = "480m" @@ -531,7 +524,7 @@ func testAccCheckIBMDatabaseInstanceCassandraNodeReduced(databaseResourceGroup s delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceCassandraNodeScaleOut(databaseResourceGroup string, name string) string { @@ -547,11 +540,23 @@ func testAccCheckIBMDatabaseInstanceCassandraNodeScaleOut(databaseResourceGroup service = "databases-for-cassandra" plan = "enterprise" location = "%[3]s" - adminpassword = "password12" - node_count = 4 - node_memory_allocation_mb = 12288 - node_disk_allocation_mb = 20480 - node_cpu_allocation_count = 6 + adminpassword = "password12345678" + + group { + group_id = "member" + members { + allocation_count = 4 + } + memory { + allocation_mb = 12288 + } + disk { + allocation_mb = 20480 + } + cpu { + allocation_count = 6 + } + } timeouts { create = "480m" @@ -559,7 +564,7 @@ func testAccCheckIBMDatabaseInstanceCassandraNodeScaleOut(databaseResourceGroup delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceCassandraGroupBasic(databaseResourceGroup string, name string) string { @@ -576,7 +581,7 @@ func testAccCheckIBMDatabaseInstanceCassandraGroupBasic(databaseResourceGroup st plan = "enterprise" version = "5.1" location = "%[3]s" - adminpassword = "password12" + adminpassword = "password12345678" group { group_id = "member" @@ -595,7 +600,7 @@ func testAccCheckIBMDatabaseInstanceCassandraGroupBasic(databaseResourceGroup st } users { name = "user123" - password = "password12" + password = "password12345678" } allowlist { address = "172.168.1.2/32" @@ -608,7 +613,7 @@ func testAccCheckIBMDatabaseInstanceCassandraGroupBasic(databaseResourceGroup st delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceCassandraGroupFullyspecified(databaseResourceGroup string, name string) string { @@ -625,7 +630,7 @@ func testAccCheckIBMDatabaseInstanceCassandraGroupFullyspecified(databaseResourc plan = "enterprise" version = "5.1" location = "%[3]s" - adminpassword = "password12" + adminpassword = "password12345678" group { group_id = "member" @@ -644,11 +649,11 @@ func testAccCheckIBMDatabaseInstanceCassandraGroupFullyspecified(databaseResourc } users { name = "user123" - password = "password12" + password = "password12345678" } users { name = "user124" - password = "password12" + password = "password12345678" } allowlist { address = "172.168.1.2/32" @@ -666,7 +671,7 @@ func testAccCheckIBMDatabaseInstanceCassandraGroupFullyspecified(databaseResourc } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceCassandraGroupReduced(databaseResourceGroup string, name string) string { @@ -683,7 +688,7 @@ func testAccCheckIBMDatabaseInstanceCassandraGroupReduced(databaseResourceGroup plan = "enterprise" version = "5.1" location = "%[3]s" - adminpassword = "password12" + adminpassword = "password12345678" group { group_id = "member" members { @@ -706,7 +711,7 @@ func testAccCheckIBMDatabaseInstanceCassandraGroupReduced(databaseResourceGroup delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceCassandraGroupScaleOut(databaseResourceGroup string, name string) string { @@ -723,7 +728,7 @@ func testAccCheckIBMDatabaseInstanceCassandraGroupScaleOut(databaseResourceGroup plan = "enterprise" version = "5.1" location = "%[3]s" - adminpassword = "password12" + adminpassword = "password12345678" group { group_id = "member" @@ -754,7 +759,7 @@ func testAccCheckIBMDatabaseInstanceCassandraGroupScaleOut(databaseResourceGroup delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceCassandraImport(databaseResourceGroup string, name string) string { @@ -778,5 +783,5 @@ func testAccCheckIBMDatabaseInstanceCassandraImport(databaseResourceGroup string } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } diff --git a/ibm/service/database/resource_ibm_database_edb_test.go b/ibm/service/database/resource_ibm_database_edb_test.go index 64dccdd1bc..f4ec044be2 100644 --- a/ibm/service/database/resource_ibm_database_edb_test.go +++ b/ibm/service/database/resource_ibm_database_edb_test.go @@ -34,10 +34,10 @@ func TestAccIBMEDBDatabaseInstanceBasic(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-enterprisedb"), resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "adminuser", "admin"), - resource.TestCheckResourceAttr(name, "members_memory_allocation_mb", "3072"), - resource.TestCheckResourceAttr(name, "members_disk_allocation_mb", "61440"), + resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "3072"), + resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "61440"), resource.TestCheckResourceAttr(name, "service_endpoints", "public"), resource.TestCheckResourceAttr(name, "allowlist.#", "1"), resource.TestCheckResourceAttr(name, "users.#", "1"), @@ -55,9 +55,9 @@ func TestAccIBMEDBDatabaseInstanceBasic(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-enterprisedb"), resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "members_memory_allocation_mb", "6144"), - resource.TestCheckResourceAttr(name, "members_disk_allocation_mb", "92160"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), + resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "6144"), + resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "92160"), resource.TestCheckResourceAttr(name, "service_endpoints", "public-and-private"), resource.TestCheckResourceAttr(name, "allowlist.#", "2"), resource.TestCheckResourceAttr(name, "users.#", "2"), @@ -78,9 +78,9 @@ func TestAccIBMEDBDatabaseInstanceBasic(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-enterprisedb"), resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "members_memory_allocation_mb", "3072"), - resource.TestCheckResourceAttr(name, "members_disk_allocation_mb", "92160"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), + resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "3072"), + resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "92160"), resource.TestCheckResourceAttr(name, "allowlist.#", "0"), resource.TestCheckResourceAttr(name, "users.#", "0"), resource.TestCheckResourceAttr(name, "connectionstrings.#", "1"), @@ -92,7 +92,7 @@ func TestAccIBMEDBDatabaseInstanceBasic(t *testing.T) { ImportState: true, ImportStateVerify: false, ImportStateVerifyIgnore: []string{ - "wait_time_minutes", "plan_validation", "adminpassword"}, + "wait_time_minutes", "adminpassword"}, }, }, }) @@ -103,20 +103,27 @@ func testAccCheckIBMDatabaseInstanceEDBBasic(databaseResourceGroup string, name data "ibm_resource_group" "test_acc" { name = "%[1]s" } - + resource "ibm_database" "%[2]s" { resource_group_id = data.ibm_resource_group.test_acc.id name = "%[2]s" service = "databases-for-enterprisedb" plan = "standard" location = "%[3]s" - adminpassword = "password12" - members_memory_allocation_mb = 3072 - members_disk_allocation_mb = 61440 + adminpassword = "password12345678" + group { + group_id = "member" + memory { + allocation_mb = 1024 + } + disk { + allocation_mb = 20480 + } + } tags = ["one:two"] users { name = "user123" - password = "password12" + password = "password12345678" } allowlist { address = "172.168.1.2/32" @@ -128,7 +135,7 @@ func testAccCheckIBMDatabaseInstanceEDBBasic(databaseResourceGroup string, name delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceEDBFullyspecified(databaseResourceGroup string, name string) string { @@ -136,26 +143,35 @@ func testAccCheckIBMDatabaseInstanceEDBFullyspecified(databaseResourceGroup stri data "ibm_resource_group" "test_acc" { name = "%[1]s" } - + resource "ibm_database" "%[2]s" { resource_group_id = data.ibm_resource_group.test_acc.id name = "%[2]s" service = "databases-for-enterprisedb" plan = "standard" location = "%[3]s" - adminpassword = "password12" - members_memory_allocation_mb = 6144 - members_disk_allocation_mb = 92160 - members_cpu_allocation_count = 12 + adminpassword = "password12345678" + group { + group_id = "member" + memory { + allocation_mb = 2048 + } + disk { + allocation_mb = 30720 + } + cpu { + allocation_count = 4 + } + } service_endpoints = "public-and-private" tags = ["one:two"] users { name = "user123" - password = "password12" + password = "password12345678" } users { name = "user124" - password = "password12" + password = "password12345678" } allowlist { address = "172.168.1.2/32" @@ -171,7 +187,7 @@ func testAccCheckIBMDatabaseInstanceEDBFullyspecified(databaseResourceGroup stri delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceEDBReduced(databaseResourceGroup string, name string) string { @@ -179,16 +195,23 @@ func testAccCheckIBMDatabaseInstanceEDBReduced(databaseResourceGroup string, nam data "ibm_resource_group" "test_acc" { name = "%[1]s" } - + resource "ibm_database" "%[2]s" { resource_group_id = data.ibm_resource_group.test_acc.id name = "%[2]s" service = "databases-for-enterprisedb" plan = "standard" location = "%[3]s" - adminpassword = "password12" - members_memory_allocation_mb = 3072 - members_disk_allocation_mb = 92160 + adminpassword = "password12345678" + group { + group_id = "member" + memory { + allocation_mb = 1024 + } + disk { + allocation_mb = 30720 + } + } service_endpoints = "public" tags = ["one:two"] timeouts { @@ -197,5 +220,5 @@ func testAccCheckIBMDatabaseInstanceEDBReduced(databaseResourceGroup string, nam delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } diff --git a/ibm/service/database/resource_ibm_database_elasticsearch_platinum_test.go b/ibm/service/database/resource_ibm_database_elasticsearch_platinum_test.go new file mode 100644 index 0000000000..114400145f --- /dev/null +++ b/ibm/service/database/resource_ibm_database_elasticsearch_platinum_test.go @@ -0,0 +1,871 @@ +// Copyright IBM Corp. 2017, 2021 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package database_test + +import ( + "fmt" + "testing" + + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" +) + +func TestAccIBMDatabaseInstance_ElasticsearchPlatinum_Basic(t *testing.T) { + t.Parallel() + databaseResourceGroup := "default" + var databaseInstanceOne string + rnd := fmt.Sprintf("tf-Es-%d", acctest.RandIntRange(10, 100)) + testName := rnd + name := "ibm_database." + testName + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIBMDatabaseInstanceDestroy, + Steps: []resource.TestStep{ + { + Config: testAccCheckIBMDatabaseInstanceElasticsearchPlatinumBasic(databaseResourceGroup, testName), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIBMDatabaseInstanceExists(name, &databaseInstanceOne), + resource.TestCheckResourceAttr(name, "name", testName), + resource.TestCheckResourceAttr(name, "service", "databases-for-elasticsearch"), + resource.TestCheckResourceAttr(name, "plan", "platinum"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), + resource.TestCheckResourceAttr(name, "adminuser", "admin"), + resource.TestCheckResourceAttr(name, "allowlist.#", "1"), + resource.TestCheckResourceAttr(name, "users.#", "1"), + resource.TestCheckResourceAttr(name, "connectionstrings.#", "2"), + resource.TestCheckResourceAttr(name, "connectionstrings.1.name", "admin"), + resource.TestCheckResourceAttr(name, "connectionstrings.0.hosts.#", "1"), + resource.TestCheckResourceAttr(name, "connectionstrings.0.database", ""), + ), + }, + { + Config: testAccCheckIBMDatabaseInstanceElasticsearchPlatinumFullyspecified(databaseResourceGroup, testName), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIBMDatabaseInstanceExists(name, &databaseInstanceOne), + resource.TestCheckResourceAttr(name, "name", testName), + resource.TestCheckResourceAttr(name, "service", "databases-for-elasticsearch"), + resource.TestCheckResourceAttr(name, "plan", "platinum"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), + resource.TestCheckResourceAttr(name, "allowlist.#", "2"), + resource.TestCheckResourceAttr(name, "users.#", "2"), + resource.TestCheckResourceAttr(name, "connectionstrings.#", "3"), + resource.TestCheckResourceAttr(name, "connectionstrings.2.name", "admin"), + ), + }, + { + Config: testAccCheckIBMDatabaseInstanceElasticsearchPlatinumReduced(databaseResourceGroup, testName), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIBMDatabaseInstanceExists(name, &databaseInstanceOne), + resource.TestCheckResourceAttr(name, "name", testName), + resource.TestCheckResourceAttr(name, "service", "databases-for-elasticsearch"), + resource.TestCheckResourceAttr(name, "plan", "platinum"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), + resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "3072"), + resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "18432"), + resource.TestCheckResourceAttr(name, "allowlist.#", "0"), + resource.TestCheckResourceAttr(name, "users.#", "0"), + resource.TestCheckResourceAttr(name, "connectionstrings.#", "1"), + ), + }, + { + Config: testAccCheckIBMDatabaseInstanceElasticsearchPlatinumGroupMigration(databaseResourceGroup, testName), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIBMDatabaseInstanceExists(name, &databaseInstanceOne), + resource.TestCheckResourceAttr(name, "name", testName), + resource.TestCheckResourceAttr(name, "service", "databases-for-elasticsearch"), + resource.TestCheckResourceAttr(name, "plan", "platinum"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), + resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "3072"), + resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "18432"), + resource.TestCheckResourceAttr(name, "whitelist.#", "0"), + resource.TestCheckResourceAttr(name, "users.#", "0"), + resource.TestCheckResourceAttr(name, "connectionstrings.#", "1"), + ), + }, + // { + // ResourceName: name, + // ImportState: true, + // ImportStateVerify: true, + // }, + }, + }) +} + +func TestAccIBMDatabaseInstance_ElasticsearchPlatinum_Node(t *testing.T) { + t.Parallel() + databaseResourceGroup := "default" + var databaseInstanceOne string + rnd := fmt.Sprintf("tf-Es-%d", acctest.RandIntRange(10, 100)) + testName := rnd + name := "ibm_database." + testName + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIBMDatabaseInstanceDestroy, + Steps: []resource.TestStep{ + { + Config: testAccCheckIBMDatabaseInstanceElasticsearchPlatinumNodeBasic(databaseResourceGroup, testName), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIBMDatabaseInstanceExists(name, &databaseInstanceOne), + resource.TestCheckResourceAttr(name, "name", testName), + resource.TestCheckResourceAttr(name, "service", "databases-for-elasticsearch"), + resource.TestCheckResourceAttr(name, "plan", "platinum"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), + resource.TestCheckResourceAttr(name, "adminuser", "admin"), + resource.TestCheckResourceAttr(name, "node_count", "3"), + resource.TestCheckResourceAttr(name, "node_memory_allocation_mb", "1024"), + resource.TestCheckResourceAttr(name, "node_disk_allocation_mb", "5120"), + resource.TestCheckResourceAttr(name, "node_cpu_allocation_count", "3"), + + resource.TestCheckResourceAttr(name, "allowlist.#", "1"), + resource.TestCheckResourceAttr(name, "users.#", "1"), + resource.TestCheckResourceAttr(name, "connectionstrings.#", "2"), + resource.TestCheckResourceAttr(name, "connectionstrings.1.name", "admin"), + resource.TestCheckResourceAttr(name, "connectionstrings.0.hosts.#", "1"), + resource.TestCheckResourceAttr(name, "connectionstrings.0.database", ""), + ), + }, + { + Config: testAccCheckIBMDatabaseInstanceElasticsearchPlatinumNodeFullyspecified(databaseResourceGroup, testName), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIBMDatabaseInstanceExists(name, &databaseInstanceOne), + resource.TestCheckResourceAttr(name, "name", testName), + resource.TestCheckResourceAttr(name, "service", "databases-for-elasticsearch"), + resource.TestCheckResourceAttr(name, "plan", "platinum"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), + resource.TestCheckResourceAttr(name, "node_count", "3"), + resource.TestCheckResourceAttr(name, "node_memory_allocation_mb", "1024"), + resource.TestCheckResourceAttr(name, "node_disk_allocation_mb", "6144"), + resource.TestCheckResourceAttr(name, "node_cpu_allocation_count", "3"), + resource.TestCheckResourceAttr(name, "allowlist.#", "2"), + resource.TestCheckResourceAttr(name, "users.#", "2"), + resource.TestCheckResourceAttr(name, "connectionstrings.#", "3"), + resource.TestCheckResourceAttr(name, "connectionstrings.2.name", "admin"), + ), + }, + { + Config: testAccCheckIBMDatabaseInstanceElasticsearchPlatinumNodeReduced(databaseResourceGroup, testName), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIBMDatabaseInstanceExists(name, &databaseInstanceOne), + resource.TestCheckResourceAttr(name, "name", testName), + resource.TestCheckResourceAttr(name, "service", "databases-for-elasticsearch"), + resource.TestCheckResourceAttr(name, "plan", "platinum"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), + resource.TestCheckResourceAttr(name, "node_count", "3"), + resource.TestCheckResourceAttr(name, "node_memory_allocation_mb", "1024"), + resource.TestCheckResourceAttr(name, "node_disk_allocation_mb", "6144"), + resource.TestCheckResourceAttr(name, "node_cpu_allocation_count", "3"), + resource.TestCheckResourceAttr(name, "allowlist.#", "0"), + resource.TestCheckResourceAttr(name, "users.#", "0"), + resource.TestCheckResourceAttr(name, "connectionstrings.#", "1"), + ), + }, + { + Config: testAccCheckIBMDatabaseInstanceElasticsearchPlatinumNodeScaleOut(databaseResourceGroup, testName), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIBMDatabaseInstanceExists(name, &databaseInstanceOne), + resource.TestCheckResourceAttr(name, "name", testName), + resource.TestCheckResourceAttr(name, "service", "databases-for-elasticsearch"), + resource.TestCheckResourceAttr(name, "plan", "platinum"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), + resource.TestCheckResourceAttr(name, "node_count", "4"), + resource.TestCheckResourceAttr(name, "node_memory_allocation_mb", "1024"), + resource.TestCheckResourceAttr(name, "node_disk_allocation_mb", "6144"), + resource.TestCheckResourceAttr(name, "node_cpu_allocation_count", "3"), + resource.TestCheckResourceAttr(name, "allowlist.#", "0"), + resource.TestCheckResourceAttr(name, "users.#", "0"), + resource.TestCheckResourceAttr(name, "connectionstrings.#", "1"), + ), + }, + //{ + // ResourceName: name, + // ImportState: true, + // ImportStateVerify: true, + //}, + }, + }) +} + +func TestAccIBMDatabaseInstance_ElasticsearchPlatinum_Group(t *testing.T) { + t.Parallel() + databaseResourceGroup := "default" + var databaseInstanceOne string + rnd := fmt.Sprintf("tf-Es-%d", acctest.RandIntRange(10, 100)) + testName := rnd + name := "ibm_database." + testName + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIBMDatabaseInstanceDestroy, + Steps: []resource.TestStep{ + { + Config: testAccCheckIBMDatabaseInstanceElasticsearchPlatinumGroupBasic(databaseResourceGroup, testName), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIBMDatabaseInstanceExists(name, &databaseInstanceOne), + resource.TestCheckResourceAttr(name, "name", testName), + resource.TestCheckResourceAttr(name, "service", "databases-for-elasticsearch"), + resource.TestCheckResourceAttr(name, "plan", "platinum"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), + resource.TestCheckResourceAttr(name, "adminuser", "admin"), + resource.TestCheckResourceAttr(name, "node_count", "3"), + resource.TestCheckResourceAttr(name, "node_memory_allocation_mb", "1024"), + resource.TestCheckResourceAttr(name, "node_disk_allocation_mb", "5120"), + resource.TestCheckResourceAttr(name, "node_cpu_allocation_count", "3"), + + resource.TestCheckResourceAttr(name, "allowlist.#", "1"), + resource.TestCheckResourceAttr(name, "users.#", "1"), + resource.TestCheckResourceAttr(name, "connectionstrings.#", "2"), + resource.TestCheckResourceAttr(name, "connectionstrings.1.name", "admin"), + resource.TestCheckResourceAttr(name, "connectionstrings.0.hosts.#", "1"), + resource.TestCheckResourceAttr(name, "connectionstrings.0.database", ""), + ), + }, + { + Config: testAccCheckIBMDatabaseInstanceElasticsearchPlatinumGroupFullyspecified(databaseResourceGroup, testName), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIBMDatabaseInstanceExists(name, &databaseInstanceOne), + resource.TestCheckResourceAttr(name, "name", testName), + resource.TestCheckResourceAttr(name, "service", "databases-for-elasticsearch"), + resource.TestCheckResourceAttr(name, "plan", "platinum"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), + resource.TestCheckResourceAttr(name, "node_count", "3"), + resource.TestCheckResourceAttr(name, "node_memory_allocation_mb", "1024"), + resource.TestCheckResourceAttr(name, "node_disk_allocation_mb", "6144"), + resource.TestCheckResourceAttr(name, "node_cpu_allocation_count", "3"), + resource.TestCheckResourceAttr(name, "groups.0.count", "3"), + resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "3072"), + resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "18432"), + resource.TestCheckResourceAttr(name, "groups.0.cpu.0.allocation_count", "9"), + resource.TestCheckResourceAttr(name, "allowlist.#", "2"), + resource.TestCheckResourceAttr(name, "users.#", "2"), + resource.TestCheckResourceAttr(name, "connectionstrings.#", "3"), + resource.TestCheckResourceAttr(name, "connectionstrings.2.name", "admin"), + ), + }, + { + Config: testAccCheckIBMDatabaseInstanceElasticsearchPlatinumGroupReduced(databaseResourceGroup, testName), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIBMDatabaseInstanceExists(name, &databaseInstanceOne), + resource.TestCheckResourceAttr(name, "name", testName), + resource.TestCheckResourceAttr(name, "service", "databases-for-elasticsearch"), + resource.TestCheckResourceAttr(name, "plan", "platinum"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), + resource.TestCheckResourceAttr(name, "node_count", "3"), + resource.TestCheckResourceAttr(name, "node_memory_allocation_mb", "1024"), + resource.TestCheckResourceAttr(name, "node_disk_allocation_mb", "6144"), + resource.TestCheckResourceAttr(name, "node_cpu_allocation_count", "3"), + resource.TestCheckResourceAttr(name, "groups.0.count", "3"), + resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "3072"), + resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "18432"), + resource.TestCheckResourceAttr(name, "groups.0.cpu.0.allocation_count", "9"), + resource.TestCheckResourceAttr(name, "allowlist.#", "0"), + resource.TestCheckResourceAttr(name, "users.#", "0"), + resource.TestCheckResourceAttr(name, "connectionstrings.#", "1"), + ), + }, + { + Config: testAccCheckIBMDatabaseInstanceElasticsearchPlatinumGroupScaleOut(databaseResourceGroup, testName), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIBMDatabaseInstanceExists(name, &databaseInstanceOne), + resource.TestCheckResourceAttr(name, "name", testName), + resource.TestCheckResourceAttr(name, "service", "databases-for-elasticsearch"), + resource.TestCheckResourceAttr(name, "plan", "platinum"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), + resource.TestCheckResourceAttr(name, "node_count", "4"), + resource.TestCheckResourceAttr(name, "node_memory_allocation_mb", "1024"), + resource.TestCheckResourceAttr(name, "node_disk_allocation_mb", "6144"), + resource.TestCheckResourceAttr(name, "node_cpu_allocation_count", "3"), + resource.TestCheckResourceAttr(name, "groups.0.count", "4"), + resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "4096"), + resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "24576"), + resource.TestCheckResourceAttr(name, "groups.0.cpu.0.allocation_count", "12"), + resource.TestCheckResourceAttr(name, "allowlist.#", "0"), + resource.TestCheckResourceAttr(name, "users.#", "0"), + resource.TestCheckResourceAttr(name, "connectionstrings.#", "1"), + ), + }, + //{ + // ResourceName: name, + // ImportState: true, + // ImportStateVerify: true, + //}, + }, + }) +} + +// TestAccIBMDatabaseInstance_CreateAfterManualDestroy not required as tested by resource_instance tests + +func TestAccIBMDatabaseInstanceElasticsearchPlatinumImport(t *testing.T) { + t.Parallel() + databaseResourceGroup := "default" + var databaseInstanceOne string + serviceName := fmt.Sprintf("tf-Es-%d", acctest.RandIntRange(10, 100)) + //serviceName := "test_acc" + resourceName := "ibm_database." + serviceName + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIBMDatabaseInstanceDestroy, + Steps: []resource.TestStep{ + { + Config: testAccCheckIBMDatabaseInstanceElasticsearchPlatinumImport(databaseResourceGroup, serviceName), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIBMDatabaseInstanceExists(resourceName, &databaseInstanceOne), + resource.TestCheckResourceAttr(resourceName, "name", serviceName), + resource.TestCheckResourceAttr(resourceName, "service", "databases-for-elasticsearch"), + resource.TestCheckResourceAttr(resourceName, "plan", "platinum"), + resource.TestCheckResourceAttr(resourceName, "location", acc.Region()), + ), + }, + { + ResourceName: resourceName, + ImportState: true, + ImportStateVerify: true, + ImportStateVerifyIgnore: []string{ + "wait_time_minutes", "plan_validation"}, + }, + }, + }) +} + +// func testAccCheckIBMDatabaseInstanceDestroy(s *terraform.State) etc in resource_ibm_database_postgresql_test.go + +func testAccCheckIBMDatabaseInstanceElasticsearchPlatinumBasic(databaseResourceGroup string, name string) string { + return fmt.Sprintf(` + data "ibm_resource_group" "test_acc" { + is_default = true + # name = "%[1]s" + } + + resource "ibm_database" "%[2]s" { + resource_group_id = data.ibm_resource_group.test_acc.id + name = "%[2]s" + service = "databases-for-elasticsearch" + plan = "platinum" + location = "%[3]s" + adminpassword = "password12345678" + group { + group_id = "member" + + memory { + allocation_mb = 1024 + } + disk { + allocation_mb = 6144 + } + } + users { + name = "user123" + password = "password12345678" + } + allowlist { + address = "172.168.1.2/32" + description = "desc1" + } + + timeouts { + create = "120m" + update = "120m" + delete = "15m" + } + } + `, databaseResourceGroup, name, acc.Region()) +} + +func testAccCheckIBMDatabaseInstanceElasticsearchPlatinumFullyspecified(databaseResourceGroup string, name string) string { + return fmt.Sprintf(` + data "ibm_resource_group" "test_acc" { + is_default = true + # name = "%[1]s" + } + + resource "ibm_database" "%[2]s" { + resource_group_id = data.ibm_resource_group.test_acc.id + name = "%[2]s" + service = "databases-for-elasticsearch" + plan = "platinum" + location = "%[3]s" + adminpassword = "password12345678" + users { + name = "user123" + password = "password12345678" + } + users { + name = "user124" + password = "password12345678" + } + allowlist { + address = "172.168.1.2/32" + description = "desc1" + } + allowlist { + address = "172.168.1.1/32" + description = "desc" + } + + timeouts { + create = "120m" + update = "120m" + delete = "15m" + } + } + + `, databaseResourceGroup, name, acc.Region()) +} + +func testAccCheckIBMDatabaseInstanceElasticsearchPlatinumReduced(databaseResourceGroup string, name string) string { + return fmt.Sprintf(` + data "ibm_resource_group" "test_acc" { + is_default = true + # name = "%[1]s" + } + + resource "ibm_database" "%[2]s" { + resource_group_id = data.ibm_resource_group.test_acc.id + name = "%[2]s" + service = "databases-for-elasticsearch" + plan = "platinum" + location = "%[3]s" + adminpassword = "password12345678" + + timeouts { + create = "120m" + update = "120m" + delete = "15m" + } + } + `, databaseResourceGroup, name, acc.Region()) +} + +func testAccCheckIBMDatabaseInstanceElasticsearchPlatinumGroupMigration(databaseResourceGroup string, name string) string { + return fmt.Sprintf(` + data "ibm_resource_group" "test_acc" { + is_default = true + # name = "%[1]s" + } + + resource "ibm_database" "%[2]s" { + resource_group_id = data.ibm_resource_group.test_acc.id + name = "%[2]s" + service = "databases-for-elasticsearch" + plan = "platinum" + location = "%[3]s" + adminpassword = "password12345678" + + group { + group_id = "member" + + memory { + allocation_mb = 1024 + } + disk { + allocation_mb = 6144 + } + } + + timeouts { + create = "120m" + update = "120m" + delete = "15m" + } + } + `, databaseResourceGroup, name, acc.Region()) +} + +func testAccCheckIBMDatabaseInstanceElasticsearchPlatinumNodeBasic(databaseResourceGroup string, name string) string { + return fmt.Sprintf(` + data "ibm_resource_group" "test_acc" { + is_default = true + # name = "%[1]s" + } + + resource "ibm_database" "%[2]s" { + resource_group_id = data.ibm_resource_group.test_acc.id + name = "%[2]s" + service = "databases-for-elasticsearch" + plan = "platinum" + location = "%[3]s" + adminpassword = "password12345678" + group { + group_id = "member" + members { + allocation_count = 3 + } + memory { + allocation_mb = 1024 + } + disk { + allocation_mb = 5120 + } + cpu { + allocation_count = 3 + } + } + + users { + name = "user123" + password = "password12345678" + } + allowlist { + address = "172.168.1.2/32" + description = "desc1" + } + + timeouts { + create = "120m" + update = "120m" + delete = "15m" + } + } + `, databaseResourceGroup, name, acc.Region()) +} + +func testAccCheckIBMDatabaseInstanceElasticsearchPlatinumNodeFullyspecified(databaseResourceGroup string, name string) string { + return fmt.Sprintf(` + data "ibm_resource_group" "test_acc" { + is_default = true + # name = "%[1]s" + } + + resource "ibm_database" "%[2]s" { + resource_group_id = data.ibm_resource_group.test_acc.id + name = "%[2]s" + service = "databases-for-elasticsearch" + plan = "platinum" + location = "%[3]s" + adminpassword = "password12345678" + group { + group_id = "member" + members { + allocation_count = 3 + } + memory { + allocation_mb = 1024 + } + disk { + allocation_mb = 6144 + } + cpu { + allocation_count = 3 + } + } + users { + name = "user123" + password = "password12345678" + } + users { + name = "user124" + password = "password12345678" + } + allowlist { + address = "172.168.1.2/32" + description = "desc1" + } + allowlist { + address = "172.168.1.1/32" + description = "desc" + } + + timeouts { + create = "120m" + update = "120m" + delete = "15m" + } + } + `, databaseResourceGroup, name, acc.Region()) +} + +func testAccCheckIBMDatabaseInstanceElasticsearchPlatinumNodeReduced(databaseResourceGroup string, name string) string { + return fmt.Sprintf(` + data "ibm_resource_group" "test_acc" { + is_default = true + # name = "%[1]s" + } + + resource "ibm_database" "%[2]s" { + resource_group_id = data.ibm_resource_group.test_acc.id + name = "%[2]s" + service = "databases-for-elasticsearch" + plan = "platinum" + location = "%[3]s" + adminpassword = "password12345678" + group { + group_id = "member" + members { + allocation_count = 3 + } + memory { + allocation_mb = 1024 + } + disk { + allocation_mb = 6144 + } + cpu { + allocation_count = 3 + } + } + + timeouts { + create = "120m" + update = "120m" + delete = "15m" + } + } + `, databaseResourceGroup, name, acc.Region()) +} + +func testAccCheckIBMDatabaseInstanceElasticsearchPlatinumNodeScaleOut(databaseResourceGroup string, name string) string { + return fmt.Sprintf(` + data "ibm_resource_group" "test_acc" { + is_default = true + # name = "%[1]s" + } + + resource "ibm_database" "%[2]s" { + resource_group_id = data.ibm_resource_group.test_acc.id + name = "%[2]s" + service = "databases-for-elasticsearch" + plan = "platinum" + location = "%[3]s" + adminpassword = "password12345678" + group { + group_id = "member" + members { + allocation_count = 4 + } + memory { + allocation_mb = 1024 + } + disk { + allocation_mb = 6144 + } + cpu { + allocation_count = 3 + } + } + + timeouts { + create = "120m" + update = "120m" + delete = "15m" + } + } + `, databaseResourceGroup, name, acc.Region()) +} + +func testAccCheckIBMDatabaseInstanceElasticsearchPlatinumGroupBasic(databaseResourceGroup string, name string) string { + return fmt.Sprintf(` + data "ibm_resource_group" "test_acc" { + is_default = true + # name = "%[1]s" + } + + resource "ibm_database" "%[2]s" { + resource_group_id = data.ibm_resource_group.test_acc.id + name = "%[2]s" + service = "databases-for-elasticsearch" + plan = "platinum" + location = "%[3]s" + adminpassword = "password12345678" + + group { + group_id = "member" + members { + allocation_count = 3 + } + memory { + allocation_mb = 1024 + } + disk { + allocation_mb = 5120 + } + cpu { + allocation_count = 3 + } + } + + users { + name = "user123" + password = "password12345678" + } + allowlist { + address = "172.168.1.2/32" + description = "desc1" + } + + timeouts { + create = "120m" + update = "120m" + delete = "15m" + } + } + `, databaseResourceGroup, name, acc.Region()) +} + +func testAccCheckIBMDatabaseInstanceElasticsearchPlatinumGroupFullyspecified(databaseResourceGroup string, name string) string { + return fmt.Sprintf(` + data "ibm_resource_group" "test_acc" { + is_default = true + # name = "%[1]s" + } + + resource "ibm_database" "%[2]s" { + resource_group_id = data.ibm_resource_group.test_acc.id + name = "%[2]s" + service = "databases-for-elasticsearch" + plan = "platinum" + location = "%[3]s" + adminpassword = "password12345678" + + group { + group_id = "member" + members { + allocation_count = 3 + } + memory { + allocation_mb = 1024 + } + disk { + allocation_mb = 6144 + } + cpu { + allocation_count = 3 + } + } + users { + name = "user123" + password = "password12345678" + } + users { + name = "user124" + password = "password12345678" + } + allowlist { + address = "172.168.1.2/32" + description = "desc1" + } + allowlist { + address = "172.168.1.1/32" + description = "desc" + } + + timeouts { + create = "120m" + update = "120m" + delete = "15m" + } + } + + `, databaseResourceGroup, name, acc.Region()) +} + +func testAccCheckIBMDatabaseInstanceElasticsearchPlatinumGroupReduced(databaseResourceGroup string, name string) string { + return fmt.Sprintf(` + data "ibm_resource_group" "test_acc" { + is_default = true + # name = "%[1]s" + } + + resource "ibm_database" "%[2]s" { + resource_group_id = data.ibm_resource_group.test_acc.id + name = "%[2]s" + service = "databases-for-elasticsearch" + plan = "platinum" + location = "%[3]s" + adminpassword = "password12345678" + + group { + group_id = "member" + members { + allocation_count = 3 + } + memory { + allocation_mb = 1024 + } + disk { + allocation_mb = 6144 + } + cpu { + allocation_count = 3 + } + } + + timeouts { + create = "120m" + update = "120m" + delete = "15m" + } + } + `, databaseResourceGroup, name, acc.Region()) +} + +func testAccCheckIBMDatabaseInstanceElasticsearchPlatinumGroupScaleOut(databaseResourceGroup string, name string) string { + return fmt.Sprintf(` + data "ibm_resource_group" "test_acc" { + is_default = true + # name = "%[1]s" + } + + resource "ibm_database" "%[2]s" { + resource_group_id = data.ibm_resource_group.test_acc.id + name = "%[2]s" + service = "databases-for-elasticsearch" + plan = "platinum" + location = "%[3]s" + adminpassword = "password12345678" + + group { + group_id = "member" + members { + allocation_count = 4 + } + memory { + allocation_mb = 1024 + } + disk { + allocation_mb = 6144 + } + cpu { + allocation_count = 3 + } + } + timeouts { + create = "120m" + update = "120m" + delete = "15m" + } + } + `, databaseResourceGroup, name, acc.Region()) +} + +func testAccCheckIBMDatabaseInstanceElasticsearchPlatinumImport(databaseResourceGroup string, name string) string { + return fmt.Sprintf(` + data "ibm_resource_group" "test_acc" { + is_default = true + # name = "%[1]s" + } + + resource "ibm_database" "%[2]s" { + resource_group_id = data.ibm_resource_group.test_acc.id + name = "%[2]s" + service = "databases-for-elasticsearch" + plan = "platinum" + location = "%[3]s" + + timeouts { + create = "120m" + update = "120m" + delete = "15m" + } + } + + `, databaseResourceGroup, name, acc.Region()) +} diff --git a/ibm/service/database/resource_ibm_database_elasticsearch_test.go b/ibm/service/database/resource_ibm_database_elasticsearch_test.go index b8b7455bca..2a6059f36a 100644 --- a/ibm/service/database/resource_ibm_database_elasticsearch_test.go +++ b/ibm/service/database/resource_ibm_database_elasticsearch_test.go @@ -33,10 +33,8 @@ func TestAccIBMDatabaseInstance_Elasticsearch_Basic(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-elasticsearch"), resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "adminuser", "admin"), - resource.TestCheckResourceAttr(name, "members_memory_allocation_mb", "3072"), - resource.TestCheckResourceAttr(name, "members_disk_allocation_mb", "15360"), resource.TestCheckResourceAttr(name, "allowlist.#", "1"), resource.TestCheckResourceAttr(name, "users.#", "1"), resource.TestCheckResourceAttr(name, "connectionstrings.#", "2"), @@ -52,9 +50,7 @@ func TestAccIBMDatabaseInstance_Elasticsearch_Basic(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-elasticsearch"), resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "members_memory_allocation_mb", "6144"), - resource.TestCheckResourceAttr(name, "members_disk_allocation_mb", "18432"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "allowlist.#", "2"), resource.TestCheckResourceAttr(name, "users.#", "2"), resource.TestCheckResourceAttr(name, "connectionstrings.#", "3"), @@ -68,9 +64,7 @@ func TestAccIBMDatabaseInstance_Elasticsearch_Basic(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-elasticsearch"), resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "members_memory_allocation_mb", "3072"), - resource.TestCheckResourceAttr(name, "members_disk_allocation_mb", "18432"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "allowlist.#", "0"), resource.TestCheckResourceAttr(name, "users.#", "0"), resource.TestCheckResourceAttr(name, "connectionstrings.#", "1"), @@ -83,7 +77,7 @@ func TestAccIBMDatabaseInstance_Elasticsearch_Basic(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-elasticsearch"), resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "3072"), resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "18432"), resource.TestCheckResourceAttr(name, "users.#", "0"), @@ -119,12 +113,8 @@ func TestAccIBMDatabaseInstance_Elasticsearch_Node(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-elasticsearch"), resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "adminuser", "admin"), - resource.TestCheckResourceAttr(name, "node_count", "3"), - resource.TestCheckResourceAttr(name, "node_memory_allocation_mb", "1024"), - resource.TestCheckResourceAttr(name, "node_disk_allocation_mb", "5120"), - resource.TestCheckResourceAttr(name, "node_cpu_allocation_count", "3"), resource.TestCheckResourceAttr(name, "allowlist.#", "1"), resource.TestCheckResourceAttr(name, "users.#", "1"), @@ -141,11 +131,7 @@ func TestAccIBMDatabaseInstance_Elasticsearch_Node(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-elasticsearch"), resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "node_count", "3"), - resource.TestCheckResourceAttr(name, "node_memory_allocation_mb", "1024"), - resource.TestCheckResourceAttr(name, "node_disk_allocation_mb", "6144"), - resource.TestCheckResourceAttr(name, "node_cpu_allocation_count", "3"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "allowlist.#", "2"), resource.TestCheckResourceAttr(name, "users.#", "2"), resource.TestCheckResourceAttr(name, "connectionstrings.#", "3"), @@ -159,11 +145,7 @@ func TestAccIBMDatabaseInstance_Elasticsearch_Node(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-elasticsearch"), resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "node_count", "3"), - resource.TestCheckResourceAttr(name, "node_memory_allocation_mb", "1024"), - resource.TestCheckResourceAttr(name, "node_disk_allocation_mb", "6144"), - resource.TestCheckResourceAttr(name, "node_cpu_allocation_count", "3"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "allowlist.#", "0"), resource.TestCheckResourceAttr(name, "users.#", "0"), resource.TestCheckResourceAttr(name, "connectionstrings.#", "1"), @@ -176,11 +158,7 @@ func TestAccIBMDatabaseInstance_Elasticsearch_Node(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-elasticsearch"), resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "node_count", "4"), - resource.TestCheckResourceAttr(name, "node_memory_allocation_mb", "1024"), - resource.TestCheckResourceAttr(name, "node_disk_allocation_mb", "6144"), - resource.TestCheckResourceAttr(name, "node_cpu_allocation_count", "3"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "allowlist.#", "0"), resource.TestCheckResourceAttr(name, "users.#", "0"), resource.TestCheckResourceAttr(name, "connectionstrings.#", "1"), @@ -215,12 +193,8 @@ func TestAccIBMDatabaseInstance_Elasticsearch_Group(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-elasticsearch"), resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "adminuser", "admin"), - resource.TestCheckResourceAttr(name, "node_count", "3"), - resource.TestCheckResourceAttr(name, "node_memory_allocation_mb", "1024"), - resource.TestCheckResourceAttr(name, "node_disk_allocation_mb", "5120"), - resource.TestCheckResourceAttr(name, "node_cpu_allocation_count", "3"), resource.TestCheckResourceAttr(name, "allowlist.#", "1"), resource.TestCheckResourceAttr(name, "users.#", "1"), @@ -237,11 +211,7 @@ func TestAccIBMDatabaseInstance_Elasticsearch_Group(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-elasticsearch"), resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "node_count", "3"), - resource.TestCheckResourceAttr(name, "node_memory_allocation_mb", "1024"), - resource.TestCheckResourceAttr(name, "node_disk_allocation_mb", "6144"), - resource.TestCheckResourceAttr(name, "node_cpu_allocation_count", "3"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "groups.0.count", "3"), resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "3072"), resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "18432"), @@ -259,11 +229,7 @@ func TestAccIBMDatabaseInstance_Elasticsearch_Group(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-elasticsearch"), resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "node_count", "3"), - resource.TestCheckResourceAttr(name, "node_memory_allocation_mb", "1024"), - resource.TestCheckResourceAttr(name, "node_disk_allocation_mb", "6144"), - resource.TestCheckResourceAttr(name, "node_cpu_allocation_count", "3"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "groups.0.count", "3"), resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "3072"), resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "18432"), @@ -280,11 +246,7 @@ func TestAccIBMDatabaseInstance_Elasticsearch_Group(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-elasticsearch"), resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "node_count", "4"), - resource.TestCheckResourceAttr(name, "node_memory_allocation_mb", "1024"), - resource.TestCheckResourceAttr(name, "node_disk_allocation_mb", "6144"), - resource.TestCheckResourceAttr(name, "node_cpu_allocation_count", "3"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "groups.0.count", "4"), resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "4096"), resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "24576"), @@ -325,7 +287,7 @@ func TestAccIBMDatabaseInstanceElasticsearchImport(t *testing.T) { resource.TestCheckResourceAttr(resourceName, "name", serviceName), resource.TestCheckResourceAttr(resourceName, "service", "databases-for-elasticsearch"), resource.TestCheckResourceAttr(resourceName, "plan", "standard"), - resource.TestCheckResourceAttr(resourceName, "location", acc.IcdDbRegion), + resource.TestCheckResourceAttr(resourceName, "location", acc.Region()), ), }, { @@ -333,7 +295,7 @@ func TestAccIBMDatabaseInstanceElasticsearchImport(t *testing.T) { ImportState: true, ImportStateVerify: true, ImportStateVerifyIgnore: []string{ - "wait_time_minutes", "plan_validation"}, + "wait_time_minutes"}, }, }, }) @@ -354,12 +316,10 @@ func testAccCheckIBMDatabaseInstanceElasticsearchBasic(databaseResourceGroup str service = "databases-for-elasticsearch" plan = "standard" location = "%[3]s" - adminpassword = "password12" - members_memory_allocation_mb = 3072 - members_disk_allocation_mb = 15360 + adminpassword = "password12345678" users { name = "user123" - password = "password12" + password = "password12345678" } allowlist { address = "172.168.1.2/32" @@ -372,7 +332,7 @@ func testAccCheckIBMDatabaseInstanceElasticsearchBasic(databaseResourceGroup str delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceElasticsearchFullyspecified(databaseResourceGroup string, name string) string { @@ -388,16 +348,14 @@ func testAccCheckIBMDatabaseInstanceElasticsearchFullyspecified(databaseResource service = "databases-for-elasticsearch" plan = "standard" location = "%[3]s" - adminpassword = "password12" - members_memory_allocation_mb = 6144 - members_disk_allocation_mb = 18432 + adminpassword = "password12345678" users { name = "user123" - password = "password12" + password = "password12345678" } users { name = "user124" - password = "password12" + password = "password12345678" } allowlist { address = "172.168.1.2/32" @@ -415,7 +373,7 @@ func testAccCheckIBMDatabaseInstanceElasticsearchFullyspecified(databaseResource } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceElasticsearchReduced(databaseResourceGroup string, name string) string { @@ -431,9 +389,7 @@ func testAccCheckIBMDatabaseInstanceElasticsearchReduced(databaseResourceGroup s service = "databases-for-elasticsearch" plan = "standard" location = "%[3]s" - adminpassword = "password12" - members_memory_allocation_mb = 3072 - members_disk_allocation_mb = 18432 + adminpassword = "password12345678" timeouts { create = "120m" @@ -441,7 +397,7 @@ func testAccCheckIBMDatabaseInstanceElasticsearchReduced(databaseResourceGroup s delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceElasticsearchGroupMigration(databaseResourceGroup string, name string) string { @@ -457,7 +413,7 @@ func testAccCheckIBMDatabaseInstanceElasticsearchGroupMigration(databaseResource service = "databases-for-elasticsearch" plan = "standard" location = "%[3]s" - adminpassword = "password12" + adminpassword = "password12345678" group { group_id = "member" @@ -476,7 +432,7 @@ func testAccCheckIBMDatabaseInstanceElasticsearchGroupMigration(databaseResource delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceElasticsearchNodeBasic(databaseResourceGroup string, name string) string { @@ -492,15 +448,26 @@ func testAccCheckIBMDatabaseInstanceElasticsearchNodeBasic(databaseResourceGroup service = "databases-for-elasticsearch" plan = "standard" location = "%[3]s" - adminpassword = "password12" - node_count = 3 - node_memory_allocation_mb = 1024 - node_disk_allocation_mb = 5120 - node_cpu_allocation_count = 3 + adminpassword = "password12345678" + group { + group_id = "member" + members { + allocation_count = 3 + } + memory { + allocation_mb = 1024 + } + disk { + allocation_mb = 5120 + } + cpu { + allocation_count = 3 + } + } users { name = "user123" - password = "password12" + password = "password12345678" } allowlist { address = "172.168.1.2/32" @@ -513,7 +480,7 @@ func testAccCheckIBMDatabaseInstanceElasticsearchNodeBasic(databaseResourceGroup delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceElasticsearchNodeFullyspecified(databaseResourceGroup string, name string) string { @@ -529,18 +496,29 @@ func testAccCheckIBMDatabaseInstanceElasticsearchNodeFullyspecified(databaseReso service = "databases-for-elasticsearch" plan = "standard" location = "%[3]s" - adminpassword = "password12" - node_count = 3 - node_memory_allocation_mb = 1024 - node_disk_allocation_mb = 6144 - node_cpu_allocation_count = 3 + adminpassword = "password12345678" + group { + group_id = "member" + members { + allocation_count = 3 + } + memory { + allocation_mb = 1024 + } + disk { + allocation_mb = 6144 + } + cpu { + allocation_count = 3 + } + } users { name = "user123" - password = "password12" + password = "password12345678" } users { name = "user124" - password = "password12" + password = "password12345678" } allowlist { address = "172.168.1.2/32" @@ -557,7 +535,7 @@ func testAccCheckIBMDatabaseInstanceElasticsearchNodeFullyspecified(databaseReso delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceElasticsearchNodeReduced(databaseResourceGroup string, name string) string { @@ -573,11 +551,22 @@ func testAccCheckIBMDatabaseInstanceElasticsearchNodeReduced(databaseResourceGro service = "databases-for-elasticsearch" plan = "standard" location = "%[3]s" - adminpassword = "password12" - node_count = 3 - node_memory_allocation_mb = 1024 - node_disk_allocation_mb = 6144 - node_cpu_allocation_count = 3 + adminpassword = "password12345678" + group { + group_id = "member" + members { + allocation_count = 3 + } + memory { + allocation_mb = 1024 + } + disk { + allocation_mb = 6144 + } + cpu { + allocation_count = 3 + } + } timeouts { create = "120m" @@ -585,7 +574,7 @@ func testAccCheckIBMDatabaseInstanceElasticsearchNodeReduced(databaseResourceGro delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceElasticsearchNodeScaleOut(databaseResourceGroup string, name string) string { @@ -601,11 +590,22 @@ func testAccCheckIBMDatabaseInstanceElasticsearchNodeScaleOut(databaseResourceGr service = "databases-for-elasticsearch" plan = "standard" location = "%[3]s" - adminpassword = "password12" - node_count = 4 - node_memory_allocation_mb = 1024 - node_disk_allocation_mb = 6144 - node_cpu_allocation_count = 3 + adminpassword = "password12345678" + group { + group_id = "member" + members { + allocation_count = 4 + } + memory { + allocation_mb = 1024 + } + disk { + allocation_mb = 6144 + } + cpu { + allocation_count = 3 + } + } timeouts { create = "120m" @@ -613,7 +613,7 @@ func testAccCheckIBMDatabaseInstanceElasticsearchNodeScaleOut(databaseResourceGr delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceElasticsearchGroupBasic(databaseResourceGroup string, name string) string { @@ -629,7 +629,7 @@ func testAccCheckIBMDatabaseInstanceElasticsearchGroupBasic(databaseResourceGrou service = "databases-for-elasticsearch" plan = "standard" location = "%[3]s" - adminpassword = "password12" + adminpassword = "password12345678" group { group_id = "member" @@ -649,7 +649,7 @@ func testAccCheckIBMDatabaseInstanceElasticsearchGroupBasic(databaseResourceGrou users { name = "user123" - password = "password12" + password = "password12345678" } allowlist { address = "172.168.1.2/32" @@ -662,7 +662,7 @@ func testAccCheckIBMDatabaseInstanceElasticsearchGroupBasic(databaseResourceGrou delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceElasticsearchGroupFullyspecified(databaseResourceGroup string, name string) string { @@ -678,7 +678,7 @@ func testAccCheckIBMDatabaseInstanceElasticsearchGroupFullyspecified(databaseRes service = "databases-for-elasticsearch" plan = "standard" location = "%[3]s" - adminpassword = "password12" + adminpassword = "password12345678" group { group_id = "member" @@ -697,11 +697,11 @@ func testAccCheckIBMDatabaseInstanceElasticsearchGroupFullyspecified(databaseRes } users { name = "user123" - password = "password12" + password = "password12345678" } users { name = "user124" - password = "password12" + password = "password12345678" } allowlist { address = "172.168.1.2/32" @@ -719,7 +719,7 @@ func testAccCheckIBMDatabaseInstanceElasticsearchGroupFullyspecified(databaseRes } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceElasticsearchGroupReduced(databaseResourceGroup string, name string) string { @@ -735,7 +735,7 @@ func testAccCheckIBMDatabaseInstanceElasticsearchGroupReduced(databaseResourceGr service = "databases-for-elasticsearch" plan = "standard" location = "%[3]s" - adminpassword = "password12" + adminpassword = "password12345678" group { group_id = "member" @@ -759,7 +759,7 @@ func testAccCheckIBMDatabaseInstanceElasticsearchGroupReduced(databaseResourceGr delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceElasticsearchGroupScaleOut(databaseResourceGroup string, name string) string { @@ -775,7 +775,7 @@ func testAccCheckIBMDatabaseInstanceElasticsearchGroupScaleOut(databaseResourceG service = "databases-for-elasticsearch" plan = "standard" location = "%[3]s" - adminpassword = "password12" + adminpassword = "password12345678" group { group_id = "member" @@ -798,7 +798,7 @@ func testAccCheckIBMDatabaseInstanceElasticsearchGroupScaleOut(databaseResourceG delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceElasticsearchImport(databaseResourceGroup string, name string) string { @@ -822,5 +822,5 @@ func testAccCheckIBMDatabaseInstanceElasticsearchImport(databaseResourceGroup st } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } diff --git a/ibm/service/database/resource_ibm_database_etcd_test.go b/ibm/service/database/resource_ibm_database_etcd_test.go index c362210aaa..07e2eea5e6 100644 --- a/ibm/service/database/resource_ibm_database_etcd_test.go +++ b/ibm/service/database/resource_ibm_database_etcd_test.go @@ -34,10 +34,10 @@ func TestAccIBMDatabaseInstance_Etcd_Basic(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-etcd"), resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "adminuser", "root"), - resource.TestCheckResourceAttr(name, "members_memory_allocation_mb", "3072"), - resource.TestCheckResourceAttr(name, "members_disk_allocation_mb", "61440"), + resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "9216"), + resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "184320"), resource.TestCheckResourceAttr(name, "allowlist.#", "1"), resource.TestCheckResourceAttr(name, "users.#", "1"), resource.TestCheckResourceAttr(name, "connectionstrings.#", "2"), @@ -54,9 +54,9 @@ func TestAccIBMDatabaseInstance_Etcd_Basic(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-etcd"), resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "members_memory_allocation_mb", "6144"), - resource.TestCheckResourceAttr(name, "members_disk_allocation_mb", "64512"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), + resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "18432"), + resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "193536"), resource.TestCheckResourceAttr(name, "allowlist.#", "2"), resource.TestCheckResourceAttr(name, "users.#", "2"), resource.TestCheckResourceAttr(name, "connectionstrings.#", "3"), @@ -68,9 +68,9 @@ func TestAccIBMDatabaseInstance_Etcd_Basic(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-etcd"), resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "members_memory_allocation_mb", "3072"), - resource.TestCheckResourceAttr(name, "members_disk_allocation_mb", "64512"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), + resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "9216"), + resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "193536"), resource.TestCheckResourceAttr(name, "allowlist.#", "0"), resource.TestCheckResourceAttr(name, "users.#", "0"), resource.TestCheckResourceAttr(name, "connectionstrings.#", "1"), @@ -102,7 +102,7 @@ func TestAccIBMDatabaseInstanceEtcdImport(t *testing.T) { resource.TestCheckResourceAttr(resourceName, "name", serviceName), resource.TestCheckResourceAttr(resourceName, "service", "databases-for-etcd"), resource.TestCheckResourceAttr(resourceName, "plan", "standard"), - resource.TestCheckResourceAttr(resourceName, "location", acc.IcdDbRegion), + resource.TestCheckResourceAttr(resourceName, "location", acc.Region()), ), }, { @@ -110,7 +110,7 @@ func TestAccIBMDatabaseInstanceEtcdImport(t *testing.T) { ImportState: true, ImportStateVerify: true, ImportStateVerifyIgnore: []string{ - "wait_time_minutes", "plan_validation"}, + "wait_time_minutes"}, }, }, }) @@ -124,26 +124,33 @@ func testAccCheckIBMDatabaseInstanceEtcdBasic(databaseResourceGroup string, name is_default = true # name = "%[1]s" } - + resource "ibm_database" "%[2]s" { resource_group_id = data.ibm_resource_group.test_acc.id name = "%[2]s" service = "databases-for-etcd" plan = "standard" location = "%[3]s" - adminpassword = "password12" - members_memory_allocation_mb = 3072 - members_disk_allocation_mb = 61440 + adminpassword = "password12345678" + group { + group_id = "member" + memory { + allocation_mb = 3072 + } + disk { + allocation_mb = 61440 + } + } users { name = "user123" - password = "password12" + password = "password12345678" } allowlist { address = "172.168.1.2/32" description = "desc1" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceEtcdFullyspecified(databaseResourceGroup string, name string) string { @@ -152,23 +159,30 @@ func testAccCheckIBMDatabaseInstanceEtcdFullyspecified(databaseResourceGroup str is_default = true # name = "%[1]s" } - + resource "ibm_database" "%[2]s" { resource_group_id = data.ibm_resource_group.test_acc.id name = "%[2]s" service = "databases-for-etcd" plan = "standard" location = "%[3]s" - adminpassword = "password12" - members_memory_allocation_mb = 6144 - members_disk_allocation_mb = 64512 + adminpassword = "password12345678" + group { + group_id = "member" + memory { + allocation_mb = 6144 + } + disk { + allocation_mb = 64512 + } + } users { name = "user123" - password = "password12" + password = "password12345678" } users { name = "user124" - password = "password12" + password = "password12345678" } allowlist { address = "172.168.1.2/32" @@ -179,8 +193,8 @@ func testAccCheckIBMDatabaseInstanceEtcdFullyspecified(databaseResourceGroup str description = "desc" } } - - `, databaseResourceGroup, name, acc.IcdDbRegion) + + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceEtcdReduced(databaseResourceGroup string, name string) string { @@ -189,18 +203,25 @@ func testAccCheckIBMDatabaseInstanceEtcdReduced(databaseResourceGroup string, na is_default = true # name = "%[1]s" } - + resource "ibm_database" "%[2]s" { resource_group_id = data.ibm_resource_group.test_acc.id name = "%[2]s" service = "databases-for-etcd" plan = "standard" location = "%[3]s" - adminpassword = "password12" - members_memory_allocation_mb = 3072 - members_disk_allocation_mb = 64512 + adminpassword = "password12345678" + group { + group_id = "member" + memory { + allocation_mb = 3072 + } + disk { + allocation_mb = 64512 + } + } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceEtcdImport(databaseResourceGroup string, name string) string { @@ -209,7 +230,7 @@ func testAccCheckIBMDatabaseInstanceEtcdImport(databaseResourceGroup string, nam is_default = true # name = "%[1]s" } - + resource "ibm_database" "%[2]s" { resource_group_id = data.ibm_resource_group.test_acc.id name = "%[2]s" @@ -217,5 +238,5 @@ func testAccCheckIBMDatabaseInstanceEtcdImport(databaseResourceGroup string, nam plan = "standard" location = "%[3]s" } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } diff --git a/ibm/service/database/resource_ibm_database_mongodb_enterprise_test.go b/ibm/service/database/resource_ibm_database_mongodb_enterprise_test.go index 74974d9675..d3ed077681 100644 --- a/ibm/service/database/resource_ibm_database_mongodb_enterprise_test.go +++ b/ibm/service/database/resource_ibm_database_mongodb_enterprise_test.go @@ -34,11 +34,11 @@ func TestAccIBMMongoDBEnterpriseDatabaseInstanceBasic(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-mongodb"), resource.TestCheckResourceAttr(name, "plan", "enterprise"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "adminuser", "admin"), - resource.TestCheckResourceAttr(name, "members_memory_allocation_mb", "43008"), - resource.TestCheckResourceAttr(name, "members_disk_allocation_mb", "61440"), resource.TestCheckResourceAttr(name, "service_endpoints", "public"), + resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "43008"), + resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "61440"), resource.TestCheckResourceAttr(name, "allowlist.#", "1"), resource.TestCheckResourceAttr(name, "users.#", "1"), resource.TestCheckResourceAttr(name, "connectionstrings.#", "2"), @@ -55,10 +55,10 @@ func TestAccIBMMongoDBEnterpriseDatabaseInstanceBasic(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-mongodb"), resource.TestCheckResourceAttr(name, "plan", "enterprise"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "members_memory_allocation_mb", "86016"), - resource.TestCheckResourceAttr(name, "members_disk_allocation_mb", "122880"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "service_endpoints", "public"), + resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "86016"), + resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "122880"), resource.TestCheckResourceAttr(name, "allowlist.#", "2"), resource.TestCheckResourceAttr(name, "users.#", "2"), resource.TestCheckResourceAttr(name, "users.1.type", "ops_manager"), @@ -79,10 +79,10 @@ func TestAccIBMMongoDBEnterpriseDatabaseInstanceBasic(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-mongodb"), resource.TestCheckResourceAttr(name, "plan", "enterprise"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "members_memory_allocation_mb", "43008"), - resource.TestCheckResourceAttr(name, "members_disk_allocation_mb", "122880"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "allowlist.#", "0"), + resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "43008"), + resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "122880"), resource.TestCheckResourceAttr(name, "users.#", "0"), resource.TestCheckResourceAttr(name, "connectionstrings.#", "1"), resource.TestCheckResourceAttr(name, "tags.#", "1"), @@ -93,7 +93,7 @@ func TestAccIBMMongoDBEnterpriseDatabaseInstanceBasic(t *testing.T) { ImportState: true, ImportStateVerify: true, ImportStateVerifyIgnore: []string{ - "wait_time_minutes", "plan_validation", "adminpassword", "connectionstrings.0.queryoptions"}, + "wait_time_minutes", "adminpassword", "connectionstrings.0.queryoptions", "group"}, }, }, }) @@ -119,11 +119,11 @@ func TestAccIBMMongoDBEnterpriseDatabaseInstanceGroupBasic(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-mongodb"), resource.TestCheckResourceAttr(name, "plan", "enterprise"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "adminuser", "admin"), - resource.TestCheckResourceAttr(name, "members_memory_allocation_mb", "43008"), - resource.TestCheckResourceAttr(name, "members_disk_allocation_mb", "61440"), resource.TestCheckResourceAttr(name, "service_endpoints", "public"), + resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "43008"), + resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "61440"), resource.TestCheckResourceAttr(name, "connectionstrings.#", "1"), resource.TestCheckResourceAttr(name, "connectionstrings.0.name", "admin"), resource.TestCheckResourceAttr(name, "groups.0.count", "3"), @@ -138,6 +138,62 @@ func TestAccIBMMongoDBEnterpriseDatabaseInstanceGroupBasic(t *testing.T) { }) } +func TestAccIBMMongoDBEnterpriseDatabaseInstancePITR(t *testing.T) { + t.Parallel() + databaseResourceGroup := "Default" + var databaseInstanceOne string + var databaseInstanceTwo string + serviceName := fmt.Sprintf("tf-mongodbee-%d", acctest.RandIntRange(10, 100)) + pitrServiceName := serviceName + "-pitr" + resourceName := "ibm_database." + serviceName + pitrResourceName := "ibm_database." + pitrServiceName + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + ExternalProviders: map[string]resource.ExternalProvider{ + "time": { + Source: "hashicorp/time", + VersionConstraint: ">=0.9.1", + }, + }, + ProviderFactories: acc.TestAccProviderFactories(), + CheckDestroy: testAccCheckIBMDatabaseInstanceDestroy, + Steps: []resource.TestStep{ + { + Config: testAccCheckIBMDatabaseInstanceMongoDBEnterpriseMinimal(databaseResourceGroup, serviceName), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIBMDatabaseInstanceExists(resourceName, &databaseInstanceOne), + resource.TestCheckResourceAttr(resourceName, "name", serviceName), + resource.TestCheckResourceAttr(resourceName, "service", "databases-for-mongodb"), + resource.TestCheckResourceAttr(resourceName, "plan", "enterprise"), + resource.TestCheckResourceAttr(resourceName, "location", acc.Region()), + + resource.TestCheckResourceAttr(resourceName, "groups.0.count", "3"), + resource.TestCheckResourceAttr(resourceName, "groups.1.count", "0"), + resource.TestCheckResourceAttr(resourceName, "groups.2.count", "0"), + ), + }, + { + Config: acc.ConfigCompose(acc.ConfigAlternateRegionProvider(), + testAccCheckIBMDatabaseInstanceMongoDBEnterpriseMinimal(databaseResourceGroup, serviceName), + testAccCheckIBMDatabaseInstanceMongoDBEnterpriseMinimal_PITR(databaseResourceGroup, serviceName)), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIBMDatabaseInstanceExists(resourceName, &databaseInstanceOne), + testAccCheckIBMDatabaseInstanceExists(pitrResourceName, &databaseInstanceTwo), + resource.TestCheckResourceAttr(pitrResourceName, "name", pitrServiceName), + resource.TestCheckResourceAttr(pitrResourceName, "service", "databases-for-mongodb"), + resource.TestCheckResourceAttr(pitrResourceName, "plan", "enterprise"), + resource.TestCheckResourceAttr(pitrResourceName, "location", acc.RegionAlternate()), + resource.TestCheckResourceAttr(pitrResourceName, "adminuser", "admin"), + resource.TestCheckResourceAttr(pitrResourceName, "groups.0.count", "3"), + resource.TestCheckResourceAttr(pitrResourceName, "groups.1.count", "0"), + resource.TestCheckResourceAttr(pitrResourceName, "groups.2.count", "0"), + ), + }, + }, + }) +} + func testAccCheckIBMDatabaseInstanceMongoDBEnterpriseBasic(databaseResourceGroup string, name string) string { return fmt.Sprintf(` data "ibm_resource_group" "test_acc" { @@ -150,13 +206,20 @@ func testAccCheckIBMDatabaseInstanceMongoDBEnterpriseBasic(databaseResourceGroup service = "databases-for-mongodb" plan = "enterprise" location = "%[3]s" - adminpassword = "password12" - members_disk_allocation_mb = 61440 - members_memory_allocation_mb = 43008 + adminpassword = "password12345678" tags = ["one:two"] + group { + group_id = "member" + memory { + allocation_mb = 14336 + } + disk { + allocation_mb = 20480 + } + } users { name = "user123" - password = "password12" + password = "password12345678" type = "database" } allowlist { @@ -169,7 +232,7 @@ func testAccCheckIBMDatabaseInstanceMongoDBEnterpriseBasic(databaseResourceGroup delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceMongoDBEnterpriseFullyspecified(databaseResourceGroup string, name string) string { @@ -184,19 +247,28 @@ func testAccCheckIBMDatabaseInstanceMongoDBEnterpriseFullyspecified(databaseReso service = "databases-for-mongodb" plan = "enterprise" location = "%[3]s" - adminpassword = "password12" - members_memory_allocation_mb = 86016 - members_disk_allocation_mb = 122880 - members_cpu_allocation_count = 27 + adminpassword = "password12345678" tags = ["one:two"] + group { + group_id = "member" + memory { + allocation_mb = 28672 + } + disk { + allocation_mb = 40960 + } + cpu { + allocation_count = 9 + } + } users { name = "user123" - password = "password12" + password = "password12345678" type = "database" } users { name = "user124" - password = "password12$password" + password = "password12345678$password" type = "ops_manager" } allowlist { @@ -213,7 +285,7 @@ func testAccCheckIBMDatabaseInstanceMongoDBEnterpriseFullyspecified(databaseReso delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceMongoDBEnterpriseReduced(databaseResourceGroup string, name string) string { @@ -228,18 +300,25 @@ func testAccCheckIBMDatabaseInstanceMongoDBEnterpriseReduced(databaseResourceGro service = "databases-for-mongodb" plan = "enterprise" location = "%[3]s" - adminpassword = "password12" - members_disk_allocation_mb = 122880 - members_memory_allocation_mb = 43008 + adminpassword = "password12345678" service_endpoints = "public" tags = ["one:two"] + group { + group_id = "member" + memory { + allocation_mb = 14336 + } + disk { + allocation_mb = 40960 + } + } timeouts { create = "480m" update = "480m" delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceMongoDBEnterpriseGroupBasic(databaseResourceGroup string, name string) string { @@ -254,7 +333,7 @@ func testAccCheckIBMDatabaseInstanceMongoDBEnterpriseGroupBasic(databaseResource service = "databases-for-mongodb" plan = "enterprise" location = "%[3]s" - adminpassword = "password12" + adminpassword = "password12345678" tags = ["one:two"] group { @@ -290,5 +369,57 @@ func testAccCheckIBMDatabaseInstanceMongoDBEnterpriseGroupBasic(databaseResource delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) +} + +func testAccCheckIBMDatabaseInstanceMongoDBEnterpriseMinimal(databaseResourceGroup string, name string) string { + return fmt.Sprintf(` + data "ibm_resource_group" "test_acc" { + is_default = true + } + + resource "ibm_database" "%[2]s" { + resource_group_id = data.ibm_resource_group.test_acc.id + name = "%[2]s" + service = "databases-for-mongodb" + plan = "enterprise" + location = "%[3]s" + + timeouts { + create = "4h" + update = "4h" + delete = "15m" + } + } + `, databaseResourceGroup, name, acc.Region()) +} + +func testAccCheckIBMDatabaseInstanceMongoDBEnterpriseMinimal_PITR(databaseResourceGroup string, name string) string { + return fmt.Sprintf(` + resource "time_sleep" "wait_time" { + create_duration = "1h" + depends_on = [ibm_database.%[2]s] + } + + resource "ibm_database" "%[2]s-pitr" { + provider = "%[1]s" + depends_on = [time_sleep.wait_time, ibm_database.%[2]s] + + resource_group_id = data.ibm_resource_group.test_acc.id + name = "%[2]s-pitr" + service = "databases-for-mongodb" + plan = "enterprise" + location = "%[3]s" + point_in_time_recovery_deployment_id = ibm_database.%[2]s.id + point_in_time_recovery_time = "" + offline_restore = true + + timeouts { + create = "4h" + update = "4h" + delete = "15m" + } + } + + `, acc.ProviderNameAlternate, name, acc.RegionAlternate()) } diff --git a/ibm/service/database/resource_ibm_database_mongodb_sharding_test.go b/ibm/service/database/resource_ibm_database_mongodb_sharding_test.go index 7ced69aa72..1cce4bc9a4 100644 --- a/ibm/service/database/resource_ibm_database_mongodb_sharding_test.go +++ b/ibm/service/database/resource_ibm_database_mongodb_sharding_test.go @@ -34,10 +34,10 @@ func TestAccIBMMongoDBShardingDatabaseInstanceBasic(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-mongodb"), resource.TestCheckResourceAttr(name, "plan", "enterprise-sharding"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "adminuser", "admin"), - resource.TestCheckResourceAttr(name, "members_memory_allocation_mb", "86016"), - resource.TestCheckResourceAttr(name, "members_disk_allocation_mb", "122880"), + resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "43008"), + resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "61440"), resource.TestCheckResourceAttr(name, "allowlist.#", "1"), resource.TestCheckResourceAttr(name, "users.#", "1"), resource.TestCheckResourceAttr(name, "connectionstrings.#", "2"), @@ -53,9 +53,9 @@ func TestAccIBMMongoDBShardingDatabaseInstanceBasic(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-mongodb"), resource.TestCheckResourceAttr(name, "plan", "enterprise-sharding"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "members_memory_allocation_mb", "86016"), - resource.TestCheckResourceAttr(name, "members_disk_allocation_mb", "122880"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), + resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "86016"), + resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "122880"), resource.TestCheckResourceAttr(name, "allowlist.#", "2"), resource.TestCheckResourceAttr(name, "users.#", "2"), resource.TestCheckResourceAttr(name, "connectionstrings.#", "3"), @@ -70,9 +70,9 @@ func TestAccIBMMongoDBShardingDatabaseInstanceBasic(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-mongodb"), resource.TestCheckResourceAttr(name, "plan", "enterprise-sharding"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "members_memory_allocation_mb", "86016"), - resource.TestCheckResourceAttr(name, "members_disk_allocation_mb", "122880"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), + resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "43008"), + resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "122880"), resource.TestCheckResourceAttr(name, "allowlist.#", "0"), resource.TestCheckResourceAttr(name, "users.#", "0"), resource.TestCheckResourceAttr(name, "connectionstrings.#", "1"), @@ -94,12 +94,19 @@ func testAccCheckIBMDatabaseInstanceMongoDBShardingBasic(databaseResourceGroup s service = "databases-for-mongodb" plan = "enterprise-sharding" location = "%[3]s" - adminpassword = "password12" - members_disk_allocation_mb = 122880 - members_memory_allocation_mb = 86016 + adminpassword = "password12345678" + group { + group_id = "member" + memory { + allocation_mb = 14336 + } + disk { + allocation_mb = 20480 + } + } users { name = "user123" - password = "password12" + password = "password12345678" type = "database" } allowlist { @@ -112,7 +119,7 @@ func testAccCheckIBMDatabaseInstanceMongoDBShardingBasic(databaseResourceGroup s delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceMongoDBShardingFullyspecified(databaseResourceGroup string, name string) string { @@ -127,13 +134,22 @@ func testAccCheckIBMDatabaseInstanceMongoDBShardingFullyspecified(databaseResour service = "databases-for-mongodb" plan = "enterprise-sharding" location = "%[3]s" - adminpassword = "password12" - members_memory_allocation_mb = 86016 - members_disk_allocation_mb = 122880 - members_cpu_allocation_count = 36 + adminpassword = "password12345678" + group { + group_id = "member" + memory { + allocation_mb = 28672 + } + disk { + allocation_mb = 40960 + } + cpu { + allocation_count = 9 + } + } users { name = "user123" - password = "password12" + password = "password12345678" type = "database" } users { @@ -155,7 +171,7 @@ func testAccCheckIBMDatabaseInstanceMongoDBShardingFullyspecified(databaseResour delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceMongoDBShardingReduced(databaseResourceGroup string, name string) string { @@ -170,9 +186,16 @@ func testAccCheckIBMDatabaseInstanceMongoDBShardingReduced(databaseResourceGroup service = "databases-for-mongodb" plan = "enterprise-sharding" location = "%[3]s" - adminpassword = "password12" - members_disk_allocation_mb = 122880 - members_memory_allocation_mb = 86016 + adminpassword = "password12345678" + group { + group_id = "member" + memory { + allocation_mb = 14336 + } + disk { + allocation_mb = 40960 + } + } service_endpoints = "public" timeouts { create = "480m" @@ -180,5 +203,5 @@ func testAccCheckIBMDatabaseInstanceMongoDBShardingReduced(databaseResourceGroup delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } diff --git a/ibm/service/database/resource_ibm_database_mongodb_test.go b/ibm/service/database/resource_ibm_database_mongodb_test.go index a96b59e67c..81fd0cd1f7 100644 --- a/ibm/service/database/resource_ibm_database_mongodb_test.go +++ b/ibm/service/database/resource_ibm_database_mongodb_test.go @@ -34,12 +34,12 @@ func TestAccIBMDatabaseInstanceMongodbBasic(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-mongodb"), resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "adminuser", "admin"), - resource.TestCheckResourceAttr(name, "members_memory_allocation_mb", "3072"), - resource.TestCheckResourceAttr(name, "members_disk_allocation_mb", "30720"), resource.TestCheckResourceAttr(name, "allowlist.#", "1"), resource.TestCheckResourceAttr(name, "users.#", "1"), + resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "3072"), + resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "30720"), resource.TestCheckResourceAttr(name, "connectionstrings.#", "2"), resource.TestCheckResourceAttr(name, "connectionstrings.1.name", "admin"), resource.TestMatchResourceAttr(name, "connectionstrings.1.certname", regexp.MustCompile("[-a-z0-9]*")), @@ -53,11 +53,11 @@ func TestAccIBMDatabaseInstanceMongodbBasic(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-mongodb"), resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "members_memory_allocation_mb", "6144"), - resource.TestCheckResourceAttr(name, "members_disk_allocation_mb", "30720"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "allowlist.#", "2"), resource.TestCheckResourceAttr(name, "users.#", "2"), + resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "6144"), + resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "30720"), resource.TestCheckResourceAttr(name, "connectionstrings.#", "3"), resource.TestCheckResourceAttr(name, "connectionstrings.2.name", "admin"), resource.TestCheckResourceAttr(name, "connectionstrings.0.scheme", "mongodb"), @@ -70,9 +70,9 @@ func TestAccIBMDatabaseInstanceMongodbBasic(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-mongodb"), resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "members_memory_allocation_mb", "3072"), - resource.TestCheckResourceAttr(name, "members_disk_allocation_mb", "30720"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), + resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "3072"), + resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "30720"), resource.TestCheckResourceAttr(name, "allowlist.#", "0"), resource.TestCheckResourceAttr(name, "users.#", "0"), resource.TestCheckResourceAttr(name, "connectionstrings.#", "1"), @@ -109,7 +109,7 @@ func TestAccIBMDatabaseInstanceMongodbImport(t *testing.T) { resource.TestCheckResourceAttr(resourceName, "name", serviceName), resource.TestCheckResourceAttr(resourceName, "service", "databases-for-mongodb"), resource.TestCheckResourceAttr(resourceName, "plan", "standard"), - resource.TestCheckResourceAttr(resourceName, "location", acc.IcdDbRegion), + resource.TestCheckResourceAttr(resourceName, "location", acc.Region()), ), }, { @@ -117,7 +117,7 @@ func TestAccIBMDatabaseInstanceMongodbImport(t *testing.T) { ImportState: true, ImportStateVerify: true, ImportStateVerifyIgnore: []string{ - "wait_time_minutes", "connectionstrings", "plan_validation"}, + "wait_time_minutes", "connectionstrings"}, }, }, }) @@ -128,26 +128,33 @@ func testAccCheckIBMDatabaseInstanceMongodbBasic(databaseResourceGroup string, n data "ibm_resource_group" "test_acc" { name = "%[1]s" } - + resource "ibm_database" "%[2]s" { resource_group_id = data.ibm_resource_group.test_acc.id name = "%[2]s" service = "databases-for-mongodb" plan = "standard" location = "%[3]s" - adminpassword = "password12" - members_memory_allocation_mb = 3072 - members_disk_allocation_mb = 30720 + adminpassword = "password12345678" + group { + group_id = "member" + memory { + allocation_mb = 1024 + } + disk { + allocation_mb = 10240 + } + } users { name = "user123" - password = "password12" + password = "password12345678" } allowlist { address = "172.168.1.2/32" description = "desc1" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceMongodbFullyspecified(databaseResourceGroup string, name string) string { @@ -155,23 +162,30 @@ func testAccCheckIBMDatabaseInstanceMongodbFullyspecified(databaseResourceGroup data "ibm_resource_group" "test_acc" { name = "%[1]s" } - + resource "ibm_database" "%[2]s" { resource_group_id = data.ibm_resource_group.test_acc.id name = "%[2]s" service = "databases-for-mongodb" plan = "standard" location = "%[3]s" - adminpassword = "password12" - members_memory_allocation_mb = 6144 - members_disk_allocation_mb = 30720 + adminpassword = "password12345678" + group { + group_id = "member" + memory { + allocation_mb = 2048 + } + disk { + allocation_mb = 10240 + } + } users { name = "user123" - password = "password12" + password = "password12345678" } users { name = "user124" - password = "password12" + password = "password12345678" } allowlist { address = "172.168.1.2/32" @@ -182,7 +196,7 @@ func testAccCheckIBMDatabaseInstanceMongodbFullyspecified(databaseResourceGroup description = "desc" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceMongodbReduced(databaseResourceGroup string, name string) string { @@ -190,19 +204,26 @@ func testAccCheckIBMDatabaseInstanceMongodbReduced(databaseResourceGroup string, data "ibm_resource_group" "test_acc" { name = "%[1]s" } - + resource "ibm_database" "%[2]s" { resource_group_id = data.ibm_resource_group.test_acc.id name = "%[2]s" service = "databases-for-mongodb" plan = "standard" location = "%[3]s" - adminpassword = "password12" - members_memory_allocation_mb = 3072 - members_disk_allocation_mb = 30720 + adminpassword = "password12345678" + group { + group_id = "member" + memory { + allocation_mb = 1024 + } + disk { + allocation_mb = 10240 + } + } } - - `, databaseResourceGroup, name, acc.IcdDbRegion) + + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceMongodbImport(databaseResourceGroup string, name string) string { @@ -211,7 +232,7 @@ func testAccCheckIBMDatabaseInstanceMongodbImport(databaseResourceGroup string, is_default = true # name = "%[1]s" } - + resource "ibm_database" "%[2]s" { resource_group_id = data.ibm_resource_group.test_acc.id name = "%[2]s" @@ -219,6 +240,6 @@ func testAccCheckIBMDatabaseInstanceMongodbImport(databaseResourceGroup string, plan = "standard" location = "%[3]s" } - - `, databaseResourceGroup, name, acc.IcdDbRegion) + + `, databaseResourceGroup, name, acc.Region()) } diff --git a/ibm/service/database/resource_ibm_database_mysql_test.go b/ibm/service/database/resource_ibm_database_mysql_test.go index 423d48d800..ddb33d5ffe 100644 --- a/ibm/service/database/resource_ibm_database_mysql_test.go +++ b/ibm/service/database/resource_ibm_database_mysql_test.go @@ -33,10 +33,10 @@ func TestAccIBMMysqlDatabaseInstanceBasic(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-mysql"), resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "adminuser", "admin"), - resource.TestCheckResourceAttr(name, "members_memory_allocation_mb", "3072"), - resource.TestCheckResourceAttr(name, "members_disk_allocation_mb", "61440"), + resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "3072"), + resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "61440"), resource.TestCheckResourceAttr(name, "service_endpoints", "public"), resource.TestCheckResourceAttr(name, "allowlist.#", "1"), resource.TestCheckResourceAttr(name, "users.#", "1"), @@ -54,9 +54,9 @@ func TestAccIBMMysqlDatabaseInstanceBasic(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-mysql"), resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "members_memory_allocation_mb", "6144"), - resource.TestCheckResourceAttr(name, "members_disk_allocation_mb", "92160"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), + resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "6144"), + resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "92160"), resource.TestCheckResourceAttr(name, "service_endpoints", "public-and-private"), resource.TestCheckResourceAttr(name, "allowlist.#", "2"), resource.TestCheckResourceAttr(name, "users.#", "2"), @@ -86,13 +86,20 @@ func testAccCheckIBMDatabaseInstanceMysqlBasic(databaseResourceGroup string, nam service = "databases-for-mysql" plan = "standard" location = "%[3]s" - adminpassword = "password12" - members_memory_allocation_mb = 3072 - members_disk_allocation_mb = 61440 + adminpassword = "password12345678" + group { + group_id = "member" + memory { + allocation_mb = 1024 + } + disk { + allocation_mb = 20480 + } + } tags = ["one:two"] users { name = "user123" - password = "password12" + password = "password12345678" } allowlist { address = "172.168.1.2/32" @@ -104,7 +111,7 @@ func testAccCheckIBMDatabaseInstanceMysqlBasic(databaseResourceGroup string, nam delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstanceMysqlFullyspecified(databaseResourceGroup string, name string) string { @@ -119,19 +126,28 @@ func testAccCheckIBMDatabaseInstanceMysqlFullyspecified(databaseResourceGroup st service = "databases-for-mysql" plan = "standard" location = "%[3]s" - adminpassword = "password12" - members_memory_allocation_mb = 6144 - members_disk_allocation_mb = 92160 - members_cpu_allocation_count = 12 + adminpassword = "password12345678" + group { + group_id = "member" + memory { + allocation_mb = 2048 + } + disk { + allocation_mb = 30720 + } + cpu { + allocation_count = 4 + } + } service_endpoints = "public-and-private" tags = ["one:two"] users { name = "user123" - password = "password12" + password = "password12345678" } users { name = "user124" - password = "password12" + password = "password12345678" } allowlist { address = "172.168.1.2/32" @@ -153,5 +169,5 @@ func testAccCheckIBMDatabaseInstanceMysqlFullyspecified(databaseResourceGroup st delete = "15m" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } diff --git a/ibm/service/database/resource_ibm_database_postgresql_test.go b/ibm/service/database/resource_ibm_database_postgresql_test.go index 609cbbb712..dc34b287c4 100644 --- a/ibm/service/database/resource_ibm_database_postgresql_test.go +++ b/ibm/service/database/resource_ibm_database_postgresql_test.go @@ -55,11 +55,11 @@ func TestAccIBMDatabaseInstancePostgresBasic(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-postgresql"), resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "adminuser", "admin"), - resource.TestCheckResourceAttr(name, "members_memory_allocation_mb", "2048"), - resource.TestCheckResourceAttr(name, "members_disk_allocation_mb", "10240"), - resource.TestCheckResourceAttr(name, "members_cpu_allocation_count", "0"), + resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "4096"), + resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "20480"), + resource.TestCheckResourceAttr(name, "groups.0.cpu.0.allocation_count", "0"), resource.TestCheckResourceAttr(name, "service_endpoints", "public"), resource.TestCheckResourceAttr(name, "allowlist.#", "1"), resource.TestCheckResourceAttr(name, "users.#", "1"), @@ -78,9 +78,9 @@ func TestAccIBMDatabaseInstancePostgresBasic(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-postgresql"), resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "members_memory_allocation_mb", "4096"), - resource.TestCheckResourceAttr(name, "members_disk_allocation_mb", "14336"), + resource.TestCheckResourceAttr(name, "location", acc.Region()), + resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "8192"), + resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "28672"), resource.TestCheckResourceAttr(name, "service_endpoints", "public-and-private"), resource.TestCheckResourceAttr(name, "allowlist.#", "2"), resource.TestCheckResourceAttr(name, "users.#", "3"), @@ -104,158 +104,6 @@ func TestAccIBMDatabaseInstancePostgresBasic(t *testing.T) { }) } -func TestAccIBMDatabaseInstancePostgresGroupMigration(t *testing.T) { - t.Parallel() - databaseResourceGroup := "default" - var databaseInstanceOne string - rnd := fmt.Sprintf("tf-Pgress-%d", acctest.RandIntRange(10, 100)) - testName := rnd - name := "ibm_database." + testName - - resource.Test(t, resource.TestCase{ - PreCheck: func() { acc.TestAccPreCheck(t) }, - Providers: acc.TestAccProviders, - CheckDestroy: testAccCheckIBMDatabaseInstanceDestroy, - Steps: []resource.TestStep{ - { - Config: testAccCheckIBMDatabaseInstancePostgresGroupDeprecated(databaseResourceGroup, testName), - Check: resource.ComposeAggregateTestCheckFunc( - testAccCheckIBMDatabaseInstanceExists(name, &databaseInstanceOne), - resource.TestCheckResourceAttr(name, "name", testName), - resource.TestCheckResourceAttr(name, "service", "databases-for-postgresql"), - resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "adminuser", "admin"), - resource.TestCheckResourceAttr(name, "groups.0.count", "2"), - resource.TestCheckResourceAttr(name, "members_memory_allocation_mb", "2048"), - resource.TestCheckResourceAttr(name, "members_disk_allocation_mb", "10240"), - resource.TestCheckResourceAttr(name, "members_cpu_allocation_count", "6"), - ), - }, - { - Config: testAccCheckIBMDatabaseInstancePostgresGroupMigrated(databaseResourceGroup, testName), - Check: resource.ComposeAggregateTestCheckFunc( - resource.TestCheckResourceAttr(name, "name", testName), - resource.TestCheckResourceAttr(name, "service", "databases-for-postgresql"), - resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "adminuser", "admin"), - resource.TestCheckResourceAttr(name, "groups.0.count", "2"), - resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "2048"), - resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "10240"), - resource.TestCheckResourceAttr(name, "groups.0.cpu.0.allocation_count", "6"), - ), - }, - }, - }) -} - -func TestAccIBMDatabaseInstancePostgresNode(t *testing.T) { - t.Parallel() - databaseResourceGroup := "default" - var databaseInstanceOne string - rnd := fmt.Sprintf("tf-Pgress-%d", acctest.RandIntRange(10, 100)) - testName := rnd - name := "ibm_database." + testName - - resource.Test(t, resource.TestCase{ - PreCheck: func() { acc.TestAccPreCheck(t) }, - Providers: acc.TestAccProviders, - CheckDestroy: testAccCheckIBMDatabaseInstanceDestroy, - Steps: []resource.TestStep{ - { - Config: testAccCheckIBMDatabaseInstancePostgresNodeBasic(databaseResourceGroup, testName), - Check: resource.ComposeAggregateTestCheckFunc( - testAccCheckIBMDatabaseInstanceExists(name, &databaseInstanceOne), - resource.TestCheckResourceAttr(name, "name", testName), - resource.TestCheckResourceAttr(name, "service", "databases-for-postgresql"), - resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "adminuser", "admin"), - resource.TestCheckResourceAttr(name, "node_count", "2"), - resource.TestCheckResourceAttr(name, "node_memory_allocation_mb", "1024"), - resource.TestCheckResourceAttr(name, "node_disk_allocation_mb", "5120"), - resource.TestCheckResourceAttr(name, "node_cpu_allocation_count", "3"), - resource.TestCheckResourceAttr(name, "service_endpoints", "public"), - resource.TestCheckResourceAttr(name, "allowlist.#", "1"), - resource.TestCheckResourceAttr(name, "users.#", "1"), - resource.TestCheckResourceAttr(name, "connectionstrings.#", "2"), - resource.TestCheckResourceAttr(name, "connectionstrings.1.name", "admin"), - resource.TestMatchResourceAttr(name, "connectionstrings.1.certname", regexp.MustCompile("[-a-z0-9]*")), - resource.TestMatchResourceAttr(name, "connectionstrings.1.certbase64", regexp.MustCompile("^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$")), - resource.TestCheckResourceAttr(name, "tags.#", "1"), - ), - }, - { - Config: testAccCheckIBMDatabaseInstancePostgresNodeFullyspecified(databaseResourceGroup, testName), - Check: resource.ComposeAggregateTestCheckFunc( - testAccCheckIBMDatabaseInstanceExists(name, &databaseInstanceOne), - resource.TestCheckResourceAttr(name, "name", testName), - resource.TestCheckResourceAttr(name, "service", "databases-for-postgresql"), - resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "node_count", "2"), - resource.TestCheckResourceAttr(name, "node_memory_allocation_mb", "1024"), - resource.TestCheckResourceAttr(name, "node_disk_allocation_mb", "7168"), - resource.TestCheckResourceAttr(name, "node_cpu_allocation_count", "3"), - resource.TestCheckResourceAttr(name, "service_endpoints", "public-and-private"), - resource.TestCheckResourceAttr(name, "allowlist.#", "2"), - resource.TestCheckResourceAttr(name, "users.#", "2"), - resource.TestCheckResourceAttr(name, "connectionstrings.#", "3"), - resource.TestCheckResourceAttr(name, "connectionstrings.2.name", "admin"), - resource.TestCheckResourceAttr(name, "connectionstrings.0.hosts.#", "1"), - resource.TestCheckResourceAttr(name, "connectionstrings.0.scheme", "postgres"), - resource.TestMatchResourceAttr(name, "connectionstrings.0.certname", regexp.MustCompile("[-a-z0-9]*")), - resource.TestMatchResourceAttr(name, "connectionstrings.0.certbase64", regexp.MustCompile("^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$")), - resource.TestMatchResourceAttr(name, "connectionstrings.0.database", regexp.MustCompile("[-a-z0-9]+")), - resource.TestCheckResourceAttr(name, "tags.#", "1"), - ), - }, - { - Config: testAccCheckIBMDatabaseInstancePostgresNodeReduced(databaseResourceGroup, testName), - Check: resource.ComposeAggregateTestCheckFunc( - testAccCheckIBMDatabaseInstanceExists(name, &databaseInstanceOne), - resource.TestCheckResourceAttr(name, "name", testName), - resource.TestCheckResourceAttr(name, "service", "databases-for-postgresql"), - resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "node_count", "2"), - resource.TestCheckResourceAttr(name, "node_memory_allocation_mb", "1024"), - resource.TestCheckResourceAttr(name, "node_disk_allocation_mb", "7168"), - resource.TestCheckResourceAttr(name, "node_cpu_allocation_count", "3"), - resource.TestCheckResourceAttr(name, "allowlist.#", "0"), - resource.TestCheckResourceAttr(name, "users.#", "0"), - resource.TestCheckResourceAttr(name, "connectionstrings.#", "1"), - resource.TestCheckResourceAttr(name, "tags.#", "1"), - ), - }, - { - Config: testAccCheckIBMDatabaseInstancePostgresNodeScaleOut(databaseResourceGroup, testName), - Check: resource.ComposeAggregateTestCheckFunc( - testAccCheckIBMDatabaseInstanceExists(name, &databaseInstanceOne), - resource.TestCheckResourceAttr(name, "name", testName), - resource.TestCheckResourceAttr(name, "service", "databases-for-postgresql"), - resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), - resource.TestCheckResourceAttr(name, "node_count", "3"), - resource.TestCheckResourceAttr(name, "node_memory_allocation_mb", "1024"), - resource.TestCheckResourceAttr(name, "node_disk_allocation_mb", "7168"), - resource.TestCheckResourceAttr(name, "node_cpu_allocation_count", "3"), - resource.TestCheckResourceAttr(name, "allowlist.#", "0"), - resource.TestCheckResourceAttr(name, "users.#", "0"), - resource.TestCheckResourceAttr(name, "connectionstrings.#", "1"), - resource.TestCheckResourceAttr(name, "tags.#", "1"), - ), - }, - // { - // ResourceName: name, - // ImportState: true, - // ImportStateVerify: true, - // }, - }, - }) -} - func TestAccIBMDatabaseInstancePostgresGroup(t *testing.T) { t.Parallel() databaseResourceGroup := "default" @@ -276,11 +124,11 @@ func TestAccIBMDatabaseInstancePostgresGroup(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-postgresql"), resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "adminuser", "admin"), resource.TestCheckResourceAttr(name, "groups.0.count", "2"), - resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "2048"), - resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "10240"), + resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "4096"), + resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "20480"), resource.TestCheckResourceAttr(name, "groups.0.cpu.0.allocation_count", "6"), resource.TestCheckResourceAttr(name, "service_endpoints", "public"), resource.TestCheckResourceAttr(name, "allowlist.#", "1"), @@ -299,10 +147,10 @@ func TestAccIBMDatabaseInstancePostgresGroup(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-postgresql"), resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "groups.0.count", "2"), - resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "2304"), - resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "14336"), + resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "4608"), + resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "28672"), resource.TestCheckResourceAttr(name, "groups.0.cpu.0.allocation_count", "6"), resource.TestCheckResourceAttr(name, "service_endpoints", "public-and-private"), resource.TestCheckResourceAttr(name, "allowlist.#", "2"), @@ -324,10 +172,10 @@ func TestAccIBMDatabaseInstancePostgresGroup(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-postgresql"), resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "groups.0.count", "2"), - resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "2048"), - resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "14336"), + resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "4096"), + resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "28672"), resource.TestCheckResourceAttr(name, "groups.0.cpu.0.allocation_count", "6"), resource.TestCheckResourceAttr(name, "allowlist.#", "0"), resource.TestCheckResourceAttr(name, "users.#", "0"), @@ -342,10 +190,10 @@ func TestAccIBMDatabaseInstancePostgresGroup(t *testing.T) { resource.TestCheckResourceAttr(name, "name", testName), resource.TestCheckResourceAttr(name, "service", "databases-for-postgresql"), resource.TestCheckResourceAttr(name, "plan", "standard"), - resource.TestCheckResourceAttr(name, "location", acc.IcdDbRegion), + resource.TestCheckResourceAttr(name, "location", acc.Region()), resource.TestCheckResourceAttr(name, "groups.0.count", "3"), - resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "3072"), - resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "21504"), + resource.TestCheckResourceAttr(name, "groups.0.memory.0.allocation_mb", "6144"), + resource.TestCheckResourceAttr(name, "groups.0.disk.0.allocation_mb", "43008"), resource.TestCheckResourceAttr(name, "groups.0.cpu.0.allocation_count", "9"), resource.TestCheckResourceAttr(name, "allowlist.#", "0"), resource.TestCheckResourceAttr(name, "users.#", "0"), @@ -379,7 +227,7 @@ func TestAccIBMDatabaseInstancePostgresImport(t *testing.T) { resource.TestCheckResourceAttr(resourceName, "name", serviceName), resource.TestCheckResourceAttr(resourceName, "service", "databases-for-postgresql"), resource.TestCheckResourceAttr(resourceName, "plan", "standard"), - resource.TestCheckResourceAttr(resourceName, "location", acc.IcdDbRegion), + resource.TestCheckResourceAttr(resourceName, "location", acc.Region()), ), }, { @@ -387,7 +235,7 @@ func TestAccIBMDatabaseInstancePostgresImport(t *testing.T) { ImportState: true, ImportStateVerify: true, ImportStateVerifyIgnore: []string{ - "wait_time_minutes", "plan_validation"}, + "wait_time_minutes"}, }, }, }) @@ -416,7 +264,7 @@ func TestAccIBMDatabaseInstancePostgresPITR(t *testing.T) { resource.TestCheckResourceAttr(resourceName, "name", serviceName), resource.TestCheckResourceAttr(resourceName, "service", "databases-for-postgresql"), resource.TestCheckResourceAttr(resourceName, "plan", "standard"), - resource.TestCheckResourceAttr(resourceName, "location", acc.IcdDbRegion), + resource.TestCheckResourceAttr(resourceName, "location", acc.Region()), ), }, { @@ -426,7 +274,7 @@ func TestAccIBMDatabaseInstancePostgresPITR(t *testing.T) { resource.TestCheckResourceAttr(pitrResource, "name", pitrServiceName), resource.TestCheckResourceAttr(pitrResource, "service", "databases-for-postgresql"), resource.TestCheckResourceAttr(pitrResource, "plan", "standard"), - resource.TestCheckResourceAttr(pitrResource, "location", acc.IcdDbRegion), + resource.TestCheckResourceAttr(pitrResource, "location", acc.Region()), ), }, }, @@ -567,13 +415,20 @@ func testAccCheckIBMDatabaseInstancePostgresBasic(databaseResourceGroup string, service = "databases-for-postgresql" plan = "standard" location = "%[3]s" - adminpassword = "password12" - members_memory_allocation_mb = 2048 - members_disk_allocation_mb = 10240 + adminpassword = "password12345678" + group { + group_id = "member" + memory { + allocation_mb = 2048 + } + disk { + allocation_mb = 10240 + } + } tags = ["one:two"] users { name = "user123" - password = "password12" + password = "password12345678" } allowlist { address = "172.168.1.2/32" @@ -592,7 +447,7 @@ func testAccCheckIBMDatabaseInstancePostgresBasic(databaseResourceGroup string, plugin_type = "wal2json" } } - `, databaseResourceGroup, name, acc.IcdDbRegion) + `, databaseResourceGroup, name, acc.Region()) } func testAccCheckIBMDatabaseInstancePostgresFullyspecified(databaseResourceGroup string, name string) string { @@ -607,23 +462,32 @@ func testAccCheckIBMDatabaseInstancePostgresFullyspecified(databaseResourceGroup service = "databases-for-postgresql" plan = "standard" location = "%[3]s" - adminpassword = "password12" - members_memory_allocation_mb = 4096 - members_disk_allocation_mb = 14336 - members_cpu_allocation_count = 6 + adminpassword = "password12345678" + group { + group_id = "member" + memory { + allocation_mb = 4096 + } + disk { + allocation_mb = 14336 + } + cpu { + allocation_count = 6 + } + } service_endpoints = "public-and-private" tags = ["one:two"] users { name = "user123" - password = "password12" + password = "password12345678" } users { name = "user124" - password = "password12" + password = "password12345678" } users { name = "repl" - password = "repl123456" + password = "repl123456password" } configuration = </?_-)", + }, + { + user: DatabaseUser{ + Username: "testy", + Password: "password12345678$password", + Type: "ops_manager", + }, + expectedError: "", + }, + { + user: DatabaseUser{ + Username: "testy", + Password: "~!@#$%^&*()=+[]{}|;:,.<>/?_-", + Type: "ops_manager", + }, + expectedError: "database user (testy) validation error:\npassword must contain at least one letter\npassword must contain at least one number", + }, + { + user: DatabaseUser{ + Username: "testy", + Password: "~!@#$%^&*()=+[]{}|;:,.<>/?_-a1", + Type: "ops_manager", + }, + expectedError: "", + }, + { + user: DatabaseUser{ + Username: "testy", + Password: "pizza1pizzapizza1", + Type: "database", + }, + expectedError: "", + }, + } + for _, tc := range testcases { + err := tc.user.Validate() + if tc.expectedError == "" { + if err != nil { + t.Errorf("TestValidateUserPassword: %q, %q unexpected error: %q", tc.user.Username, tc.user.Password, err.Error()) + } + } else { + assert.Equal(t, tc.expectedError, err.Error()) + } + } +} diff --git a/ibm/service/eventnotification/data_source_ibm_en_destination_custom_email.go b/ibm/service/eventnotification/data_source_ibm_en_destination_custom_email.go new file mode 100644 index 0000000000..c5480a1901 --- /dev/null +++ b/ibm/service/eventnotification/data_source_ibm_en_destination_custom_email.go @@ -0,0 +1,179 @@ +// Copyright IBM Corp. 2021 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package eventnotification + +import ( + "context" + "fmt" + + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + en "github.com/IBM/event-notifications-go-admin-sdk/eventnotificationsv1" +) + +func DataSourceIBMEnCustomEmailDestination() *schema.Resource { + return &schema.Resource{ + ReadContext: dataSourceIBMEnCustomEmailDestinationRead, + + Schema: map[string]*schema.Schema{ + "instance_guid": { + Type: schema.TypeString, + Required: true, + Description: "Unique identifier for IBM Cloud Event Notifications instance.", + }, + "destination_id": { + Type: schema.TypeString, + Required: true, + Description: "Unique identifier for Destination.", + }, + "name": { + Type: schema.TypeString, + Computed: true, + Description: "Destination name.", + }, + "description": { + Type: schema.TypeString, + Computed: true, + Description: "Destination description.", + }, + "type": { + Type: schema.TypeString, + Computed: true, + Description: "Destination type slack.", + }, + "config": { + Type: schema.TypeList, + Computed: true, + Description: "Payload describing a destination configuration.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "params": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "domain": { + Type: schema.TypeString, + Computed: true, + Description: "The custom doamin", + }, + }, + }, + }, + }, + }, + }, + "updated_at": { + Type: schema.TypeString, + Computed: true, + Description: "Last updated time.", + }, + "subscription_count": { + Type: schema.TypeInt, + Computed: true, + Description: "Number of subscriptions.", + }, + "subscription_names": { + Type: schema.TypeList, + Computed: true, + Description: "List of subscriptions.", + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + }, + } +} + +func dataSourceIBMEnCustomEmailDestinationRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + enClient, err := meta.(conns.ClientSession).EventNotificationsApiV1() + if err != nil { + return diag.FromErr(err) + } + + options := &en.GetDestinationOptions{} + + options.SetInstanceID(d.Get("instance_guid").(string)) + options.SetID(d.Get("destination_id").(string)) + + result, response, err := enClient.GetDestinationWithContext(context, options) + if err != nil { + return diag.FromErr(fmt.Errorf("GetDestination failed %s\n%s", err, response)) + } + + d.SetId(fmt.Sprintf("%s/%s", *options.InstanceID, *options.ID)) + + if err = d.Set("name", result.Name); err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting name: %s", err)) + } + + if result.Description != nil { + if err = d.Set("description", result.Description); err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting description: %s", err)) + } + } + + if err = d.Set("type", result.Type); err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting type: %s", err)) + } + + if result.Config != nil { + err = d.Set("config", enSlackDestinationFlattenConfig(*result.Config)) + if err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting config %s", err)) + } + } + + if result.SubscriptionNames != nil { + err = d.Set("subscription_names", result.SubscriptionNames) + if err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting subscription_names %s", err)) + } + } + + if err = d.Set("updated_at", flex.DateTimeToString(result.UpdatedAt)); err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting updated_at: %s", err)) + } + + if err = d.Set("subscription_count", flex.IntValue(result.SubscriptionCount)); err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting subscription_count: %s", err)) + } + + return nil +} + +func enCustomEmailDestinationFlattenConfig(result en.DestinationConfig) (finalList []map[string]interface{}) { + finalList = []map[string]interface{}{} + finalMap := enCustomEmailDestinationConfigToMap(result) + finalList = append(finalList, finalMap) + + return finalList +} + +func enCustomEmailDestinationConfigToMap(configItem en.DestinationConfig) (configMap map[string]interface{}) { + configMap = map[string]interface{}{} + + if configItem.Params != nil { + paramsList := []map[string]interface{}{} + paramsMap := enCustomEmailDestinationConfigParamsToMap(configItem.Params) + paramsList = append(paramsList, paramsMap) + configMap["params"] = paramsList + } + + return configMap +} + +func enCustomEmailDestinationConfigParamsToMap(paramsItem en.DestinationConfigOneOfIntf) (paramsMap map[string]interface{}) { + paramsMap = map[string]interface{}{} + + params := paramsItem.(*en.DestinationConfigOneOf) + + if params.URL != nil { + paramsMap["domain"] = params.Domain + } + return paramsMap +} diff --git a/ibm/service/eventnotification/data_source_ibm_en_destination_custom_email_test.go b/ibm/service/eventnotification/data_source_ibm_en_destination_custom_email_test.go new file mode 100644 index 0000000000..da2ae0a12f --- /dev/null +++ b/ibm/service/eventnotification/data_source_ibm_en_destination_custom_email_test.go @@ -0,0 +1,67 @@ +// Copyright IBM Corp. 2021 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package eventnotification_test + +import ( + "fmt" + "testing" + + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" +) + +func TestAccIBMEnCustomEmailDestinationDataSourceBasic(t *testing.T) { + name := fmt.Sprintf("tf_name_%d", acctest.RandIntRange(10, 100)) + instanceName := fmt.Sprintf("tf_name_%d", acctest.RandIntRange(10, 100)) + description := fmt.Sprintf("tf_description_%d", acctest.RandIntRange(10, 100)) + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + Steps: []resource.TestStep{ + { + Config: testAccCheckIBMEnCustomEmailDestinationDataSourceConfigBasic(instanceName, name, description), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("data.ibm_en_destination_custom_email.en_destination_data_6", "id"), + resource.TestCheckResourceAttrSet("data.ibm_en_destination_custom_email.en_destination_data_6", "instance_guid"), + resource.TestCheckResourceAttrSet("data.ibm_en_destination_custom_email.en_destination_data_6", "name"), + resource.TestCheckResourceAttrSet("data.ibm_en_destination_custom_email.en_destination_data_6", "description"), + resource.TestCheckResourceAttrSet("data.ibm_en_destination_custom_email.en_destination_data_6", "type"), + resource.TestCheckResourceAttrSet("data.ibm_en_destination_custom_email.en_destination_data_6", "updated_at"), + resource.TestCheckResourceAttrSet("data.ibm_en_destination_custom_email.en_destination_data_6", "destination_id"), + resource.TestCheckResourceAttrSet("data.ibm_en_destination_custom_email.en_destination_data_6", "subscription_count"), + ), + }, + }, + }) +} + +func testAccCheckIBMEnCustomEmailDestinationDataSourceConfigBasic(instanceName, name, description string) string { + return fmt.Sprintf(` + resource "ibm_resource_instance" "en_destination_datasource2" { + name = "%s" + location = "us-south" + plan = "standard" + service = "event-notifications" + } + + resource "ibm_en_destination_custom_email" "en_destination_datasource_4" { + instance_guid = ibm_resource_instance.en_destination_resource.guid + name = "%s" + type = "smtp_custom" + description = "%s" + config { + params { + domain = "mailx.com" + } + } + } + + data "ibm_en_destination_custom_email" "en_destination_data_6" { + instance_guid = ibm_resource_instance.en_destination_datasource2.guid + destination_id = ibm_en_destination_custom_email.en_destination_datasource_4.destination_id + } + `, instanceName, name, description) +} diff --git a/ibm/service/eventnotification/data_source_ibm_en_subscription_custom_email.go b/ibm/service/eventnotification/data_source_ibm_en_subscription_custom_email.go new file mode 100644 index 0000000000..34fc8a66df --- /dev/null +++ b/ibm/service/eventnotification/data_source_ibm_en_subscription_custom_email.go @@ -0,0 +1,297 @@ +// Copyright IBM Corp. 2021 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package eventnotification + +import ( + "context" + "fmt" + + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + en "github.com/IBM/event-notifications-go-admin-sdk/eventnotificationsv1" +) + +func DataSourceIBMEnCustomEmailSubscription() *schema.Resource { + return &schema.Resource{ + ReadContext: dataSourceIBMEnCustomEmailSubscriptionRead, + + Schema: map[string]*schema.Schema{ + "instance_guid": { + Type: schema.TypeString, + Required: true, + Description: "Unique identifier for IBM Cloud Event Notifications instance.", + }, + "subscription_id": { + Type: schema.TypeString, + Required: true, + Description: "Unique identifier for result.", + }, + "name": { + Type: schema.TypeString, + Computed: true, + Description: "Subscription name.", + }, + "description": { + Type: schema.TypeString, + Computed: true, + Description: "Subscription description.", + }, + "destination_id": { + Type: schema.TypeString, + Computed: true, + Description: "The destination ID.", + }, + "topic_id": { + Type: schema.TypeString, + Computed: true, + Description: "Topic ID.", + }, + "attributes": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "add_notification_payload": { + Type: schema.TypeBool, + Computed: true, + Description: "Whether to add the notification payload to the email.", + }, + "reply_to_mail": { + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "The email address to reply to.", + }, + "reply_to_name": { + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "The email address user name to reply to.", + }, + "from_name": { + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "The email address username of source email address.", + }, + "from_email": { + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "The email from where it is sourced", + }, + "template_id_notification": { + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "The templete id for notification", + }, + "template_id_invitation": { + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "The templete id for invitation", + }, + // "invited": { + // Type: schema.TypeList, + // Optional: true, + // Computed: true, + // Description: "The email id to be invited", + // }, + // "subscribed": { + // Type: schema.TypeList, + // Optional: true, + // Computed: true, + // Description: "The Email address which should be subscribed from smtp_ibm.", + // }, + // "unsubscribed": { + // Type: schema.TypeList, + // Optional: true, + // Computed: true, + // Description: "The Email address which should be unsubscribed from smtp_ibm.", + // }, + "invited": { + Type: schema.TypeList, + Computed: true, + Description: "The invited item schema", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "email": { + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "The email address to reply to.", + }, + "updated_at": { + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "The updated date of invitation", + }, + "expires_at": { + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "The expiry date of invitation mail", + }, + }, + }, + }, + "subscribed": { + Type: schema.TypeList, + Computed: true, + Description: "The email subscribed items schema", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "email": { + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "The email address to reply to.", + }, + "updated_at": { + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "The updated date of susbcription", + }, + }, + }, + }, + "unsubscribed": { + Type: schema.TypeList, + Computed: true, + Description: "The unsusbscribed email items schema", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "email": { + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "The email address to reply to.", + }, + "updated_at": { + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "The updated date of unsusbcription", + }, + }, + }, + }, + }, + }, + }, + "updated_at": { + Type: schema.TypeString, + Computed: true, + Description: "Last updated time.", + }, + }, + } +} + +func dataSourceIBMEnCustomEmailSubscriptionRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + enClient, err := meta.(conns.ClientSession).EventNotificationsApiV1() + if err != nil { + return diag.FromErr(err) + } + + getSubscriptionOptions := &en.GetSubscriptionOptions{} + + getSubscriptionOptions.SetInstanceID(d.Get("instance_guid").(string)) + getSubscriptionOptions.SetID(d.Get("subscription_id").(string)) + + result, response, err := enClient.GetSubscriptionWithContext(context, getSubscriptionOptions) + if err != nil { + return diag.FromErr(fmt.Errorf("GetSubscriptionWithContext failed %s\n%s", err, response)) + } + + d.SetId(fmt.Sprintf("%s/%s", *getSubscriptionOptions.InstanceID, *getSubscriptionOptions.ID)) + + if err = d.Set("name", result.Name); err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting name: %s", err)) + } + + if result.Description != nil { + if err = d.Set("description", result.Description); err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting description: %s", err)) + } + } + if err = d.Set("updated_at", result.UpdatedAt); err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting updated_at: %s", err)) + } + + if err = d.Set("destination_id", result.DestinationID); err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting destination_id: %s", err)) + } + + if err = d.Set("topic_id", result.TopicID); err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting topic_id: %s", err)) + } + + if result.Attributes != nil { + if err = d.Set("attributes", enEmailSubscriptionFlattenAttributes(result.Attributes)); err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting attributes %s", err)) + } + } + + return nil +} + +func enCustomEmailSubscriptionFlattenAttributes(result en.SubscriptionAttributesIntf) (finalList []map[string]interface{}) { + finalList = []map[string]interface{}{} + + attributes := result.(*en.SubscriptionAttributes) + + finalMap := enCustomEmailSubscriptionToMap(attributes) + // finalList = append(finalList, finalMap) + // invitedmap := make(map[string]interface{}) + // if attributes.Invited != nil { + // invitedmap["invited"] = attributes.Invited + // } + // finalList = append(finalList, invitedmap) + // subscribedmap := make(map[string]interface{}) + // if attributes.Subscribed != nil { + // subscribedmap["subscribed"] = attributes.Subscribed + // } + // finalList = append(finalList, subscribedmap) + // unsubscribedmap := make(map[string]interface{}) + // if attributes.Unsubscribed != nil { + // unsubscribedmap["unsubscribed"] = attributes.Unsubscribed + // } + // finalList = append(finalList, unsubscribedmap) + finalList = append(finalList, finalMap) + + return finalList +} + +func enCustomEmailSubscriptionToMap(attributeItem *en.SubscriptionAttributes) (attributeMap map[string]interface{}) { + attributeMap = map[string]interface{}{} + + if attributeItem.AddNotificationPayload != nil { + attributeMap["add_notification_payload"] = attributeItem.AddNotificationPayload + } + if attributeItem.ReplyToMail != nil { + attributeMap["reply_to_mail"] = attributeItem.ReplyToMail + } + if attributeItem.ReplyToName != nil { + attributeMap["reply_to_name"] = attributeItem.ReplyToName + } + if attributeItem.FromName != nil { + attributeMap["from_name"] = attributeItem.FromName + } + if attributeItem.FromEmail != nil { + attributeMap["from_email"] = attributeItem.FromEmail + } + if attributeItem.TemplateIDNotification != nil { + attributeMap["template_id_notification"] = attributeItem.TemplateIDNotification + } + if attributeItem.TemplateIDInvitation != nil { + attributeMap["template_id_invitation"] = attributeItem.TemplateIDInvitation + } + return attributeMap +} diff --git a/ibm/service/eventnotification/data_source_ibm_en_subscription_custom_email_test.go b/ibm/service/eventnotification/data_source_ibm_en_subscription_custom_email_test.go new file mode 100644 index 0000000000..b3e7504975 --- /dev/null +++ b/ibm/service/eventnotification/data_source_ibm_en_subscription_custom_email_test.go @@ -0,0 +1,84 @@ +// Copyright IBM Corp. 2021 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package eventnotification_test + +import ( + "fmt" + "testing" + + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" +) + +func TestAccIBMEnCustomEmailSubscriptionDataSourceAllArgs(t *testing.T) { + instanceName := fmt.Sprintf("tf_instance_%d", acctest.RandIntRange(10, 100)) + name := fmt.Sprintf("tf_name_%d", acctest.RandIntRange(10, 100)) + description := fmt.Sprintf("tf_description_%d", acctest.RandIntRange(10, 100)) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + Steps: []resource.TestStep{ + { + Config: testAccCheckIBMEnCustomEmailSubscriptionDataSourceConfig(instanceName, name, description), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("data.ibm_en_subscription_custom_email.data_subscription_1", "id"), + resource.TestCheckResourceAttrSet("data.ibm_en_subscription_custom_email.data_subscription_1", "instance_guid"), + resource.TestCheckResourceAttrSet("data.ibm_en_subscription_custom_email.data_subscription_1", "subscription_id"), + resource.TestCheckResourceAttrSet("data.ibm_en_subscription_custom_email.data_subscription_1", "name"), + resource.TestCheckResourceAttrSet("data.ibm_en_subscription_custom_email.data_subscription_1", "description"), + resource.TestCheckResourceAttrSet("data.ibm_en_subscription_custom_email.data_subscription_1", "updated_at"), + resource.TestCheckResourceAttrSet("data.ibm_en_subscription_custom_email.data_subscription_1", "destination_type"), + resource.TestCheckResourceAttrSet("data.ibm_en_subscription_custom_email.data_subscription_1", "destination_id"), + resource.TestCheckResourceAttrSet("data.ibm_en_subscription_custom_email.data_subscription_1", "destination_name"), + resource.TestCheckResourceAttrSet("data.ibm_en_subscription_custom_email.data_subscription_1", "topic_id"), + resource.TestCheckResourceAttrSet("data.ibm_en_subscription_custom_email.data_subscription_1", "topic_name"), + ), + }, + }, + }) +} + +func testAccCheckIBMEnCustomEmailSubscriptionDataSourceConfig(instanceName, name, description string) string { + return fmt.Sprintf(` + resource "ibm_resource_instance" "en_subscription_datasource" { + name = "%s" + location = "us-south" + plan = "standard" + service = "event-notifications" + } + + resource "ibm_en_topic" "en_topic_resource_4" { + instance_guid = ibm_resource_instance.en_subscription_datasource.guid + name = "tf_topic_name_0664" + description = "tf_topic_description_0455" + } + + + resource "ibm_en_subscription_custom_email" "en_subscription_resource_4" { + name = "%s" + description = "%s" + instance_guid = ibm_resource_instance.en_subscription_datasource.guid + topic_id = ibm_en_topic.en_topic_resource_4.topic_id + destination_id = "ibm_resource_instance.ibm_en_destination_custom_email.destination_id" + attributes { + add_notification_payload = true + reply_to_mail = "en@ibm.com" + reply_to_name = "EYS ORG" + from_name="ABC ORG" + from_mail="Testuser@mailx.com" + invited = ["testmail@mailx.com"] + + } + } + + data "ibm_en_subscription_custom_email" "data_subscription_1" { + instance_guid = ibm_resource_instance.en_subscription_datasource.guid + subscription_id = ibm_en_subscription_custom_email.en_subscription_resource_4.subscription_id + } + + `, instanceName, name, description) +} diff --git a/ibm/service/eventnotification/resource_ibm_en_destination_custom_email.go b/ibm/service/eventnotification/resource_ibm_en_destination_custom_email.go new file mode 100644 index 0000000000..2392065817 --- /dev/null +++ b/ibm/service/eventnotification/resource_ibm_en_destination_custom_email.go @@ -0,0 +1,274 @@ +// Copyright IBM Corp. 2021 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package eventnotification + +import ( + "context" + "fmt" + + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + "github.com/IBM/go-sdk-core/v5/core" + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + en "github.com/IBM/event-notifications-go-admin-sdk/eventnotificationsv1" +) + +func ResourceIBMEnCustomEmailDestination() *schema.Resource { + return &schema.Resource{ + CreateContext: resourceIBMEnCustomEmailDestinationCreate, + ReadContext: resourceIBMEnCustomEmailDestinationRead, + UpdateContext: resourceIBMEnCustomEmailDestinationUpdate, + DeleteContext: resourceIBMEnCustomEmailDestinationDelete, + Importer: &schema.ResourceImporter{}, + + Schema: map[string]*schema.Schema{ + "instance_guid": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + Description: "Unique identifier for IBM Cloud Event Notifications instance.", + }, + "name": { + Type: schema.TypeString, + Required: true, + Description: "The Destintion name.", + }, + "type": { + Type: schema.TypeString, + Required: true, + Description: "The type of Destination type smtp_custom.", + }, + "description": { + Type: schema.TypeString, + Optional: true, + Description: "The Destination description.", + }, + "config": { + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "Payload describing a destination configuration.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "params": { + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "domain": { + Type: schema.TypeString, + Required: true, + Description: "Domain for the Custom Domain Email Destination", + }, + }, + }, + }, + }, + }, + }, + "destination_id": { + Type: schema.TypeString, + Computed: true, + Description: "Destination ID", + }, + "updated_at": { + Type: schema.TypeString, + Computed: true, + Description: "Last updated time.", + }, + "subscription_count": { + Type: schema.TypeInt, + Computed: true, + Description: "Number of subscriptions.", + }, + "subscription_names": { + Type: schema.TypeList, + Computed: true, + Description: "List of subscriptions.", + Elem: &schema.Schema{Type: schema.TypeString}, + }, + }, + } +} + +func resourceIBMEnCustomEmailDestinationCreate(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + enClient, err := meta.(conns.ClientSession).EventNotificationsApiV1() + if err != nil { + return diag.FromErr(err) + } + + options := &en.CreateDestinationOptions{} + + options.SetInstanceID(d.Get("instance_guid").(string)) + options.SetName(d.Get("name").(string)) + + options.SetType(d.Get("type").(string)) + destinationtype := d.Get("type").(string) + if _, ok := d.GetOk("description"); ok { + options.SetDescription(d.Get("description").(string)) + } + if _, ok := d.GetOk("config"); ok { + config := CustomEmaildestinationConfigMapToDestinationConfig(d.Get("config.0.params.0").(map[string]interface{}), destinationtype) + options.SetConfig(&config) + } + + result, response, err := enClient.CreateDestinationWithContext(context, options) + if err != nil { + return diag.FromErr(fmt.Errorf("CreateDestinationWithContext failed %s\n%s", err, response)) + } + + d.SetId(fmt.Sprintf("%s/%s", *options.InstanceID, *result.ID)) + + return resourceIBMEnServiceNowDestinationRead(context, d, meta) +} + +func resourceIBMEnCustomEmailDestinationRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + enClient, err := meta.(conns.ClientSession).EventNotificationsApiV1() + if err != nil { + return diag.FromErr(err) + } + + options := &en.GetDestinationOptions{} + + parts, err := flex.SepIdParts(d.Id(), "/") + if err != nil { + return diag.FromErr(err) + } + + options.SetInstanceID(parts[0]) + options.SetID(parts[1]) + + result, response, err := enClient.GetDestinationWithContext(context, options) + if err != nil { + if response != nil && response.StatusCode == 404 { + d.SetId("") + return nil + } + return diag.FromErr(fmt.Errorf("GetDestinationWithContext failed %s\n%s", err, response)) + } + + if err = d.Set("instance_guid", options.InstanceID); err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting instance_guid: %s", err)) + } + + if err = d.Set("destination_id", options.ID); err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting destination_id: %s", err)) + } + + if err = d.Set("name", result.Name); err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting name: %s", err)) + } + + if err = d.Set("type", result.Type); err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting type: %s", err)) + } + + if err = d.Set("description", result.Description); err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting description: %s", err)) + } + + if result.Config != nil { + err = d.Set("config", enCustomEmailDestinationFlattenConfig(*result.Config)) + if err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting config %s", err)) + } + } + + if err = d.Set("updated_at", flex.DateTimeToString(result.UpdatedAt)); err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting updated_at: %s", err)) + } + + if err = d.Set("subscription_count", flex.IntValue(result.SubscriptionCount)); err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting subscription_count: %s", err)) + } + + if err = d.Set("subscription_names", result.SubscriptionNames); err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting subscription_names: %s", err)) + } + + return nil +} + +func resourceIBMEnCustomEmailDestinationUpdate(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + enClient, err := meta.(conns.ClientSession).EventNotificationsApiV1() + if err != nil { + return diag.FromErr(err) + } + + options := &en.UpdateDestinationOptions{} + + parts, err := flex.SepIdParts(d.Id(), "/") + if err != nil { + return diag.FromErr(err) + } + + options.SetInstanceID(parts[0]) + options.SetID(parts[1]) + + if ok := d.HasChanges("name", "description", "config"); ok { + options.SetName(d.Get("name").(string)) + + if _, ok := d.GetOk("description"); ok { + options.SetDescription(d.Get("description").(string)) + } + + destinationtype := d.Get("type").(string) + if _, ok := d.GetOk("config"); ok { + config := CustomEmaildestinationConfigMapToDestinationConfig(d.Get("config.0.params.0").(map[string]interface{}), destinationtype) + options.SetConfig(&config) + } + _, response, err := enClient.UpdateDestinationWithContext(context, options) + if err != nil { + return diag.FromErr(fmt.Errorf("UpdateDestinationWithContext failed %s\n%s", err, response)) + } + + return resourceIBMEnCustomEmailDestinationRead(context, d, meta) + } + + return nil +} + +func resourceIBMEnCustomEmailDestinationDelete(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + enClient, err := meta.(conns.ClientSession).EventNotificationsApiV1() + if err != nil { + return diag.FromErr(err) + } + + options := &en.DeleteDestinationOptions{} + + parts, err := flex.SepIdParts(d.Id(), "/") + if err != nil { + return diag.FromErr(err) + } + + options.SetInstanceID(parts[0]) + options.SetID(parts[1]) + + response, err := enClient.DeleteDestinationWithContext(context, options) + if err != nil { + if response != nil && response.StatusCode == 404 { + d.SetId("") + return nil + } + return diag.FromErr(fmt.Errorf("DeleteDestinationWithContext failed %s\n%s", err, response)) + } + + d.SetId("") + + return nil +} + +func CustomEmaildestinationConfigMapToDestinationConfig(configParams map[string]interface{}, destinationtype string) en.DestinationConfig { + params := new(en.DestinationConfigOneOfCustomDomainEmailDestinationConfig) + if configParams["domain"] != nil { + params.Domain = core.StringPtr(configParams["domain"].(string)) + } + + destinationConfig := new(en.DestinationConfig) + destinationConfig.Params = params + return *destinationConfig +} diff --git a/ibm/service/eventnotification/resource_ibm_en_destination_custom_email_test.go b/ibm/service/eventnotification/resource_ibm_en_destination_custom_email_test.go new file mode 100644 index 0000000000..c57a0c93da --- /dev/null +++ b/ibm/service/eventnotification/resource_ibm_en_destination_custom_email_test.go @@ -0,0 +1,147 @@ +// Copyright IBM Corp. 2021 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package eventnotification_test + +import ( + "fmt" + "testing" + + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + + en "github.com/IBM/event-notifications-go-admin-sdk/eventnotificationsv1" +) + +func TestAccIBMEnCustomEmailDestinationAllArgs(t *testing.T) { + var config en.Destination + name := fmt.Sprintf("tf_name_%d", acctest.RandIntRange(10, 100)) + instanceName := fmt.Sprintf("tf_name_%d", acctest.RandIntRange(10, 100)) + description := fmt.Sprintf("tf_description_%d", acctest.RandIntRange(10, 100)) + newName := fmt.Sprintf("tf_name_%d", acctest.RandIntRange(10, 100)) + newDescription := fmt.Sprintf("tf_description_%d", acctest.RandIntRange(10, 100)) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIBMEnServiceNowDestinationDestroy, + Steps: []resource.TestStep{ + { + Config: testAccCheckIBMEnCustomEmailDestinationConfig(instanceName, name, description), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIBMEnCustomEmailDestinationExists("ibm_en_destination_custom_email.en_destination_resource_1", config), + resource.TestCheckResourceAttr("ibm_en_destination_custom_email.en_destination_resource_1", "name", name), + resource.TestCheckResourceAttr("ibm_en_destination_custom_email.en_destination_resource_1", "type", "smtp_custom"), + resource.TestCheckResourceAttr("ibm_en_destination_custom_email.en_destination_resource_1", "description", description), + ), + }, + { + Config: testAccCheckIBMEnCustomEmailDestinationConfig(instanceName, newName, newDescription), + Check: resource.ComposeAggregateTestCheckFunc( + resource.TestCheckResourceAttr("ibm_en_destination_custom_email.en_destination_resource_1", "name", newName), + resource.TestCheckResourceAttr("ibm_en_destination_custom_email.en_destination_resource_1", "type", "smtp_custom"), + resource.TestCheckResourceAttr("ibm_en_destination_custom_email.en_destination_resource_1", "description", newDescription), + ), + }, + { + ResourceName: "ibm_en_destination_custom_email.en_destination_resource_1", + ImportState: true, + ImportStateVerify: true, + }, + }, + }) +} + +func testAccCheckIBMEnCustomEmailDestinationConfig(instanceName, name, description string) string { + return fmt.Sprintf(` + resource "ibm_resource_instance" "en_destination_resource" { + name = "%s" + location = "us-south" + plan = "standard" + service = "event-notifications" + } + + resource "ibm_en_destination_custom_email" "en_destination_resource_1" { + instance_guid = ibm_resource_instance.en_destination_resource.guid + name = "%s" + type = "smtp_custom" + description = "%s" + config { + params { + domain = "mailx.com" + } + } + } + `, instanceName, name, description) +} + +func testAccCheckIBMEnCustomEmailDestinationExists(n string, obj en.Destination) resource.TestCheckFunc { + + return func(s *terraform.State) error { + rs, ok := s.RootModule().Resources[n] + if !ok { + return fmt.Errorf("Not found: %s", n) + } + + enClient, err := acc.TestAccProvider.Meta().(conns.ClientSession).EventNotificationsApiV1() + if err != nil { + return err + } + + options := &en.GetDestinationOptions{} + + parts, err := flex.SepIdParts(rs.Primary.ID, "/") + if err != nil { + return err + } + + options.SetInstanceID(parts[0]) + options.SetID(parts[1]) + + result, _, err := enClient.GetDestination(options) + if err != nil { + return err + } + + obj = *result + return nil + } +} + +func testAccCheckIBMEnCustomEmailDestinationDestroy(s *terraform.State) error { + enClient, err := acc.TestAccProvider.Meta().(conns.ClientSession).EventNotificationsApiV1() + if err != nil { + return err + } + for _, rs := range s.RootModule().Resources { + if rs.Type != "en_destination_resource_1" { + continue + } + + options := &en.GetDestinationOptions{} + + parts, err := flex.SepIdParts(rs.Primary.ID, "/") + if err != nil { + return err + } + + options.SetInstanceID(parts[0]) + options.SetID(parts[1]) + + // Try to find the key + _, response, err := enClient.GetDestination(options) + + if err == nil { + return fmt.Errorf("en_destination still exists: %s", rs.Primary.ID) + } else if response.StatusCode != 404 { + return fmt.Errorf("[ERROR] Error checking for en_destination (%s) has been destroyed: %s", rs.Primary.ID, err) + } + } + + return nil +} diff --git a/ibm/service/eventnotification/resource_ibm_en_subscription_custom_email.go b/ibm/service/eventnotification/resource_ibm_en_subscription_custom_email.go new file mode 100644 index 0000000000..ee10c86569 --- /dev/null +++ b/ibm/service/eventnotification/resource_ibm_en_subscription_custom_email.go @@ -0,0 +1,423 @@ +// Copyright IBM Corp. 2021 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package eventnotification + +import ( + "context" + "fmt" + + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + en "github.com/IBM/event-notifications-go-admin-sdk/eventnotificationsv1" + "github.com/IBM/go-sdk-core/v5/core" +) + +func ResourceIBMEnCustomEmailSubscription() *schema.Resource { + return &schema.Resource{ + CreateContext: resourceIBMEnCustomEmailSubscriptionCreate, + ReadContext: resourceIBMEnCustomEmailSubscriptionRead, + UpdateContext: resourceIBMEnCustomEmailSubscriptionUpdate, + DeleteContext: resourceIBMEnCustomEmailSubscriptionDelete, + Importer: &schema.ResourceImporter{}, + + Schema: map[string]*schema.Schema{ + "instance_guid": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + Description: "Unique identifier for IBM Cloud Event Notifications instance.", + }, + "name": { + Type: schema.TypeString, + Required: true, + Description: "Subscription name.", + }, + "description": { + Type: schema.TypeString, + Optional: true, + Description: "Subscription description.", + }, + "destination_id": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + Description: "Destination ID.", + }, + "topic_id": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + Description: "Topic ID.", + }, + "attributes": { + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "add_notification_payload": { + Type: schema.TypeBool, + Optional: true, + Description: "Whether to add the notification payload to the email.", + }, + "reply_to_mail": { + Type: schema.TypeString, + Optional: true, + Description: "The email address to reply to.", + }, + "reply_to_name": { + Type: schema.TypeString, + Optional: true, + Description: "The name of the email address user to reply to.", + }, + "from_name": { + Type: schema.TypeString, + Optional: true, + Description: "The name of email address from which email is sourced.", + }, + "from_email": { + Type: schema.TypeString, + Optional: true, + Description: "The email from where it is sourced", + }, + "template_id_notification": { + Type: schema.TypeString, + Optional: true, + Description: "The templete id for notification", + }, + "template_id_invitation": { + Type: schema.TypeString, + Optional: true, + Description: "The templete id for invitation", + }, + "invited": { + Type: schema.TypeList, + Optional: true, + Description: "The Email address send the invite to in case of smtp_ibm.", + Elem: &schema.Schema{Type: schema.TypeString}, + }, + "add": { + Type: schema.TypeList, + Optional: true, + Description: "The Email address which should be added to smtp_ibm.", + Elem: &schema.Schema{Type: schema.TypeString}, + }, + "remove": { + Type: schema.TypeList, + Optional: true, + Description: "The email id to be removed in case of smtp_ibm destination type.", + Elem: &schema.Schema{Type: schema.TypeString}, + }, + }, + }, + }, + "subscription_id": { + Type: schema.TypeString, + Computed: true, + Description: "Subscription ID.", + }, + "destination_type": { + Type: schema.TypeString, + Computed: true, + Description: "The type of Destination.", + }, + "destination_name": { + Type: schema.TypeString, + Computed: true, + Description: "The Destintion name.", + }, + "topic_name": { + Type: schema.TypeString, + Computed: true, + Description: "Name of the topic.", + }, + "from": { + Type: schema.TypeString, + Computed: true, + Description: "From Email ID (it will be displayed only in case of smtp_ibm destination type).", + }, + "updated_at": { + Type: schema.TypeString, + Computed: true, + Description: "Last updated time.", + }, + }, + } +} + +func resourceIBMEnCustomEmailSubscriptionCreate(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + enClient, err := meta.(conns.ClientSession).EventNotificationsApiV1() + if err != nil { + return diag.FromErr(err) + } + + options := &en.CreateSubscriptionOptions{} + + options.SetInstanceID(d.Get("instance_guid").(string)) + + options.SetName(d.Get("name").(string)) + options.SetTopicID(d.Get("topic_id").(string)) + options.SetDestinationID(d.Get("destination_id").(string)) + + if _, ok := d.GetOk("description"); ok { + options.SetDescription(d.Get("description").(string)) + } + + attributes := CustomEmailattributesMapToAttributes(d.Get("attributes.0").(map[string]interface{})) + options.SetAttributes(&attributes) + + result, response, err := enClient.CreateSubscriptionWithContext(context, options) + if err != nil { + return diag.FromErr(fmt.Errorf("CreateSubscriptionWithContext failed %s\n%s", err, response)) + } + + d.SetId(fmt.Sprintf("%s/%s", *options.InstanceID, *result.ID)) + + return resourceIBMEnCustomEmailSubscriptionRead(context, d, meta) +} + +func resourceIBMEnCustomEmailSubscriptionRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + enClient, err := meta.(conns.ClientSession).EventNotificationsApiV1() + if err != nil { + return diag.FromErr(err) + } + + options := &en.GetSubscriptionOptions{} + + parts, err := flex.SepIdParts(d.Id(), "/") + if err != nil { + return diag.FromErr(err) + } + + options.SetInstanceID(parts[0]) + options.SetID(parts[1]) + + result, response, err := enClient.GetSubscriptionWithContext(context, options) + if err != nil { + if response != nil && response.StatusCode == 404 { + d.SetId("") + return nil + } + return diag.FromErr(fmt.Errorf("GetSubscriptionWithContext failed %s\n%s", err, response)) + } + + if err = d.Set("instance_guid", options.InstanceID); err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting instance_guid: %s", err)) + } + + if err = d.Set("subscription_id", result.ID); err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting instance_guid: %s", err)) + } + + if err = d.Set("name", result.Name); err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting name: %s", err)) + } + + if result.Description != nil { + if err = d.Set("description", result.Description); err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting description: %s", err)) + } + } + + if result.From != nil { + if err = d.Set("from", result.From); err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting from: %s", err)) + } + } + + if err = d.Set("destination_id", result.DestinationID); err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting destination_id: %s", err)) + } + + if err = d.Set("destination_type", result.DestinationType); err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting destination_type: %s", err)) + } + + if result.DestinationName != nil { + if err = d.Set("destination_name", result.DestinationName); err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting destination_name: %s", err)) + } + } + + if err = d.Set("topic_id", result.TopicID); err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting topic_id: %s", err)) + } + + if result.TopicName != nil { + if err = d.Set("topic_name", result.TopicName); err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting topic_name: %s", err)) + } + } + + if err = d.Set("updated_at", result.UpdatedAt); err != nil { + return diag.FromErr(fmt.Errorf("[ERROR] Error setting updated_at: %s", err)) + } + + return nil +} + +func resourceIBMEnCustomEmailSubscriptionUpdate(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + enClient, err := meta.(conns.ClientSession).EventNotificationsApiV1() + if err != nil { + return diag.FromErr(err) + } + + options := &en.UpdateSubscriptionOptions{} + + parts, err := flex.SepIdParts(d.Id(), "/") + if err != nil { + return diag.FromErr(err) + } + + options.SetInstanceID(parts[0]) + options.SetID(parts[1]) + + if ok := d.HasChanges("name", "description", "attributes"); ok { + options.SetName(d.Get("name").(string)) + + if _, ok := d.GetOk("description"); ok { + options.SetDescription(d.Get("description").(string)) + } + + attributes := CustomEmailattributesupdateMapToAttributes(d.Get("attributes.0").(map[string]interface{})) + options.SetAttributes(&attributes) + + _, response, err := enClient.UpdateSubscriptionWithContext(context, options) + if err != nil { + return diag.FromErr(fmt.Errorf("UpdateSubscriptionWithContext failed %s\n%s", err, response)) + } + + return resourceIBMEnCustomEmailSubscriptionRead(context, d, meta) + } + + return nil +} + +func resourceIBMEnCustomEmailSubscriptionDelete(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + enClient, err := meta.(conns.ClientSession).EventNotificationsApiV1() + if err != nil { + return diag.FromErr(err) + } + + options := &en.DeleteSubscriptionOptions{} + + parts, err := flex.SepIdParts(d.Id(), "/") + if err != nil { + return diag.FromErr(err) + } + + options.SetInstanceID(parts[0]) + options.SetID(parts[1]) + + response, err := enClient.DeleteSubscriptionWithContext(context, options) + if err != nil { + if response != nil && response.StatusCode == 404 { + d.SetId("") + return nil + } + return diag.FromErr(fmt.Errorf("DeleteSubscriptionWithContext failed %s\n%s", err, response)) + } + + d.SetId("") + + return nil +} + +func CustomEmailattributesMapToAttributes(attributeMap map[string]interface{}) en.SubscriptionCreateAttributes { + attributesCreate := en.SubscriptionCreateAttributes{} + if attributeMap["invited"] != nil { + invited := []string{} + for _, invitedItem := range attributeMap["invited"].([]interface{}) { + invited = append(invited, invitedItem.(string)) + } + attributesCreate.Invited = invited + } + + if attributeMap["add_notification_payload"] != nil { + attributesCreate.AddNotificationPayload = core.BoolPtr(attributeMap["add_notification_payload"].(bool)) + } + + if attributeMap["reply_to_mail"] != nil { + attributesCreate.ReplyToMail = core.StringPtr(attributeMap["reply_to_mail"].(string)) + } + + if attributeMap["reply_to_name"] != nil { + attributesCreate.ReplyToName = core.StringPtr(attributeMap["reply_to_name"].(string)) + } + + if attributeMap["from_name"] != nil { + attributesCreate.FromName = core.StringPtr(attributeMap["from_name"].(string)) + } + + if attributeMap["from_email"] != nil { + attributesCreate.FromEmail = core.StringPtr(attributeMap["from_email"].(string)) + } + + if attributeMap["template_id_notification"] != nil { + attributesCreate.TemplateIDNotification = core.StringPtr(attributeMap["template_id_notification"].(string)) + } + + if attributeMap["template_id_invitation"] != nil { + attributesCreate.TemplateIDInvitation = core.StringPtr(attributeMap["template_id_invitation"].(string)) + } + + return attributesCreate +} + +func CustomEmailattributesupdateMapToAttributes(attributeMap map[string]interface{}) en.SubscriptionUpdateAttributesCustomEmailUpdateAttributes { + updateattributes := en.SubscriptionUpdateAttributesCustomEmailUpdateAttributes{} + + addemail := new(en.UpdateAttributesInvited) + if attributeMap["add"] != nil { + to := []string{} + for _, toItem := range attributeMap["add"].([]interface{}) { + to = append(to, toItem.(string)) + } + addemail.Add = to + } + updateattributes.Invited = addemail + + if attributeMap["remove"] != nil { + rmemail := []string{} + for _, removeitem := range attributeMap["remove"].([]interface{}) { + rmemail = append(rmemail, removeitem.(string)) + } + + addemail.Remove = rmemail + } + updateattributes.Invited = addemail + + if attributeMap["add_notification_payload"] != nil { + updateattributes.AddNotificationPayload = core.BoolPtr(attributeMap["add_notification_payload"].(bool)) + } + + if attributeMap["reply_to_mail"] != nil { + updateattributes.ReplyToMail = core.StringPtr(attributeMap["reply_to_mail"].(string)) + } + + if attributeMap["reply_to_name"] != nil { + updateattributes.ReplyToName = core.StringPtr(attributeMap["reply_to_name"].(string)) + } + + if attributeMap["from_name"] != nil { + updateattributes.FromName = core.StringPtr(attributeMap["from_name"].(string)) + } + + if attributeMap["from_email"] != nil { + updateattributes.FromEmail = core.StringPtr(attributeMap["from_email"].(string)) + } + + if attributeMap["template_id_notification"] != nil { + updateattributes.TemplateIDNotification = core.StringPtr(attributeMap["template_id_notification"].(string)) + } + + if attributeMap["template_id_invitation"] != nil { + updateattributes.TemplateIDInvitation = core.StringPtr(attributeMap["template_id_invitation"].(string)) + } + + return updateattributes +} diff --git a/ibm/service/eventnotification/resource_ibm_en_subscription_custom_email_test.go b/ibm/service/eventnotification/resource_ibm_en_subscription_custom_email_test.go new file mode 100644 index 0000000000..cac5824d94 --- /dev/null +++ b/ibm/service/eventnotification/resource_ibm_en_subscription_custom_email_test.go @@ -0,0 +1,171 @@ +// Copyright IBM Corp. 2021 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package eventnotification_test + +import ( + "fmt" + "testing" + + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + + en "github.com/IBM/event-notifications-go-admin-sdk/eventnotificationsv1" +) + +func TestAccIBMEnCustomDomainSubscriptionAllArgs(t *testing.T) { + var conf en.Subscription + instanceName := fmt.Sprintf("tf_instance_%d", acctest.RandIntRange(10, 100)) + name := fmt.Sprintf("tf_name_%d", acctest.RandIntRange(10, 100)) + description := fmt.Sprintf("tf_description_%d", acctest.RandIntRange(10, 100)) + newName := fmt.Sprintf("tf_name_%d", acctest.RandIntRange(10, 100)) + newDescription := fmt.Sprintf("tf_description_%d", acctest.RandIntRange(10, 100)) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIBMEnEmailSubscriptionDestroy, + Steps: []resource.TestStep{ + { + Config: testAccCheckIBMEnCustomDomainSubscriptionConfig(instanceName, name, description), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIBMEnCustomDomainSubscriptionExists("ibm_en_subscription_email.en_subscription_resource_1", conf), + resource.TestCheckResourceAttrSet("ibm_en_subscription_custom_email.en_subscription_resource_1", "name"), + resource.TestCheckResourceAttrSet("ibm_en_subscription_custom_email.en_subscription_resource_1", "description"), + resource.TestCheckResourceAttrSet("ibm_en_subscription_custom_email.en_subscription_resource_1", "topic_id"), + resource.TestCheckResourceAttrSet("ibm_en_subscription_custom_email.en_subscription_resource_1", "updated_at"), + resource.TestCheckResourceAttrSet("ibm_en_subscription_custom_email.en_subscription_resource_1", "instance_guid"), + resource.TestCheckResourceAttrSet("ibm_en_subscription_custom_email.en_subscription_resource_1", "destination_id"), + resource.TestCheckResourceAttrSet("ibm_en_subscription_custom_email.en_subscription_resource_1", "destination_type"), + resource.TestCheckResourceAttrSet("ibm_en_subscription_custom_email.en_subscription_resource_1", "subscription_id"), + resource.TestCheckResourceAttrSet("ibm_en_subscription_custom_email.en_subscription_resource_1", "attributes.#"), + resource.TestCheckResourceAttrSet("ibm_en_subscription_custom_email.en_subscription_resource_1", "attributes.0.reply_to_mail"), + resource.TestCheckResourceAttrSet("ibm_en_subscription_custom_email.en_subscription_resource_1", "attributes.0.reply_to_name"), + resource.TestCheckResourceAttrSet("ibm_en_subscription_custom_email.en_subscription_resource_1", "attributes.0.from_name"), + resource.TestCheckResourceAttrSet("ibm_en_subscription_custom_email.en_subscription_resource_1", "attributes.0.from_email"), + resource.TestCheckResourceAttrSet("ibm_en_subscription_custom_email.en_subscription_resource_1", "attributes.0.add_notification_payload"), + resource.TestCheckResourceAttrSet("ibm_en_subscription_custom_email.en_subscription_resource_1", "attributes.0.invited"), + ), + }, + { + Config: testAccCheckIBMEnCustomDomainSubscriptionConfig(instanceName, newName, newDescription), + Check: resource.ComposeAggregateTestCheckFunc( + resource.TestCheckResourceAttr("ibm_en_subscription_custom_email.en_subscription_resource_1", "name", newName), + resource.TestCheckResourceAttr("ibm_en_subscription_custom_email.en_subscription_resource_1", "description", newDescription), + ), + }, + { + ResourceName: "ibm_en_subscription_custom_email.en_subscription_resource_1", + ImportState: true, + ImportStateVerify: false, + }, + }, + }) +} + +func testAccCheckIBMEnCustomDomainSubscriptionConfig(instanceName, name, description string) string { + return fmt.Sprintf(` + resource "ibm_resource_instance" "en_subscription_resource" { + name = "%s" + location = "us-south" + plan = "standard" + service = "event-notifications" + } + + resource "ibm_en_topic" "en_topic_resource_2" { + instance_guid = ibm_resource_instance.en_subscription_resource.guid + name = "tf_topic_name_0234" + description = "tf_topic_description_0235" + } + + + resource "ibm_en_subscription_custom_email" "en_subscription_resource_1" { + name = "%s" + description = "%s" + instance_guid = ibm_resource_instance.en_subscription_resource.guid + topic_id = ibm_en_topic.en_topic_resource_2.topic_id + destination_id = "ibm_resource_instance.ibm_en_destination_custom_email.destination_id" + attributes { + add_notification_payload = true + reply_to_mail = "en@ibm.com" + reply_to_name = "EYS ORG" + from_name="ABC ORG" + from_mail="Testuser@mailx.com" + invited = ["testmail@gmail.com"] + + } + } + `, instanceName, name, description) +} + +func testAccCheckIBMEnCustomDomainSubscriptionExists(n string, obj en.Subscription) resource.TestCheckFunc { + + return func(s *terraform.State) error { + rs, ok := s.RootModule().Resources[n] + if !ok { + return fmt.Errorf("Not found: %s", n) + } + + enClient, err := acc.TestAccProvider.Meta().(conns.ClientSession).EventNotificationsApiV1() + if err != nil { + return err + } + + options := &en.GetSubscriptionOptions{} + + parts, err := flex.SepIdParts(rs.Primary.ID, "/") + if err != nil { + return err + } + + options.SetInstanceID(parts[0]) + options.SetID(parts[1]) + + subscription, _, err := enClient.GetSubscription(options) + if err != nil { + return err + } + + obj = *subscription + return nil + } +} + +func testAccCheckIBMEnCustomDomainSubscriptionDestroy(s *terraform.State) error { + enClient, err := acc.TestAccProvider.Meta().(conns.ClientSession).EventNotificationsApiV1() + if err != nil { + return err + } + + for _, rs := range s.RootModule().Resources { + if rs.Type != "en_subscription_resource_1" { + continue + } + + options := &en.GetSubscriptionOptions{} + + parts, err := flex.SepIdParts(rs.Primary.ID, "/") + if err != nil { + return err + } + + options.SetInstanceID(parts[0]) + options.SetID(parts[1]) + + // Try to find the key + _, response, err := enClient.GetSubscription(options) + + if err == nil { + return fmt.Errorf("en_subscription still exists: %s", rs.Primary.ID) + } else if response.StatusCode != 404 { + return fmt.Errorf("[ERROR] Error checking for en_subscription (%s) has been destroyed: %s", rs.Primary.ID, err) + } + } + + return nil +} diff --git a/ibm/service/eventstreams/resource_ibm_event_streams_schema.go b/ibm/service/eventstreams/resource_ibm_event_streams_schema.go index 7d4865eb9b..bc4a0d7125 100644 --- a/ibm/service/eventstreams/resource_ibm_event_streams_schema.go +++ b/ibm/service/eventstreams/resource_ibm_event_streams_schema.go @@ -293,7 +293,17 @@ func resourceIBMEventStreamsSchemaDelete(context context.Context, d *schema.Reso schemaID := d.Get("schema_id").(string) deleteSchemaOptions.SetID(schemaID) - response, err := schemaregistryClient.DeleteSchemaWithContext(context, deleteSchemaOptions) + setSchemaOptions := &schemaregistryv1.SetSchemaStateOptions{} + setSchemaOptions.SetID(schemaID) + setSchemaOptions.SetState("DISABLED") + + // set schema state to disabled before deleting + response, err := schemaregistryClient.SetSchemaStateWithContext(context, setSchemaOptions) + if err != nil { + log.Printf("[DEBUG] SetSchemaStateWithContext failed %s\n%s", err, response) + } + + response, err = schemaregistryClient.DeleteSchemaWithContext(context, deleteSchemaOptions) if err != nil { log.Printf("[DEBUG] DeleteSchemaWithContext failed %s\n%s", err, response) return diag.FromErr(fmt.Errorf("DeleteSchemaWithContext failed %s\n%s", err, response)) diff --git a/ibm/service/iampolicy/data_source_ibm_iam_access_group_policy.go b/ibm/service/iampolicy/data_source_ibm_iam_access_group_policy.go index a82b5632af..aa16b62557 100644 --- a/ibm/service/iampolicy/data_source_ibm_iam_access_group_policy.go +++ b/ibm/service/iampolicy/data_source_ibm_iam_access_group_policy.go @@ -145,7 +145,7 @@ func DataSourceIBMIAMAccessGroupPolicy() *schema.Resource { Schema: map[string]*schema.Schema{ "key": { Type: schema.TypeString, - Required: true, + Optional: true, Description: "Key of the condition", }, "operator": { @@ -155,10 +155,35 @@ func DataSourceIBMIAMAccessGroupPolicy() *schema.Resource { }, "value": { Type: schema.TypeList, - Required: true, + Optional: true, Elem: &schema.Schema{Type: schema.TypeString}, Description: "Value of the condition", }, + "conditions": { + Type: schema.TypeList, + Optional: true, + Description: "Additional Rule conditions enforced by the policy", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "key": { + Type: schema.TypeString, + Required: true, + Description: "Key of the condition", + }, + "operator": { + Type: schema.TypeString, + Required: true, + Description: "Operator of the condition", + }, + "value": { + Type: schema.TypeList, + Required: true, + Elem: &schema.Schema{Type: schema.TypeString}, + Description: "Value of the condition", + }, + }, + }, + }, }, }, }, diff --git a/ibm/service/iampolicy/data_source_ibm_iam_policy_template.go b/ibm/service/iampolicy/data_source_ibm_iam_policy_template.go index 1262ceb0a1..8062107d9a 100644 --- a/ibm/service/iampolicy/data_source_ibm_iam_policy_template.go +++ b/ibm/service/iampolicy/data_source_ibm_iam_policy_template.go @@ -137,7 +137,7 @@ func DataSourceIBMIAMPolicyTemplate() *schema.Resource { Schema: map[string]*schema.Schema{ "key": { Type: schema.TypeString, - Required: true, + Optional: true, Description: "Key of the condition", }, "operator": { @@ -147,10 +147,35 @@ func DataSourceIBMIAMPolicyTemplate() *schema.Resource { }, "value": { Type: schema.TypeList, - Required: true, + Optional: true, Elem: &schema.Schema{Type: schema.TypeString}, Description: "Value of the condition", }, + "conditions": { + Type: schema.TypeList, + Optional: true, + Description: "Additional Rule conditions enforced by the policy", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "key": { + Type: schema.TypeString, + Required: true, + Description: "Key of the condition", + }, + "operator": { + Type: schema.TypeString, + Required: true, + Description: "Operator of the condition", + }, + "value": { + Type: schema.TypeList, + Required: true, + Elem: &schema.Schema{Type: schema.TypeString}, + Description: "Value of the condition", + }, + }, + }, + }, }, }, }, diff --git a/ibm/service/iampolicy/data_source_ibm_iam_policy_template_version.go b/ibm/service/iampolicy/data_source_ibm_iam_policy_template_version.go index f6d87e3321..0b7ab07234 100644 --- a/ibm/service/iampolicy/data_source_ibm_iam_policy_template_version.go +++ b/ibm/service/iampolicy/data_source_ibm_iam_policy_template_version.go @@ -136,7 +136,7 @@ func DataSourceIBMIAMPolicyTemplateVersion() *schema.Resource { Schema: map[string]*schema.Schema{ "key": { Type: schema.TypeString, - Required: true, + Optional: true, Description: "Key of the condition", }, "operator": { @@ -146,10 +146,35 @@ func DataSourceIBMIAMPolicyTemplateVersion() *schema.Resource { }, "value": { Type: schema.TypeList, - Required: true, + Optional: true, Elem: &schema.Schema{Type: schema.TypeString}, Description: "Value of the condition", }, + "conditions": { + Type: schema.TypeList, + Optional: true, + Description: "Additional Rule conditions enforced by the policy", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "key": { + Type: schema.TypeString, + Required: true, + Description: "Key of the condition", + }, + "operator": { + Type: schema.TypeString, + Required: true, + Description: "Operator of the condition", + }, + "value": { + Type: schema.TypeList, + Required: true, + Elem: &schema.Schema{Type: schema.TypeString}, + Description: "Value of the condition", + }, + }, + }, + }, }, }, }, diff --git a/ibm/service/iampolicy/data_source_ibm_iam_service_policy.go b/ibm/service/iampolicy/data_source_ibm_iam_service_policy.go index 2f1f8d8f97..caf69db640 100644 --- a/ibm/service/iampolicy/data_source_ibm_iam_service_policy.go +++ b/ibm/service/iampolicy/data_source_ibm_iam_service_policy.go @@ -154,7 +154,7 @@ func DataSourceIBMIAMServicePolicy() *schema.Resource { Schema: map[string]*schema.Schema{ "key": { Type: schema.TypeString, - Required: true, + Optional: true, Description: "Key of the condition", }, "operator": { @@ -164,10 +164,35 @@ func DataSourceIBMIAMServicePolicy() *schema.Resource { }, "value": { Type: schema.TypeList, - Required: true, + Optional: true, Elem: &schema.Schema{Type: schema.TypeString}, Description: "Value of the condition", }, + "conditions": { + Type: schema.TypeList, + Optional: true, + Description: "Additional Rule conditions enforced by the policy", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "key": { + Type: schema.TypeString, + Required: true, + Description: "Key of the condition", + }, + "operator": { + Type: schema.TypeString, + Required: true, + Description: "Operator of the condition", + }, + "value": { + Type: schema.TypeList, + Required: true, + Elem: &schema.Schema{Type: schema.TypeString}, + Description: "Value of the condition", + }, + }, + }, + }, }, }, }, diff --git a/ibm/service/iampolicy/data_source_ibm_iam_trusted_profile_policy.go b/ibm/service/iampolicy/data_source_ibm_iam_trusted_profile_policy.go index ae0b425627..328eab1d08 100644 --- a/ibm/service/iampolicy/data_source_ibm_iam_trusted_profile_policy.go +++ b/ibm/service/iampolicy/data_source_ibm_iam_trusted_profile_policy.go @@ -154,7 +154,7 @@ func DataSourceIBMIAMTrustedProfilePolicy() *schema.Resource { Schema: map[string]*schema.Schema{ "key": { Type: schema.TypeString, - Required: true, + Optional: true, Description: "Key of the condition", }, "operator": { @@ -164,10 +164,35 @@ func DataSourceIBMIAMTrustedProfilePolicy() *schema.Resource { }, "value": { Type: schema.TypeList, - Required: true, + Optional: true, Elem: &schema.Schema{Type: schema.TypeString}, Description: "Value of the condition", }, + "conditions": { + Type: schema.TypeList, + Optional: true, + Description: "Additional Rule conditions enforced by the policy", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "key": { + Type: schema.TypeString, + Required: true, + Description: "Key of the condition", + }, + "operator": { + Type: schema.TypeString, + Required: true, + Description: "Operator of the condition", + }, + "value": { + Type: schema.TypeList, + Required: true, + Elem: &schema.Schema{Type: schema.TypeString}, + Description: "Value of the condition", + }, + }, + }, + }, }, }, }, diff --git a/ibm/service/iampolicy/data_source_ibm_iam_user_policy.go b/ibm/service/iampolicy/data_source_ibm_iam_user_policy.go index 4cf9652fe8..1f13f5638e 100644 --- a/ibm/service/iampolicy/data_source_ibm_iam_user_policy.go +++ b/ibm/service/iampolicy/data_source_ibm_iam_user_policy.go @@ -142,7 +142,7 @@ func DataSourceIBMIAMUserPolicy() *schema.Resource { Schema: map[string]*schema.Schema{ "key": { Type: schema.TypeString, - Required: true, + Optional: true, Description: "Key of the condition", }, "operator": { @@ -152,10 +152,35 @@ func DataSourceIBMIAMUserPolicy() *schema.Resource { }, "value": { Type: schema.TypeList, - Required: true, + Optional: true, Elem: &schema.Schema{Type: schema.TypeString}, Description: "Value of the condition", }, + "conditions": { + Type: schema.TypeList, + Optional: true, + Description: "Additional Rule conditions enforced by the policy", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "key": { + Type: schema.TypeString, + Required: true, + Description: "Key of the condition", + }, + "operator": { + Type: schema.TypeString, + Required: true, + Description: "Operator of the condition", + }, + "value": { + Type: schema.TypeList, + Required: true, + Elem: &schema.Schema{Type: schema.TypeString}, + Description: "Value of the condition", + }, + }, + }, + }, }, }, }, diff --git a/ibm/service/iampolicy/resource_ibm_iam_access_group_policy.go b/ibm/service/iampolicy/resource_ibm_iam_access_group_policy.go index 2c9ae69836..5bfcaf2be9 100644 --- a/ibm/service/iampolicy/resource_ibm_iam_access_group_policy.go +++ b/ibm/service/iampolicy/resource_ibm_iam_access_group_policy.go @@ -211,7 +211,7 @@ func ResourceIBMIAMAccessGroupPolicy() *schema.Resource { Schema: map[string]*schema.Schema{ "key": { Type: schema.TypeString, - Required: true, + Optional: true, Description: "Key of the condition", }, "operator": { @@ -221,10 +221,35 @@ func ResourceIBMIAMAccessGroupPolicy() *schema.Resource { }, "value": { Type: schema.TypeList, - Required: true, + Optional: true, Elem: &schema.Schema{Type: schema.TypeString}, Description: "Value of the condition", }, + "conditions": { + Type: schema.TypeList, + Optional: true, + Description: "Additional Rule conditions enforced by the policy", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "key": { + Type: schema.TypeString, + Required: true, + Description: "Key of the condition", + }, + "operator": { + Type: schema.TypeString, + Required: true, + Description: "Operator of the condition", + }, + "value": { + Type: schema.TypeList, + Required: true, + Elem: &schema.Schema{Type: schema.TypeString}, + Description: "Value of the condition", + }, + }, + }, + }, }, }, }, diff --git a/ibm/service/iampolicy/resource_ibm_iam_access_group_policy_test.go b/ibm/service/iampolicy/resource_ibm_iam_access_group_policy_test.go index 3a17f77b47..2e3d5e70e9 100644 --- a/ibm/service/iampolicy/resource_ibm_iam_access_group_policy_test.go +++ b/ibm/service/iampolicy/resource_ibm_iam_access_group_policy_test.go @@ -513,6 +513,37 @@ func TestAccIBMIAMAccessGroupPolicy_With_ServiceGroupID(t *testing.T) { }) } +func TestAccIBMIAMAccessGroupPolicy_With_Attribute_Based_Condition(t *testing.T) { + var conf iampolicymanagementv1.V2PolicyTemplateMetaData + name := fmt.Sprintf("terraform_%d", acctest.RandIntRange(10, 100)) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIBMIAMAccessGroupPolicyDestroy, + Steps: []resource.TestStep{ + { + Config: testAccCheckIBMIAMAccessGroupPolicyAttributeBasedCondition(name), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIBMIAMAccessGroupPolicyExists("ibm_iam_access_group_policy.policy", conf), + resource.TestCheckResourceAttr("ibm_iam_access_group.accgrp", "name", name), + resource.TestCheckResourceAttr("ibm_iam_access_group_policy.policy", "roles.#", "1"), + resource.TestCheckResourceAttr("ibm_iam_access_group_policy.policy", "pattern", "attribute-based-condition:resource:literal-and-wildcard"), + resource.TestCheckResourceAttr("ibm_iam_access_group_policy.policy", "description", "IAM Access Group Policy Attribute Based Condition Creation for test scenario"), + ), + }, + { + Config: testAccCheckIBMIAMAccessGroupPolicyUpdateAttributeBasedCondition(name), + Check: resource.ComposeAggregateTestCheckFunc( + resource.TestCheckResourceAttr("ibm_iam_access_group.accgrp", "name", name), + resource.TestCheckResourceAttr("ibm_iam_access_group_policy.policy", "pattern", "attribute-based-condition:resource:literal-and-wildcard"), + resource.TestCheckResourceAttr("ibm_iam_access_group_policy.policy", "description", "IAM Access Group Policy Attribute Based Condition Update for test scenario"), + ), + }, + }, + }) +} + func testAccCheckIBMIAMAccessGroupPolicyDestroy(s *terraform.State) error { iamPolicyManagementClient, err := acc.TestAccProvider.Meta().(conns.ClientSession).IAMPolicyManagementV1API() if err != nil { @@ -1126,3 +1157,137 @@ func testAccCheckIBMIAMAccessGroupPolicyUpdateWithServiceGroupId(name string) st } `, name) } + +func testAccCheckIBMIAMAccessGroupPolicyAttributeBasedCondition(name string) string { + return fmt.Sprintf(` + resource "ibm_iam_access_group" "accgrp" { + name = "%s" + } + + resource "ibm_iam_access_group_policy" "policy" { + access_group_id = ibm_iam_access_group.accgrp.id + roles = ["Writer"] + resource_attributes { + value = "cloud-object-storage" + operator = "stringEquals" + name = "serviceName" + } + resource_attributes { + value = "cos-instance" + operator = "stringEquals" + name = "serviceInstance" + } + resource_attributes { + value = "bucket" + operator = "stringEquals" + name = "resourceType" + } + resource_attributes { + value = "fgac-tf-test" + operator = "stringEquals" + name = "resource" + } + rule_conditions { + operator = "and" + conditions { + key = "{{resource.attributes.prefix}}" + operator = "stringMatch" + value = ["folder1/subfolder1/*"] + } + conditions { + key = "{{resource.attributes.delimiter}}" + operator = "stringEqualsAnyOf" + value = ["/",""] + } + } + rule_conditions { + key = "{{resource.attributes.path}}" + operator = "stringMatch" + value = ["folder1/subfolder1/*"] + } + rule_conditions { + operator = "and" + conditions { + key = "{{resource.attributes.delimiter}}" + operator = "stringExists" + value = ["false"] + } + conditions { + key = "{{resource.attributes.prefix}}" + operator = "stringExists" + value = ["false"] + } + } + rule_operator = "or" + pattern = "attribute-based-condition:resource:literal-and-wildcard" + description = "IAM Access Group Policy Attribute Based Condition Creation for test scenario" + } + `, name) +} + +func testAccCheckIBMIAMAccessGroupPolicyUpdateAttributeBasedCondition(name string) string { + return fmt.Sprintf(` + resource "ibm_iam_access_group" "accgrp" { + name = "%s" + } + + resource "ibm_iam_access_group_policy" "policy" { + access_group_id = ibm_iam_access_group.accgrp.id + roles = ["Reader", "Writer"] + resource_attributes { + value = "cloud-object-storage" + operator = "stringEquals" + name = "serviceName" + } + resource_attributes { + value = "cos-instance" + operator = "stringEquals" + name = "serviceInstance" + } + resource_attributes { + value = "bucket" + operator = "stringEquals" + name = "resourceType" + } + resource_attributes { + value = "fgac-tf-test" + operator = "stringEquals" + name = "resource" + } + rule_conditions { + operator = "and" + conditions { + key = "{{resource.attributes.prefix}}" + operator = "stringMatch" + value = ["folder1/subfolder1/*"] + } + conditions { + key = "{{resource.attributes.delimiter}}" + operator = "stringEqualsAnyOf" + value = ["/",""] + } + } + rule_conditions { + key = "{{resource.attributes.path}}" + operator = "stringMatch" + value = ["folder1/subfolder1/*"] + } + rule_conditions { + operator = "and" + conditions { + key = "{{resource.attributes.delimiter}}" + operator = "stringExists" + value = ["false"] + } + conditions { + key = "{{resource.attributes.prefix}}" + operator = "stringExists" + value = ["false"] + } + } + rule_operator = "or" + pattern = "attribute-based-condition:resource:literal-and-wildcard" + description = "IAM Access Group Policy Attribute Based Condition Update for test scenario" + } + `, name) +} diff --git a/ibm/service/iampolicy/resource_ibm_iam_policy_template.go b/ibm/service/iampolicy/resource_ibm_iam_policy_template.go index 62ec4e8712..a2c5018389 100644 --- a/ibm/service/iampolicy/resource_ibm_iam_policy_template.go +++ b/ibm/service/iampolicy/resource_ibm_iam_policy_template.go @@ -125,7 +125,7 @@ func ResourceIBMIAMPolicyTemplate() *schema.Resource { Schema: map[string]*schema.Schema{ "key": { Type: schema.TypeString, - Required: true, + Optional: true, Description: "Key of the condition", }, "operator": { @@ -135,10 +135,35 @@ func ResourceIBMIAMPolicyTemplate() *schema.Resource { }, "value": { Type: schema.TypeList, - Required: true, + Optional: true, Elem: &schema.Schema{Type: schema.TypeString}, Description: "Value of the condition", }, + "conditions": { + Type: schema.TypeList, + Optional: true, + Description: "Additional Rule conditions enforced by the policy", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "key": { + Type: schema.TypeString, + Required: true, + Description: "Key of the condition", + }, + "operator": { + Type: schema.TypeString, + Required: true, + Description: "Operator of the condition", + }, + "value": { + Type: schema.TypeList, + Required: true, + Elem: &schema.Schema{Type: schema.TypeString}, + Description: "Value of the condition", + }, + }, + }, + }, }, }, }, @@ -268,12 +293,12 @@ func generateTemplatePolicy(modelMap map[string]interface{}, iamPolicyManagement } if modelMap["rule_conditions"] != nil && len(modelMap["rule_conditions"].(*schema.Set).List()) > 0 { - conditions := []iampolicymanagementv1.RuleAttribute{} + conditions := []iampolicymanagementv1.NestedConditionIntf{} for _, condition := range modelMap["rule_conditions"].(*schema.Set).List() { c := condition.(map[string]interface{}) key := c["key"].(string) operator := c["operator"].(string) - r := iampolicymanagementv1.RuleAttribute{ + r := &iampolicymanagementv1.NestedCondition{ Key: &key, Operator: &operator, } @@ -296,9 +321,10 @@ func generateTemplatePolicy(modelMap map[string]interface{}, iamPolicyManagement } rule := new(iampolicymanagementv1.V2PolicyRule) if len(conditions) == 1 { - rule.Key = conditions[0].Key - rule.Operator = conditions[0].Operator - rule.Value = conditions[0].Value + ruleCondition := conditions[0].(*iampolicymanagementv1.NestedCondition) + rule.Key = ruleCondition.Key + rule.Operator = ruleCondition.Operator + rule.Value = ruleCondition.Value } else { ruleOperator := modelMap["rule_operator"].(string) rule.Operator = &ruleOperator diff --git a/ibm/service/iampolicy/resource_ibm_iam_policy_template_version.go b/ibm/service/iampolicy/resource_ibm_iam_policy_template_version.go index 1f34e5d8f5..819ab07014 100644 --- a/ibm/service/iampolicy/resource_ibm_iam_policy_template_version.go +++ b/ibm/service/iampolicy/resource_ibm_iam_policy_template_version.go @@ -123,7 +123,7 @@ func ResourceIBMIAMPolicyTemplateVersion() *schema.Resource { Schema: map[string]*schema.Schema{ "key": { Type: schema.TypeString, - Required: true, + Optional: true, Description: "Key of the condition", }, "operator": { @@ -133,10 +133,35 @@ func ResourceIBMIAMPolicyTemplateVersion() *schema.Resource { }, "value": { Type: schema.TypeList, - Required: true, + Optional: true, Elem: &schema.Schema{Type: schema.TypeString}, Description: "Value of the condition", }, + "conditions": { + Type: schema.TypeList, + Optional: true, + Description: "Additional Rule conditions enforced by the policy", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "key": { + Type: schema.TypeString, + Required: true, + Description: "Key of the condition", + }, + "operator": { + Type: schema.TypeString, + Required: true, + Description: "Operator of the condition", + }, + "value": { + Type: schema.TypeList, + Required: true, + Elem: &schema.Schema{Type: schema.TypeString}, + Description: "Value of the condition", + }, + }, + }, + }, }, }, }, diff --git a/ibm/service/iampolicy/resource_ibm_iam_service_policy.go b/ibm/service/iampolicy/resource_ibm_iam_service_policy.go index cb428e6c40..9b14ed0696 100644 --- a/ibm/service/iampolicy/resource_ibm_iam_service_policy.go +++ b/ibm/service/iampolicy/resource_ibm_iam_service_policy.go @@ -214,7 +214,7 @@ func ResourceIBMIAMServicePolicy() *schema.Resource { Schema: map[string]*schema.Schema{ "key": { Type: schema.TypeString, - Required: true, + Optional: true, Description: "Key of the condition", }, "operator": { @@ -224,10 +224,35 @@ func ResourceIBMIAMServicePolicy() *schema.Resource { }, "value": { Type: schema.TypeList, - Required: true, + Optional: true, Elem: &schema.Schema{Type: schema.TypeString}, Description: "Value of the condition", }, + "conditions": { + Type: schema.TypeList, + Optional: true, + Description: "Additional Rule conditions enforced by the policy", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "key": { + Type: schema.TypeString, + Required: true, + Description: "Key of the condition", + }, + "operator": { + Type: schema.TypeString, + Required: true, + Description: "Operator of the condition", + }, + "value": { + Type: schema.TypeList, + Required: true, + Elem: &schema.Schema{Type: schema.TypeString}, + Description: "Value of the condition", + }, + }, + }, + }, }, }, }, diff --git a/ibm/service/iampolicy/resource_ibm_iam_service_policy_test.go b/ibm/service/iampolicy/resource_ibm_iam_service_policy_test.go index 27d18b638e..93bdf6ddb6 100644 --- a/ibm/service/iampolicy/resource_ibm_iam_service_policy_test.go +++ b/ibm/service/iampolicy/resource_ibm_iam_service_policy_test.go @@ -474,6 +474,37 @@ func TestAccIBMIAMServicePolicy_With_ServiceGroupID(t *testing.T) { }) } +func TestAccIBMIAMServicePolicy_With_Attribute_Based_Condition(t *testing.T) { + var conf iampolicymanagementv1.V2PolicyTemplateMetaData + name := fmt.Sprintf("terraform_%d", acctest.RandIntRange(10, 100)) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIBMIAMServicePolicyDestroy, + Steps: []resource.TestStep{ + { + Config: testAccCheckIBMIAMServicePolicyAttributeBasedCondition(name), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIBMIAMServicePolicyExists("ibm_iam_service_policy.policy", conf), + resource.TestCheckResourceAttr("ibm_iam_service_id.serviceID", "name", name), + resource.TestCheckResourceAttr("ibm_iam_service_policy.policy", "roles.#", "1"), + resource.TestCheckResourceAttr("ibm_iam_service_policy.policy", "pattern", "attribute-based-condition:resource:literal-and-wildcard"), + resource.TestCheckResourceAttr("ibm_iam_service_policy.policy", "description", "IAM Service Policy Attribute Based Condition Creation for test scenario"), + ), + }, + { + Config: testAccCheckIBMIAMServicePolicyUpdateAttributeBasedCondition(name), + Check: resource.ComposeAggregateTestCheckFunc( + resource.TestCheckResourceAttr("ibm_iam_service_id.serviceID", "name", name), + resource.TestCheckResourceAttr("ibm_iam_service_policy.policy", "pattern", "attribute-based-condition:resource:literal-and-wildcard"), + resource.TestCheckResourceAttr("ibm_iam_service_policy.policy", "description", "IAM Service Policy Attribute Based Condition Update for test scenario"), + ), + }, + }, + }) +} + func testAccCheckIBMIAMServicePolicyDestroy(s *terraform.State) error { rsContClient, err := acc.TestAccProvider.Meta().(conns.ClientSession).IAMPolicyManagementV1API() if err != nil { @@ -1073,3 +1104,137 @@ func testAccCheckIBMIAMServiceUpdatePolicyWithServiceGroupId(name string) string } `, name) } + +func testAccCheckIBMIAMServicePolicyAttributeBasedCondition(name string) string { + return fmt.Sprintf(` + resource "ibm_iam_service_id" "serviceID" { + name = "%s" + } + + resource "ibm_iam_service_policy" "policy" { + iam_service_id = ibm_iam_service_id.serviceID.id + roles = ["Writer"] + resource_attributes { + value = "cloud-object-storage" + operator = "stringEquals" + name = "serviceName" + } + resource_attributes { + value = "cos-instance" + operator = "stringEquals" + name = "serviceInstance" + } + resource_attributes { + value = "bucket" + operator = "stringEquals" + name = "resourceType" + } + resource_attributes { + value = "fgac-tf-test" + operator = "stringEquals" + name = "resource" + } + rule_conditions { + operator = "and" + conditions { + key = "{{resource.attributes.prefix}}" + operator = "stringMatch" + value = ["folder1/subfolder1/*"] + } + conditions { + key = "{{resource.attributes.delimiter}}" + operator = "stringEqualsAnyOf" + value = ["/",""] + } + } + rule_conditions { + key = "{{resource.attributes.path}}" + operator = "stringMatch" + value = ["folder1/subfolder1/*"] + } + rule_conditions { + operator = "and" + conditions { + key = "{{resource.attributes.delimiter}}" + operator = "stringExists" + value = ["false"] + } + conditions { + key = "{{resource.attributes.prefix}}" + operator = "stringExists" + value = ["false"] + } + } + rule_operator = "or" + pattern = "attribute-based-condition:resource:literal-and-wildcard" + description = "IAM Service Policy Attribute Based Condition Creation for test scenario" + } + `, name) +} + +func testAccCheckIBMIAMServicePolicyUpdateAttributeBasedCondition(name string) string { + return fmt.Sprintf(` + resource "ibm_iam_service_id" "serviceID" { + name = "%s" + } + + resource "ibm_iam_service_policy" "policy" { + iam_service_id = ibm_iam_service_id.serviceID.id + roles = ["Reader", "Writer"] + resource_attributes { + value = "cloud-object-storage" + operator = "stringEquals" + name = "serviceName" + } + resource_attributes { + value = "cos-instance" + operator = "stringEquals" + name = "serviceInstance" + } + resource_attributes { + value = "bucket" + operator = "stringEquals" + name = "resourceType" + } + resource_attributes { + value = "fgac-tf-test" + operator = "stringEquals" + name = "resource" + } + rule_conditions { + operator = "and" + conditions { + key = "{{resource.attributes.prefix}}" + operator = "stringMatch" + value = ["folder1/subfolder1/*"] + } + conditions { + key = "{{resource.attributes.delimiter}}" + operator = "stringEqualsAnyOf" + value = ["/",""] + } + } + rule_conditions { + key = "{{resource.attributes.path}}" + operator = "stringMatch" + value = ["folder1/subfolder1/*"] + } + rule_conditions { + operator = "and" + conditions { + key = "{{resource.attributes.delimiter}}" + operator = "stringExists" + value = ["false"] + } + conditions { + key = "{{resource.attributes.prefix}}" + operator = "stringExists" + value = ["false"] + } + } + rule_operator = "or" + pattern = "attribute-based-condition:resource:literal-and-wildcard" + description = "IAM Service Policy Attribute Based Condition Update for test scenario" + } + `, name) +} diff --git a/ibm/service/iampolicy/resource_ibm_iam_trusted_profile_policy.go b/ibm/service/iampolicy/resource_ibm_iam_trusted_profile_policy.go index 16fe0f9499..f3631f38ae 100644 --- a/ibm/service/iampolicy/resource_ibm_iam_trusted_profile_policy.go +++ b/ibm/service/iampolicy/resource_ibm_iam_trusted_profile_policy.go @@ -214,7 +214,7 @@ func ResourceIBMIAMTrustedProfilePolicy() *schema.Resource { Schema: map[string]*schema.Schema{ "key": { Type: schema.TypeString, - Required: true, + Optional: true, Description: "Key of the condition", }, "operator": { @@ -224,10 +224,35 @@ func ResourceIBMIAMTrustedProfilePolicy() *schema.Resource { }, "value": { Type: schema.TypeList, - Required: true, + Optional: true, Elem: &schema.Schema{Type: schema.TypeString}, Description: "Value of the condition", }, + "conditions": { + Type: schema.TypeList, + Optional: true, + Description: "Additional Rule conditions enforced by the policy", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "key": { + Type: schema.TypeString, + Required: true, + Description: "Key of the condition", + }, + "operator": { + Type: schema.TypeString, + Required: true, + Description: "Operator of the condition", + }, + "value": { + Type: schema.TypeList, + Required: true, + Elem: &schema.Schema{Type: schema.TypeString}, + Description: "Value of the condition", + }, + }, + }, + }, }, }, }, diff --git a/ibm/service/iampolicy/resource_ibm_iam_trusted_profile_policy_test.go b/ibm/service/iampolicy/resource_ibm_iam_trusted_profile_policy_test.go index 662eb71ee4..ba0d80e5f7 100644 --- a/ibm/service/iampolicy/resource_ibm_iam_trusted_profile_policy_test.go +++ b/ibm/service/iampolicy/resource_ibm_iam_trusted_profile_policy_test.go @@ -465,6 +465,37 @@ func TestAccIBMIAMTrustedProfilePolicy_With_ServiceGroupID(t *testing.T) { }) } +func TestAccIBMIAMTrustedProfilePolicy_With_Attribute_Based_Condition(t *testing.T) { + var conf iampolicymanagementv1.V2PolicyTemplateMetaData + name := fmt.Sprintf("terraform_%d", acctest.RandIntRange(10, 100)) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIBMIAMTrustedProfilePolicyDestroy, + Steps: []resource.TestStep{ + { + Config: testAccCheckIBMIAMTrustedProfilePolicyAttributeBasedCondition(name), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIBMIAMTrustedProfilePolicyExists("ibm_iam_trusted_profile_policy.policy", conf), + resource.TestCheckResourceAttr("ibm_iam_trusted_profile.profileID", "name", name), + resource.TestCheckResourceAttr("ibm_iam_trusted_profile_policy.policy", "roles.#", "1"), + resource.TestCheckResourceAttr("ibm_iam_trusted_profile_policy.policy", "pattern", "attribute-based-condition:resource:literal-and-wildcard"), + resource.TestCheckResourceAttr("ibm_iam_trusted_profile_policy.policy", "description", "IAM Trusted Profile Policy Attribute Based Condition Creation for test scenario"), + ), + }, + { + Config: testAccCheckIBMIAMTrustedProfilePolicyUpdateAttributeBasedCondition(name), + Check: resource.ComposeAggregateTestCheckFunc( + resource.TestCheckResourceAttr("ibm_iam_trusted_profile.profileID", "name", name), + resource.TestCheckResourceAttr("ibm_iam_trusted_profile_policy.policy", "pattern", "attribute-based-condition:resource:literal-and-wildcard"), + resource.TestCheckResourceAttr("ibm_iam_trusted_profile_policy.policy", "description", "IAM Trusted Profile Policy Attribute Based Condition Update for test scenario"), + ), + }, + }, + }) +} + func testAccCheckIBMIAMTrustedProfilePolicyDestroy(s *terraform.State) error { rsContClient, err := acc.TestAccProvider.Meta().(conns.ClientSession).IAMPolicyManagementV1API() if err != nil { @@ -1033,3 +1064,137 @@ func testAccCheckIBMIAMTrustedProfilePolicyUpdateWithServiceGroupId(name string) } `, name) } + +func testAccCheckIBMIAMTrustedProfilePolicyAttributeBasedCondition(name string) string { + return fmt.Sprintf(` + resource "ibm_iam_trusted_profile" "profileID" { + name = "%s" + } + + resource "ibm_iam_trusted_profile_policy" "policy" { + profile_id = ibm_iam_trusted_profile.profileID.id + roles = ["Writer"] + resource_attributes { + value = "cloud-object-storage" + operator = "stringEquals" + name = "serviceName" + } + resource_attributes { + value = "cos-instance" + operator = "stringEquals" + name = "serviceInstance" + } + resource_attributes { + value = "bucket" + operator = "stringEquals" + name = "resourceType" + } + resource_attributes { + value = "fgac-tf-test" + operator = "stringEquals" + name = "resource" + } + rule_conditions { + operator = "and" + conditions { + key = "{{resource.attributes.prefix}}" + operator = "stringMatch" + value = ["folder1/subfolder1/*"] + } + conditions { + key = "{{resource.attributes.delimiter}}" + operator = "stringEqualsAnyOf" + value = ["/",""] + } + } + rule_conditions { + key = "{{resource.attributes.path}}" + operator = "stringMatch" + value = ["folder1/subfolder1/*"] + } + rule_conditions { + operator = "and" + conditions { + key = "{{resource.attributes.delimiter}}" + operator = "stringExists" + value = ["false"] + } + conditions { + key = "{{resource.attributes.prefix}}" + operator = "stringExists" + value = ["false"] + } + } + rule_operator = "or" + pattern = "attribute-based-condition:resource:literal-and-wildcard" + description = "IAM Trusted Profile Policy Attribute Based Condition Creation for test scenario" + } + `, name) +} + +func testAccCheckIBMIAMTrustedProfilePolicyUpdateAttributeBasedCondition(name string) string { + return fmt.Sprintf(` + resource "ibm_iam_trusted_profile" "profileID" { + name = "%s" + } + + resource "ibm_iam_trusted_profile_policy" "policy" { + profile_id = ibm_iam_trusted_profile.profileID.id + roles = ["Reader", "Writer"] + resource_attributes { + value = "cloud-object-storage" + operator = "stringEquals" + name = "serviceName" + } + resource_attributes { + value = "cos-instance" + operator = "stringEquals" + name = "serviceInstance" + } + resource_attributes { + value = "bucket" + operator = "stringEquals" + name = "resourceType" + } + resource_attributes { + value = "fgac-tf-test" + operator = "stringEquals" + name = "resource" + } + rule_conditions { + operator = "and" + conditions { + key = "{{resource.attributes.prefix}}" + operator = "stringMatch" + value = ["folder1/subfolder1/*"] + } + conditions { + key = "{{resource.attributes.delimiter}}" + operator = "stringEqualsAnyOf" + value = ["/",""] + } + } + rule_conditions { + key = "{{resource.attributes.path}}" + operator = "stringMatch" + value = ["folder1/subfolder1/*"] + } + rule_conditions { + operator = "and" + conditions { + key = "{{resource.attributes.delimiter}}" + operator = "stringExists" + value = ["false"] + } + conditions { + key = "{{resource.attributes.prefix}}" + operator = "stringExists" + value = ["false"] + } + } + rule_operator = "or" + pattern = "attribute-based-condition:resource:literal-and-wildcard" + description = "IAM Trusted Profile Policy Attribute Based Condition Update for test scenario" + } + `, name) +} diff --git a/ibm/service/iampolicy/resource_ibm_iam_user_policy.go b/ibm/service/iampolicy/resource_ibm_iam_user_policy.go index a30e0ab2bf..c3c3529ada 100644 --- a/ibm/service/iampolicy/resource_ibm_iam_user_policy.go +++ b/ibm/service/iampolicy/resource_ibm_iam_user_policy.go @@ -202,7 +202,7 @@ func ResourceIBMIAMUserPolicy() *schema.Resource { Schema: map[string]*schema.Schema{ "key": { Type: schema.TypeString, - Required: true, + Optional: true, Description: "Key of the condition", }, "operator": { @@ -212,10 +212,35 @@ func ResourceIBMIAMUserPolicy() *schema.Resource { }, "value": { Type: schema.TypeList, - Required: true, + Optional: true, Elem: &schema.Schema{Type: schema.TypeString}, Description: "Value of the condition", }, + "conditions": { + Type: schema.TypeList, + Optional: true, + Description: "Additional Rule conditions enforced by the policy", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "key": { + Type: schema.TypeString, + Required: true, + Description: "Key of the condition", + }, + "operator": { + Type: schema.TypeString, + Required: true, + Description: "Operator of the condition", + }, + "value": { + Type: schema.TypeList, + Required: true, + Elem: &schema.Schema{Type: schema.TypeString}, + Description: "Value of the condition", + }, + }, + }, + }, }, }, }, diff --git a/ibm/service/iampolicy/resource_ibm_iam_user_policy_test.go b/ibm/service/iampolicy/resource_ibm_iam_user_policy_test.go index f3f6acb1d3..46be011f8e 100644 --- a/ibm/service/iampolicy/resource_ibm_iam_user_policy_test.go +++ b/ibm/service/iampolicy/resource_ibm_iam_user_policy_test.go @@ -205,6 +205,7 @@ func TestAccIBMIAMUserPolicy_With_Resource_Attributes(t *testing.T) { }, }) } + func TestAccIBMIAMUserPolicy_account_management(t *testing.T) { var conf iampolicymanagementv1.V2PolicyTemplateMetaData name := fmt.Sprintf("terraform_%d", acctest.RandIntRange(10, 100)) @@ -479,6 +480,34 @@ func TestAccIBMIAMUSerPolicy_With_ServiceGroupID(t *testing.T) { }) } +func TestAccIBMIAMUserPolicy_With_Attribute_Based_Condition(t *testing.T) { + var conf iampolicymanagementv1.V2PolicyTemplateMetaData + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIBMIAMUserPolicyDestroy, + Steps: []resource.TestStep{ + { + Config: testAccCheckIBMIAMUserPolicyAttributeBasedCondition(), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIBMIAMUserPolicyExists("ibm_iam_user_policy.policy", conf), + resource.TestCheckResourceAttr("ibm_iam_user_policy.policy", "roles.#", "1"), + resource.TestCheckResourceAttr("ibm_iam_user_policy.policy", "pattern", "attribute-based-condition:resource:literal-and-wildcard"), + resource.TestCheckResourceAttr("ibm_iam_user_policy.policy", "description", "IAM User Policy Attribute Based Condition Creation for test scenario"), + ), + }, + { + Config: testAccCheckIBMIAMUserPolicyUpdateAttributeBasedCondition(), + Check: resource.ComposeAggregateTestCheckFunc( + resource.TestCheckResourceAttr("ibm_iam_user_policy.policy", "pattern", "attribute-based-condition:resource:literal-and-wildcard"), + resource.TestCheckResourceAttr("ibm_iam_user_policy.policy", "description", "IAM User Policy Attribute Based Condition Update for test scenario"), + ), + }, + }, + }) +} + func testAccCheckIBMIAMUserPolicyDestroy(s *terraform.State) error { rsContClient, err := acc.TestAccProvider.Meta().(conns.ClientSession).IAMPolicyManagementV1API() if err != nil { @@ -1008,3 +1037,130 @@ func testAccCheckIBMIAMUserPolicyWithServiceGroupId(name string) string { } `, acc.IAMUser) } + +func testAccCheckIBMIAMUserPolicyAttributeBasedCondition() string { + return fmt.Sprintf(` + + resource "ibm_iam_user_policy" "policy" { + ibm_id = "%s" + roles = ["Writer"] + resource_attributes { + value = "cloud-object-storage" + operator = "stringEquals" + name = "serviceName" + } + resource_attributes { + value = "cos-instance" + operator = "stringEquals" + name = "serviceInstance" + } + resource_attributes { + value = "bucket" + operator = "stringEquals" + name = "resourceType" + } + resource_attributes { + value = "fgac-tf-test" + operator = "stringEquals" + name = "resource" + } + rule_conditions { + operator = "and" + conditions { + key = "{{resource.attributes.prefix}}" + operator = "stringMatch" + value = ["folder1/subfolder1/*"] + } + conditions { + key = "{{resource.attributes.delimiter}}" + operator = "stringEqualsAnyOf" + value = ["/",""] + } + } + rule_conditions { + key = "{{resource.attributes.path}}" + operator = "stringMatch" + value = ["folder1/subfolder1/*"] + } + rule_conditions { + operator = "and" + conditions { + key = "{{resource.attributes.delimiter}}" + operator = "stringExists" + value = ["false"] + } + conditions { + key = "{{resource.attributes.prefix}}" + operator = "stringExists" + value = ["false"] + } + } + rule_operator = "or" + pattern = "attribute-based-condition:resource:literal-and-wildcard" + description = "IAM User Policy Attribute Based Condition Creation for test scenario" + } + `, acc.IAMUser) +} + +func testAccCheckIBMIAMUserPolicyUpdateAttributeBasedCondition() string { + return fmt.Sprintf(` + resource "ibm_iam_user_policy" "policy" { + ibm_id = "%s" + roles = ["Reader", "Writer"] + resource_attributes { + value = "cloud-object-storage" + operator = "stringEquals" + name = "serviceName" + } + resource_attributes { + value = "cos-instance" + operator = "stringEquals" + name = "serviceInstance" + } + resource_attributes { + value = "bucket" + operator = "stringEquals" + name = "resourceType" + } + resource_attributes { + value = "fgac-tf-test" + operator = "stringEquals" + name = "resource" + } + rule_conditions { + operator = "and" + conditions { + key = "{{resource.attributes.prefix}}" + operator = "stringMatch" + value = ["folder1/subfolder1/*"] + } + conditions { + key = "{{resource.attributes.delimiter}}" + operator = "stringEqualsAnyOf" + value = ["/",""] + } + } + rule_conditions { + key = "{{resource.attributes.path}}" + operator = "stringMatch" + value = ["folder1/subfolder1/*"] + } + rule_conditions { + operator = "and" + conditions { + key = "{{resource.attributes.delimiter}}" + operator = "stringExists" + value = ["false"] + } + conditions { + key = "{{resource.attributes.prefix}}" + operator = "stringExists" + value = ["false"] + } + } + rule_operator = "or" + pattern = "attribute-based-condition:resource:literal-and-wildcard" + description = "IAM User Policy Attribute Based Condition Update for test scenario" + } + `, acc.IAMUser) +} diff --git a/ibm/service/kubernetes/resource_ibm_container_cluster.go b/ibm/service/kubernetes/resource_ibm_container_cluster.go index 2d786d3824..37d74326fa 100644 --- a/ibm/service/kubernetes/resource_ibm_container_cluster.go +++ b/ibm/service/kubernetes/resource_ibm_container_cluster.go @@ -122,6 +122,11 @@ func ResourceIBMContainerCluster() *schema.Resource { Default: false, Description: "Specify this option to use the KMS public service endpoint.", }, + "account_id": { + Type: schema.TypeString, + Optional: true, + Description: "Account ID of KMS instance holder - if not provided, defaults to the account in use", + }, }, }, }, @@ -1047,6 +1052,12 @@ func resourceIBMContainerClusterUpdate(d *schema.ResourceData, meta interface{}) endpoint := privateEndpoint.(bool) kmsConfig.PrivateEndpoint = endpoint } + + //Read optional account id + if accountid := kmsMap["account_id"]; accountid != nil { + accountid_string := accountid.(string) + kmsConfig.AccountID = accountid_string + } } } diff --git a/ibm/service/kubernetes/resource_ibm_container_ingress_secret_opaque.go b/ibm/service/kubernetes/resource_ibm_container_ingress_secret_opaque.go index d3879c1e23..8dee8ac3f7 100644 --- a/ibm/service/kubernetes/resource_ibm_container_ingress_secret_opaque.go +++ b/ibm/service/kubernetes/resource_ibm_container_ingress_secret_opaque.go @@ -45,6 +45,9 @@ func ResourceIBMContainerIngressSecretOpaque() *schema.Resource { Required: true, Description: "Secret name", ForceNew: true, + ValidateFunc: validate.InvokeValidator( + "ibm_container_ingress_secret_opaque", + "secret_name"), }, "secret_namespace": { Type: schema.TypeString, @@ -73,6 +76,16 @@ func ResourceIBMContainerIngressSecretOpaque() *schema.Resource { Computed: true, Description: "Status of the secret", }, + "update_secret": { + Type: schema.TypeInt, + Optional: true, + Description: "Updates secret from secrets manager if value is changed (increment each usage)", + }, + "last_updated_timestamp": { + Type: schema.TypeString, + Computed: true, + Description: "Timestamp secret was last updated", + }, "fields": { Type: schema.TypeSet, Required: true, @@ -122,6 +135,16 @@ func ResourceIBMContainerIngressSecretOpaqueValidator() *validate.ResourceValida CloudDataType: "cluster", CloudDataRange: []string{"resolved_to:id"}}) + validateSchema = append(validateSchema, validate.ValidateSchema{ + Identifier: "secret_name", + ValidateFunctionIdentifier: validate.ValidateRegexpLen, + Type: validate.TypeString, + Required: true, + Regexp: `^([a-z0-9]([-a-z0-9]*[a-z0-9])?(.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*)$`, + MinValueLength: 1, + MaxValueLength: 63, + }) + iBMContainerIngressInstanceValidator := validate.ResourceValidator{ResourceName: "ibm_container_ingress_secret_opaque", Schema: validateSchema} return &iBMContainerIngressInstanceValidator } @@ -205,6 +228,7 @@ func resourceIBMContainerIngressSecretOpaqueRead(d *schema.ResourceData, meta in d.Set("persistence", ingressSecretConfig.Persistence) d.Set("user_managed", ingressSecretConfig.UserManaged) d.Set("status", ingressSecretConfig.Status) + d.Set("last_updated_timestamp", ingressSecretConfig.LastUpdatedTimestamp) if len(ingressSecretConfig.Fields) > 0 { d.Set("fields", flex.FlattenOpaqueSecret(ingressSecretConfig.Fields)) @@ -261,6 +285,7 @@ func resourceIBMContainerIngressSecretOpaqueUpdate(d *schema.ResourceData, meta Namespace: secretNamespace, } + ingressAPI := ingressClient.Ingresses() if d.HasChange("fields") { oldList, newList := d.GetChange("fields") @@ -276,7 +301,6 @@ func resourceIBMContainerIngressSecretOpaqueUpdate(d *schema.ResourceData, meta remove := os.Difference(ns).List() add := ns.Difference(os).List() - ingressAPI := ingressClient.Ingresses() if len(remove) > 0 { actualSecret, err := ingressAPI.GetIngressSecret(cluster, secretName, secretNamespace) if err != nil { @@ -342,8 +366,13 @@ func resourceIBMContainerIngressSecretOpaqueUpdate(d *schema.ResourceData, meta return err } } + } else if d.HasChange("update_secret") { + // user wants to force an upstream secret update from secrets manager onto kube cluster w/out changing crn + _, err = ingressAPI.UpdateIngressSecret(params) + if err != nil { + return err + } } - return resourceIBMContainerIngressSecretOpaqueRead(d, meta) } diff --git a/ibm/service/kubernetes/resource_ibm_container_ingress_secret_opaque_test.go b/ibm/service/kubernetes/resource_ibm_container_ingress_secret_opaque_test.go index 5aa03e59c9..6e214768b2 100644 --- a/ibm/service/kubernetes/resource_ibm_container_ingress_secret_opaque_test.go +++ b/ibm/service/kubernetes/resource_ibm_container_ingress_secret_opaque_test.go @@ -5,6 +5,7 @@ package kubernetes_test import ( "fmt" + "regexp" "strings" "testing" @@ -70,7 +71,124 @@ func TestAccIBMContainerIngressSecretOpaque_Basic(t *testing.T) { ResourceName: "ibm_container_ingress_secret_opaque.secret", ImportState: true, ImportStateVerify: true, - ImportStateVerifyIgnore: []string{"region", "issuer_name"}, + ImportStateVerifyIgnore: []string{"region", "issuer_name", "update_secret"}, + }, + }, + }) +} + +func TestAccIBMContainerIngressSecretOpaque_InvalidName(t *testing.T) { + secretName := fmt.Sprintf(")-tf-container-ingress-secret-name-opaque-%d", acctest.RandIntRange(10, 100)) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIBMContainerIngressSecretDestroy, + Steps: []resource.TestStep{ + { + Config: testAccCheckIBMContainerIngressSecretOpaqueBasic(secretName), + ExpectError: regexp.MustCompile(".*should match regexp"), + }, + }, + }) +} + +func TestAccIBMContainerIngressSecretOpaque_ForceUpdate(t *testing.T) { + secretName := fmt.Sprintf("tf-container-ingress-secret-name-opaque-update-%d", acctest.RandIntRange(10, 100)) + + var originalTS string + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIBMContainerIngressSecretDestroy, + Steps: []resource.TestStep{ + { + Config: testAccCheckIBMContainerIngressSecretOpaqueForceUpdateCreate(secretName), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_opaque.secret", "cluster", acc.ClusterName), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_opaque.secret", "secret_name", secretName), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_opaque.secret", "secret_namespace", "ibm-cert-store"), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_opaque.secret", "persistence", "true"), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_opaque.secret", "type", "Opaque"), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_opaque.secret", "fields.#", "1"), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_opaque.secret", "user_managed", "true"), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_opaque.secret", "status", "created"), + resource.TestCheckResourceAttrWith("ibm_container_ingress_secret_opaque.secret", "last_updated_timestamp", func(value string) error { + originalTS = value + return nil + }), + ), + }, + { + Config: testAccCheckIBMContainerIngressSecretOpaqueForceUpdate(secretName), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_opaque.secret", "cluster", acc.ClusterName), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_opaque.secret", "secret_name", secretName), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_opaque.secret", "secret_namespace", "ibm-cert-store"), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_opaque.secret", "persistence", "true"), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_opaque.secret", "type", "Opaque"), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_opaque.secret", "fields.#", "1"), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_opaque.secret", "user_managed", "true"), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_opaque.secret", "status", "created"), + resource.TestCheckResourceAttrWith("ibm_container_ingress_secret_opaque.secret", "last_updated_timestamp", func(value string) error { + if originalTS == value { + return fmt.Errorf("error timestamp not changed, indicates update didnt go through. original: %s, actual: %s", originalTS, value) + } + originalTS = value // check if another update will execute without a change to `update_secret` + return nil + }), + ), + }, + { + Config: testAccCheckIBMContainerIngressSecretOpaqueForceUpdate(secretName), + ExpectNonEmptyPlan: false, + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_opaque.secret", "cluster", acc.ClusterName), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_opaque.secret", "secret_name", secretName), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_opaque.secret", "secret_namespace", "ibm-cert-store"), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_opaque.secret", "persistence", "true"), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_opaque.secret", "type", "Opaque"), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_opaque.secret", "fields.#", "1"), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_opaque.secret", "user_managed", "true"), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_opaque.secret", "status", "created"), + resource.TestCheckResourceAttrWith("ibm_container_ingress_secret_opaque.secret", "last_updated_timestamp", func(value string) error { + if originalTS != value { + return fmt.Errorf("error timestamp has changed, indicates update was called again even though no modification of fields. exptected: %s, actual: %s", originalTS, value) + } + return nil + }), + ), + }, + { + ResourceName: "ibm_container_ingress_secret_opaque.secret", + ImportState: true, + ImportStateVerify: true, + ImportStateVerifyIgnore: []string{"region", "issuer_name", "update_secret"}, }, }, }) @@ -134,3 +252,30 @@ resource "ibm_container_ingress_secret_opaque" "secret" { } }`, secretName, "ibm-cert-store", acc.ClusterName, true, acc.SecretCRN) } + +func testAccCheckIBMContainerIngressSecretOpaqueForceUpdateCreate(secretName string) string { + return fmt.Sprintf(` +resource "ibm_container_ingress_secret_opaque" "secret" { + secret_name = "%s" + secret_namespace = "%s" + cluster = "%s" + persistence = "%t" + fields { + crn = "%s" + } +}`, secretName, "ibm-cert-store", acc.ClusterName, true, acc.SecretCRN) +} + +func testAccCheckIBMContainerIngressSecretOpaqueForceUpdate(secretName string) string { + return fmt.Sprintf(` +resource "ibm_container_ingress_secret_opaque" "secret" { + secret_name = "%s" + secret_namespace = "%s" + cluster = "%s" + persistence = "%t" + update_secret = "%d" + fields { + crn = "%s" + } +}`, secretName, "ibm-cert-store", acc.ClusterName, true, 1, acc.SecretCRN) +} diff --git a/ibm/service/kubernetes/resource_ibm_container_ingress_secret_tls.go b/ibm/service/kubernetes/resource_ibm_container_ingress_secret_tls.go index aa7b4ec694..625e1d7286 100644 --- a/ibm/service/kubernetes/resource_ibm_container_ingress_secret_tls.go +++ b/ibm/service/kubernetes/resource_ibm_container_ingress_secret_tls.go @@ -44,6 +44,10 @@ func ResourceIBMContainerIngressSecretTLS() *schema.Resource { Required: true, Description: "Secret name", ForceNew: true, + ValidateFunc: validate.InvokeValidator( + "ibm_container_ingress_secret_tls", + "secret_name", + ), }, "secret_namespace": { Type: schema.TypeString, @@ -91,6 +95,11 @@ func ResourceIBMContainerIngressSecretTLS() *schema.Resource { Computed: true, Description: "Timestamp secret was last updated", }, + "update_secret": { + Type: schema.TypeInt, + Optional: true, + Description: "Updates secret from secrets manager if value is changed (increment each usage)", + }, }, } } @@ -106,6 +115,15 @@ func ResourceIBMContainerIngressSecretTLSValidator() *validate.ResourceValidator CloudDataType: "cluster", CloudDataRange: []string{"resolved_to:id"}}) + validateSchema = append(validateSchema, validate.ValidateSchema{ + Identifier: "secret_name", + ValidateFunctionIdentifier: validate.ValidateRegexpLen, + Type: validate.TypeString, + Required: true, + Regexp: `^([a-z0-9]([-a-z0-9]*[a-z0-9])?(.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*)$`, + MinValueLength: 1, + MaxValueLength: 63, + }) iBMContainerIngressInstanceValidator := validate.ResourceValidator{ResourceName: "ibm_container_ingress_secret_tls", Schema: validateSchema} return &iBMContainerIngressInstanceValidator } @@ -228,14 +246,20 @@ func resourceIBMContainerIngressSecretTLSUpdate(d *schema.ResourceData, meta int Namespace: secretNamespace, } + ingressAPI := ingressClient.Ingresses() if d.HasChange("cert_crn") { params.CRN = d.Get("cert_crn").(string) - ingressAPI := ingressClient.Ingresses() _, err := ingressAPI.UpdateIngressSecret(params) if err != nil { return err } + } else if d.HasChange("update_secret") { + // user wants to force an upstream secret update from secrets manager onto kube cluster w/out changing crn + _, err = ingressAPI.UpdateIngressSecret(params) + if err != nil { + return err + } } return resourceIBMContainerIngressSecretTLSRead(d, meta) diff --git a/ibm/service/kubernetes/resource_ibm_container_ingress_secret_tls_test.go b/ibm/service/kubernetes/resource_ibm_container_ingress_secret_tls_test.go index 36be6b606a..d2edc360de 100644 --- a/ibm/service/kubernetes/resource_ibm_container_ingress_secret_tls_test.go +++ b/ibm/service/kubernetes/resource_ibm_container_ingress_secret_tls_test.go @@ -5,6 +5,7 @@ package kubernetes_test import ( "fmt" + "regexp" "strings" "testing" @@ -64,7 +65,112 @@ func TestAccIBMContainerIngressSecretTLS_Basic(t *testing.T) { ResourceName: "ibm_container_ingress_secret_tls.secret", ImportState: true, ImportStateVerify: true, - ImportStateVerifyIgnore: []string{"region", "issuer_name"}, + ImportStateVerifyIgnore: []string{"region", "issuer_name", "update_secret"}, + }, + }, + }) +} + +func TestAccIBMContainerIngressSecretTLS_InvalidName(t *testing.T) { + secretName := fmt.Sprintf("-)tf-container-ingress-secret-name-%d", acctest.RandIntRange(10, 100)) + + resource.Test(t, resource.TestCase{ + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIBMContainerIngressSecretDestroy, + Steps: []resource.TestStep{ + { + Config: testAccCheckIBMContainerIngressSecretTLSBasic(secretName), + ExpectError: regexp.MustCompile(".*should match regexp"), + }, + }, + }) +} + +// test ability to flip update_secret field to get upstream secret update from secrets manager instance via ingress API +func TestAccIBMContainerIngressSecretTLS_BasicForceUpdate(t *testing.T) { + secretName := fmt.Sprintf("tf-container-ingress-secret-name-%d", acctest.RandIntRange(10, 100)) + + var originalTS string + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIBMContainerIngressSecretDestroy, + Steps: []resource.TestStep{ + { + Config: testAccCheckIBMContainerIngressSecretTLSBasic(secretName), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_tls.secret", "cluster", acc.ClusterName), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_tls.secret", "secret_name", secretName), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_tls.secret", "secret_namespace", "ibm-cert-store"), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_tls.secret", "cert_crn", acc.CertCRN), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_tls.secret", "persistence", "true"), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_tls.secret", "type", "TLS"), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_tls.secret", "user_managed", "true"), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_tls.secret", "status", "created"), + + resource.TestCheckResourceAttrWith("ibm_container_ingress_secret_tls.secret", "last_updated_timestamp", func(value string) error { + originalTS = value + return nil + }), + ), + }, + { + Config: testAccCheckIBMContainerIngressSecretTLSForceUpdate(secretName), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_tls.secret", "secret_name", secretName), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_tls.secret", "secret_namespace", "ibm-cert-store"), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_tls.secret", "cert_crn", acc.CertCRN), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_tls.secret", "user_managed", "true"), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_tls.secret", "status", "created"), + resource.TestCheckResourceAttrWith("ibm_container_ingress_secret_tls.secret", "last_updated_timestamp", func(value string) error { + if originalTS == value { + return fmt.Errorf("error timestamp not changed, indicates update didnt go through. original: %s, actual: %s", originalTS, value) + } + originalTS = value // check if another update will execute without a change to `update_secret` + return nil + }), + ), + }, + { + Config: testAccCheckIBMContainerIngressSecretTLSForceUpdate(secretName), + ExpectNonEmptyPlan: false, + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_tls.secret", "secret_name", secretName), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_tls.secret", "secret_namespace", "ibm-cert-store"), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_tls.secret", "cert_crn", acc.CertCRN), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_tls.secret", "user_managed", "true"), + resource.TestCheckResourceAttr( + "ibm_container_ingress_secret_tls.secret", "status", "created"), + resource.TestCheckResourceAttrWith("ibm_container_ingress_secret_tls.secret", "last_updated_timestamp", func(value string) error { + if originalTS != value { + return fmt.Errorf("error timestamp has changed, indicates update was called again even though no modification of fields. exptected: %s, actual: %s", originalTS, value) + } + return nil + }), + ), + }, + { + ResourceName: "ibm_container_ingress_secret_tls.secret", + ImportState: true, + ImportStateVerify: true, + ImportStateVerifyIgnore: []string{"region", "issuer_name", "update_secret"}, }, }, }) @@ -121,3 +227,15 @@ resource "ibm_container_ingress_secret_tls" "secret" { persistence = "%t" }`, acc.ClusterName, secretName, "ibm-cert-store", acc.UpdatedCertCRN, true) } + +func testAccCheckIBMContainerIngressSecretTLSForceUpdate(secretName string) string { + return fmt.Sprintf(` +resource "ibm_container_ingress_secret_tls" "secret" { + cluster = "%s" + secret_name = "%s" + secret_namespace = "%s" + cert_crn = "%s" + persistence = "%t" + update_secret = "%d" +}`, acc.ClusterName, secretName, "ibm-cert-store", acc.CertCRN, true, 1) +} diff --git a/ibm/service/kubernetes/resource_ibm_container_vpc_cluster.go b/ibm/service/kubernetes/resource_ibm_container_vpc_cluster.go index e05e29dbeb..944f8f074f 100644 --- a/ibm/service/kubernetes/resource_ibm_container_vpc_cluster.go +++ b/ibm/service/kubernetes/resource_ibm_container_vpc_cluster.go @@ -96,6 +96,11 @@ func ResourceIBMContainerVpcCluster() *schema.Resource { Default: false, Description: "Specify this option to use the KMS public service endpoint.", }, + "account_id": { + Type: schema.TypeString, + Optional: true, + Description: "Account ID of KMS instance holder - if not provided, defaults to the account in use", + }, }, }, }, @@ -685,6 +690,12 @@ func resourceIBMContainerVpcClusterUpdate(d *schema.ResourceData, meta interface endpoint := privateEndpoint.(bool) kmsConfig.PrivateEndpoint = endpoint } + + //Read optional account id + if accountid := kmsMap["account_id"]; accountid != nil { + accountid_string := accountid.(string) + kmsConfig.AccountID = accountid_string + } } } diff --git a/ibm/service/kubernetes/resource_ibm_container_vpc_cluster_test.go b/ibm/service/kubernetes/resource_ibm_container_vpc_cluster_test.go index e565eaf810..ad067026ae 100644 --- a/ibm/service/kubernetes/resource_ibm_container_vpc_cluster_test.go +++ b/ibm/service/kubernetes/resource_ibm_container_vpc_cluster_test.go @@ -464,7 +464,7 @@ func TestAccIBMContainerVpcClusterBaseEnvvar(t *testing.T) { ImportState: true, ImportStateVerify: true, ImportStateVerifyIgnore: []string{ - "wait_till", "update_all_workers", "kms_config", "force_delete_storage", "wait_for_worker_update"}, + "wait_till", "update_all_workers", "kms_config", "force_delete_storage", "wait_for_worker_update", "albs"}, }, }, }) @@ -512,7 +512,22 @@ func testAccCheckIBMContainerVpcClusterEnvvar(name string) string { // export IBM_CLUSTER_VPC_ID // export IBM_CLUSTER_VPC_SUBNET_ID // export IBM_CLUSTER_VPC_RESOURCE_GROUP_ID +// optionally for kms and cross account kms: +// export IBM_KMS_INSTANCE_ID +// export IBM_CRK_ID +// for cross account kms: +// export IBM_KMS_ACCOUNT_ID func testAccCheckIBMContainerVpcClusterBaseEnvvar(name string) string { + var kmsConfig string + if acc.KmsInstanceID != "" { + kmsConfig = fmt.Sprintf(` + kms_config { + instance_id = "%[1]s" + crk_id = "%[2]s" + account_id = "%[3]s" + } + `, acc.KmsInstanceID, acc.CrkID, acc.KmsAccountID) + } config := fmt.Sprintf(` resource "ibm_container_vpc_cluster" "cluster" { name = "%[1]s" @@ -525,8 +540,10 @@ func testAccCheckIBMContainerVpcClusterBaseEnvvar(name string) string { name = "us-south-1" } wait_till = "normal" + %[5]s } - `, name, acc.IksClusterVpcID, acc.IksClusterResourceGroupID, acc.IksClusterSubnetID) + `, name, acc.IksClusterVpcID, acc.IksClusterResourceGroupID, acc.IksClusterSubnetID, kmsConfig) + fmt.Println(config) return config } diff --git a/ibm/service/logsrouter/README.md b/ibm/service/logsrouter/README.md new file mode 100644 index 0000000000..350106c42d --- /dev/null +++ b/ibm/service/logsrouter/README.md @@ -0,0 +1,11 @@ +# Terraform IBM Provider + +This area is primarily for IBM provider contributors and maintainers. For information on _using_ Terraform and the IBM provider, see the links below. + + +## Handy Links +* [Find out about contributing](../../../CONTRIBUTING.md) to the IBM provider! +* IBM Provider Docs: [Home](https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs) +* IBM Provider Docs: [One of the resources](https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/resources/logs_router_tenant) +* IBM API Docs: [IBM API Docs for IBM Cloud Logs Router](https://test.cloud.ibm.com/apidocs/logs-router-service-api) +* IBM SDK: [IBM SDK for IBM Cloud Logs Router](https://github.com/IBM/logs-router-go-sdk) diff --git a/ibm/service/logsrouter/data_source_ibm_logs_router_tenant.go b/ibm/service/logsrouter/data_source_ibm_logs_router_tenant.go new file mode 100644 index 0000000000..db12580145 --- /dev/null +++ b/ibm/service/logsrouter/data_source_ibm_logs_router_tenant.go @@ -0,0 +1,118 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package logsrouter + +import ( + "context" + "fmt" + "log" + + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + "github.com/IBM/logs-router-go-sdk/ibmlogsrouteropenapi30v0" + + "github.com/IBM/go-sdk-core/v5/core" + "github.com/go-openapi/strfmt" +) + +func DataSourceIbmLogsRouterTenant() *schema.Resource { + return &schema.Resource{ + ReadContext: dataSourceIbmLogsRouterTenantRead, + + Schema: map[string]*schema.Schema{ + "tenant_id": &schema.Schema{ + Type: schema.TypeString, + Required: true, + Description: "The instance ID of the tenant.", + }, + "account_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The account ID the tenant belongs to.", + }, + "target_type": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Type of log-sink.", + }, + "target_host": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Host name of log-sink.", + }, + "target_port": &schema.Schema{ + Type: schema.TypeInt, + Computed: true, + Description: "Network port of log sink.", + }, + "target_instance_crn": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Cloud resource name of the log-sink target instance.", + }, + "created_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Time stamp the tenant was originally created.", + }, + "updated_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "time stamp the tenant was last updated.", + }, + }, + } +} + +func dataSourceIbmLogsRouterTenantRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + ibmLogsRouterOpenApi30Client, err := meta.(conns.ClientSession).IbmLogsRouterOpenApi30V0() + if err != nil { + return diag.FromErr(err) + } + + getTenantDetailOptions := &ibmlogsrouteropenapi30v0.GetTenantDetailOptions{} + + getTenantDetailOptions.SetTenantID(core.UUIDPtr(strfmt.UUID(d.Get("tenant_id").(string)))) + + tenantDetailsResponse, response, err := ibmLogsRouterOpenApi30Client.GetTenantDetailWithContext(context, getTenantDetailOptions) + if err != nil { + log.Printf("[DEBUG] GetTenantDetailWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("GetTenantDetailWithContext failed %s\n%s", err, response)) + } + + d.SetId(fmt.Sprintf("%s", *getTenantDetailOptions.TenantID)) + + if err = d.Set("account_id", tenantDetailsResponse.AccountID); err != nil { + return diag.FromErr(fmt.Errorf("Error setting account_id: %s", err)) + } + + if err = d.Set("target_type", tenantDetailsResponse.TargetType); err != nil { + return diag.FromErr(fmt.Errorf("Error setting target_type: %s", err)) + } + + if err = d.Set("target_host", tenantDetailsResponse.TargetHost); err != nil { + return diag.FromErr(fmt.Errorf("Error setting target_host: %s", err)) + } + + if err = d.Set("target_port", flex.IntValue(tenantDetailsResponse.TargetPort)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting target_port: %s", err)) + } + + if err = d.Set("target_instance_crn", tenantDetailsResponse.TargetInstanceCrn); err != nil { + return diag.FromErr(fmt.Errorf("Error setting target_instance_crn: %s", err)) + } + + if err = d.Set("created_at", tenantDetailsResponse.CreatedAt); err != nil { + return diag.FromErr(fmt.Errorf("Error setting created_at: %s", err)) + } + + if err = d.Set("updated_at", tenantDetailsResponse.UpdatedAt); err != nil { + return diag.FromErr(fmt.Errorf("Error setting updated_at: %s", err)) + } + + return nil +} diff --git a/ibm/service/logsrouter/data_source_ibm_logs_router_tenant_test.go b/ibm/service/logsrouter/data_source_ibm_logs_router_tenant_test.go new file mode 100644 index 0000000000..597acdbded --- /dev/null +++ b/ibm/service/logsrouter/data_source_ibm_logs_router_tenant_test.go @@ -0,0 +1,44 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package logsrouter_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" +) + +func TestAccIbmLogsRouterTenantDataSourceBasic(t *testing.T) { + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmLogsRouterTenantDataSourceConfigBasic(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("data.ibm_logs_router_tenant.logs_router_tenant_instance", "id"), + resource.TestCheckResourceAttrSet("data.ibm_logs_router_tenant.logs_router_tenant_instance", "tenant_id"), + ), + }, + }, + }) +} + +func testAccCheckIbmLogsRouterTenantDataSourceConfigBasic() string { + return fmt.Sprintf(` + resource "ibm_logs_router_tenant" "logs_router_tenant_instance" { + target_type = "logdna" + target_host = "tf-target-host-01" + target_port = 42 + target_instance_crn = "crn:v1:bluemix:public:logdna:eu-de:a/3516b8fa0a174a71899f5affa4f18d78:3517d2ed-9429-af34-ad52-34278391cbca::" + access_credential = "test-credential" + } + data "ibm_logs_router_tenant" "logs_router_tenant_instance" { + tenant_id = ibm_logs_router_tenant.logs_router_tenant_instance.id + } + `) +} diff --git a/ibm/service/logsrouter/resource_ibm_logs_router_tenant.go b/ibm/service/logsrouter/resource_ibm_logs_router_tenant.go new file mode 100644 index 0000000000..02da4c81c0 --- /dev/null +++ b/ibm/service/logsrouter/resource_ibm_logs_router_tenant.go @@ -0,0 +1,266 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package logsrouter + +import ( + "context" + "fmt" + "log" + + "github.com/go-openapi/strfmt" + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/validate" + "github.com/IBM/go-sdk-core/v5/core" + "github.com/IBM/logs-router-go-sdk/ibmlogsrouteropenapi30v0" +) + +func ResourceIbmLogsRouterTenant() *schema.Resource { + return &schema.Resource{ + CreateContext: resourceIbmLogsRouterTenantCreate, + ReadContext: resourceIbmLogsRouterTenantRead, + UpdateContext: resourceIbmLogsRouterTenantUpdate, + DeleteContext: resourceIbmLogsRouterTenantDelete, + Importer: &schema.ResourceImporter{}, + + Schema: map[string]*schema.Schema{ + "target_type": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validate.InvokeValidator("ibm_logs_router_tenant", "target_type"), + Description: "Type of log-sink.", + }, + "target_host": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validate.InvokeValidator("ibm_logs_router_tenant", "target_host"), + Description: "Host name of log-sink.", + }, + "target_port": { + Type: schema.TypeInt, + Required: true, + Description: "Network port of log sink.", + }, + "target_instance_crn": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validate.InvokeValidator("ibm_logs_router_tenant", "target_instance_crn"), + Description: "Cloud resource name of the log-sink target instance.", + }, + "access_credential": { + Type: schema.TypeString, + Required: true, + Sensitive: true, + ValidateFunc: validate.InvokeValidator("ibm_logs_router_tenant", "access_credential"), + Description: "Secret to connect to the log-sink", + }, + "account_id": { + Type: schema.TypeString, + Computed: true, + Description: "The account ID the tenant belongs to.", + }, + "created_at": { + Type: schema.TypeString, + Computed: true, + Description: "Time stamp the tenant was originally created.", + }, + "updated_at": { + Type: schema.TypeString, + Computed: true, + Description: "time stamp the tenant was last updated.", + }, + }, + } +} + +func ResourceIbmLogsRouterTenantValidator() *validate.ResourceValidator { + validateSchema := make([]validate.ValidateSchema, 0) + validateSchema = append(validateSchema, + validate.ValidateSchema{ + Identifier: "target_type", + ValidateFunctionIdentifier: validate.ValidateRegexpLen, + Type: validate.TypeString, + Required: true, + Regexp: `[a-z,A-Z,0-9,-]`, + MinValueLength: 1, + MaxValueLength: 32, + }, + validate.ValidateSchema{ + Identifier: "target_host", + ValidateFunctionIdentifier: validate.ValidateRegexpLen, + Type: validate.TypeString, + Required: true, + Regexp: `[a-z,A-Z,0-9,-,.]`, + MinValueLength: 1, + MaxValueLength: 256, + }, + validate.ValidateSchema{ + Identifier: "target_instance_crn", + ValidateFunctionIdentifier: validate.ValidateRegexpLen, + Type: validate.TypeString, + Required: true, + Regexp: `[a-z,A-Z,0-9,:,-]`, + MinValueLength: 1, + MaxValueLength: 256, + }, + validate.ValidateSchema{ + Identifier: "access_credential", + ValidateFunctionIdentifier: validate.ValidateRegexpLen, + Type: validate.TypeString, + Required: true, + Regexp: `[a-z,A-Z,0-9,-\\.;!?]`, + MinValueLength: 10, + MaxValueLength: 50, + }, + ) + + resourceValidator := validate.ResourceValidator{ResourceName: "ibm_logs_router_tenant", Schema: validateSchema} + return &resourceValidator +} + +func resourceIbmLogsRouterTenantCreate(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + ibmLogsRouterOpenApi30Client, err := meta.(conns.ClientSession).IbmLogsRouterOpenApi30V0() + if err != nil { + return diag.FromErr(err) + } + + createTenantOptions := &ibmlogsrouteropenapi30v0.CreateTenantOptions{} + + createTenantOptions.SetTargetType(d.Get("target_type").(string)) + createTenantOptions.SetTargetHost(d.Get("target_host").(string)) + createTenantOptions.SetTargetPort(int64(d.Get("target_port").(int))) + createTenantOptions.SetAccessCredential(d.Get("access_credential").(string)) + createTenantOptions.SetTargetInstanceCrn(d.Get("target_instance_crn").(string)) + + tenantDetailsResponse, response, err := ibmLogsRouterOpenApi30Client.CreateTenantWithContext(context, createTenantOptions) + if err != nil { + log.Printf("[DEBUG] CreateTenantWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("CreateTenantWithContext failed %s\n%s", err, response)) + } + + d.SetId(tenantDetailsResponse.ID.String()) + + return resourceIbmLogsRouterTenantRead(context, d, meta) +} + +func resourceIbmLogsRouterTenantRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + ibmLogsRouterOpenApi30Client, err := meta.(conns.ClientSession).IbmLogsRouterOpenApi30V0() + if err != nil { + return diag.FromErr(err) + } + + getTenantDetailOptions := &ibmlogsrouteropenapi30v0.GetTenantDetailOptions{} + tenantId := strfmt.UUID(d.Id()) + getTenantDetailOptions.SetTenantID(&tenantId) + + tenantDetailsResponse, response, err := ibmLogsRouterOpenApi30Client.GetTenantDetailWithContext(context, getTenantDetailOptions) + if err != nil { + if response != nil && response.StatusCode == 404 { + d.SetId("") + return nil + } + log.Printf("[DEBUG] GetTenantDetailWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("GetTenantDetailWithContext failed %s\n%s", err, response)) + } + + if err = d.Set("target_type", tenantDetailsResponse.TargetType); err != nil { + return diag.FromErr(fmt.Errorf("Error setting target_type: %s", err)) + } + if err = d.Set("target_host", tenantDetailsResponse.TargetHost); err != nil { + return diag.FromErr(fmt.Errorf("Error setting target_host: %s", err)) + } + if err = d.Set("target_port", flex.IntValue(tenantDetailsResponse.TargetPort)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting target_port: %s", err)) + } + if err = d.Set("target_instance_crn", tenantDetailsResponse.TargetInstanceCrn); err != nil { + return diag.FromErr(fmt.Errorf("Error setting target_instance_crn: %s", err)) + } + if !core.IsNil(tenantDetailsResponse.AccountID) { + if err = d.Set("account_id", tenantDetailsResponse.AccountID); err != nil { + return diag.FromErr(fmt.Errorf("Error setting account_id: %s", err)) + } + } + if !core.IsNil(tenantDetailsResponse.CreatedAt) { + if err = d.Set("created_at", tenantDetailsResponse.CreatedAt); err != nil { + return diag.FromErr(fmt.Errorf("Error setting created_at: %s", err)) + } + } + if !core.IsNil(tenantDetailsResponse.UpdatedAt) { + if err = d.Set("updated_at", tenantDetailsResponse.UpdatedAt); err != nil { + return diag.FromErr(fmt.Errorf("Error setting updated_at: %s", err)) + } + } + + return nil +} + +func resourceIbmLogsRouterTenantUpdate(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + ibmLogsRouterOpenApi30Client, err := meta.(conns.ClientSession).IbmLogsRouterOpenApi30V0() + if err != nil { + return diag.FromErr(err) + } + + updateTargetOptions := &ibmlogsrouteropenapi30v0.UpdateTargetOptions{} + tenantId := strfmt.UUID(d.Id()) + updateTargetOptions.SetTenantID(&tenantId) + + hasChange := false + + patchVals := &ibmlogsrouteropenapi30v0.TenantDetailsResponsePatch{} + if d.HasChange("target_host") { + newTargetHost := d.Get("target_host").(string) + patchVals.TargetHost = &newTargetHost + hasChange = true + } + if d.HasChange("target_port") { + newTargetPort := int64(d.Get("target_port").(int)) + patchVals.TargetPort = &newTargetPort + hasChange = true + } + if d.HasChange("access_credential") { + newAccessCredential := d.Get("access_credential").(string) + patchVals.AccessCredential = &newAccessCredential + hasChange = true + } + if d.HasChange("target_instance_crn") { + newTargetInstanceCrn := d.Get("target_instance_crn").(string) + patchVals.TargetInstanceCrn = &newTargetInstanceCrn + hasChange = true + } + + if hasChange { + updateTargetOptions.TenantDetailsResponsePatch, _ = patchVals.AsPatch() + _, response, err := ibmLogsRouterOpenApi30Client.UpdateTargetWithContext(context, updateTargetOptions) + if err != nil { + log.Printf("[DEBUG] UpdateTargetWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("UpdateTargetWithContext failed %s\n%s", err, response)) + } + } + + return resourceIbmLogsRouterTenantRead(context, d, meta) +} + +func resourceIbmLogsRouterTenantDelete(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + ibmLogsRouterOpenApi30Client, err := meta.(conns.ClientSession).IbmLogsRouterOpenApi30V0() + if err != nil { + return diag.FromErr(err) + } + + deleteTenantOptions := &ibmlogsrouteropenapi30v0.DeleteTenantOptions{} + tenantId := strfmt.UUID(d.Id()) + deleteTenantOptions.SetTenantID(&tenantId) + + _, response, err := ibmLogsRouterOpenApi30Client.DeleteTenantWithContext(context, deleteTenantOptions) + if err != nil { + log.Printf("[DEBUG] DeleteTenantWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("DeleteTenantWithContext failed %s\n%s", err, response)) + } + + d.SetId("") + + return nil +} diff --git a/ibm/service/logsrouter/resource_ibm_logs_router_tenant_test.go b/ibm/service/logsrouter/resource_ibm_logs_router_tenant_test.go new file mode 100644 index 0000000000..a625776d49 --- /dev/null +++ b/ibm/service/logsrouter/resource_ibm_logs_router_tenant_test.go @@ -0,0 +1,128 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package logsrouter_test + +import ( + "fmt" + "testing" + + "github.com/go-openapi/strfmt" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM/logs-router-go-sdk/ibmlogsrouteropenapi30v0" +) + +func TestAccIbmLogsRouterTenantBasic(t *testing.T) { + var conf ibmlogsrouteropenapi30v0.TenantDetailsResponse + targetType := fmt.Sprintf("logdna") + targetHost := fmt.Sprintf("tf-target-host-%d", acctest.RandIntRange(10, 100)) + targetPort := fmt.Sprintf("%d", acctest.RandIntRange(10, 100)) + targetInstanceCrn := fmt.Sprintf("crn:v1:bluemix:public:logdna:eu-de:a/3516b8fa0a174a71899f5affa4f18d78:3517d2ed-9429-af34-ad52-34278391cbc8::") + targetTypeUpdate := fmt.Sprintf("logdna") + targetHostUpdate := fmt.Sprintf("tf-target-host-%d", acctest.RandIntRange(10, 100)) + targetPortUpdate := fmt.Sprintf("%d", acctest.RandIntRange(10, 100)) + targetInstanceCrnUpdate := fmt.Sprintf("crn:v1:bluemix:public:logdna:eu-de:a/3516b8fa0a174a71899f5affa4f18d78:3517d2ed-9429-af34-ad52-34278391cbc8::") + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIbmLogsRouterTenantDestroy, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmLogsRouterTenantConfigBasic(targetType, targetHost, targetPort, targetInstanceCrn), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIbmLogsRouterTenantExists("ibm_logs_router_tenant.logs_router_tenant_instance", conf), + resource.TestCheckResourceAttr("ibm_logs_router_tenant.logs_router_tenant_instance", "target_type", targetType), + resource.TestCheckResourceAttr("ibm_logs_router_tenant.logs_router_tenant_instance", "target_host", targetHost), + resource.TestCheckResourceAttr("ibm_logs_router_tenant.logs_router_tenant_instance", "target_instance_crn", targetInstanceCrn), + ), + }, + resource.TestStep{ + Config: testAccCheckIbmLogsRouterTenantConfigBasic(targetTypeUpdate, targetHostUpdate, targetPortUpdate, targetInstanceCrnUpdate), + Check: resource.ComposeAggregateTestCheckFunc( + resource.TestCheckResourceAttr("ibm_logs_router_tenant.logs_router_tenant_instance", "target_type", targetTypeUpdate), + resource.TestCheckResourceAttr("ibm_logs_router_tenant.logs_router_tenant_instance", "target_host", targetHostUpdate), + resource.TestCheckResourceAttr("ibm_logs_router_tenant.logs_router_tenant_instance", "target_port", targetPortUpdate), + resource.TestCheckResourceAttr("ibm_logs_router_tenant.logs_router_tenant_instance", "target_instance_crn", targetInstanceCrnUpdate), + ), + }, + resource.TestStep{ + ResourceName: "ibm_logs_router_tenant.logs_router_tenant_instance", //"ibm_logs_router_tenant.logs_router_tenant", + ImportState: true, + ImportStateVerify: true, + ImportStateVerifyIgnore: []string{"access_credential"}, + }, + }, + }) +} + +func testAccCheckIbmLogsRouterTenantConfigBasic(targetType string, targetHost string, targetPort string, targetInstanceCrn string) string { + return fmt.Sprintf(` + resource "ibm_logs_router_tenant" "logs_router_tenant_instance" { + target_type = "%s" + target_host = "%s" + target_port = %s + target_instance_crn = "%s" + access_credential = "test-credential" + } + `, targetType, targetHost, targetPort, targetInstanceCrn) +} + +func testAccCheckIbmLogsRouterTenantExists(n string, obj ibmlogsrouteropenapi30v0.TenantDetailsResponse) resource.TestCheckFunc { + + return func(s *terraform.State) error { + rs, ok := s.RootModule().Resources[n] + if !ok { + return fmt.Errorf("Not found: %s", n) + } + + ibmLogsRouterOpenApi30Client, err := acc.TestAccProvider.Meta().(conns.ClientSession).IbmLogsRouterOpenApi30V0() + if err != nil { + return err + } + + getTenantDetailOptions := &ibmlogsrouteropenapi30v0.GetTenantDetailOptions{} + tenantId := strfmt.UUID(rs.Primary.ID) + getTenantDetailOptions.SetTenantID(&tenantId) + + tenantDetailsResponse, _, err := ibmLogsRouterOpenApi30Client.GetTenantDetail(getTenantDetailOptions) + if err != nil { + return err + } + + obj = *tenantDetailsResponse + return nil + } +} + +func testAccCheckIbmLogsRouterTenantDestroy(s *terraform.State) error { + ibmLogsRouterOpenApi30Client, err := acc.TestAccProvider.Meta().(conns.ClientSession).IbmLogsRouterOpenApi30V0() + if err != nil { + return err + } + for _, rs := range s.RootModule().Resources { + if rs.Type != "ibm_logs_router_tenant" { + continue + } + + getTenantDetailOptions := &ibmlogsrouteropenapi30v0.GetTenantDetailOptions{} + tenantId := strfmt.UUID(rs.Primary.ID) + getTenantDetailOptions.SetTenantID(&tenantId) + + // Try to find the key + _, response, err := ibmLogsRouterOpenApi30Client.GetTenantDetail(getTenantDetailOptions) + + if err == nil { + return fmt.Errorf("logs_router_tenant still exists: %s", rs.Primary.ID) + } else if response.StatusCode != 404 { + return fmt.Errorf("Error checking for logs_router_tenant (%s) has been destroyed: %s", rs.Primary.ID, err) + } + } + + return nil +} diff --git a/ibm/service/power/data_source_ibm_pi_datacenter.go b/ibm/service/power/data_source_ibm_pi_datacenter.go new file mode 100644 index 0000000000..2404570273 --- /dev/null +++ b/ibm/service/power/data_source_ibm_pi_datacenter.go @@ -0,0 +1,94 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package power + +import ( + "context" + + "github.com/IBM-Cloud/power-go-client/clients/instance" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + "github.com/hashicorp/go-uuid" + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" +) + +const ( + DatacenterRegion = "region" + DatacenterType = "type" + DatacenterUrl = "url" +) + +func DataSourceIBMPIDatacenter() *schema.Resource { + return &schema.Resource{ + ReadContext: dataSourceIBMPIDatacenterRead, + Schema: map[string]*schema.Schema{ + Arg_DatacenterZone: { + Type: schema.TypeString, + Optional: true, + ValidateFunc: validation.NoZeroValues, + }, + Attr_DatacenterCapabilities: { + Type: schema.TypeMap, + Computed: true, + Description: "Datacenter Capabilities", + Elem: &schema.Schema{ + Type: schema.TypeBool, + }, + }, + Attr_DatacenterHref: { + Type: schema.TypeString, + Computed: true, + Description: "Datacenter href", + }, + Attr_DatacenterLocation: { + Type: schema.TypeMap, + Computed: true, + Description: "Datacenter location", + }, + Attr_DatacenterStatus: { + Type: schema.TypeString, + Computed: true, + Description: "Datacenter status", + }, + Attr_DatacenterType: { + Type: schema.TypeString, + Computed: true, + Description: "Datacenter type", + }, + }, + } +} +func dataSourceIBMPIDatacenterRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + // session + sess, err := meta.(conns.ClientSession).IBMPISession() + if err != nil { + return diag.FromErr(err) + } + + datacenterZone := sess.Options.Zone + if region, ok := d.GetOk(Arg_DatacenterZone); ok { + datacenterZone = region.(string) + } + client := instance.NewIBMPIDatacenterClient(ctx, sess, "") + dcData, err := client.Get(datacenterZone) + if err != nil { + return diag.FromErr(err) + } + var genID, _ = uuid.GenerateUUID() + d.SetId(genID) + d.Set(Attr_DatacenterCapabilities, dcData.Capabilities) + dclocation := map[string]interface{}{ + DatacenterRegion: *dcData.Location.Region, + DatacenterType: *dcData.Location.Type, + DatacenterUrl: *dcData.Location.URL, + } + d.Set(Attr_DatacenterLocation, flex.Flatten(dclocation)) + d.Set(Attr_DatacenterStatus, dcData.Status) + d.Set(Attr_DatacenterType, dcData.Type) + d.Set(Attr_DatacenterHref, dcData.Href) + + return nil +} diff --git a/ibm/service/power/data_source_ibm_pi_datacenter_test.go b/ibm/service/power/data_source_ibm_pi_datacenter_test.go new file mode 100644 index 0000000000..cc289ca32d --- /dev/null +++ b/ibm/service/power/data_source_ibm_pi_datacenter_test.go @@ -0,0 +1,35 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package power_test + +import ( + "fmt" + "testing" + + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" +) + +func TestAccIBMPIDatacenterDataSourceBasic(t *testing.T) { + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + Steps: []resource.TestStep{ + { + Config: testAccCheckIBMPIDatacenterDataSourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("data.ibm_pi_datacenter.test", "id"), + ), + }, + }, + }) +} + +func testAccCheckIBMPIDatacenterDataSourceConfig() string { + return fmt.Sprintf(` + data "ibm_pi_datacenter" "test" { + pi_datacenter_zone = "dal12" + } + `) +} diff --git a/ibm/service/power/data_source_ibm_pi_datacenters.go b/ibm/service/power/data_source_ibm_pi_datacenters.go new file mode 100644 index 0000000000..949ba4741a --- /dev/null +++ b/ibm/service/power/data_source_ibm_pi_datacenters.go @@ -0,0 +1,97 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package power + +import ( + "context" + + "github.com/IBM-Cloud/power-go-client/clients/instance" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/hashicorp/go-uuid" + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" +) + +const ( + Datacenters = "datacenters" +) + +func DataSourceIBMPIDatacenters() *schema.Resource { + return &schema.Resource{ + ReadContext: dataSourceIBMPIDatacentersRead, + Schema: map[string]*schema.Schema{ + Datacenters: { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + + Attr_DatacenterCapabilities: { + Type: schema.TypeMap, + Computed: true, + Description: "Datacenter Capabilities", + Elem: &schema.Schema{ + Type: schema.TypeBool, + }, + }, + Attr_DatacenterHref: { + Type: schema.TypeString, + Computed: true, + Description: "Datacenter href", + }, + Attr_DatacenterLocation: { + Type: schema.TypeMap, + Computed: true, + Description: "Datacenter location", + }, + Attr_DatacenterStatus: { + Type: schema.TypeString, + Computed: true, + Description: "Datacenter status", + }, + Attr_DatacenterType: { + Type: schema.TypeString, + Computed: true, + Description: "Datacenter type", + }, + }, + }, + }, + }, + } +} +func dataSourceIBMPIDatacentersRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + // session + sess, err := meta.(conns.ClientSession).IBMPISession() + if err != nil { + return diag.FromErr(err) + } + client := instance.NewIBMPIDatacenterClient(ctx, sess, "") + datacentersData, err := client.GetAll() + if err != nil { + return diag.FromErr(err) + } + datacenters := make([]map[string]interface{}, 0, len(datacentersData.Datacenters)) + for _, datacenter := range datacentersData.Datacenters { + if datacenter != nil { + dc := map[string]interface{}{ + Attr_DatacenterCapabilities: datacenter.Capabilities, + Attr_DatacenterLocation: map[string]interface{}{ + DatacenterRegion: datacenter.Location.Region, + DatacenterType: datacenter.Location.Type, + DatacenterUrl: datacenter.Location.URL, + }, + Attr_DatacenterStatus: datacenter.Status, + Attr_DatacenterType: datacenter.Type, + Attr_DatacenterHref: datacenter.Href, + } + datacenters = append(datacenters, dc) + } + + } + var clientgenU, _ = uuid.GenerateUUID() + d.SetId(clientgenU) + d.Set(Datacenters, datacenters) + return nil +} diff --git a/ibm/service/power/data_source_ibm_pi_datacenters_test.go b/ibm/service/power/data_source_ibm_pi_datacenters_test.go new file mode 100644 index 0000000000..21271d7d54 --- /dev/null +++ b/ibm/service/power/data_source_ibm_pi_datacenters_test.go @@ -0,0 +1,31 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package power_test + +import ( + "fmt" + "testing" + + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" +) + +func TestAccIBMPIDatacentersDataSourceBasic(t *testing.T) { + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + Steps: []resource.TestStep{ + { + Config: testAccCheckIBMPIDatacentersDataSourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("data.ibm_pi_datacenters.test", "id"), + ), + }, + }, + }) +} + +func testAccCheckIBMPIDatacentersDataSourceConfig() string { + return fmt.Sprintf(`data "ibm_pi_datacenters" "test" {}`) +} diff --git a/ibm/service/power/data_source_ibm_pi_storage_pool_capacity.go b/ibm/service/power/data_source_ibm_pi_storage_pool_capacity.go index f48c7696ae..84500c05d0 100644 --- a/ibm/service/power/data_source_ibm_pi_storage_pool_capacity.go +++ b/ibm/service/power/data_source_ibm_pi_storage_pool_capacity.go @@ -54,6 +54,11 @@ func DataSourceIBMPIStoragePoolCapacity() *schema.Resource { Computed: true, Description: "Total pool capacity (GB)", }, + ReplicationEnabled: { + Type: schema.TypeBool, + Computed: true, + Description: "Replication status of the storage pool", + }, }, } } @@ -75,10 +80,9 @@ func dataSourceIBMPIStoragePoolCapacityRead(ctx context.Context, d *schema.Resou } d.SetId(fmt.Sprintf("%s/%s", cloudInstanceID, storagePool)) - d.Set(MaxAllocationSize, *sp.MaxAllocationSize) d.Set(StorageType, sp.StorageType) d.Set(TotalCapacity, sp.TotalCapacity) - + d.Set(ReplicationEnabled, *sp.ReplicationEnabled) return nil } diff --git a/ibm/service/power/data_source_ibm_pi_storage_pools_capacity.go b/ibm/service/power/data_source_ibm_pi_storage_pools_capacity.go index bd3f3a7a7c..4e64ec5209 100644 --- a/ibm/service/power/data_source_ibm_pi_storage_pools_capacity.go +++ b/ibm/service/power/data_source_ibm_pi_storage_pools_capacity.go @@ -28,6 +28,7 @@ const ( StoragePool = "storage_pool" StorageType = "storage_type" TotalCapacity = "total_capacity" + ReplicationEnabled = "replication_enabled" ) func DataSourceIBMPIStoragePoolsCapacity() *schema.Resource { @@ -71,6 +72,11 @@ func DataSourceIBMPIStoragePoolsCapacity() *schema.Resource { Computed: true, Description: "Total pool capacity (GB)", }, + ReplicationEnabled: { + Type: schema.TypeBool, + Computed: true, + Description: "Replication status of the storage pool", + }, }, }, }, @@ -79,6 +85,7 @@ func DataSourceIBMPIStoragePoolsCapacity() *schema.Resource { } func dataSourceIBMPIStoragePoolsCapacityRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + sess, err := meta.(conns.ClientSession).IBMPISession() if err != nil { return diag.FromErr(err) @@ -109,11 +116,13 @@ func dataSourceIBMPIStoragePoolsCapacityRead(ctx context.Context, d *schema.Reso result := make([]map[string]interface{}, 0, len(spc.StoragePoolsCapacity)) for _, sp := range spc.StoragePoolsCapacity { data := map[string]interface{}{ - MaxAllocationSize: *sp.MaxAllocationSize, - PoolName: sp.PoolName, - StorageType: sp.StorageType, - TotalCapacity: sp.TotalCapacity, + MaxAllocationSize: *sp.MaxAllocationSize, + PoolName: sp.PoolName, + StorageType: sp.StorageType, + TotalCapacity: sp.TotalCapacity, + ReplicationEnabled: *sp.ReplicationEnabled, } + result = append(result, data) } d.Set(StoragePoolsCapacity, result) diff --git a/ibm/service/power/data_source_ibm_pi_workspace.go b/ibm/service/power/data_source_ibm_pi_workspace.go new file mode 100644 index 0000000000..6fb23303ea --- /dev/null +++ b/ibm/service/power/data_source_ibm_pi_workspace.go @@ -0,0 +1,103 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package power + +import ( + "context" + + "github.com/IBM-Cloud/power-go-client/clients/instance" + "github.com/IBM-Cloud/power-go-client/helpers" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" +) + +const ( + WorkspaceCreationDate = "creation_date" + WorkspaceCRN = "crn" + WorkspaceRegion = "region" + WorkspaceType = "type" + WorkspaceUrl = "url" +) + +func DatasourceIBMPIWorkspace() *schema.Resource { + return &schema.Resource{ + ReadContext: dataSourceIBMPIWorkspaceRead, + Schema: map[string]*schema.Schema{ + Arg_CloudInstanceID: { + Type: schema.TypeString, + Required: true, + ValidateFunc: validation.NoZeroValues, + }, + Attr_WorkspaceCapabilities: { + Type: schema.TypeMap, + Computed: true, + Description: "Workspace Capabilities", + Elem: &schema.Schema{ + Type: schema.TypeBool, + }, + }, + Attr_WorkspaceDetails: { + Type: schema.TypeMap, + Computed: true, + Description: "Workspace information", + }, + Attr_WorkspaceLocation: { + Type: schema.TypeMap, + Computed: true, + Description: "Workspace location", + }, + Attr_WorkspaceName: { + Type: schema.TypeString, + Computed: true, + Description: "Workspace name", + }, + Attr_WorkspaceStatus: { + Type: schema.TypeString, + Computed: true, + Description: "Workspace status", + }, + Attr_WorkspaceType: { + Type: schema.TypeString, + Computed: true, + Description: "Workspace type", + }, + }, + } +} + +func dataSourceIBMPIWorkspaceRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + // session + sess, err := meta.(conns.ClientSession).IBMPISession() + if err != nil { + return diag.FromErr(err) + } + + cloudInstanceID := d.Get(helpers.PICloudInstanceId).(string) + client := instance.NewIBMPIWorkspacesClient(ctx, sess, cloudInstanceID) + wsData, err := client.Get(cloudInstanceID) + if err != nil { + return diag.FromErr(err) + } + + d.Set(Attr_WorkspaceName, wsData.Name) + d.Set(Attr_WorkspaceStatus, wsData.Status) + d.Set(Attr_WorkspaceType, wsData.Type) + d.Set(Attr_WorkspaceCapabilities, wsData.Capabilities) + wsdetails := map[string]interface{}{ + WorkspaceCreationDate: wsData.Details.CreationDate.String(), + WorkspaceCRN: *wsData.Details.Crn, + } + d.Set(Attr_WorkspaceDetails, flex.Flatten(wsdetails)) + wslocation := map[string]interface{}{ + WorkspaceRegion: *wsData.Location.Region, + WorkspaceType: wsData.Location.Type, + WorkspaceUrl: wsData.Location.URL, + } + d.Set(Attr_WorkspaceLocation, flex.Flatten(wslocation)) + d.SetId(*wsData.ID) + return nil +} diff --git a/ibm/service/power/data_source_ibm_pi_workspace_test.go b/ibm/service/power/data_source_ibm_pi_workspace_test.go new file mode 100644 index 0000000000..b2adea8072 --- /dev/null +++ b/ibm/service/power/data_source_ibm_pi_workspace_test.go @@ -0,0 +1,34 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package power_test + +import ( + "fmt" + "testing" + + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" +) + +func TestAccIBMPIWorkspaceDataSourceBasic(t *testing.T) { + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + Steps: []resource.TestStep{ + { + Config: testAccCheckIBMPIWorkspaceDataSourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("data.ibm_pi_workspace.test", "pi_workspace_name"), + ), + }, + }, + }) +} +func testAccCheckIBMPIWorkspaceDataSourceConfig() string { + return fmt.Sprintf(` + data "ibm_pi_workspace" "test" { + pi_cloud_instance_id = "%s" + } + `, acc.Pi_cloud_instance_id) +} diff --git a/ibm/service/power/data_source_ibm_pi_workspaces.go b/ibm/service/power/data_source_ibm_pi_workspaces.go new file mode 100644 index 0000000000..c66e924b63 --- /dev/null +++ b/ibm/service/power/data_source_ibm_pi_workspaces.go @@ -0,0 +1,120 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package power + +import ( + "context" + + "github.com/IBM-Cloud/power-go-client/clients/instance" + "github.com/IBM-Cloud/power-go-client/helpers" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/hashicorp/go-uuid" + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" +) + +const ( + Workspaces = "workspaces" +) + +func DatasourceIBMPIWorkspaces() *schema.Resource { + return &schema.Resource{ + ReadContext: dataSourceIBMPIWorkspacesRead, + Schema: map[string]*schema.Schema{ + Arg_CloudInstanceID: { + Type: schema.TypeString, + Required: true, + ValidateFunc: validation.NoZeroValues, + }, + Workspaces: { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + + Attr_WorkspaceCapabilities: { + Type: schema.TypeMap, + Computed: true, + Description: "Workspace Capabilities", + Elem: &schema.Schema{ + Type: schema.TypeBool, + }, + }, + Attr_WorkspaceDetails: { + Type: schema.TypeMap, + Computed: true, + Description: "Workspace information", + }, + Attr_WorkspaceID: { + Type: schema.TypeString, + Computed: true, + Description: "Workspace ID", + }, + Attr_WorkspaceLocation: { + Type: schema.TypeMap, + Computed: true, + Description: "Workspace location", + }, + Attr_WorkspaceName: { + Type: schema.TypeString, + Computed: true, + Description: "Workspace name", + }, + Attr_WorkspaceStatus: { + Type: schema.TypeString, + Computed: true, + Description: "Workspace status", + }, + Attr_WorkspaceType: { + Type: schema.TypeString, + Computed: true, + Description: "Workspace type", + }, + }, + }, + }, + }, + } +} +func dataSourceIBMPIWorkspacesRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + // session + sess, err := meta.(conns.ClientSession).IBMPISession() + if err != nil { + return diag.FromErr(err) + } + + cloudInstanceID := d.Get(helpers.PICloudInstanceId).(string) + client := instance.NewIBMPIWorkspacesClient(ctx, sess, cloudInstanceID) + wsData, err := client.GetAll() + if err != nil { + return diag.FromErr(err) + } + workspaces := make([]map[string]interface{}, 0, len(wsData.Workspaces)) + for _, ws := range wsData.Workspaces { + if ws != nil { + workspace := map[string]interface{}{ + Attr_WorkspaceName: ws.Name, + Attr_WorkspaceID: ws.ID, + Attr_WorkspaceStatus: ws.Status, + Attr_WorkspaceType: ws.Type, + Attr_WorkspaceCapabilities: ws.Capabilities, + Attr_WorkspaceDetails: map[string]interface{}{ + WorkspaceCreationDate: ws.Details.CreationDate.String(), + WorkspaceCRN: *ws.Details.Crn, + }, + Attr_WorkspaceLocation: map[string]interface{}{ + WorkspaceRegion: *ws.Location.Region, + WorkspaceType: ws.Location.Type, + WorkspaceUrl: ws.Location.URL, + }, + } + workspaces = append(workspaces, workspace) + } + } + var clientgenU, _ = uuid.GenerateUUID() + d.SetId(clientgenU) + d.Set(Workspaces, workspaces) + return nil +} diff --git a/ibm/service/power/data_source_ibm_pi_workspaces_test.go b/ibm/service/power/data_source_ibm_pi_workspaces_test.go new file mode 100644 index 0000000000..076d65a342 --- /dev/null +++ b/ibm/service/power/data_source_ibm_pi_workspaces_test.go @@ -0,0 +1,35 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package power_test + +import ( + "fmt" + "testing" + + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" +) + +func TestAccIBMPIWorkspacesDataSourceBasic(t *testing.T) { + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + Steps: []resource.TestStep{ + { + Config: testAccCheckIBMPIWorkspacesDataSourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("data.ibm_pi_workspaces.test", "id"), + ), + }, + }, + }) +} + +func testAccCheckIBMPIWorkspacesDataSourceConfig() string { + return fmt.Sprintf(` + data "ibm_pi_workspaces" "test" { + pi_cloud_instance_id = "%s" + } + `, acc.Pi_cloud_instance_id) +} diff --git a/ibm/service/power/ibm_pi_constants.go b/ibm/service/power/ibm_pi_constants.go index 40e8dbf0a5..8e66a4bd83 100644 --- a/ibm/service/power/ibm_pi_constants.go +++ b/ibm/service/power/ibm_pi_constants.go @@ -148,4 +148,27 @@ const ( StatusPending = "PENDING" SctionStart = "start" SctionStop = "stop" + + // Workspaces + Attr_WorkspaceCapabilities = "pi_workspace_capabilities" + Attr_WorkspaceDetails = "pi_workspace_details" + Attr_WorkspaceID = "pi_workspace_id" + Attr_WorkspaceLocation = "pi_workspace_location" + Attr_WorkspaceName = "pi_workspace_name" + Attr_WorkspaceStatus = "pi_workspace_status" + Attr_WorkspaceType = "pi_workspace_type" + + // Datacenter + Arg_DatacenterZone = "pi_datacenter_zone" + Attr_DatacenterCapabilities = "pi_datacenter_capabilities" + Attr_DatacenterLocation = "pi_datacenter_location" + Attr_DatacenterStatus = "pi_datacenter_status" + Attr_DatacenterType = "pi_datacenter_type" + Attr_DatacenterHref = "pi_datacenter_href" + + // IBM PI Workspace + PIWorkspaceName = "pi_name" + PIWorkspaceDatacenter = "pi_datacenter" + PIWorkspaceResourceGroup = "pi_resource_group_id" + PIWorkspacePlan = "pi_plan" ) diff --git a/ibm/service/power/resource_ibm_pi_workspace.go b/ibm/service/power/resource_ibm_pi_workspace.go new file mode 100644 index 0000000000..590f6ac657 --- /dev/null +++ b/ibm/service/power/resource_ibm_pi_workspace.go @@ -0,0 +1,179 @@ +package power + +import ( + "context" + "fmt" + "log" + "time" + + st "github.com/IBM-Cloud/power-go-client/clients/instance" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" +) + +func ResourceIBMPIWorkspace() *schema.Resource { + return &schema.Resource{ + CreateContext: resourceIBMPIWorkspaceCreate, + ReadContext: resourceIBMPIWorkspaceRead, + DeleteContext: resourceIBMPIWorkspaceDelete, + Importer: &schema.ResourceImporter{}, + + Timeouts: &schema.ResourceTimeout{ + Create: schema.DefaultTimeout(30 * time.Minute), + Delete: schema.DefaultTimeout(30 * time.Minute), + }, + + Schema: map[string]*schema.Schema{ + PIWorkspaceName: { + Type: schema.TypeString, + Required: true, + ForceNew: true, + Description: "A descriptive name used to identify the workspace.", + }, + PIWorkspaceDatacenter: { + Type: schema.TypeString, + Required: true, + ForceNew: true, + Description: "Target location or environment to create the resource instance.", + }, + PIWorkspaceResourceGroup: { + Type: schema.TypeString, + Required: true, + ForceNew: true, + Description: "The ID of the resource group where you want to create the workspace. You can retrieve the value from data source ibm_resource_group.", + }, + PIWorkspacePlan: { + Type: schema.TypeString, + Required: true, + ForceNew: true, + Description: "Plan associated with the offering; Valid values are public or private.", + }, + }, + } +} + +func resourceIBMPIWorkspaceCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + sess, err := meta.(conns.ClientSession).IBMPISession() + if err != nil { + return diag.FromErr(err) + } + + name := d.Get(PIWorkspaceName).(string) + datacenter := d.Get(PIWorkspaceDatacenter).(string) + resourceGroup := d.Get(PIWorkspaceResourceGroup).(string) + plan := d.Get(PIWorkspacePlan).(string) + + // No need for cloudInstanceID because we are creating a workspace + client := st.NewIBMPIWorkspacesClient(ctx, sess, "") + controller, _, err := client.Create(name, datacenter, resourceGroup, plan) + if err != nil { + log.Printf("[DEBUG] create workspace failed %v", err) + return diag.FromErr(err) + } + + d.SetId(*controller.GUID) + _, err = waitForResourceInstanceCreate(ctx, client, *controller.GUID, d.Timeout(schema.TimeoutCreate)) + if err != nil { + return diag.FromErr(err) + } + + return resourceIBMPIWorkspaceRead(ctx, d, meta) +} + +func waitForResourceInstanceCreate(ctx context.Context, client *st.IBMPIWorkspacesClient, id string, timeout time.Duration) (interface{}, error) { + stateConf := &resource.StateChangeConf{ + Pending: []string{"in progress", "inactive", "provisioning"}, + Target: []string{"active"}, + Refresh: isIBMPIWorkspaceCreateRefreshFunc(client, id), + Delay: 10 * time.Second, + MinTimeout: 1 * time.Minute, + Timeout: timeout, + } + return stateConf.WaitForStateContext(ctx) +} + +func isIBMPIWorkspaceCreateRefreshFunc(client *st.IBMPIWorkspacesClient, id string) resource.StateRefreshFunc { + return func() (interface{}, string, error) { + controller, _, err := client.GetRC(id) + if err != nil { + return nil, "", err + } + if *controller.State == "failed" { + return controller, *controller.State, fmt.Errorf("[ERROR] The resource instance %s failed to create", id) + } + return controller, *controller.State, nil + } +} + +func resourceIBMPIWorkspaceRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + // session + sess, err := meta.(conns.ClientSession).IBMPISession() + if err != nil { + return diag.FromErr(err) + } + + cloudInstanceID := d.Id() + client := st.NewIBMPIWorkspacesClient(ctx, sess, cloudInstanceID) + controller, _, err := client.GetRC(cloudInstanceID) + if err != nil { + return diag.FromErr(err) + } + d.Set(PIWorkspaceName, controller.Name) + + return nil +} + +func resourceIBMPIWorkspaceDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + sess, err := meta.(conns.ClientSession).IBMPISession() + if err != nil { + return diag.FromErr(err) + } + + cloudInstanceID := d.Id() + client := st.NewIBMPIWorkspacesClient(ctx, sess, cloudInstanceID) + response, err := client.Delete(cloudInstanceID) + if err != nil && response != nil && response.StatusCode == 410 { + return nil + } + _, err = waitForResourceInstanceDelete(ctx, client, cloudInstanceID, d.Timeout(schema.TimeoutDelete)) + if err != nil { + return diag.FromErr(err) + } + d.SetId("") + + return nil +} + +func waitForResourceInstanceDelete(ctx context.Context, client *st.IBMPIWorkspacesClient, id string, timeout time.Duration) (interface{}, error) { + stateConf := &resource.StateChangeConf{ + Pending: []string{"in progress", "inactive", "active"}, + Target: []string{"removed", "pending_reclamation"}, + Refresh: isIBMPIResourceDeleteRefreshFunc(client, id), + Delay: 10 * time.Second, + MinTimeout: 1 * time.Second, + Timeout: timeout, + } + return stateConf.WaitForStateContext(ctx) +} + +func isIBMPIResourceDeleteRefreshFunc(client *st.IBMPIWorkspacesClient, id string) resource.StateRefreshFunc { + return func() (interface{}, string, error) { + controller, response, err := client.GetRC(id) + if err != nil { + if response != nil && response.StatusCode == 404 { + return controller, "active", nil + } + return nil, "", err + } + if controller == nil { + return controller, "removed", nil + } else { + if *controller.State == "failed" { + return controller, *controller.State, fmt.Errorf("[ERROR] The resource instance %s failed to delete", id) + } + return controller, *controller.State, nil + } + } +} diff --git a/ibm/service/power/resource_ibm_pi_workspace_test.go b/ibm/service/power/resource_ibm_pi_workspace_test.go new file mode 100644 index 0000000000..d38062f794 --- /dev/null +++ b/ibm/service/power/resource_ibm_pi_workspace_test.go @@ -0,0 +1,98 @@ +package power_test + +import ( + "context" + "errors" + "fmt" + "strings" + "testing" + + st "github.com/IBM-Cloud/power-go-client/clients/instance" + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" +) + +func TestAccIBMPIWorkspaceBasic(t *testing.T) { + name := fmt.Sprintf("tf-pi-workspace-%d", acctest.RandIntRange(10, 100)) + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccIBMPIWorkspaceDestroy, + Steps: []resource.TestStep{ + { + Config: testAccCheckIBMPIWorkspaceConfig(name), + Check: resource.ComposeTestCheckFunc( + testAccCheckIBMPIWorkspaceExists("ibm_pi_workspace.powervs_service_instance"), + resource.TestCheckResourceAttrSet("ibm_pi_workspace.powervs_service_instance", "id"), + ), + }, + }, + }) +} + +func testAccCheckIBMPIWorkspaceConfig(name string) string { + return fmt.Sprintf(` + resource "ibm_pi_workspace" "powervs_service_instance" { + pi_name = "%[1]s" + pi_datacenter = "dal" + pi_resource_group_id = "%[2]s" + pi_plan = "public" + } + `, name, acc.Pi_resource_group_id) +} + +func testAccIBMPIWorkspaceDestroy(s *terraform.State) error { + sess, err := acc.TestAccProvider.Meta().(conns.ClientSession).IBMPISession() + if err != nil { + return err + } + for _, rs := range s.RootModule().Resources { + if rs.Type != "ibm_pi_workspace" { + continue + } + cloudInstanceID := rs.Primary.ID + client := st.NewIBMPIWorkspacesClient(context.Background(), sess, cloudInstanceID) + workspace, resp, err := client.GetRC(cloudInstanceID) + if err == nil { + if *workspace.State == "active" { + return fmt.Errorf("Resource Instance still exists: %s", rs.Primary.ID) + } + } else { + if !strings.Contains(err.Error(), "404") { + return fmt.Errorf("[ERROR] Error checking if Resource Instance (%s) has been destroyed: %s with resp code: %s", rs.Primary.ID, err, resp) + } + } + } + return nil +} + +func testAccCheckIBMPIWorkspaceExists(n string) resource.TestCheckFunc { + return func(s *terraform.State) error { + + rs, ok := s.RootModule().Resources[n] + + if !ok { + return fmt.Errorf("Not found: %s", n) + } + + if rs.Primary.ID == "" { + return errors.New("No Record ID is set") + } + + sess, err := acc.TestAccProvider.Meta().(conns.ClientSession).IBMPISession() + if err != nil { + return err + } + + cloudInstanceID := rs.Primary.ID + client := st.NewIBMPIWorkspacesClient(context.Background(), sess, cloudInstanceID) + _, _, err = client.GetRC(cloudInstanceID) + if err != nil { + return err + } + return nil + } +} diff --git a/ibm/service/project/data_source_ibm_project.go b/ibm/service/project/data_source_ibm_project.go new file mode 100644 index 0000000000..1ba775f958 --- /dev/null +++ b/ibm/service/project/data_source_ibm_project.go @@ -0,0 +1,537 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package project + +import ( + "context" + "fmt" + "log" + + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + "github.com/IBM/project-go-sdk/projectv1" +) + +func DataSourceIbmProject() *schema.Resource { + return &schema.Resource{ + ReadContext: dataSourceIbmProjectRead, + + Schema: map[string]*schema.Schema{ + "project_id": &schema.Schema{ + Type: schema.TypeString, + Required: true, + Description: "The unique project ID.", + }, + "crn": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "An IBM Cloud resource name, which uniquely identifies a resource.", + }, + "created_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339.", + }, + "cumulative_needs_attention_view": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The cumulative list of needs attention items for a project. If the view is successfully retrieved, an array which could be empty is returned.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "event": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The event name.", + }, + "event_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A unique ID for that individual event.", + }, + "config_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A unique ID for the configuration.", + }, + "config_version": &schema.Schema{ + Type: schema.TypeInt, + Computed: true, + Description: "The version number of the configuration.", + }, + }, + }, + }, + "cumulative_needs_attention_view_error": &schema.Schema{ + Type: schema.TypeBool, + Computed: true, + Description: "True indicates that the fetch of the needs attention items failed. It only exists if there was an error while retrieving the cumulative needs attention view.", + }, + "location": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The IBM Cloud location where a resource is deployed.", + }, + "resource_group_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The resource group id where the project's data and tools are created.", + }, + "state": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The project status value.", + }, + "resource_group": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The resource group name where the project's data and tools are created.", + }, + "event_notifications_crn": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The CRN of the event notifications instance if one is connected to this project.", + }, + "configs": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The project configurations. These configurations are only included in the response of creating a project if a configs array is specified in the request payload.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The ID of the configuration. If this parameter is empty, an ID is automatically created for the configuration.", + }, + "version": &schema.Schema{ + Type: schema.TypeInt, + Computed: true, + Description: "The version of the configuration.", + }, + "state": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The state of the configuration.", + }, + "created_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339.", + }, + "modified_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339.", + }, + "href": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A URL.", + }, + "definition": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The name and description of a project configuration.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The configuration name. It is unique within the account across projects and regions.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A project configuration description.", + }, + }, + }, + }, + "project": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The project referenced by this resource.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The unique ID.", + }, + "definition": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The definition of the project reference.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The name of the project.", + }, + }, + }, + }, + "crn": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "An IBM Cloud resource name, which uniquely identifies a resource.", + }, + "href": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A URL.", + }, + }, + }, + }, + }, + }, + }, + "environments": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The project environments. These environments are only included in the response if project environments were created on the project.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The environment id as a friendly name.", + }, + "project": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The project referenced by this resource.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The unique ID.", + }, + "definition": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The definition of the project reference.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The name of the project.", + }, + }, + }, + }, + "crn": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "An IBM Cloud resource name, which uniquely identifies a resource.", + }, + "href": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A URL.", + }, + }, + }, + }, + "created_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339.", + }, + "href": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A URL.", + }, + "definition": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The environment definition used in the project collection.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The name of the environment. It is unique within the account across projects and regions.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The description of the environment.", + }, + }, + }, + }, + }, + }, + }, + "definition": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The definition of the project.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The name of the project. It is unique within the account across regions.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A brief explanation of the project's use in the configuration of a deployable architecture. It is possible to create a project without providing a description.", + }, + "destroy_on_delete": &schema.Schema{ + Type: schema.TypeBool, + Computed: true, + Description: "The policy that indicates whether the resources are destroyed or not when a project is deleted.", + }, + }, + }, + }, + }, + } +} + +func dataSourceIbmProjectRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + projectClient, err := meta.(conns.ClientSession).ProjectV1() + if err != nil { + return diag.FromErr(err) + } + + getProjectOptions := &projectv1.GetProjectOptions{} + + getProjectOptions.SetID(d.Get("project_id").(string)) + + project, response, err := projectClient.GetProjectWithContext(context, getProjectOptions) + if err != nil { + log.Printf("[DEBUG] GetProjectWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("GetProjectWithContext failed %s\n%s", err, response)) + } + + d.SetId(fmt.Sprintf("%s", *getProjectOptions.ID)) + + if err = d.Set("crn", project.Crn); err != nil { + return diag.FromErr(fmt.Errorf("Error setting crn: %s", err)) + } + + if err = d.Set("created_at", flex.DateTimeToString(project.CreatedAt)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting created_at: %s", err)) + } + + cumulativeNeedsAttentionView := []map[string]interface{}{} + if project.CumulativeNeedsAttentionView != nil { + for _, modelItem := range project.CumulativeNeedsAttentionView { + modelMap, err := dataSourceIbmProjectCumulativeNeedsAttentionToMap(&modelItem) + if err != nil { + return diag.FromErr(err) + } + cumulativeNeedsAttentionView = append(cumulativeNeedsAttentionView, modelMap) + } + } + if err = d.Set("cumulative_needs_attention_view", cumulativeNeedsAttentionView); err != nil { + return diag.FromErr(fmt.Errorf("Error setting cumulative_needs_attention_view %s", err)) + } + + if err = d.Set("cumulative_needs_attention_view_error", project.CumulativeNeedsAttentionViewError); err != nil { + return diag.FromErr(fmt.Errorf("Error setting cumulative_needs_attention_view_error: %s", err)) + } + + if err = d.Set("location", project.Location); err != nil { + return diag.FromErr(fmt.Errorf("Error setting location: %s", err)) + } + + if err = d.Set("resource_group_id", project.ResourceGroupID); err != nil { + return diag.FromErr(fmt.Errorf("Error setting resource_group_id: %s", err)) + } + + if err = d.Set("state", project.State); err != nil { + return diag.FromErr(fmt.Errorf("Error setting state: %s", err)) + } + + if err = d.Set("resource_group", project.ResourceGroup); err != nil { + return diag.FromErr(fmt.Errorf("Error setting resource_group: %s", err)) + } + + if err = d.Set("event_notifications_crn", project.EventNotificationsCrn); err != nil { + return diag.FromErr(fmt.Errorf("Error setting event_notifications_crn: %s", err)) + } + + configs := []map[string]interface{}{} + if project.Configs != nil { + for _, modelItem := range project.Configs { + modelMap, err := dataSourceIbmProjectProjectConfigSummaryToMap(&modelItem) + if err != nil { + return diag.FromErr(err) + } + configs = append(configs, modelMap) + } + } + if err = d.Set("configs", configs); err != nil { + return diag.FromErr(fmt.Errorf("Error setting configs %s", err)) + } + + environments := []map[string]interface{}{} + if project.Environments != nil { + for _, modelItem := range project.Environments { + modelMap, err := dataSourceIbmProjectProjectEnvironmentSummaryToMap(&modelItem) + if err != nil { + return diag.FromErr(err) + } + environments = append(environments, modelMap) + } + } + if err = d.Set("environments", environments); err != nil { + return diag.FromErr(fmt.Errorf("Error setting environments %s", err)) + } + + definition := []map[string]interface{}{} + if project.Definition != nil { + modelMap, err := dataSourceIbmProjectProjectDefinitionPropertiesToMap(project.Definition) + if err != nil { + return diag.FromErr(err) + } + definition = append(definition, modelMap) + } + if err = d.Set("definition", definition); err != nil { + return diag.FromErr(fmt.Errorf("Error setting definition %s", err)) + } + + return nil +} + +func dataSourceIbmProjectCumulativeNeedsAttentionToMap(model *projectv1.CumulativeNeedsAttention) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.Event != nil { + modelMap["event"] = model.Event + } + if model.EventID != nil { + modelMap["event_id"] = model.EventID + } + if model.ConfigID != nil { + modelMap["config_id"] = model.ConfigID + } + if model.ConfigVersion != nil { + modelMap["config_version"] = flex.IntValue(model.ConfigVersion) + } + return modelMap, nil +} + +func dataSourceIbmProjectProjectConfigSummaryToMap(model *projectv1.ProjectConfigSummary) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.ApprovedVersion != nil { + approvedVersionMap, err := dataSourceIbmProjectProjectConfigVersionSummaryToMap(model.ApprovedVersion) + if err != nil { + return modelMap, err + } + modelMap["approved_version"] = []map[string]interface{}{approvedVersionMap} + } + if model.DeployedVersion != nil { + deployedVersionMap, err := dataSourceIbmProjectProjectConfigVersionSummaryToMap(model.DeployedVersion) + if err != nil { + return modelMap, err + } + modelMap["deployed_version"] = []map[string]interface{}{deployedVersionMap} + } + modelMap["id"] = model.ID + modelMap["version"] = flex.IntValue(model.Version) + modelMap["state"] = model.State + modelMap["created_at"] = model.CreatedAt.String() + modelMap["modified_at"] = model.ModifiedAt.String() + modelMap["href"] = model.Href + definitionMap, err := dataSourceIbmProjectProjectConfigDefinitionNameDescriptionToMap(model.Definition) + if err != nil { + return modelMap, err + } + modelMap["definition"] = []map[string]interface{}{definitionMap} + projectMap, err := dataSourceIbmProjectProjectReferenceToMap(model.Project) + if err != nil { + return modelMap, err + } + modelMap["project"] = []map[string]interface{}{projectMap} + return modelMap, nil +} + +func dataSourceIbmProjectProjectConfigVersionSummaryToMap(model *projectv1.ProjectConfigVersionSummary) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + modelMap["state"] = model.State + modelMap["version"] = flex.IntValue(model.Version) + modelMap["href"] = model.Href + return modelMap, nil +} + +func dataSourceIbmProjectProjectConfigDefinitionNameDescriptionToMap(model *projectv1.ProjectConfigDefinitionNameDescription) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.Name != nil { + modelMap["name"] = model.Name + } + if model.Description != nil { + modelMap["description"] = model.Description + } + return modelMap, nil +} + +func dataSourceIbmProjectProjectReferenceToMap(model *projectv1.ProjectReference) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + modelMap["id"] = model.ID + definitionMap, err := dataSourceIbmProjectProjectDefinitionReferenceToMap(model.Definition) + if err != nil { + return modelMap, err + } + modelMap["definition"] = []map[string]interface{}{definitionMap} + modelMap["crn"] = model.Crn + modelMap["href"] = model.Href + return modelMap, nil +} + +func dataSourceIbmProjectProjectDefinitionReferenceToMap(model *projectv1.ProjectDefinitionReference) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + modelMap["name"] = model.Name + return modelMap, nil +} + +func dataSourceIbmProjectProjectEnvironmentSummaryToMap(model *projectv1.ProjectEnvironmentSummary) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + modelMap["id"] = model.ID + projectMap, err := dataSourceIbmProjectProjectReferenceToMap(model.Project) + if err != nil { + return modelMap, err + } + modelMap["project"] = []map[string]interface{}{projectMap} + modelMap["created_at"] = model.CreatedAt.String() + modelMap["href"] = model.Href + definitionMap, err := dataSourceIbmProjectEnvironmentDefinitionNameDescriptionToMap(model.Definition) + if err != nil { + return modelMap, err + } + modelMap["definition"] = []map[string]interface{}{definitionMap} + return modelMap, nil +} + +func dataSourceIbmProjectEnvironmentDefinitionNameDescriptionToMap(model *projectv1.EnvironmentDefinitionNameDescription) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.Name != nil { + modelMap["name"] = model.Name + } + if model.Description != nil { + modelMap["description"] = model.Description + } + return modelMap, nil +} + +func dataSourceIbmProjectProjectDefinitionPropertiesToMap(model *projectv1.ProjectDefinitionProperties) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + modelMap["name"] = model.Name + if model.Description != nil { + modelMap["description"] = model.Description + } + modelMap["destroy_on_delete"] = model.DestroyOnDelete + return modelMap, nil +} diff --git a/ibm/service/project/data_source_ibm_project_config.go b/ibm/service/project/data_source_ibm_project_config.go new file mode 100644 index 0000000000..38ddf87947 --- /dev/null +++ b/ibm/service/project/data_source_ibm_project_config.go @@ -0,0 +1,687 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package project + +import ( + "context" + "fmt" + "log" + + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + "github.com/IBM/project-go-sdk/projectv1" +) + +func DataSourceIbmProjectConfig() *schema.Resource { + return &schema.Resource{ + ReadContext: dataSourceIbmProjectConfigRead, + + Schema: map[string]*schema.Schema{ + "project_id": &schema.Schema{ + Type: schema.TypeString, + Required: true, + Description: "The unique project ID.", + }, + "project_config_id": &schema.Schema{ + Type: schema.TypeString, + Required: true, + Description: "The unique config ID.", + }, + "version": &schema.Schema{ + Type: schema.TypeInt, + Computed: true, + Description: "The version of the configuration.", + }, + "is_draft": &schema.Schema{ + Type: schema.TypeBool, + Computed: true, + Description: "The flag that indicates whether the version of the configuration is draft, or active.", + }, + "needs_attention_state": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The needs attention state of a configuration.", + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "created_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339.", + }, + "modified_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339.", + }, + "last_saved_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339.", + }, + "outputs": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The outputs of a Schematics template property.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The variable name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A short explanation of the output value.", + }, + "value": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Can be any value - a string, number, boolean, array, or object.", + }, + }, + }, + }, + "project": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The project referenced by this resource.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The unique ID.", + }, + "definition": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The definition of the project reference.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The name of the project.", + }, + }, + }, + }, + "crn": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "An IBM Cloud resource name, which uniquely identifies a resource.", + }, + "href": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A URL.", + }, + }, + }, + }, + "schematics": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "A schematics workspace associated to a project configuration, with scripts.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "workspace_crn": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "An existing schematics workspace CRN.", + }, + "validate_pre_script": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "A script to be run as part of a Project configuration, for a given stage (pre, post) and action (validate, deploy, undeploy).", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "type": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The type of the script.", + }, + "path": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The path to this script within the current version source.", + }, + "short_description": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The short description for this script.", + }, + }, + }, + }, + "validate_post_script": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "A script to be run as part of a Project configuration, for a given stage (pre, post) and action (validate, deploy, undeploy).", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "type": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The type of the script.", + }, + "path": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The path to this script within the current version source.", + }, + "short_description": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The short description for this script.", + }, + }, + }, + }, + "deploy_pre_script": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "A script to be run as part of a Project configuration, for a given stage (pre, post) and action (validate, deploy, undeploy).", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "type": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The type of the script.", + }, + "path": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The path to this script within the current version source.", + }, + "short_description": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The short description for this script.", + }, + }, + }, + }, + "deploy_post_script": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "A script to be run as part of a Project configuration, for a given stage (pre, post) and action (validate, deploy, undeploy).", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "type": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The type of the script.", + }, + "path": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The path to this script within the current version source.", + }, + "short_description": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The short description for this script.", + }, + }, + }, + }, + "undeploy_pre_script": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "A script to be run as part of a Project configuration, for a given stage (pre, post) and action (validate, deploy, undeploy).", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "type": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The type of the script.", + }, + "path": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The path to this script within the current version source.", + }, + "short_description": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The short description for this script.", + }, + }, + }, + }, + "undeploy_post_script": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "A script to be run as part of a Project configuration, for a given stage (pre, post) and action (validate, deploy, undeploy).", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "type": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The type of the script.", + }, + "path": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The path to this script within the current version source.", + }, + "short_description": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The short description for this script.", + }, + }, + }, + }, + }, + }, + }, + "state": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The state of the configuration.", + }, + "update_available": &schema.Schema{ + Type: schema.TypeBool, + Computed: true, + Description: "The flag that indicates whether a configuration update is available.", + }, + "definition": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The name and description of a project configuration.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The configuration name. It is unique within the account across projects and regions.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A project configuration description.", + }, + "environment_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The ID of the project environment.", + }, + "authorizations": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The authorization details. You can authorize by using a trusted profile or an API key in Secrets Manager.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "trusted_profile_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The trusted profile ID.", + }, + "method": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The authorization method. You can authorize by using a trusted profile or an API key in Secrets Manager.", + }, + "api_key": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Sensitive: true, + Description: "The IBM Cloud API Key.", + }, + }, + }, + }, + "compliance_profile": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The profile required for compliance.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The unique ID for that compliance profile.", + }, + "instance_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A unique ID for an instance of a compliance profile.", + }, + "instance_location": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The location of the compliance instance.", + }, + "attachment_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A unique ID for the attachment to a compliance profile.", + }, + "profile_name": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The name of the compliance profile.", + }, + }, + }, + }, + "locator_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A unique concatenation of catalogID.versionID that identifies the DA in the catalog.", + }, + "inputs": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The input variables for configuration definition and environment.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{}, + }, + }, + "settings": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "Schematics environment variables to use to deploy the configuration.Settings are only available if they were specified when the configuration was initially created.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{}, + }, + }, + }, + }, + }, + }, + } +} + +func dataSourceIbmProjectConfigRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + projectClient, err := meta.(conns.ClientSession).ProjectV1() + if err != nil { + return diag.FromErr(err) + } + + getConfigOptions := &projectv1.GetConfigOptions{} + + getConfigOptions.SetProjectID(d.Get("project_id").(string)) + getConfigOptions.SetID(d.Get("project_config_id").(string)) + + projectConfig, response, err := projectClient.GetConfigWithContext(context, getConfigOptions) + if err != nil { + log.Printf("[DEBUG] GetConfigWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("GetConfigWithContext failed %s\n%s", err, response)) + } + + d.SetId(fmt.Sprintf("%s/%s", *getConfigOptions.ProjectID, *getConfigOptions.ID)) + + if err = d.Set("version", flex.IntValue(projectConfig.Version)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting version: %s", err)) + } + + if err = d.Set("is_draft", projectConfig.IsDraft); err != nil { + return diag.FromErr(fmt.Errorf("Error setting is_draft: %s", err)) + } + + if err = d.Set("needs_attention_state", projectConfig.NeedsAttentionState); err != nil { + return diag.FromErr(fmt.Errorf("Error setting needs_attention_state: %s", err)) + } + + if err = d.Set("created_at", flex.DateTimeToString(projectConfig.CreatedAt)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting created_at: %s", err)) + } + + if err = d.Set("modified_at", flex.DateTimeToString(projectConfig.ModifiedAt)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting modified_at: %s", err)) + } + + if err = d.Set("last_saved_at", flex.DateTimeToString(projectConfig.LastSavedAt)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting last_saved_at: %s", err)) + } + + outputs := []map[string]interface{}{} + if projectConfig.Outputs != nil { + for _, modelItem := range projectConfig.Outputs { + modelMap, err := dataSourceIbmProjectConfigOutputValueToMap(&modelItem) + if err != nil { + return diag.FromErr(err) + } + outputs = append(outputs, modelMap) + } + } + if err = d.Set("outputs", outputs); err != nil { + return diag.FromErr(fmt.Errorf("Error setting outputs %s", err)) + } + + project := []map[string]interface{}{} + if projectConfig.Project != nil { + modelMap, err := dataSourceIbmProjectConfigProjectReferenceToMap(projectConfig.Project) + if err != nil { + return diag.FromErr(err) + } + project = append(project, modelMap) + } + if err = d.Set("project", project); err != nil { + return diag.FromErr(fmt.Errorf("Error setting project %s", err)) + } + + schematics := []map[string]interface{}{} + if projectConfig.Schematics != nil { + modelMap, err := dataSourceIbmProjectConfigSchematicsMetadataToMap(projectConfig.Schematics) + if err != nil { + return diag.FromErr(err) + } + schematics = append(schematics, modelMap) + } + if err = d.Set("schematics", schematics); err != nil { + return diag.FromErr(fmt.Errorf("Error setting schematics %s", err)) + } + + if err = d.Set("state", projectConfig.State); err != nil { + return diag.FromErr(fmt.Errorf("Error setting state: %s", err)) + } + + if err = d.Set("update_available", projectConfig.UpdateAvailable); err != nil { + return diag.FromErr(fmt.Errorf("Error setting update_available: %s", err)) + } + + definition := []map[string]interface{}{} + if projectConfig.Definition != nil { + modelMap, err := dataSourceIbmProjectConfigProjectConfigResponseDefinitionToMap(projectConfig.Definition) + if err != nil { + return diag.FromErr(err) + } + definition = append(definition, modelMap) + } + if err = d.Set("definition", definition); err != nil { + return diag.FromErr(fmt.Errorf("Error setting definition %s", err)) + } + + return nil +} + +func dataSourceIbmProjectConfigOutputValueToMap(model *projectv1.OutputValue) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + modelMap["name"] = model.Name + if model.Description != nil { + modelMap["description"] = model.Description + } + if model.Value != nil { + modelMap["value"] = model.Value + } + return modelMap, nil +} + +func dataSourceIbmProjectConfigProjectReferenceToMap(model *projectv1.ProjectReference) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + modelMap["id"] = model.ID + definitionMap, err := dataSourceIbmProjectConfigProjectDefinitionReferenceToMap(model.Definition) + if err != nil { + return modelMap, err + } + modelMap["definition"] = []map[string]interface{}{definitionMap} + modelMap["crn"] = model.Crn + modelMap["href"] = model.Href + return modelMap, nil +} + +func dataSourceIbmProjectConfigProjectDefinitionReferenceToMap(model *projectv1.ProjectDefinitionReference) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + modelMap["name"] = model.Name + return modelMap, nil +} + +func dataSourceIbmProjectConfigSchematicsMetadataToMap(model *projectv1.SchematicsMetadata) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.WorkspaceCrn != nil { + modelMap["workspace_crn"] = model.WorkspaceCrn + } + if model.ValidatePreScript != nil { + validatePreScriptMap, err := dataSourceIbmProjectConfigScriptToMap(model.ValidatePreScript) + if err != nil { + return modelMap, err + } + modelMap["validate_pre_script"] = []map[string]interface{}{validatePreScriptMap} + } + if model.ValidatePostScript != nil { + validatePostScriptMap, err := dataSourceIbmProjectConfigScriptToMap(model.ValidatePostScript) + if err != nil { + return modelMap, err + } + modelMap["validate_post_script"] = []map[string]interface{}{validatePostScriptMap} + } + if model.DeployPreScript != nil { + deployPreScriptMap, err := dataSourceIbmProjectConfigScriptToMap(model.DeployPreScript) + if err != nil { + return modelMap, err + } + modelMap["deploy_pre_script"] = []map[string]interface{}{deployPreScriptMap} + } + if model.DeployPostScript != nil { + deployPostScriptMap, err := dataSourceIbmProjectConfigScriptToMap(model.DeployPostScript) + if err != nil { + return modelMap, err + } + modelMap["deploy_post_script"] = []map[string]interface{}{deployPostScriptMap} + } + if model.UndeployPreScript != nil { + undeployPreScriptMap, err := dataSourceIbmProjectConfigScriptToMap(model.UndeployPreScript) + if err != nil { + return modelMap, err + } + modelMap["undeploy_pre_script"] = []map[string]interface{}{undeployPreScriptMap} + } + if model.UndeployPostScript != nil { + undeployPostScriptMap, err := dataSourceIbmProjectConfigScriptToMap(model.UndeployPostScript) + if err != nil { + return modelMap, err + } + modelMap["undeploy_post_script"] = []map[string]interface{}{undeployPostScriptMap} + } + return modelMap, nil +} + +func dataSourceIbmProjectConfigScriptToMap(model *projectv1.Script) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.Type != nil { + modelMap["type"] = model.Type + } + if model.Path != nil { + modelMap["path"] = model.Path + } + if model.ShortDescription != nil { + modelMap["short_description"] = model.ShortDescription + } + return modelMap, nil +} + +func dataSourceIbmProjectConfigProjectConfigResponseDefinitionToMap(model *projectv1.ProjectConfigResponseDefinition) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + modelMap["name"] = model.Name + if model.Description != nil { + modelMap["description"] = model.Description + } + if model.EnvironmentID != nil { + modelMap["environment_id"] = model.EnvironmentID + } + if model.Authorizations != nil { + authorizationsMap, err := dataSourceIbmProjectConfigProjectConfigAuthToMap(model.Authorizations) + if err != nil { + return modelMap, err + } + modelMap["authorizations"] = []map[string]interface{}{authorizationsMap} + } + if model.ComplianceProfile != nil { + complianceProfileMap, err := dataSourceIbmProjectConfigProjectComplianceProfileToMap(model.ComplianceProfile) + if err != nil { + return modelMap, err + } + modelMap["compliance_profile"] = []map[string]interface{}{complianceProfileMap} + } + modelMap["locator_id"] = model.LocatorID + if model.Inputs != nil { + inputsMap, err := dataSourceIbmProjectConfigInputVariableToMap(model.Inputs) + if err != nil { + return modelMap, err + } + modelMap["inputs"] = []map[string]interface{}{inputsMap} + } + if model.Settings != nil { + settingsMap, err := dataSourceIbmProjectConfigProjectConfigSettingToMap(model.Settings) + if err != nil { + return modelMap, err + } + modelMap["settings"] = []map[string]interface{}{settingsMap} + } + return modelMap, nil +} + +func dataSourceIbmProjectConfigProjectConfigAuthToMap(model *projectv1.ProjectConfigAuth) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.TrustedProfileID != nil { + modelMap["trusted_profile_id"] = model.TrustedProfileID + } + if model.Method != nil { + modelMap["method"] = model.Method + } + if model.ApiKey != nil { + modelMap["api_key"] = model.ApiKey + } + return modelMap, nil +} + +func dataSourceIbmProjectConfigProjectComplianceProfileToMap(model *projectv1.ProjectComplianceProfile) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.ID != nil { + modelMap["id"] = model.ID + } + if model.InstanceID != nil { + modelMap["instance_id"] = model.InstanceID + } + if model.InstanceLocation != nil { + modelMap["instance_location"] = model.InstanceLocation + } + if model.AttachmentID != nil { + modelMap["attachment_id"] = model.AttachmentID + } + if model.ProfileName != nil { + modelMap["profile_name"] = model.ProfileName + } + return modelMap, nil +} + +func dataSourceIbmProjectConfigInputVariableToMap(model *projectv1.InputVariable) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + return modelMap, nil +} + +func dataSourceIbmProjectConfigProjectConfigSettingToMap(model *projectv1.ProjectConfigSetting) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + return modelMap, nil +} diff --git a/ibm/service/project/data_source_ibm_project_config_test.go b/ibm/service/project/data_source_ibm_project_config_test.go new file mode 100644 index 0000000000..785e6ff684 --- /dev/null +++ b/ibm/service/project/data_source_ibm_project_config_test.go @@ -0,0 +1,74 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package project_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" +) + +func TestAccIbmProjectConfigDataSourceBasic(t *testing.T) { + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmProjectConfigDataSourceConfigBasic(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("data.ibm_project_config.project_config_instance", "id"), + resource.TestCheckResourceAttrSet("data.ibm_project_config.project_config_instance", "project_id"), + resource.TestCheckResourceAttrSet("data.ibm_project_config.project_config_instance", "project_config_id"), + resource.TestCheckResourceAttrSet("data.ibm_project_config.project_config_instance", "version"), + resource.TestCheckResourceAttrSet("data.ibm_project_config.project_config_instance", "is_draft"), + resource.TestCheckResourceAttrSet("data.ibm_project_config.project_config_instance", "created_at"), + resource.TestCheckResourceAttrSet("data.ibm_project_config.project_config_instance", "modified_at"), + resource.TestCheckResourceAttrSet("data.ibm_project_config.project_config_instance", "project.#"), + resource.TestCheckResourceAttrSet("data.ibm_project_config.project_config_instance", "state"), + resource.TestCheckResourceAttrSet("data.ibm_project_config.project_config_instance", "update_available"), + resource.TestCheckResourceAttrSet("data.ibm_project_config.project_config_instance", "definition.#"), + ), + }, + }, + }) +} + +func testAccCheckIbmProjectConfigDataSourceConfigBasic() string { + return fmt.Sprintf(` + resource "ibm_project" "project_instance" { + location = "us-south" + resource_group = "Default" + definition { + name = "acme-microservice" + description = "acme-microservice description" + destroy_on_delete = true + } + } + + resource "ibm_project_config" "project_config_instance" { + project_id = ibm_project.project_instance.id + definition { + name = "stage-environment" + authorizations { + method = "api_key" + api_key = "%s" + } + locator_id = "1082e7d2-5e2f-0a11-a3bc-f88a8e1931fc.cd596f95-95a2-4f21-9b84-477f21fd1e95-global" + } + lifecycle { + ignore_changes = [ + definition[0].authorizations[0].api_key, + ] + } + } + + data "ibm_project_config" "project_config_instance" { + project_id = ibm_project_config.project_config_instance.project_id + project_config_id = ibm_project_config.project_config_instance.project_config_id + } + `, acc.ProjectsConfigApiKey) +} diff --git a/ibm/service/project/data_source_ibm_project_environment.go b/ibm/service/project/data_source_ibm_project_environment.go new file mode 100644 index 0000000000..e42f488a05 --- /dev/null +++ b/ibm/service/project/data_source_ibm_project_environment.go @@ -0,0 +1,321 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package project + +import ( + "context" + "fmt" + "log" + + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + "github.com/IBM/project-go-sdk/projectv1" +) + +func DataSourceIbmProjectEnvironment() *schema.Resource { + return &schema.Resource{ + ReadContext: dataSourceIbmProjectEnvironmentRead, + + Schema: map[string]*schema.Schema{ + "project_id": &schema.Schema{ + Type: schema.TypeString, + Required: true, + Description: "The unique project ID.", + }, + "project_environment_id": &schema.Schema{ + Type: schema.TypeString, + Required: true, + Description: "The environment ID.", + }, + "project": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The project referenced by this resource.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The unique ID.", + }, + "definition": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The definition of the project reference.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The name of the project.", + }, + }, + }, + }, + "crn": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "An IBM Cloud resource name, which uniquely identifies a resource.", + }, + "href": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A URL.", + }, + }, + }, + }, + "created_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339.", + }, + "target_account": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The target account ID derived from the authentication block values.", + }, + "modified_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339.", + }, + "definition": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The environment definition.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The name of the environment. It is unique within the account across projects and regions.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The description of the environment.", + }, + "authorizations": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The authorization details. You can authorize by using a trusted profile or an API key in Secrets Manager.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "trusted_profile_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The trusted profile ID.", + }, + "method": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The authorization method. You can authorize by using a trusted profile or an API key in Secrets Manager.", + }, + "api_key": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Sensitive: true, + Description: "The IBM Cloud API Key.", + }, + }, + }, + }, + "inputs": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The input variables for configuration definition and environment.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{}, + }, + }, + "compliance_profile": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The profile required for compliance.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The unique ID for that compliance profile.", + }, + "instance_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A unique ID for an instance of a compliance profile.", + }, + "instance_location": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The location of the compliance instance.", + }, + "attachment_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A unique ID for the attachment to a compliance profile.", + }, + "profile_name": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The name of the compliance profile.", + }, + }, + }, + }, + }, + }, + }, + }, + } +} + +func dataSourceIbmProjectEnvironmentRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + projectClient, err := meta.(conns.ClientSession).ProjectV1() + if err != nil { + return diag.FromErr(err) + } + + getProjectEnvironmentOptions := &projectv1.GetProjectEnvironmentOptions{} + + getProjectEnvironmentOptions.SetProjectID(d.Get("project_id").(string)) + getProjectEnvironmentOptions.SetID(d.Get("project_environment_id").(string)) + + environment, response, err := projectClient.GetProjectEnvironmentWithContext(context, getProjectEnvironmentOptions) + if err != nil { + log.Printf("[DEBUG] GetProjectEnvironmentWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("GetProjectEnvironmentWithContext failed %s\n%s", err, response)) + } + + d.SetId(fmt.Sprintf("%s/%s", *getProjectEnvironmentOptions.ProjectID, *getProjectEnvironmentOptions.ID)) + + project := []map[string]interface{}{} + if environment.Project != nil { + modelMap, err := dataSourceIbmProjectEnvironmentProjectReferenceToMap(environment.Project) + if err != nil { + return diag.FromErr(err) + } + project = append(project, modelMap) + } + if err = d.Set("project", project); err != nil { + return diag.FromErr(fmt.Errorf("Error setting project %s", err)) + } + + if err = d.Set("created_at", flex.DateTimeToString(environment.CreatedAt)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting created_at: %s", err)) + } + + if err = d.Set("target_account", environment.TargetAccount); err != nil { + return diag.FromErr(fmt.Errorf("Error setting target_account: %s", err)) + } + + if err = d.Set("modified_at", flex.DateTimeToString(environment.ModifiedAt)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting modified_at: %s", err)) + } + + definition := []map[string]interface{}{} + if environment.Definition != nil { + modelMap, err := dataSourceIbmProjectEnvironmentEnvironmentDefinitionRequiredPropertiesToMap(environment.Definition) + if err != nil { + return diag.FromErr(err) + } + definition = append(definition, modelMap) + } + if err = d.Set("definition", definition); err != nil { + return diag.FromErr(fmt.Errorf("Error setting definition %s", err)) + } + + return nil +} + +func dataSourceIbmProjectEnvironmentProjectReferenceToMap(model *projectv1.ProjectReference) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + modelMap["id"] = model.ID + definitionMap, err := dataSourceIbmProjectEnvironmentProjectDefinitionReferenceToMap(model.Definition) + if err != nil { + return modelMap, err + } + modelMap["definition"] = []map[string]interface{}{definitionMap} + modelMap["crn"] = model.Crn + modelMap["href"] = model.Href + return modelMap, nil +} + +func dataSourceIbmProjectEnvironmentProjectDefinitionReferenceToMap(model *projectv1.ProjectDefinitionReference) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + modelMap["name"] = model.Name + return modelMap, nil +} + +func dataSourceIbmProjectEnvironmentEnvironmentDefinitionRequiredPropertiesToMap(model *projectv1.EnvironmentDefinitionRequiredProperties) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + modelMap["name"] = model.Name + if model.Description != nil { + modelMap["description"] = model.Description + } + if model.Authorizations != nil { + authorizationsMap, err := dataSourceIbmProjectEnvironmentProjectConfigAuthToMap(model.Authorizations) + if err != nil { + return modelMap, err + } + modelMap["authorizations"] = []map[string]interface{}{authorizationsMap} + } + if model.Inputs != nil { + inputsMap, err := dataSourceIbmProjectEnvironmentInputVariableToMap(model.Inputs) + if err != nil { + return modelMap, err + } + modelMap["inputs"] = []map[string]interface{}{inputsMap} + } + if model.ComplianceProfile != nil { + complianceProfileMap, err := dataSourceIbmProjectEnvironmentProjectComplianceProfileToMap(model.ComplianceProfile) + if err != nil { + return modelMap, err + } + modelMap["compliance_profile"] = []map[string]interface{}{complianceProfileMap} + } + return modelMap, nil +} + +func dataSourceIbmProjectEnvironmentProjectConfigAuthToMap(model *projectv1.ProjectConfigAuth) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.TrustedProfileID != nil { + modelMap["trusted_profile_id"] = model.TrustedProfileID + } + if model.Method != nil { + modelMap["method"] = model.Method + } + if model.ApiKey != nil { + modelMap["api_key"] = model.ApiKey + } + return modelMap, nil +} + +func dataSourceIbmProjectEnvironmentInputVariableToMap(model *projectv1.InputVariable) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + return modelMap, nil +} + +func dataSourceIbmProjectEnvironmentProjectComplianceProfileToMap(model *projectv1.ProjectComplianceProfile) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.ID != nil { + modelMap["id"] = model.ID + } + if model.InstanceID != nil { + modelMap["instance_id"] = model.InstanceID + } + if model.InstanceLocation != nil { + modelMap["instance_location"] = model.InstanceLocation + } + if model.AttachmentID != nil { + modelMap["attachment_id"] = model.AttachmentID + } + if model.ProfileName != nil { + modelMap["profile_name"] = model.ProfileName + } + return modelMap, nil +} diff --git a/ibm/service/project/data_source_ibm_project_environment_test.go b/ibm/service/project/data_source_ibm_project_environment_test.go new file mode 100644 index 0000000000..7edd07a90e --- /dev/null +++ b/ibm/service/project/data_source_ibm_project_environment_test.go @@ -0,0 +1,70 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package project_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" +) + +func TestAccIbmProjectEnvironmentDataSourceBasic(t *testing.T) { + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmProjectEnvironmentDataSourceConfigBasic(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("data.ibm_project_environment.project_environment_instance", "id"), + resource.TestCheckResourceAttrSet("data.ibm_project_environment.project_environment_instance", "project_id"), + resource.TestCheckResourceAttrSet("data.ibm_project_environment.project_environment_instance", "project_environment_id"), + resource.TestCheckResourceAttrSet("data.ibm_project_environment.project_environment_instance", "project.#"), + resource.TestCheckResourceAttrSet("data.ibm_project_environment.project_environment_instance", "created_at"), + resource.TestCheckResourceAttrSet("data.ibm_project_environment.project_environment_instance", "modified_at"), + resource.TestCheckResourceAttrSet("data.ibm_project_environment.project_environment_instance", "definition.#"), + ), + }, + }, + }) +} + +func testAccCheckIbmProjectEnvironmentDataSourceConfigBasic() string { + return fmt.Sprintf(` + resource "ibm_project" "project_instance" { + location = "us-south" + resource_group = "Default" + definition { + name = "acme-microservice" + description = "acme-microservice description" + destroy_on_delete = true + } + } + + resource "ibm_project_environment" "project_environment_instance" { + project_id = ibm_project.project_instance.id + definition { + name = "environment-stage" + description = "environment for stage project" + authorizations { + method = "api_key" + api_key = "%s" + } + } + lifecycle { + ignore_changes = [ + definition[0].authorizations[0].api_key, + ] + } + } + + data "ibm_project_environment" "project_environment_instance" { + project_id = ibm_project_environment.project_environment_instance.project_id + project_environment_id = ibm_project_environment.project_environment_instance.project_environment_id + } + `, acc.ProjectsConfigApiKey) +} diff --git a/ibm/service/project/data_source_ibm_project_event_notification.go b/ibm/service/project/data_source_ibm_project_event_notification.go deleted file mode 100644 index 7ffac8fd48..0000000000 --- a/ibm/service/project/data_source_ibm_project_event_notification.go +++ /dev/null @@ -1,444 +0,0 @@ -// Copyright IBM Corp. 2023 All Rights Reserved. -// Licensed under the Mozilla Public License v2.0 - -package project - -import ( - "context" - "fmt" - "log" - - "github.com/hashicorp/terraform-plugin-sdk/v2/diag" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - - "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" - "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" - "github.com/IBM/project-go-sdk/projectv1" -) - -func DataSourceIbmProjectEventNotification() *schema.Resource { - return &schema.Resource{ - ReadContext: dataSourceIbmProjectEventNotificationRead, - - Schema: map[string]*schema.Schema{ - "project_id": &schema.Schema{ - Type: schema.TypeString, - Required: true, - Description: "The unique project ID.", - }, - "name": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "The project name.", - }, - "description": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "A project descriptive text.", - }, - "crn": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "An IBM Cloud resource name, which uniquely identifies a resource.", - }, - "configs": &schema.Schema{ - Type: schema.TypeList, - Computed: true, - Description: "The project configurations.", - Elem: &schema.Resource{ - Schema: map[string]*schema.Schema{ - "id": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "The ID of the configuration. If this parameter is empty, an ID is automatically created for the configuration.", - }, - "name": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "The configuration name.", - }, - "labels": &schema.Schema{ - Type: schema.TypeList, - Computed: true, - Description: "A collection of configuration labels.", - Elem: &schema.Schema{ - Type: schema.TypeString, - }, - }, - "description": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "The project configuration description.", - }, - "locator_id": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "A dotted value of catalogID.versionID.", - }, - "type": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "The type of a project configuration manual property.", - }, - "input": &schema.Schema{ - Type: schema.TypeList, - Computed: true, - Description: "The outputs of a Schematics template property.", - Elem: &schema.Resource{ - Schema: map[string]*schema.Schema{ - "name": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "The variable name.", - }, - "type": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "The variable type.", - }, - "value": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "Can be any value - a string, number, boolean, array, or object.", - }, - "required": &schema.Schema{ - Type: schema.TypeBool, - Computed: true, - Description: "Whether the variable is required or not.", - }, - }, - }, - }, - "output": &schema.Schema{ - Type: schema.TypeList, - Computed: true, - Description: "The outputs of a Schematics template property.", - Elem: &schema.Resource{ - Schema: map[string]*schema.Schema{ - "name": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "The variable name.", - }, - "description": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "A short explanation of the output value.", - }, - "value": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "Can be any value - a string, number, boolean, array, or object.", - }, - }, - }, - }, - "setting": &schema.Schema{ - Type: schema.TypeList, - Computed: true, - Description: "Schematics environment variables to use to deploy the configuration.", - Elem: &schema.Resource{ - Schema: map[string]*schema.Schema{ - "name": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "The name of the configuration setting.", - }, - "value": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "The value of the configuration setting.", - }, - }, - }, - }, - }, - }, - }, - "metadata": &schema.Schema{ - Type: schema.TypeList, - Computed: true, - Description: "The metadata of the project.", - Elem: &schema.Resource{ - Schema: map[string]*schema.Schema{ - "crn": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "An IBM Cloud resource name, which uniquely identifies a resource.", - }, - "created_at": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339.", - }, - "cumulative_needs_attention_view": &schema.Schema{ - Type: schema.TypeList, - Computed: true, - Description: "The cumulative list of needs attention items for a project.", - Elem: &schema.Resource{ - Schema: map[string]*schema.Schema{ - "event": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "The event name.", - }, - "event_id": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "The unique ID of a project.", - }, - "config_id": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "The unique ID of a project.", - }, - "config_version": &schema.Schema{ - Type: schema.TypeInt, - Computed: true, - Description: "The version number of the configuration.", - }, - }, - }, - }, - "cumulative_needs_attention_view_err": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "True indicates that the fetch of the needs attention items failed.", - }, - "location": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "The IBM Cloud location where a resource is deployed.", - }, - "resource_group": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "The resource group where the project's data and tools are created.", - }, - "state": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "The project status value.", - }, - "event_notifications_crn": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "The CRN of the event notifications instance if one is connected to this project.", - }, - }, - }, - }, - }, - } -} - -func dataSourceIbmProjectEventNotificationRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - projectClient, err := meta.(conns.ClientSession).ProjectV1() - if err != nil { - return diag.FromErr(err) - } - - getProjectOptions := &projectv1.GetProjectOptions{} - - getProjectOptions.SetID(d.Get("project_id").(string)) - - project, response, err := projectClient.GetProjectWithContext(context, getProjectOptions) - if err != nil { - log.Printf("[DEBUG] GetProjectWithContext failed %s\n%s", err, response) - return diag.FromErr(fmt.Errorf("GetProjectWithContext failed %s\n%s", err, response)) - } - - d.SetId(fmt.Sprintf("%s", *getProjectOptions.ID)) - - if err = d.Set("name", project.Name); err != nil { - return diag.FromErr(fmt.Errorf("Error setting name: %s", err)) - } - - if err = d.Set("description", project.Description); err != nil { - return diag.FromErr(fmt.Errorf("Error setting description: %s", err)) - } - - if err = d.Set("crn", project.Crn); err != nil { - return diag.FromErr(fmt.Errorf("Error setting crn: %s", err)) - } - - configs := []map[string]interface{}{} - if project.Configs != nil { - for _, modelItem := range project.Configs { - modelMap, err := dataSourceIbmProjectEventNotificationProjectConfigToMap(&modelItem) - if err != nil { - return diag.FromErr(err) - } - configs = append(configs, modelMap) - } - } - if err = d.Set("configs", configs); err != nil { - return diag.FromErr(fmt.Errorf("Error setting configs %s", err)) - } - - metadata := []map[string]interface{}{} - if project.Metadata != nil { - modelMap, err := dataSourceIbmProjectEventNotificationProjectMetadataToMap(project.Metadata) - if err != nil { - return diag.FromErr(err) - } - metadata = append(metadata, modelMap) - } - if err = d.Set("metadata", metadata); err != nil { - return diag.FromErr(fmt.Errorf("Error setting metadata %s", err)) - } - - return nil -} - -func dataSourceIbmProjectEventNotificationProjectConfigToMap(model *projectv1.ProjectConfig) (map[string]interface{}, error) { - modelMap := make(map[string]interface{}) - if model.ID != nil { - modelMap["project_id"] = model.ID - } - if model.Name != nil { - modelMap["name"] = model.Name - } - if model.Labels != nil { - modelMap["labels"] = model.Labels - } - if model.Description != nil { - modelMap["description"] = model.Description - } - if model.LocatorID != nil { - modelMap["locator_id"] = model.LocatorID - } - if model.Type != nil { - modelMap["type"] = model.Type - } - if model.Input != nil { - input := []map[string]interface{}{} - for _, inputItem := range model.Input { - inputItemMap, err := dataSourceIbmProjectEventNotificationInputVariableToMap(&inputItem) - if err != nil { - return modelMap, err - } - input = append(input, inputItemMap) - } - modelMap["input"] = input - } - if model.Output != nil { - output := []map[string]interface{}{} - for _, outputItem := range model.Output { - outputItemMap, err := dataSourceIbmProjectEventNotificationOutputValueToMap(&outputItem) - if err != nil { - return modelMap, err - } - output = append(output, outputItemMap) - } - modelMap["output"] = output - } - if model.Setting != nil { - setting := []map[string]interface{}{} - for _, settingItem := range model.Setting { - settingItemMap, err := dataSourceIbmProjectEventNotificationProjectConfigSettingCollectionToMap(&settingItem) - if err != nil { - return modelMap, err - } - setting = append(setting, settingItemMap) - } - modelMap["setting"] = setting - } - return modelMap, nil -} - -func dataSourceIbmProjectEventNotificationInputVariableToMap(model *projectv1.InputVariable) (map[string]interface{}, error) { - modelMap := make(map[string]interface{}) - if model.Name != nil { - modelMap["name"] = model.Name - } - if model.Type != nil { - modelMap["type"] = model.Type - } - if model.Value != nil { - modelMap["value"] = model.Value - } - if model.Required != nil { - modelMap["required"] = model.Required - } - return modelMap, nil -} - -func dataSourceIbmProjectEventNotificationOutputValueToMap(model *projectv1.OutputValue) (map[string]interface{}, error) { - modelMap := make(map[string]interface{}) - if model.Name != nil { - modelMap["name"] = model.Name - } - if model.Description != nil { - modelMap["description"] = model.Description - } - if model.Value != nil { - modelMap["value"] = model.Value - } - return modelMap, nil -} - -func dataSourceIbmProjectEventNotificationProjectConfigSettingCollectionToMap(model *projectv1.ProjectConfigSettingCollection) (map[string]interface{}, error) { - modelMap := make(map[string]interface{}) - if model.Name != nil { - modelMap["name"] = model.Name - } - if model.Value != nil { - modelMap["value"] = model.Value - } - return modelMap, nil -} - -func dataSourceIbmProjectEventNotificationProjectMetadataToMap(model *projectv1.ProjectMetadata) (map[string]interface{}, error) { - modelMap := make(map[string]interface{}) - if model.Crn != nil { - modelMap["crn"] = model.Crn - } - if model.CreatedAt != nil { - modelMap["created_at"] = model.CreatedAt.String() - } - if model.CumulativeNeedsAttentionView != nil { - cumulativeNeedsAttentionView := []map[string]interface{}{} - for _, cumulativeNeedsAttentionViewItem := range model.CumulativeNeedsAttentionView { - cumulativeNeedsAttentionViewItemMap, err := dataSourceIbmProjectEventNotificationCumulativeNeedsAttentionToMap(&cumulativeNeedsAttentionViewItem) - if err != nil { - return modelMap, err - } - cumulativeNeedsAttentionView = append(cumulativeNeedsAttentionView, cumulativeNeedsAttentionViewItemMap) - } - modelMap["cumulative_needs_attention_view"] = cumulativeNeedsAttentionView - } - if model.CumulativeNeedsAttentionViewErr != nil { - modelMap["cumulative_needs_attention_view_err"] = model.CumulativeNeedsAttentionViewErr - } - if model.Location != nil { - modelMap["location"] = model.Location - } - if model.ResourceGroup != nil { - modelMap["resource_group"] = model.ResourceGroup - } - if model.State != nil { - modelMap["state"] = model.State - } - if model.EventNotificationsCrn != nil { - modelMap["event_notifications_crn"] = model.EventNotificationsCrn - } - return modelMap, nil -} - -func dataSourceIbmProjectEventNotificationCumulativeNeedsAttentionToMap(model *projectv1.CumulativeNeedsAttention) (map[string]interface{}, error) { - modelMap := make(map[string]interface{}) - if model.Event != nil { - modelMap["event"] = model.Event - } - if model.EventID != nil { - modelMap["event_id"] = model.EventID - } - if model.ConfigID != nil { - modelMap["config_id"] = model.ConfigID - } - if model.ConfigVersion != nil { - modelMap["config_version"] = flex.IntValue(model.ConfigVersion) - } - return modelMap, nil -} diff --git a/ibm/service/project/data_source_ibm_project_event_notification_test.go b/ibm/service/project/data_source_ibm_project_event_notification_test.go deleted file mode 100644 index a4bb083448..0000000000 --- a/ibm/service/project/data_source_ibm_project_event_notification_test.go +++ /dev/null @@ -1,99 +0,0 @@ -// Copyright IBM Corp. 2023 All Rights Reserved. -// Licensed under the Mozilla Public License v2.0 - -package project_test - -import ( - "fmt" - "testing" - - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - - acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" -) - -func TestAccIbmProjectEventNotificationDataSourceBasic(t *testing.T) { - projectName := fmt.Sprintf("tf_name_%d", acctest.RandIntRange(10, 100)) - projectResourceGroup := fmt.Sprintf("Default") - projectLocation := fmt.Sprintf("us-south") - - resource.Test(t, resource.TestCase{ - PreCheck: func() { acc.TestAccPreCheck(t) }, - Providers: acc.TestAccProviders, - Steps: []resource.TestStep{ - resource.TestStep{ - Config: testAccCheckIbmProjectEventNotificationDataSourceConfigBasic(projectResourceGroup, projectLocation, projectName), - Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttrSet("data.ibm_project_event_notification.project_event_notification", "project_id"), - resource.TestCheckResourceAttrSet("data.ibm_project_event_notification.project_event_notification", "name"), - ), - }, - }, - }) -} - -func TestAccIbmProjectEventNotificationDataSourceAllArgs(t *testing.T) { - projectName := fmt.Sprintf("tf_name_%d", acctest.RandIntRange(10, 100)) - projectDescription := fmt.Sprintf("tf_description_%d", acctest.RandIntRange(10, 100)) - projectResourceGroup := fmt.Sprintf("Default") - projectLocation := fmt.Sprintf("us-south") - - resource.Test(t, resource.TestCase{ - PreCheck: func() { acc.TestAccPreCheck(t) }, - Providers: acc.TestAccProviders, - Steps: []resource.TestStep{ - resource.TestStep{ - Config: testAccCheckIbmProjectEventNotificationDataSourceConfig(projectName, projectDescription, projectResourceGroup, projectLocation), - Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttrSet("data.ibm_project_event_notification.project_event_notification", "project_id"), - resource.TestCheckResourceAttrSet("data.ibm_project_event_notification.project_event_notification", "name"), - resource.TestCheckResourceAttrSet("data.ibm_project_event_notification.project_event_notification", "description"), - resource.TestCheckResourceAttrSet("data.ibm_project_event_notification.project_event_notification", "metadata.#"), - ), - }, - }, - }) -} - -func testAccCheckIbmProjectEventNotificationDataSourceConfigBasic(projectResourceGroup string, projectLocation string, projectName string) string { - return fmt.Sprintf(` - resource "ibm_project_instance" "project_instance" { - resource_group = "%s" - location = "%s" - name = "%s" - } - - data "ibm_project_event_notification" "project_event_notification" { - project_id = ibm_project_instance.project_instance.id - } - `, projectResourceGroup, projectLocation, projectName) -} - -func testAccCheckIbmProjectEventNotificationDataSourceConfig(projectName string, projectDescription string, projectResourceGroup string, projectLocation string) string { - return fmt.Sprintf(` - resource "ibm_project_instance" "project_instance" { - name = "%s" - description = "%s" - configs { - name = "name" - labels = [ "labels" ] - description = "description" - locator_id = "1082e7d2-5e2f-0a11-a3bc-f88a8e1931fc.cd596f95-95a2-4f21-9b84-477f21fd1e95-global" - input { - name = "name" - } - setting { - name = "name" - value = "value" - } - } - resource_group = "%s" - location = "%s" - } - - data "ibm_project_event_notification" "project_event_notification" { - project_id = ibm_project_instance.project_instance.id - } - `, projectName, projectDescription, projectResourceGroup, projectLocation) -} diff --git a/ibm/service/project/data_source_ibm_project_test.go b/ibm/service/project/data_source_ibm_project_test.go new file mode 100644 index 0000000000..e8e3ade5c8 --- /dev/null +++ b/ibm/service/project/data_source_ibm_project_test.go @@ -0,0 +1,57 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package project_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" +) + +func TestAccIbmProjectDataSourceBasic(t *testing.T) { + projectLocation := fmt.Sprintf("us-south") + projectResourceGroup := fmt.Sprintf("Default") + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmProjectDataSourceConfigBasic(projectLocation, projectResourceGroup), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("data.ibm_project.project_instance", "id"), + resource.TestCheckResourceAttrSet("data.ibm_project.project_instance", "project_id"), + resource.TestCheckResourceAttrSet("data.ibm_project.project_instance", "crn"), + resource.TestCheckResourceAttrSet("data.ibm_project.project_instance", "created_at"), + resource.TestCheckResourceAttrSet("data.ibm_project.project_instance", "location"), + resource.TestCheckResourceAttrSet("data.ibm_project.project_instance", "resource_group_id"), + resource.TestCheckResourceAttrSet("data.ibm_project.project_instance", "state"), + resource.TestCheckResourceAttrSet("data.ibm_project.project_instance", "resource_group"), + resource.TestCheckResourceAttrSet("data.ibm_project.project_instance", "definition.#"), + ), + }, + }, + }) +} + +func testAccCheckIbmProjectDataSourceConfigBasic(projectLocation string, projectResourceGroup string) string { + return fmt.Sprintf(` + resource "ibm_project" "project_instance" { + location = "%s" + resource_group = "%s" + definition { + name = "acme-microservice" + description = "acme-microservice description" + destroy_on_delete = true + } + } + + data "ibm_project" "project_instance" { + project_id = ibm_project.project_instance.id + } + `, projectLocation, projectResourceGroup) +} diff --git a/ibm/service/project/resource_ibm_project.go b/ibm/service/project/resource_ibm_project.go new file mode 100644 index 0000000000..1147380c19 --- /dev/null +++ b/ibm/service/project/resource_ibm_project.go @@ -0,0 +1,779 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package project + +import ( + "context" + "fmt" + "log" + + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/validate" + "github.com/IBM/go-sdk-core/v5/core" + "github.com/IBM/project-go-sdk/projectv1" +) + +func ResourceIbmProject() *schema.Resource { + return &schema.Resource{ + CreateContext: resourceIbmProjectCreate, + ReadContext: resourceIbmProjectRead, + UpdateContext: resourceIbmProjectUpdate, + DeleteContext: resourceIbmProjectDelete, + Importer: &schema.ResourceImporter{}, + + Schema: map[string]*schema.Schema{ + "location": &schema.Schema{ + Type: schema.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validate.InvokeValidator("ibm_project", "location"), + Description: "The IBM Cloud location where a resource is deployed.", + }, + "resource_group": &schema.Schema{ + Type: schema.TypeString, + Required: true, + ForceNew: true, + Description: "The resource group where the project's data and tools are created.", + }, + "definition": &schema.Schema{ + Type: schema.TypeList, + MinItems: 1, + MaxItems: 1, + Required: true, + Description: "The definition of the project.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Required: true, + Description: "The name of the project. It is unique within the account across regions.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "A brief explanation of the project's use in the configuration of a deployable architecture. It is possible to create a project without providing a description.", + }, + "destroy_on_delete": &schema.Schema{ + Type: schema.TypeBool, + Required: true, + Description: "The policy that indicates whether the resources are destroyed or not when a project is deleted.", + }, + }, + }, + }, + "crn": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "An IBM Cloud resource name, which uniquely identifies a resource.", + }, + "created_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339.", + }, + "cumulative_needs_attention_view": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The cumulative list of needs attention items for a project. If the view is successfully retrieved, an array which could be empty is returned.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "event": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The event name.", + }, + "event_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A unique ID for that individual event.", + }, + "config_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A unique ID for the configuration.", + }, + "config_version": &schema.Schema{ + Type: schema.TypeInt, + Computed: true, + Description: "The version number of the configuration.", + }, + }, + }, + }, + "cumulative_needs_attention_view_error": &schema.Schema{ + Type: schema.TypeBool, + Computed: true, + Description: "True indicates that the fetch of the needs attention items failed. It only exists if there was an error while retrieving the cumulative needs attention view.", + }, + "resource_group_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The resource group id where the project's data and tools are created.", + }, + "state": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The project status value.", + }, + "event_notifications_crn": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The CRN of the event notifications instance if one is connected to this project.", + }, + "configs": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The project configurations. These configurations are only included in the response of creating a project if a configs array is specified in the request payload.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The ID of the configuration. If this parameter is empty, an ID is automatically created for the configuration.", + }, + "version": &schema.Schema{ + Type: schema.TypeInt, + Computed: true, + Description: "The version of the configuration.", + }, + "state": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The state of the configuration.", + }, + "created_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339.", + }, + "modified_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339.", + }, + "href": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A URL.", + }, + "definition": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The name and description of a project configuration.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The configuration name. It is unique within the account across projects and regions.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A project configuration description.", + }, + }, + }, + }, + "project": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The project referenced by this resource.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The unique ID.", + }, + "definition": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The definition of the project reference.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The name of the project.", + }, + }, + }, + }, + "crn": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "An IBM Cloud resource name, which uniquely identifies a resource.", + }, + "href": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A URL.", + }, + }, + }, + }, + }, + }, + }, + "environments": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The project environments. These environments are only included in the response if project environments were created on the project.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The environment id as a friendly name.", + }, + "project": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The project referenced by this resource.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The unique ID.", + }, + "definition": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The definition of the project reference.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The name of the project.", + }, + }, + }, + }, + "crn": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "An IBM Cloud resource name, which uniquely identifies a resource.", + }, + "href": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A URL.", + }, + }, + }, + }, + "created_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339.", + }, + "href": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A URL.", + }, + "definition": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The environment definition used in the project collection.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The name of the environment. It is unique within the account across projects and regions.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The description of the environment.", + }, + }, + }, + }, + }, + }, + }, + }, + } +} + +func ResourceIbmProjectValidator() *validate.ResourceValidator { + validateSchema := make([]validate.ValidateSchema, 0) + validateSchema = append(validateSchema, + validate.ValidateSchema{ + Identifier: "location", + ValidateFunctionIdentifier: validate.ValidateRegexpLen, + Type: validate.TypeString, + Required: true, + Regexp: `^$|^(us-south|us-east|eu-gb|eu-de)$`, + MinValueLength: 0, + MaxValueLength: 12, + }, + validate.ValidateSchema{ + Identifier: "resource_group", + ValidateFunctionIdentifier: validate.ValidateRegexpLen, + Type: validate.TypeString, + Required: true, + Regexp: `^(?!\s)(?!.*\s$)[^'"` + "`" + `<>{}\x00-\x1F]*$`, + MinValueLength: 0, + MaxValueLength: 64, + }, + ) + + resourceValidator := validate.ResourceValidator{ResourceName: "ibm_project", Schema: validateSchema} + return &resourceValidator +} + +func resourceIbmProjectCreate(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + projectClient, err := meta.(conns.ClientSession).ProjectV1() + if err != nil { + return diag.FromErr(err) + } + + createProjectOptions := &projectv1.CreateProjectOptions{} + + definitionModel, err := resourceIbmProjectMapToProjectPrototypeDefinition(d.Get("definition.0").(map[string]interface{})) + if err != nil { + return diag.FromErr(err) + } + createProjectOptions.SetDefinition(definitionModel) + createProjectOptions.SetLocation(d.Get("location").(string)) + createProjectOptions.SetResourceGroup(d.Get("resource_group").(string)) + + project, response, err := projectClient.CreateProjectWithContext(context, createProjectOptions) + if err != nil { + log.Printf("[DEBUG] CreateProjectWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("CreateProjectWithContext failed %s\n%s", err, response)) + } + + d.SetId(*project.ID) + + return resourceIbmProjectRead(context, d, meta) +} + +func resourceIbmProjectRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + projectClient, err := meta.(conns.ClientSession).ProjectV1() + if err != nil { + return diag.FromErr(err) + } + + getProjectOptions := &projectv1.GetProjectOptions{} + + getProjectOptions.SetID(d.Id()) + + project, response, err := projectClient.GetProjectWithContext(context, getProjectOptions) + if err != nil { + if response != nil && response.StatusCode == 404 { + d.SetId("") + return nil + } + log.Printf("[DEBUG] GetProjectWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("GetProjectWithContext failed %s\n%s", err, response)) + } + + if err = d.Set("location", project.Location); err != nil { + return diag.FromErr(fmt.Errorf("Error setting location: %s", err)) + } + if err = d.Set("resource_group", project.ResourceGroup); err != nil { + return diag.FromErr(fmt.Errorf("Error setting resource_group: %s", err)) + } + definitionMap, err := resourceIbmProjectProjectDefinitionPropertiesToMap(project.Definition) + if err != nil { + return diag.FromErr(err) + } + if err = d.Set("definition", []map[string]interface{}{definitionMap}); err != nil { + return diag.FromErr(fmt.Errorf("Error setting definition: %s", err)) + } + if err = d.Set("crn", project.Crn); err != nil { + return diag.FromErr(fmt.Errorf("Error setting crn: %s", err)) + } + if err = d.Set("created_at", flex.DateTimeToString(project.CreatedAt)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting created_at: %s", err)) + } + if !core.IsNil(project.CumulativeNeedsAttentionView) { + cumulativeNeedsAttentionView := []map[string]interface{}{} + for _, cumulativeNeedsAttentionViewItem := range project.CumulativeNeedsAttentionView { + cumulativeNeedsAttentionViewItemMap, err := resourceIbmProjectCumulativeNeedsAttentionToMap(&cumulativeNeedsAttentionViewItem) + if err != nil { + return diag.FromErr(err) + } + cumulativeNeedsAttentionView = append(cumulativeNeedsAttentionView, cumulativeNeedsAttentionViewItemMap) + } + if err = d.Set("cumulative_needs_attention_view", cumulativeNeedsAttentionView); err != nil { + return diag.FromErr(fmt.Errorf("Error setting cumulative_needs_attention_view: %s", err)) + } + } + if !core.IsNil(project.CumulativeNeedsAttentionViewError) { + if err = d.Set("cumulative_needs_attention_view_error", project.CumulativeNeedsAttentionViewError); err != nil { + return diag.FromErr(fmt.Errorf("Error setting cumulative_needs_attention_view_error: %s", err)) + } + } + if err = d.Set("resource_group_id", project.ResourceGroupID); err != nil { + return diag.FromErr(fmt.Errorf("Error setting resource_group_id: %s", err)) + } + if err = d.Set("state", project.State); err != nil { + return diag.FromErr(fmt.Errorf("Error setting state: %s", err)) + } + if !core.IsNil(project.EventNotificationsCrn) { + if err = d.Set("event_notifications_crn", project.EventNotificationsCrn); err != nil { + return diag.FromErr(fmt.Errorf("Error setting event_notifications_crn: %s", err)) + } + } + if !core.IsNil(project.Configs) { + configs := []map[string]interface{}{} + for _, configsItem := range project.Configs { + configsItemMap, err := resourceIbmProjectProjectConfigSummaryToMap(&configsItem) + if err != nil { + return diag.FromErr(err) + } + configs = append(configs, configsItemMap) + } + if err = d.Set("configs", configs); err != nil { + return diag.FromErr(fmt.Errorf("Error setting configs: %s", err)) + } + } + if !core.IsNil(project.Environments) { + environments := []map[string]interface{}{} + for _, environmentsItem := range project.Environments { + environmentsItemMap, err := resourceIbmProjectProjectEnvironmentSummaryToMap(&environmentsItem) + if err != nil { + return diag.FromErr(err) + } + environments = append(environments, environmentsItemMap) + } + if err = d.Set("environments", environments); err != nil { + return diag.FromErr(fmt.Errorf("Error setting environments: %s", err)) + } + } + + return nil +} + +func resourceIbmProjectUpdate(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + projectClient, err := meta.(conns.ClientSession).ProjectV1() + if err != nil { + return diag.FromErr(err) + } + + updateProjectOptions := &projectv1.UpdateProjectOptions{} + + updateProjectOptions.SetID(d.Id()) + + hasChange := false + + if d.HasChange("definition") { + definition, err := resourceIbmProjectMapToProjectPatchDefinitionBlock(d.Get("definition.0").(map[string]interface{})) + if err != nil { + return diag.FromErr(err) + } + updateProjectOptions.SetDefinition(definition) + hasChange = true + } + + if hasChange { + _, response, err := projectClient.UpdateProjectWithContext(context, updateProjectOptions) + if err != nil { + log.Printf("[DEBUG] UpdateProjectWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("UpdateProjectWithContext failed %s\n%s", err, response)) + } + } + + return resourceIbmProjectRead(context, d, meta) +} + +func resourceIbmProjectDelete(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + projectClient, err := meta.(conns.ClientSession).ProjectV1() + if err != nil { + return diag.FromErr(err) + } + + deleteProjectOptions := &projectv1.DeleteProjectOptions{} + + deleteProjectOptions.SetID(d.Id()) + + response, err := projectClient.DeleteProjectWithContext(context, deleteProjectOptions) + if err != nil { + log.Printf("[DEBUG] DeleteProjectWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("DeleteProjectWithContext failed %s\n%s", err, response)) + } + + d.SetId("") + + return nil +} + +func resourceIbmProjectMapToProjectPrototypeDefinition(modelMap map[string]interface{}) (*projectv1.ProjectPrototypeDefinition, error) { + model := &projectv1.ProjectPrototypeDefinition{} + model.Name = core.StringPtr(modelMap["name"].(string)) + if modelMap["description"] != nil && modelMap["description"].(string) != "" { + model.Description = core.StringPtr(modelMap["description"].(string)) + } + if modelMap["destroy_on_delete"] != nil { + model.DestroyOnDelete = core.BoolPtr(modelMap["destroy_on_delete"].(bool)) + } + return model, nil +} + +func resourceIbmProjectMapToProjectConfigPrototype(modelMap map[string]interface{}) (*projectv1.ProjectConfigPrototype, error) { + model := &projectv1.ProjectConfigPrototype{} + DefinitionModel, err := resourceIbmProjectMapToProjectConfigPrototypeDefinitionBlock(modelMap["definition"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.Definition = DefinitionModel + if modelMap["schematics"] != nil && len(modelMap["schematics"].([]interface{})) > 0 { + SchematicsModel, err := resourceIbmProjectMapToSchematicsWorkspace(modelMap["schematics"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.Schematics = SchematicsModel + } + return model, nil +} + +func resourceIbmProjectMapToProjectConfigPrototypeDefinitionBlock(modelMap map[string]interface{}) (*projectv1.ProjectConfigPrototypeDefinitionBlock, error) { + model := &projectv1.ProjectConfigPrototypeDefinitionBlock{} + model.Name = core.StringPtr(modelMap["name"].(string)) + if modelMap["description"] != nil && modelMap["description"].(string) != "" { + model.Description = core.StringPtr(modelMap["description"].(string)) + } + if modelMap["environment_id"] != nil && modelMap["environment_id"].(string) != "" { + model.EnvironmentID = core.StringPtr(modelMap["environment_id"].(string)) + } + if modelMap["authorizations"] != nil && len(modelMap["authorizations"].([]interface{})) > 0 { + AuthorizationsModel, err := resourceIbmProjectMapToProjectConfigAuth(modelMap["authorizations"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.Authorizations = AuthorizationsModel + } + if modelMap["compliance_profile"] != nil && len(modelMap["compliance_profile"].([]interface{})) > 0 { + ComplianceProfileModel, err := resourceIbmProjectMapToProjectComplianceProfile(modelMap["compliance_profile"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.ComplianceProfile = ComplianceProfileModel + } + if modelMap["locator_id"] != nil && modelMap["locator_id"].(string) != "" { + model.LocatorID = core.StringPtr(modelMap["locator_id"].(string)) + } + if modelMap["inputs"] != nil && len(modelMap["inputs"].([]interface{})) > 0 { + InputsModel, err := resourceIbmProjectMapToInputVariable(modelMap["inputs"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.Inputs = InputsModel + } + if modelMap["settings"] != nil && len(modelMap["settings"].([]interface{})) > 0 { + SettingsModel, err := resourceIbmProjectMapToProjectConfigSetting(modelMap["settings"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.Settings = SettingsModel + } + return model, nil +} + +func resourceIbmProjectMapToProjectConfigAuth(modelMap map[string]interface{}) (*projectv1.ProjectConfigAuth, error) { + model := &projectv1.ProjectConfigAuth{} + if modelMap["trusted_profile_id"] != nil && modelMap["trusted_profile_id"].(string) != "" { + model.TrustedProfileID = core.StringPtr(modelMap["trusted_profile_id"].(string)) + } + if modelMap["method"] != nil && modelMap["method"].(string) != "" { + model.Method = core.StringPtr(modelMap["method"].(string)) + } + if modelMap["api_key"] != nil && modelMap["api_key"].(string) != "" { + model.ApiKey = core.StringPtr(modelMap["api_key"].(string)) + } + return model, nil +} + +func resourceIbmProjectMapToProjectComplianceProfile(modelMap map[string]interface{}) (*projectv1.ProjectComplianceProfile, error) { + model := &projectv1.ProjectComplianceProfile{} + if modelMap["id"] != nil && modelMap["id"].(string) != "" { + model.ID = core.StringPtr(modelMap["id"].(string)) + } + if modelMap["instance_id"] != nil && modelMap["instance_id"].(string) != "" { + model.InstanceID = core.StringPtr(modelMap["instance_id"].(string)) + } + if modelMap["instance_location"] != nil && modelMap["instance_location"].(string) != "" { + model.InstanceLocation = core.StringPtr(modelMap["instance_location"].(string)) + } + if modelMap["attachment_id"] != nil && modelMap["attachment_id"].(string) != "" { + model.AttachmentID = core.StringPtr(modelMap["attachment_id"].(string)) + } + if modelMap["profile_name"] != nil && modelMap["profile_name"].(string) != "" { + model.ProfileName = core.StringPtr(modelMap["profile_name"].(string)) + } + return model, nil +} + +func resourceIbmProjectMapToInputVariable(modelMap map[string]interface{}) (*projectv1.InputVariable, error) { + model := &projectv1.InputVariable{} + return model, nil +} + +func resourceIbmProjectMapToProjectConfigSetting(modelMap map[string]interface{}) (*projectv1.ProjectConfigSetting, error) { + model := &projectv1.ProjectConfigSetting{} + return model, nil +} + +func resourceIbmProjectMapToSchematicsWorkspace(modelMap map[string]interface{}) (*projectv1.SchematicsWorkspace, error) { + model := &projectv1.SchematicsWorkspace{} + if modelMap["workspace_crn"] != nil && modelMap["workspace_crn"].(string) != "" { + model.WorkspaceCrn = core.StringPtr(modelMap["workspace_crn"].(string)) + } + return model, nil +} + +func resourceIbmProjectMapToProjectPatchDefinitionBlock(modelMap map[string]interface{}) (*projectv1.ProjectPatchDefinitionBlock, error) { + model := &projectv1.ProjectPatchDefinitionBlock{} + if modelMap["name"] != nil && modelMap["name"].(string) != "" { + model.Name = core.StringPtr(modelMap["name"].(string)) + } + if modelMap["description"] != nil && modelMap["description"].(string) != "" { + model.Description = core.StringPtr(modelMap["description"].(string)) + } + if modelMap["destroy_on_delete"] != nil { + model.DestroyOnDelete = core.BoolPtr(modelMap["destroy_on_delete"].(bool)) + } + return model, nil +} + +func resourceIbmProjectProjectDefinitionPropertiesToMap(model *projectv1.ProjectDefinitionProperties) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + modelMap["name"] = model.Name + if model.Description != nil { + modelMap["description"] = model.Description + } + modelMap["destroy_on_delete"] = model.DestroyOnDelete + return modelMap, nil +} + +func resourceIbmProjectCumulativeNeedsAttentionToMap(model *projectv1.CumulativeNeedsAttention) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.Event != nil { + modelMap["event"] = model.Event + } + if model.EventID != nil { + modelMap["event_id"] = model.EventID + } + if model.ConfigID != nil { + modelMap["config_id"] = model.ConfigID + } + if model.ConfigVersion != nil { + modelMap["config_version"] = flex.IntValue(model.ConfigVersion) + } + return modelMap, nil +} + +func resourceIbmProjectProjectConfigSummaryToMap(model *projectv1.ProjectConfigSummary) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.ApprovedVersion != nil { + approvedVersionMap, err := resourceIbmProjectProjectConfigVersionSummaryToMap(model.ApprovedVersion) + if err != nil { + return modelMap, err + } + modelMap["approved_version"] = []map[string]interface{}{approvedVersionMap} + } + if model.DeployedVersion != nil { + deployedVersionMap, err := resourceIbmProjectProjectConfigVersionSummaryToMap(model.DeployedVersion) + if err != nil { + return modelMap, err + } + modelMap["deployed_version"] = []map[string]interface{}{deployedVersionMap} + } + modelMap["id"] = model.ID + modelMap["version"] = flex.IntValue(model.Version) + modelMap["state"] = model.State + modelMap["created_at"] = model.CreatedAt.String() + modelMap["modified_at"] = model.ModifiedAt.String() + modelMap["href"] = model.Href + definitionMap, err := resourceIbmProjectProjectConfigDefinitionNameDescriptionToMap(model.Definition) + if err != nil { + return modelMap, err + } + modelMap["definition"] = []map[string]interface{}{definitionMap} + projectMap, err := resourceIbmProjectProjectReferenceToMap(model.Project) + if err != nil { + return modelMap, err + } + modelMap["project"] = []map[string]interface{}{projectMap} + return modelMap, nil +} + +func resourceIbmProjectProjectConfigVersionSummaryToMap(model *projectv1.ProjectConfigVersionSummary) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + modelMap["state"] = model.State + modelMap["version"] = flex.IntValue(model.Version) + modelMap["href"] = model.Href + return modelMap, nil +} + +func resourceIbmProjectProjectConfigDefinitionNameDescriptionToMap(model *projectv1.ProjectConfigDefinitionNameDescription) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.Name != nil { + modelMap["name"] = model.Name + } + if model.Description != nil { + modelMap["description"] = model.Description + } + return modelMap, nil +} + +func resourceIbmProjectProjectReferenceToMap(model *projectv1.ProjectReference) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + modelMap["id"] = model.ID + definitionMap, err := resourceIbmProjectProjectDefinitionReferenceToMap(model.Definition) + if err != nil { + return modelMap, err + } + modelMap["definition"] = []map[string]interface{}{definitionMap} + modelMap["crn"] = model.Crn + modelMap["href"] = model.Href + return modelMap, nil +} + +func resourceIbmProjectProjectDefinitionReferenceToMap(model *projectv1.ProjectDefinitionReference) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + modelMap["name"] = model.Name + return modelMap, nil +} + +func resourceIbmProjectProjectEnvironmentSummaryToMap(model *projectv1.ProjectEnvironmentSummary) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + modelMap["id"] = model.ID + projectMap, err := resourceIbmProjectProjectReferenceToMap(model.Project) + if err != nil { + return modelMap, err + } + modelMap["project"] = []map[string]interface{}{projectMap} + modelMap["created_at"] = model.CreatedAt.String() + modelMap["href"] = model.Href + definitionMap, err := resourceIbmProjectEnvironmentDefinitionNameDescriptionToMap(model.Definition) + if err != nil { + return modelMap, err + } + modelMap["definition"] = []map[string]interface{}{definitionMap} + return modelMap, nil +} + +func resourceIbmProjectEnvironmentDefinitionNameDescriptionToMap(model *projectv1.EnvironmentDefinitionNameDescription) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.Name != nil { + modelMap["name"] = model.Name + } + if model.Description != nil { + modelMap["description"] = model.Description + } + return modelMap, nil +} diff --git a/ibm/service/project/resource_ibm_project_config.go b/ibm/service/project/resource_ibm_project_config.go new file mode 100644 index 0000000000..5594fbd5b7 --- /dev/null +++ b/ibm/service/project/resource_ibm_project_config.go @@ -0,0 +1,948 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package project + +import ( + "context" + "fmt" + "log" + + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/validate" + "github.com/IBM/go-sdk-core/v5/core" + "github.com/IBM/project-go-sdk/projectv1" +) + +func ResourceIbmProjectConfig() *schema.Resource { + return &schema.Resource{ + CreateContext: resourceIbmProjectConfigCreate, + ReadContext: resourceIbmProjectConfigRead, + UpdateContext: resourceIbmProjectConfigUpdate, + DeleteContext: resourceIbmProjectConfigDelete, + Importer: &schema.ResourceImporter{}, + + Schema: map[string]*schema.Schema{ + "project_id": &schema.Schema{ + Type: schema.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validate.InvokeValidator("ibm_project_config", "project_id"), + Description: "The unique project ID.", + }, + "schematics": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "A schematics workspace associated to a project configuration, with scripts.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "workspace_crn": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "An existing schematics workspace CRN.", + }, + "validate_pre_script": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "A script to be run as part of a Project configuration, for a given stage (pre, post) and action (validate, deploy, undeploy).", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "type": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The type of the script.", + }, + "path": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The path to this script within the current version source.", + }, + "short_description": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The short description for this script.", + }, + }, + }, + }, + "validate_post_script": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "A script to be run as part of a Project configuration, for a given stage (pre, post) and action (validate, deploy, undeploy).", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "type": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The type of the script.", + }, + "path": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The path to this script within the current version source.", + }, + "short_description": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The short description for this script.", + }, + }, + }, + }, + "deploy_pre_script": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "A script to be run as part of a Project configuration, for a given stage (pre, post) and action (validate, deploy, undeploy).", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "type": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The type of the script.", + }, + "path": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The path to this script within the current version source.", + }, + "short_description": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The short description for this script.", + }, + }, + }, + }, + "deploy_post_script": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "A script to be run as part of a Project configuration, for a given stage (pre, post) and action (validate, deploy, undeploy).", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "type": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The type of the script.", + }, + "path": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The path to this script within the current version source.", + }, + "short_description": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The short description for this script.", + }, + }, + }, + }, + "undeploy_pre_script": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "A script to be run as part of a Project configuration, for a given stage (pre, post) and action (validate, deploy, undeploy).", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "type": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The type of the script.", + }, + "path": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The path to this script within the current version source.", + }, + "short_description": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The short description for this script.", + }, + }, + }, + }, + "undeploy_post_script": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "A script to be run as part of a Project configuration, for a given stage (pre, post) and action (validate, deploy, undeploy).", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "type": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The type of the script.", + }, + "path": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The path to this script within the current version source.", + }, + "short_description": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The short description for this script.", + }, + }, + }, + }, + }, + }, + }, + "definition": &schema.Schema{ + Type: schema.TypeList, + MinItems: 1, + MaxItems: 1, + Required: true, + Description: "The name and description of a project configuration.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Required: true, + Description: "The configuration name. It is unique within the account across projects and regions.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "A project configuration description.", + }, + "environment_id": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The ID of the project environment.", + }, + "authorizations": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The authorization details. You can authorize by using a trusted profile or an API key in Secrets Manager.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "trusted_profile_id": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The trusted profile ID.", + }, + "method": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The authorization method. You can authorize by using a trusted profile or an API key in Secrets Manager.", + }, + "api_key": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Sensitive: true, + Description: "The IBM Cloud API Key.", + }, + }, + }, + }, + "compliance_profile": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The profile required for compliance.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "id": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The unique ID for that compliance profile.", + }, + "instance_id": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "A unique ID for an instance of a compliance profile.", + }, + "instance_location": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The location of the compliance instance.", + }, + "attachment_id": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "A unique ID for the attachment to a compliance profile.", + }, + "profile_name": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The name of the compliance profile.", + }, + }, + }, + }, + "locator_id": &schema.Schema{ + Type: schema.TypeString, + Required: true, + ForceNew: true, + Description: "A unique concatenation of catalogID.versionID that identifies the DA in the catalog.", + }, + "inputs": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The input variables for configuration definition and environment.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{}, + }, + }, + "settings": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "Schematics environment variables to use to deploy the configuration.Settings are only available if they were specified when the configuration was initially created.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{}, + }, + }, + }, + }, + }, + "version": &schema.Schema{ + Type: schema.TypeInt, + Computed: true, + Description: "The version of the configuration.", + }, + "is_draft": &schema.Schema{ + Type: schema.TypeBool, + Computed: true, + Description: "The flag that indicates whether the version of the configuration is draft, or active.", + }, + "needs_attention_state": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The needs attention state of a configuration.", + Elem: &schema.Schema{Type: schema.TypeString}, + }, + "created_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339.", + }, + "modified_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339.", + }, + "last_saved_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339.", + }, + "outputs": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The outputs of a Schematics template property.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The variable name.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A short explanation of the output value.", + }, + "value": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Can be any value - a string, number, boolean, array, or object.", + }, + }, + }, + }, + "project": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The project referenced by this resource.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The unique ID.", + }, + "definition": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The definition of the project reference.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The name of the project.", + }, + }, + }, + }, + "crn": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "An IBM Cloud resource name, which uniquely identifies a resource.", + }, + "href": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A URL.", + }, + }, + }, + }, + "state": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The state of the configuration.", + }, + "update_available": &schema.Schema{ + Type: schema.TypeBool, + Computed: true, + Description: "The flag that indicates whether a configuration update is available.", + }, + "project_config_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The ID of the configuration. If this parameter is empty, an ID is automatically created for the configuration.", + }, + }, + } +} + +func ResourceIbmProjectConfigValidator() *validate.ResourceValidator { + validateSchema := make([]validate.ValidateSchema, 0) + validateSchema = append(validateSchema, + validate.ValidateSchema{ + Identifier: "project_id", + ValidateFunctionIdentifier: validate.ValidateRegexp, + Type: validate.TypeString, + Required: true, + Regexp: `^[\.\-0-9a-zA-Z]+$`, + MaxValueLength: 128, + }, + ) + + resourceValidator := validate.ResourceValidator{ResourceName: "ibm_project_config", Schema: validateSchema} + return &resourceValidator +} + +func resourceIbmProjectConfigCreate(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + projectClient, err := meta.(conns.ClientSession).ProjectV1() + if err != nil { + return diag.FromErr(err) + } + + createConfigOptions := &projectv1.CreateConfigOptions{} + + createConfigOptions.SetProjectID(d.Get("project_id").(string)) + definitionModel, err := resourceIbmProjectConfigMapToProjectConfigPrototypeDefinitionBlock(d.Get("definition.0").(map[string]interface{})) + if err != nil { + return diag.FromErr(err) + } + createConfigOptions.SetDefinition(definitionModel) + if _, ok := d.GetOk("schematics"); ok { + schematicsModel, err := resourceIbmProjectConfigMapToSchematicsWorkspace(d.Get("schematics.0").(map[string]interface{})) + if err != nil { + return diag.FromErr(err) + } + createConfigOptions.SetSchematics(schematicsModel) + } + + projectConfig, response, err := projectClient.CreateConfigWithContext(context, createConfigOptions) + if err != nil { + log.Printf("[DEBUG] CreateConfigWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("CreateConfigWithContext failed %s\n%s", err, response)) + } + + d.SetId(fmt.Sprintf("%s/%s", *createConfigOptions.ProjectID, *projectConfig.ID)) + + return resourceIbmProjectConfigRead(context, d, meta) +} + +func resourceIbmProjectConfigRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + projectClient, err := meta.(conns.ClientSession).ProjectV1() + if err != nil { + return diag.FromErr(err) + } + + getConfigOptions := &projectv1.GetConfigOptions{} + + parts, err := flex.SepIdParts(d.Id(), "/") + if err != nil { + return diag.FromErr(err) + } + + getConfigOptions.SetProjectID(parts[0]) + getConfigOptions.SetID(parts[1]) + + projectConfig, response, err := projectClient.GetConfigWithContext(context, getConfigOptions) + if err != nil { + if response != nil && response.StatusCode == 404 { + d.SetId("") + return nil + } + log.Printf("[DEBUG] GetConfigWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("GetConfigWithContext failed %s\n%s", err, response)) + } + + definitionMap, err := resourceIbmProjectConfigProjectConfigResponseDefinitionToMap(projectConfig.Definition) + if err != nil { + return diag.FromErr(err) + } + if err = d.Set("definition", []map[string]interface{}{definitionMap}); err != nil { + return diag.FromErr(fmt.Errorf("Error setting definition: %s", err)) + } + if err = d.Set("version", flex.IntValue(projectConfig.Version)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting version: %s", err)) + } + if err = d.Set("is_draft", projectConfig.IsDraft); err != nil { + return diag.FromErr(fmt.Errorf("Error setting is_draft: %s", err)) + } + if !core.IsNil(projectConfig.NeedsAttentionState) { + needsAttentionState := []interface{}{} + for _, needsAttentionStateItem := range projectConfig.NeedsAttentionState { + needsAttentionState = append(needsAttentionState, needsAttentionStateItem) + } + if err = d.Set("needs_attention_state", needsAttentionState); err != nil { + return diag.FromErr(fmt.Errorf("Error setting needs_attention_state: %s", err)) + } + } + if err = d.Set("created_at", flex.DateTimeToString(projectConfig.CreatedAt)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting created_at: %s", err)) + } + if err = d.Set("modified_at", flex.DateTimeToString(projectConfig.ModifiedAt)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting modified_at: %s", err)) + } + if !core.IsNil(projectConfig.LastSavedAt) { + if err = d.Set("last_saved_at", flex.DateTimeToString(projectConfig.LastSavedAt)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting last_saved_at: %s", err)) + } + } + if !core.IsNil(projectConfig.Outputs) { + outputs := []map[string]interface{}{} + for _, outputsItem := range projectConfig.Outputs { + outputsItemMap, err := resourceIbmProjectConfigOutputValueToMap(&outputsItem) + if err != nil { + return diag.FromErr(err) + } + outputs = append(outputs, outputsItemMap) + } + if err = d.Set("outputs", outputs); err != nil { + return diag.FromErr(fmt.Errorf("Error setting outputs: %s", err)) + } + } + projectMap, err := resourceIbmProjectConfigProjectReferenceToMap(projectConfig.Project) + if err != nil { + return diag.FromErr(err) + } + if err = d.Set("project", []map[string]interface{}{projectMap}); err != nil { + return diag.FromErr(fmt.Errorf("Error setting project: %s", err)) + } + if err = d.Set("state", projectConfig.State); err != nil { + return diag.FromErr(fmt.Errorf("Error setting state: %s", err)) + } + if err = d.Set("update_available", projectConfig.UpdateAvailable); err != nil { + return diag.FromErr(fmt.Errorf("Error setting update_available: %s", err)) + } + if err = d.Set("project_config_id", projectConfig.ID); err != nil { + return diag.FromErr(fmt.Errorf("Error setting project_config_id: %s", err)) + } + + return nil +} + +func resourceIbmProjectConfigUpdate(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + projectClient, err := meta.(conns.ClientSession).ProjectV1() + if err != nil { + return diag.FromErr(err) + } + + updateConfigOptions := &projectv1.UpdateConfigOptions{} + + parts, err := flex.SepIdParts(d.Id(), "/") + if err != nil { + return diag.FromErr(err) + } + + updateConfigOptions.SetProjectID(parts[0]) + updateConfigOptions.SetID(parts[1]) + + hasChange := false + + if d.HasChange("definition") { + definition, err := resourceIbmProjectConfigMapToProjectConfigPatchDefinitionBlock(d.Get("definition.0").(map[string]interface{})) + if err != nil { + return diag.FromErr(err) + } + updateConfigOptions.SetDefinition(definition) + hasChange = true + } + + if hasChange { + _, response, err := projectClient.UpdateConfigWithContext(context, updateConfigOptions) + if err != nil { + log.Printf("[DEBUG] UpdateConfigWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("UpdateConfigWithContext failed %s\n%s", err, response)) + } + } + + return resourceIbmProjectConfigRead(context, d, meta) +} + +func resourceIbmProjectConfigDelete(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + projectClient, err := meta.(conns.ClientSession).ProjectV1() + if err != nil { + return diag.FromErr(err) + } + + deleteConfigOptions := &projectv1.DeleteConfigOptions{} + + parts, err := flex.SepIdParts(d.Id(), "/") + if err != nil { + return diag.FromErr(err) + } + + deleteConfigOptions.SetProjectID(parts[0]) + deleteConfigOptions.SetID(parts[1]) + + _, response, err := projectClient.DeleteConfigWithContext(context, deleteConfigOptions) + if err != nil { + log.Printf("[DEBUG] DeleteConfigWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("DeleteConfigWithContext failed %s\n%s", err, response)) + } + + d.SetId("") + + return nil +} + +func resourceIbmProjectConfigMapToProjectConfigPrototypeDefinitionBlock(modelMap map[string]interface{}) (*projectv1.ProjectConfigPrototypeDefinitionBlock, error) { + model := &projectv1.ProjectConfigPrototypeDefinitionBlock{} + model.Name = core.StringPtr(modelMap["name"].(string)) + if modelMap["description"] != nil && modelMap["description"].(string) != "" { + model.Description = core.StringPtr(modelMap["description"].(string)) + } + if modelMap["environment_id"] != nil && modelMap["environment_id"].(string) != "" { + model.EnvironmentID = core.StringPtr(modelMap["environment_id"].(string)) + } + if modelMap["authorizations"] != nil && len(modelMap["authorizations"].([]interface{})) > 0 { + AuthorizationsModel, err := resourceIbmProjectConfigMapToProjectConfigAuth(modelMap["authorizations"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.Authorizations = AuthorizationsModel + } + if modelMap["compliance_profile"] != nil && len(modelMap["compliance_profile"].([]interface{})) > 0 { + ComplianceProfileModel, err := resourceIbmProjectConfigMapToProjectComplianceProfile(modelMap["compliance_profile"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.ComplianceProfile = ComplianceProfileModel + } + if modelMap["locator_id"] != nil && modelMap["locator_id"].(string) != "" { + model.LocatorID = core.StringPtr(modelMap["locator_id"].(string)) + } + if modelMap["inputs"] != nil && len(modelMap["inputs"].([]interface{})) > 0 { + InputsModel, err := resourceIbmProjectConfigMapToInputVariable(modelMap["inputs"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.Inputs = InputsModel + } + if modelMap["settings"] != nil && len(modelMap["settings"].([]interface{})) > 0 { + SettingsModel, err := resourceIbmProjectConfigMapToProjectConfigSetting(modelMap["settings"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.Settings = SettingsModel + } + return model, nil +} + +func resourceIbmProjectConfigMapToProjectConfigAuth(modelMap map[string]interface{}) (*projectv1.ProjectConfigAuth, error) { + model := &projectv1.ProjectConfigAuth{} + if modelMap["trusted_profile_id"] != nil && modelMap["trusted_profile_id"].(string) != "" { + model.TrustedProfileID = core.StringPtr(modelMap["trusted_profile_id"].(string)) + } + if modelMap["method"] != nil && modelMap["method"].(string) != "" { + model.Method = core.StringPtr(modelMap["method"].(string)) + } + if modelMap["api_key"] != nil && modelMap["api_key"].(string) != "" { + model.ApiKey = core.StringPtr(modelMap["api_key"].(string)) + } + return model, nil +} + +func resourceIbmProjectConfigMapToProjectComplianceProfile(modelMap map[string]interface{}) (*projectv1.ProjectComplianceProfile, error) { + model := &projectv1.ProjectComplianceProfile{} + if modelMap["id"] != nil && modelMap["id"].(string) != "" { + model.ID = core.StringPtr(modelMap["id"].(string)) + } + if modelMap["instance_id"] != nil && modelMap["instance_id"].(string) != "" { + model.InstanceID = core.StringPtr(modelMap["instance_id"].(string)) + } + if modelMap["instance_location"] != nil && modelMap["instance_location"].(string) != "" { + model.InstanceLocation = core.StringPtr(modelMap["instance_location"].(string)) + } + if modelMap["attachment_id"] != nil && modelMap["attachment_id"].(string) != "" { + model.AttachmentID = core.StringPtr(modelMap["attachment_id"].(string)) + } + if modelMap["profile_name"] != nil && modelMap["profile_name"].(string) != "" { + model.ProfileName = core.StringPtr(modelMap["profile_name"].(string)) + } + return model, nil +} + +func resourceIbmProjectConfigMapToInputVariable(modelMap map[string]interface{}) (*projectv1.InputVariable, error) { + model := &projectv1.InputVariable{} + return model, nil +} + +func resourceIbmProjectConfigMapToProjectConfigSetting(modelMap map[string]interface{}) (*projectv1.ProjectConfigSetting, error) { + model := &projectv1.ProjectConfigSetting{} + return model, nil +} + +func resourceIbmProjectConfigMapToSchematicsWorkspace(modelMap map[string]interface{}) (*projectv1.SchematicsWorkspace, error) { + model := &projectv1.SchematicsWorkspace{} + if modelMap["workspace_crn"] != nil && modelMap["workspace_crn"].(string) != "" { + model.WorkspaceCrn = core.StringPtr(modelMap["workspace_crn"].(string)) + } + return model, nil +} + +func resourceIbmProjectConfigMapToProjectConfigPatchDefinitionBlock(modelMap map[string]interface{}) (*projectv1.ProjectConfigPatchDefinitionBlock, error) { + model := &projectv1.ProjectConfigPatchDefinitionBlock{} + if modelMap["name"] != nil && modelMap["name"].(string) != "" { + model.Name = core.StringPtr(modelMap["name"].(string)) + } + if modelMap["description"] != nil && modelMap["description"].(string) != "" { + model.Description = core.StringPtr(modelMap["description"].(string)) + } + if modelMap["environment_id"] != nil && modelMap["environment_id"].(string) != "" { + model.EnvironmentID = core.StringPtr(modelMap["environment_id"].(string)) + } + if modelMap["authorizations"] != nil && len(modelMap["authorizations"].([]interface{})) > 0 { + AuthorizationsModel, err := resourceIbmProjectConfigMapToProjectConfigAuth(modelMap["authorizations"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.Authorizations = AuthorizationsModel + } + if modelMap["compliance_profile"] != nil && len(modelMap["compliance_profile"].([]interface{})) > 0 { + ComplianceProfileModel, err := resourceIbmProjectConfigMapToProjectComplianceProfile(modelMap["compliance_profile"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.ComplianceProfile = ComplianceProfileModel + } + if modelMap["locator_id"] != nil && modelMap["locator_id"].(string) != "" { + model.LocatorID = core.StringPtr(modelMap["locator_id"].(string)) + } + if modelMap["inputs"] != nil && len(modelMap["inputs"].([]interface{})) > 0 { + InputsModel, err := resourceIbmProjectConfigMapToInputVariable(modelMap["inputs"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.Inputs = InputsModel + } + if modelMap["settings"] != nil && len(modelMap["settings"].([]interface{})) > 0 { + SettingsModel, err := resourceIbmProjectConfigMapToProjectConfigSetting(modelMap["settings"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.Settings = SettingsModel + } + return model, nil +} + +func resourceIbmProjectConfigSchematicsMetadataToMap(model *projectv1.SchematicsMetadata) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.WorkspaceCrn != nil { + modelMap["workspace_crn"] = model.WorkspaceCrn + } + if model.ValidatePreScript != nil { + validatePreScriptMap, err := resourceIbmProjectConfigScriptToMap(model.ValidatePreScript) + if err != nil { + return modelMap, err + } + modelMap["validate_pre_script"] = []map[string]interface{}{validatePreScriptMap} + } + if model.ValidatePostScript != nil { + validatePostScriptMap, err := resourceIbmProjectConfigScriptToMap(model.ValidatePostScript) + if err != nil { + return modelMap, err + } + modelMap["validate_post_script"] = []map[string]interface{}{validatePostScriptMap} + } + if model.DeployPreScript != nil { + deployPreScriptMap, err := resourceIbmProjectConfigScriptToMap(model.DeployPreScript) + if err != nil { + return modelMap, err + } + modelMap["deploy_pre_script"] = []map[string]interface{}{deployPreScriptMap} + } + if model.DeployPostScript != nil { + deployPostScriptMap, err := resourceIbmProjectConfigScriptToMap(model.DeployPostScript) + if err != nil { + return modelMap, err + } + modelMap["deploy_post_script"] = []map[string]interface{}{deployPostScriptMap} + } + if model.UndeployPreScript != nil { + undeployPreScriptMap, err := resourceIbmProjectConfigScriptToMap(model.UndeployPreScript) + if err != nil { + return modelMap, err + } + modelMap["undeploy_pre_script"] = []map[string]interface{}{undeployPreScriptMap} + } + if model.UndeployPostScript != nil { + undeployPostScriptMap, err := resourceIbmProjectConfigScriptToMap(model.UndeployPostScript) + if err != nil { + return modelMap, err + } + modelMap["undeploy_post_script"] = []map[string]interface{}{undeployPostScriptMap} + } + return modelMap, nil +} + +func resourceIbmProjectConfigScriptToMap(model *projectv1.Script) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.Type != nil { + modelMap["type"] = model.Type + } + if model.Path != nil { + modelMap["path"] = model.Path + } + if model.ShortDescription != nil { + modelMap["short_description"] = model.ShortDescription + } + return modelMap, nil +} + +func resourceIbmProjectConfigProjectConfigResponseDefinitionToMap(model *projectv1.ProjectConfigResponseDefinition) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + modelMap["name"] = model.Name + if model.Description != nil { + modelMap["description"] = model.Description + } + if model.EnvironmentID != nil { + modelMap["environment_id"] = model.EnvironmentID + } + if model.Authorizations != nil { + authorizationsMap, err := resourceIbmProjectConfigProjectConfigAuthToMap(model.Authorizations) + if err != nil { + return modelMap, err + } + modelMap["authorizations"] = []map[string]interface{}{authorizationsMap} + } + if model.ComplianceProfile != nil { + complianceProfileMap, err := resourceIbmProjectConfigProjectComplianceProfileToMap(model.ComplianceProfile) + if err != nil { + return modelMap, err + } + if len(complianceProfileMap) > 0 { + modelMap["compliance_profile"] = []map[string]interface{}{complianceProfileMap} + } + } + modelMap["locator_id"] = model.LocatorID + if model.Inputs != nil { + inputsMap, err := resourceIbmProjectConfigInputVariableToMap(model.Inputs) + if err != nil { + return modelMap, err + } + if len(inputsMap) > 0 { + modelMap["inputs"] = []map[string]interface{}{inputsMap} + } + } + if model.Settings != nil { + settingsMap, err := resourceIbmProjectConfigProjectConfigSettingToMap(model.Settings) + if err != nil { + return modelMap, err + } + modelMap["settings"] = []map[string]interface{}{settingsMap} + } + return modelMap, nil +} + +func resourceIbmProjectConfigProjectConfigAuthToMap(model *projectv1.ProjectConfigAuth) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.TrustedProfileID != nil { + modelMap["trusted_profile_id"] = model.TrustedProfileID + } + if model.Method != nil { + modelMap["method"] = model.Method + } + if model.ApiKey != nil { + modelMap["api_key"] = model.ApiKey + } + return modelMap, nil +} + +func resourceIbmProjectConfigProjectComplianceProfileToMap(model *projectv1.ProjectComplianceProfile) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.ID != nil { + modelMap["id"] = model.ID + } + if model.InstanceID != nil { + modelMap["instance_id"] = model.InstanceID + } + if model.InstanceLocation != nil { + modelMap["instance_location"] = model.InstanceLocation + } + if model.AttachmentID != nil { + modelMap["attachment_id"] = model.AttachmentID + } + if model.ProfileName != nil { + modelMap["profile_name"] = model.ProfileName + } + return modelMap, nil +} + +func resourceIbmProjectConfigInputVariableToMap(model *projectv1.InputVariable) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + return modelMap, nil +} + +func resourceIbmProjectConfigProjectConfigSettingToMap(model *projectv1.ProjectConfigSetting) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + return modelMap, nil +} + +func resourceIbmProjectConfigOutputValueToMap(model *projectv1.OutputValue) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + modelMap["name"] = model.Name + if model.Description != nil { + modelMap["description"] = model.Description + } + if model.Value != nil { + modelMap["value"] = model.Value + } + return modelMap, nil +} + +func resourceIbmProjectConfigProjectReferenceToMap(model *projectv1.ProjectReference) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + modelMap["id"] = model.ID + definitionMap, err := resourceIbmProjectConfigProjectDefinitionReferenceToMap(model.Definition) + if err != nil { + return modelMap, err + } + modelMap["definition"] = []map[string]interface{}{definitionMap} + modelMap["crn"] = model.Crn + modelMap["href"] = model.Href + return modelMap, nil +} + +func resourceIbmProjectConfigProjectDefinitionReferenceToMap(model *projectv1.ProjectDefinitionReference) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + modelMap["name"] = model.Name + return modelMap, nil +} diff --git a/ibm/service/project/resource_ibm_project_config_test.go b/ibm/service/project/resource_ibm_project_config_test.go new file mode 100644 index 0000000000..8a827c81f1 --- /dev/null +++ b/ibm/service/project/resource_ibm_project_config_test.go @@ -0,0 +1,138 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package project_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + "github.com/IBM/project-go-sdk/projectv1" +) + +func TestAccIbmProjectConfigBasic(t *testing.T) { + var conf projectv1.ProjectConfig + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIbmProjectConfigDestroy, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmProjectConfigConfigBasic(), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIbmProjectConfigExists("ibm_project_config.project_config_instance", conf), + ), + }, + resource.TestStep{ + ResourceName: "ibm_project_config.project_config_instance", + ImportState: true, + ImportStateVerify: true, + ImportStateVerifyIgnore: []string{"project_id"}, + }, + }, + }) +} + +func testAccCheckIbmProjectConfigConfigBasic() string { + return fmt.Sprintf(` + resource "ibm_project" "project_instance" { + location = "us-south" + resource_group = "Default" + definition { + name = "acme-microservice" + description = "acme-microservice description" + destroy_on_delete = true + } + } + + resource "ibm_project_config" "project_config_instance" { + project_id = ibm_project.project_instance.id + definition { + name = "stage-environment" + authorizations { + method = "api_key" + api_key = "%s" + } + locator_id = "1082e7d2-5e2f-0a11-a3bc-f88a8e1931fc.cd596f95-95a2-4f21-9b84-477f21fd1e95-global" + } + lifecycle { + ignore_changes = [ + definition[0].authorizations[0].api_key, + ] + } + } + `, acc.ProjectsConfigApiKey) +} + +func testAccCheckIbmProjectConfigExists(n string, obj projectv1.ProjectConfig) resource.TestCheckFunc { + + return func(s *terraform.State) error { + rs, ok := s.RootModule().Resources[n] + if !ok { + return fmt.Errorf("Not found: %s", n) + } + + projectClient, err := acc.TestAccProvider.Meta().(conns.ClientSession).ProjectV1() + if err != nil { + return err + } + + getConfigOptions := &projectv1.GetConfigOptions{} + + parts, err := flex.SepIdParts(rs.Primary.ID, "/") + if err != nil { + return err + } + + getConfigOptions.SetProjectID(parts[0]) + getConfigOptions.SetID(parts[1]) + + projectConfig, _, err := projectClient.GetConfig(getConfigOptions) + if err != nil { + return err + } + + obj = *projectConfig + return nil + } +} + +func testAccCheckIbmProjectConfigDestroy(s *terraform.State) error { + projectClient, err := acc.TestAccProvider.Meta().(conns.ClientSession).ProjectV1() + if err != nil { + return err + } + for _, rs := range s.RootModule().Resources { + if rs.Type != "ibm_project_config" { + continue + } + + getConfigOptions := &projectv1.GetConfigOptions{} + + parts, err := flex.SepIdParts(rs.Primary.ID, "/") + if err != nil { + return err + } + + getConfigOptions.SetProjectID(parts[0]) + getConfigOptions.SetID(parts[1]) + + // Try to find the key + _, response, err := projectClient.GetConfig(getConfigOptions) + + if err == nil { + return fmt.Errorf("project_config still exists: %s", rs.Primary.ID) + } else if response.StatusCode != 404 { + return fmt.Errorf("Error checking for project_config (%s) has been destroyed: %s", rs.Primary.ID, err) + } + } + + return nil +} diff --git a/ibm/service/project/resource_ibm_project_environment.go b/ibm/service/project/resource_ibm_project_environment.go new file mode 100644 index 0000000000..3dda07d3a2 --- /dev/null +++ b/ibm/service/project/resource_ibm_project_environment.go @@ -0,0 +1,551 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package project + +import ( + "context" + "fmt" + "log" + + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/validate" + "github.com/IBM/go-sdk-core/v5/core" + "github.com/IBM/project-go-sdk/projectv1" +) + +func ResourceIbmProjectEnvironment() *schema.Resource { + return &schema.Resource{ + CreateContext: resourceIbmProjectEnvironmentCreate, + ReadContext: resourceIbmProjectEnvironmentRead, + UpdateContext: resourceIbmProjectEnvironmentUpdate, + DeleteContext: resourceIbmProjectEnvironmentDelete, + Importer: &schema.ResourceImporter{}, + + Schema: map[string]*schema.Schema{ + "project_id": &schema.Schema{ + Type: schema.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validate.InvokeValidator("ibm_project_environment", "project_id"), + Description: "The unique project ID.", + }, + "definition": &schema.Schema{ + Type: schema.TypeList, + MinItems: 1, + MaxItems: 1, + Required: true, + Description: "The environment definition.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Required: true, + Description: "The name of the environment. It is unique within the account across projects and regions.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The description of the environment.", + }, + "authorizations": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The authorization details. You can authorize by using a trusted profile or an API key in Secrets Manager.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "trusted_profile_id": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The trusted profile ID.", + }, + "method": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The authorization method. You can authorize by using a trusted profile or an API key in Secrets Manager.", + }, + "api_key": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Sensitive: true, + Description: "The IBM Cloud API Key.", + }, + }, + }, + }, + "inputs": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The input variables for configuration definition and environment.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{}, + }, + }, + "compliance_profile": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "The profile required for compliance.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "id": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The unique ID for that compliance profile.", + }, + "instance_id": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "A unique ID for an instance of a compliance profile.", + }, + "instance_location": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The location of the compliance instance.", + }, + "attachment_id": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "A unique ID for the attachment to a compliance profile.", + }, + "profile_name": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The name of the compliance profile.", + }, + }, + }, + }, + }, + }, + }, + "project": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The project referenced by this resource.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The unique ID.", + }, + "definition": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The definition of the project reference.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The name of the project.", + }, + }, + }, + }, + "crn": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "An IBM Cloud resource name, which uniquely identifies a resource.", + }, + "href": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A URL.", + }, + }, + }, + }, + "created_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339.", + }, + "target_account": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The target account ID derived from the authentication block values.", + }, + "modified_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339.", + }, + "project_environment_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The environment id as a friendly name.", + }, + }, + } +} + +func ResourceIbmProjectEnvironmentValidator() *validate.ResourceValidator { + validateSchema := make([]validate.ValidateSchema, 0) + validateSchema = append(validateSchema, + validate.ValidateSchema{ + Identifier: "project_id", + ValidateFunctionIdentifier: validate.ValidateRegexp, + Type: validate.TypeString, + Required: true, + Regexp: `^[\.\-0-9a-zA-Z]+$`, + MaxValueLength: 128, + }, + ) + + resourceValidator := validate.ResourceValidator{ResourceName: "ibm_project_environment", Schema: validateSchema} + return &resourceValidator +} + +func resourceIbmProjectEnvironmentCreate(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + projectClient, err := meta.(conns.ClientSession).ProjectV1() + if err != nil { + return diag.FromErr(err) + } + + createProjectEnvironmentOptions := &projectv1.CreateProjectEnvironmentOptions{} + + createProjectEnvironmentOptions.SetProjectID(d.Get("project_id").(string)) + definitionModel, err := resourceIbmProjectEnvironmentMapToEnvironmentDefinitionRequiredProperties(d.Get("definition.0").(map[string]interface{})) + if err != nil { + return diag.FromErr(err) + } + createProjectEnvironmentOptions.SetDefinition(definitionModel) + + environment, response, err := projectClient.CreateProjectEnvironmentWithContext(context, createProjectEnvironmentOptions) + if err != nil { + log.Printf("[DEBUG] CreateProjectEnvironmentWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("CreateProjectEnvironmentWithContext failed %s\n%s", err, response)) + } + + d.SetId(fmt.Sprintf("%s/%s", *createProjectEnvironmentOptions.ProjectID, *environment.ID)) + + return resourceIbmProjectEnvironmentRead(context, d, meta) +} + +func resourceIbmProjectEnvironmentRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + projectClient, err := meta.(conns.ClientSession).ProjectV1() + if err != nil { + return diag.FromErr(err) + } + + getProjectEnvironmentOptions := &projectv1.GetProjectEnvironmentOptions{} + + parts, err := flex.SepIdParts(d.Id(), "/") + if err != nil { + return diag.FromErr(err) + } + + getProjectEnvironmentOptions.SetProjectID(parts[0]) + getProjectEnvironmentOptions.SetID(parts[1]) + + environment, response, err := projectClient.GetProjectEnvironmentWithContext(context, getProjectEnvironmentOptions) + if err != nil { + if response != nil && response.StatusCode == 404 { + d.SetId("") + return nil + } + log.Printf("[DEBUG] GetProjectEnvironmentWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("GetProjectEnvironmentWithContext failed %s\n%s", err, response)) + } + + definitionMap, err := resourceIbmProjectEnvironmentEnvironmentDefinitionRequiredPropertiesToMap(environment.Definition) + if err != nil { + return diag.FromErr(err) + } + if err = d.Set("definition", []map[string]interface{}{definitionMap}); err != nil { + return diag.FromErr(fmt.Errorf("Error setting definition: %s", err)) + } + projectMap, err := resourceIbmProjectEnvironmentProjectReferenceToMap(environment.Project) + if err != nil { + return diag.FromErr(err) + } + if err = d.Set("project", []map[string]interface{}{projectMap}); err != nil { + return diag.FromErr(fmt.Errorf("Error setting project: %s", err)) + } + if err = d.Set("created_at", flex.DateTimeToString(environment.CreatedAt)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting created_at: %s", err)) + } + if !core.IsNil(environment.TargetAccount) { + if err = d.Set("target_account", environment.TargetAccount); err != nil { + return diag.FromErr(fmt.Errorf("Error setting target_account: %s", err)) + } + } + if err = d.Set("modified_at", flex.DateTimeToString(environment.ModifiedAt)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting modified_at: %s", err)) + } + if err = d.Set("project_environment_id", environment.ID); err != nil { + return diag.FromErr(fmt.Errorf("Error setting project_environment_id: %s", err)) + } + + return nil +} + +func resourceIbmProjectEnvironmentUpdate(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + projectClient, err := meta.(conns.ClientSession).ProjectV1() + if err != nil { + return diag.FromErr(err) + } + + updateProjectEnvironmentOptions := &projectv1.UpdateProjectEnvironmentOptions{} + + parts, err := flex.SepIdParts(d.Id(), "/") + if err != nil { + return diag.FromErr(err) + } + + updateProjectEnvironmentOptions.SetProjectID(parts[0]) + updateProjectEnvironmentOptions.SetID(parts[1]) + + hasChange := false + + if d.HasChange("project_id") { + return diag.FromErr(fmt.Errorf("Cannot update resource property \"%s\" with the ForceNew annotation."+ + " The resource must be re-created to update this property.", "project_id")) + } + if d.HasChange("definition") { + definition, err := resourceIbmProjectEnvironmentMapToEnvironmentDefinitionProperties(d.Get("definition.0").(map[string]interface{})) + if err != nil { + return diag.FromErr(err) + } + updateProjectEnvironmentOptions.SetDefinition(definition) + hasChange = true + } + + if hasChange { + _, response, err := projectClient.UpdateProjectEnvironmentWithContext(context, updateProjectEnvironmentOptions) + if err != nil { + log.Printf("[DEBUG] UpdateProjectEnvironmentWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("UpdateProjectEnvironmentWithContext failed %s\n%s", err, response)) + } + } + + return resourceIbmProjectEnvironmentRead(context, d, meta) +} + +func resourceIbmProjectEnvironmentDelete(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + projectClient, err := meta.(conns.ClientSession).ProjectV1() + if err != nil { + return diag.FromErr(err) + } + + deleteProjectEnvironmentOptions := &projectv1.DeleteProjectEnvironmentOptions{} + + parts, err := flex.SepIdParts(d.Id(), "/") + if err != nil { + return diag.FromErr(err) + } + + deleteProjectEnvironmentOptions.SetProjectID(parts[0]) + deleteProjectEnvironmentOptions.SetID(parts[1]) + + _, response, err := projectClient.DeleteProjectEnvironmentWithContext(context, deleteProjectEnvironmentOptions) + if err != nil { + log.Printf("[DEBUG] DeleteProjectEnvironmentWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("DeleteProjectEnvironmentWithContext failed %s\n%s", err, response)) + } + + d.SetId("") + + return nil +} + +func resourceIbmProjectEnvironmentMapToEnvironmentDefinitionRequiredProperties(modelMap map[string]interface{}) (*projectv1.EnvironmentDefinitionRequiredProperties, error) { + model := &projectv1.EnvironmentDefinitionRequiredProperties{} + model.Name = core.StringPtr(modelMap["name"].(string)) + if modelMap["description"] != nil && modelMap["description"].(string) != "" { + model.Description = core.StringPtr(modelMap["description"].(string)) + } + if modelMap["authorizations"] != nil && len(modelMap["authorizations"].([]interface{})) > 0 { + AuthorizationsModel, err := resourceIbmProjectEnvironmentMapToProjectConfigAuth(modelMap["authorizations"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.Authorizations = AuthorizationsModel + } + if modelMap["inputs"] != nil && len(modelMap["inputs"].([]interface{})) > 0 { + InputsModel, err := resourceIbmProjectEnvironmentMapToInputVariable(modelMap["inputs"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.Inputs = InputsModel + } + if modelMap["compliance_profile"] != nil && len(modelMap["compliance_profile"].([]interface{})) > 0 { + ComplianceProfileModel, err := resourceIbmProjectEnvironmentMapToProjectComplianceProfile(modelMap["compliance_profile"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.ComplianceProfile = ComplianceProfileModel + } + return model, nil +} + +func resourceIbmProjectEnvironmentMapToProjectConfigAuth(modelMap map[string]interface{}) (*projectv1.ProjectConfigAuth, error) { + model := &projectv1.ProjectConfigAuth{} + if modelMap["trusted_profile_id"] != nil && modelMap["trusted_profile_id"].(string) != "" { + model.TrustedProfileID = core.StringPtr(modelMap["trusted_profile_id"].(string)) + } + if modelMap["method"] != nil && modelMap["method"].(string) != "" { + model.Method = core.StringPtr(modelMap["method"].(string)) + } + if modelMap["api_key"] != nil && modelMap["api_key"].(string) != "" { + model.ApiKey = core.StringPtr(modelMap["api_key"].(string)) + } + return model, nil +} + +func resourceIbmProjectEnvironmentMapToInputVariable(modelMap map[string]interface{}) (*projectv1.InputVariable, error) { + model := &projectv1.InputVariable{} + return model, nil +} + +func resourceIbmProjectEnvironmentMapToProjectComplianceProfile(modelMap map[string]interface{}) (*projectv1.ProjectComplianceProfile, error) { + model := &projectv1.ProjectComplianceProfile{} + if modelMap["id"] != nil && modelMap["id"].(string) != "" { + model.ID = core.StringPtr(modelMap["id"].(string)) + } + if modelMap["instance_id"] != nil && modelMap["instance_id"].(string) != "" { + model.InstanceID = core.StringPtr(modelMap["instance_id"].(string)) + } + if modelMap["instance_location"] != nil && modelMap["instance_location"].(string) != "" { + model.InstanceLocation = core.StringPtr(modelMap["instance_location"].(string)) + } + if modelMap["attachment_id"] != nil && modelMap["attachment_id"].(string) != "" { + model.AttachmentID = core.StringPtr(modelMap["attachment_id"].(string)) + } + if modelMap["profile_name"] != nil && modelMap["profile_name"].(string) != "" { + model.ProfileName = core.StringPtr(modelMap["profile_name"].(string)) + } + return model, nil +} + +func resourceIbmProjectEnvironmentMapToEnvironmentDefinitionProperties(modelMap map[string]interface{}) (*projectv1.EnvironmentDefinitionProperties, error) { + model := &projectv1.EnvironmentDefinitionProperties{} + if modelMap["name"] != nil && modelMap["name"].(string) != "" { + model.Name = core.StringPtr(modelMap["name"].(string)) + } + if modelMap["description"] != nil && modelMap["description"].(string) != "" { + model.Description = core.StringPtr(modelMap["description"].(string)) + } + if modelMap["authorizations"] != nil && len(modelMap["authorizations"].([]interface{})) > 0 { + AuthorizationsModel, err := resourceIbmProjectEnvironmentMapToProjectConfigAuth(modelMap["authorizations"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.Authorizations = AuthorizationsModel + } + if modelMap["inputs"] != nil && len(modelMap["inputs"].([]interface{})) > 0 { + InputsModel, err := resourceIbmProjectEnvironmentMapToInputVariable(modelMap["inputs"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.Inputs = InputsModel + } + if modelMap["compliance_profile"] != nil && len(modelMap["compliance_profile"].([]interface{})) > 0 { + ComplianceProfileModel, err := resourceIbmProjectEnvironmentMapToProjectComplianceProfile(modelMap["compliance_profile"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.ComplianceProfile = ComplianceProfileModel + } + return model, nil +} + +func resourceIbmProjectEnvironmentEnvironmentDefinitionRequiredPropertiesToMap(model *projectv1.EnvironmentDefinitionRequiredProperties) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + modelMap["name"] = model.Name + if model.Description != nil { + modelMap["description"] = model.Description + } + if model.Authorizations != nil { + authorizationsMap, err := resourceIbmProjectEnvironmentProjectConfigAuthToMap(model.Authorizations) + if err != nil { + return modelMap, err + } + modelMap["authorizations"] = []map[string]interface{}{authorizationsMap} + } + if model.Inputs != nil { + inputsMap, err := resourceIbmProjectEnvironmentInputVariableToMap(model.Inputs) + if err != nil { + return modelMap, err + } + if len(inputsMap) > 0 { + modelMap["inputs"] = []map[string]interface{}{inputsMap} + } + } + if model.ComplianceProfile != nil { + complianceProfileMap, err := resourceIbmProjectEnvironmentProjectComplianceProfileToMap(model.ComplianceProfile) + if err != nil { + return modelMap, err + } + if len(complianceProfileMap) > 0 { + modelMap["compliance_profile"] = []map[string]interface{}{complianceProfileMap} + } + } + return modelMap, nil +} + +func resourceIbmProjectEnvironmentProjectConfigAuthToMap(model *projectv1.ProjectConfigAuth) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.TrustedProfileID != nil { + modelMap["trusted_profile_id"] = model.TrustedProfileID + } + if model.Method != nil { + modelMap["method"] = model.Method + } + if model.ApiKey != nil { + modelMap["api_key"] = model.ApiKey + } + return modelMap, nil +} + +func resourceIbmProjectEnvironmentInputVariableToMap(model *projectv1.InputVariable) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + return modelMap, nil +} + +func resourceIbmProjectEnvironmentProjectComplianceProfileToMap(model *projectv1.ProjectComplianceProfile) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.ID != nil { + modelMap["id"] = model.ID + } + if model.InstanceID != nil { + modelMap["instance_id"] = model.InstanceID + } + if model.InstanceLocation != nil { + modelMap["instance_location"] = model.InstanceLocation + } + if model.AttachmentID != nil { + modelMap["attachment_id"] = model.AttachmentID + } + if model.ProfileName != nil { + modelMap["profile_name"] = model.ProfileName + } + return modelMap, nil +} + +func resourceIbmProjectEnvironmentProjectReferenceToMap(model *projectv1.ProjectReference) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + modelMap["id"] = model.ID + definitionMap, err := resourceIbmProjectEnvironmentProjectDefinitionReferenceToMap(model.Definition) + if err != nil { + return modelMap, err + } + modelMap["definition"] = []map[string]interface{}{definitionMap} + modelMap["crn"] = model.Crn + modelMap["href"] = model.Href + return modelMap, nil +} + +func resourceIbmProjectEnvironmentProjectDefinitionReferenceToMap(model *projectv1.ProjectDefinitionReference) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + modelMap["name"] = model.Name + return modelMap, nil +} diff --git a/ibm/service/project/resource_ibm_project_environment_test.go b/ibm/service/project/resource_ibm_project_environment_test.go new file mode 100644 index 0000000000..5d33d6db32 --- /dev/null +++ b/ibm/service/project/resource_ibm_project_environment_test.go @@ -0,0 +1,138 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package project_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + "github.com/IBM/project-go-sdk/projectv1" +) + +func TestAccIbmProjectEnvironmentBasic(t *testing.T) { + var conf projectv1.Environment + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIbmProjectEnvironmentDestroy, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmProjectEnvironmentConfigBasic(), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIbmProjectEnvironmentExists("ibm_project_environment.project_environment_instance", conf), + ), + }, + resource.TestStep{ + ResourceName: "ibm_project_environment.project_environment_instance", + ImportState: true, + ImportStateVerify: true, + ImportStateVerifyIgnore: []string{"project_id"}, + }, + }, + }) +} + +func testAccCheckIbmProjectEnvironmentConfigBasic() string { + return fmt.Sprintf(` + resource "ibm_project" "project_instance" { + location = "us-south" + resource_group = "Default" + definition { + name = "acme-microservice" + description = "acme-microservice description" + destroy_on_delete = true + } + } + + resource "ibm_project_environment" "project_environment_instance" { + project_id = ibm_project.project_instance.id + definition { + name = "environment-stage" + description = "environment for stage project" + authorizations { + method = "api_key" + api_key = "%s" + } + } + lifecycle { + ignore_changes = [ + definition[0].authorizations[0].api_key, + ] + } + } + `, acc.ProjectsConfigApiKey) +} + +func testAccCheckIbmProjectEnvironmentExists(n string, obj projectv1.Environment) resource.TestCheckFunc { + + return func(s *terraform.State) error { + rs, ok := s.RootModule().Resources[n] + if !ok { + return fmt.Errorf("Not found: %s", n) + } + + projectClient, err := acc.TestAccProvider.Meta().(conns.ClientSession).ProjectV1() + if err != nil { + return err + } + + getProjectEnvironmentOptions := &projectv1.GetProjectEnvironmentOptions{} + + parts, err := flex.SepIdParts(rs.Primary.ID, "/") + if err != nil { + return err + } + + getProjectEnvironmentOptions.SetProjectID(parts[0]) + getProjectEnvironmentOptions.SetID(parts[1]) + + environment, _, err := projectClient.GetProjectEnvironment(getProjectEnvironmentOptions) + if err != nil { + return err + } + + obj = *environment + return nil + } +} + +func testAccCheckIbmProjectEnvironmentDestroy(s *terraform.State) error { + projectClient, err := acc.TestAccProvider.Meta().(conns.ClientSession).ProjectV1() + if err != nil { + return err + } + for _, rs := range s.RootModule().Resources { + if rs.Type != "ibm_project_environment" { + continue + } + + getProjectEnvironmentOptions := &projectv1.GetProjectEnvironmentOptions{} + + parts, err := flex.SepIdParts(rs.Primary.ID, "/") + if err != nil { + return err + } + + getProjectEnvironmentOptions.SetProjectID(parts[0]) + getProjectEnvironmentOptions.SetID(parts[1]) + + // Try to find the key + _, response, err := projectClient.GetProjectEnvironment(getProjectEnvironmentOptions) + + if err == nil { + return fmt.Errorf("project_environment still exists: %s", rs.Primary.ID) + } else if response.StatusCode != 404 { + return fmt.Errorf("Error checking for project_environment (%s) has been destroyed: %s", rs.Primary.ID, err) + } + } + + return nil +} diff --git a/ibm/service/project/resource_ibm_project_instance.go b/ibm/service/project/resource_ibm_project_instance.go deleted file mode 100644 index 2d4c5af5a4..0000000000 --- a/ibm/service/project/resource_ibm_project_instance.go +++ /dev/null @@ -1,646 +0,0 @@ -// Copyright IBM Corp. 2023 All Rights Reserved. -// Licensed under the Mozilla Public License v2.0 - -package project - -import ( - "context" - "fmt" - "log" - "time" - - "github.com/hashicorp/terraform-plugin-sdk/v2/diag" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - - "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" - "github.com/IBM-Cloud/terraform-provider-ibm/ibm/validate" - "github.com/IBM/go-sdk-core/v5/core" - "github.com/IBM/project-go-sdk/projectv1" -) - -func ResourceIbmProjectInstance() *schema.Resource { - return &schema.Resource{ - CreateContext: resourceIbmProjectInstanceCreate, - ReadContext: resourceIbmProjectInstanceRead, - UpdateContext: resourceIbmProjectInstanceUpdate, - DeleteContext: resourceIbmProjectInstanceDelete, - Importer: &schema.ResourceImporter{}, - Timeouts: &schema.ResourceTimeout{ - Create: schema.DefaultTimeout(1 * time.Minute), - Delete: schema.DefaultTimeout(1 * time.Minute), - }, - - Schema: map[string]*schema.Schema{ - "name": &schema.Schema{ - Type: schema.TypeString, - Required: true, - ForceNew: true, - Description: "The project name.", - }, - "description": &schema.Schema{ - Type: schema.TypeString, - Optional: true, - Description: "A project's descriptive text.", - }, - "configs": &schema.Schema{ - Type: schema.TypeList, - Optional: true, - Description: "The project configurations.", - Elem: &schema.Resource{ - Schema: map[string]*schema.Schema{ - "id": &schema.Schema{ - Type: schema.TypeString, - Optional: true, - Description: "The ID of the configuration. If this parameter is empty, an ID is automatically created for the configuration.", - }, - "name": &schema.Schema{ - Type: schema.TypeString, - Required: true, - Description: "The configuration name.", - }, - "labels": &schema.Schema{ - Type: schema.TypeList, - Optional: true, - Description: "A collection of configuration labels.", - Elem: &schema.Schema{Type: schema.TypeString}, - }, - "description": &schema.Schema{ - Type: schema.TypeString, - Optional: true, - Description: "The project configuration description.", - }, - "locator_id": &schema.Schema{ - Type: schema.TypeString, - Required: true, - Description: "A dotted value of catalogID.versionID.", - }, - "input": &schema.Schema{ - Type: schema.TypeList, - Optional: true, - Description: "The input values to use to deploy the configuration.", - Elem: &schema.Resource{ - Schema: map[string]*schema.Schema{ - "name": &schema.Schema{ - Type: schema.TypeString, - Required: true, - Description: "The variable name.", - }, - "value": &schema.Schema{ - Type: schema.TypeString, - Optional: true, - Description: "Can be any value - a string, number, boolean, array, or object.", - }, - }, - }, - }, - "setting": &schema.Schema{ - Type: schema.TypeList, - Optional: true, - Description: "Schematics environment variables to use to deploy the configuration.", - Elem: &schema.Resource{ - Schema: map[string]*schema.Schema{ - "name": &schema.Schema{ - Type: schema.TypeString, - Required: true, - Description: "The name of the configuration setting.", - }, - "value": &schema.Schema{ - Type: schema.TypeString, - Required: true, - Description: "The value of the configuration setting.", - }, - }, - }, - }, - }, - }, - }, - "resource_group": &schema.Schema{ - Type: schema.TypeString, - Required: true, - Description: "The resource group where the project's data and tools are created.", - }, - "location": &schema.Schema{ - Type: schema.TypeString, - Required: true, - Description: "The location where the project's data and tools are created.", - }, - "crn": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "An IBM Cloud resource name, which uniquely identifies a resource.", - }, - "metadata": &schema.Schema{ - Type: schema.TypeList, - Computed: true, - Description: "The metadata of the project.", - Elem: &schema.Resource{ - Schema: map[string]*schema.Schema{ - "crn": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "An IBM Cloud resource name, which uniquely identifies a resource.", - }, - "created_at": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339.", - }, - "cumulative_needs_attention_view": &schema.Schema{ - Type: schema.TypeList, - Computed: true, - Description: "The cumulative list of needs attention items for a project.", - Elem: &schema.Resource{ - Schema: map[string]*schema.Schema{ - "event": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "The event name.", - }, - "event_id": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "The unique ID of a project.", - }, - "config_id": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "The unique ID of a project.", - }, - "config_version": &schema.Schema{ - Type: schema.TypeInt, - Computed: true, - Description: "The version number of the configuration.", - }, - }, - }, - }, - "cumulative_needs_attention_view_err": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "True indicates that the fetch of the needs attention items failed.", - }, - "location": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "The IBM Cloud location where a resource is deployed.", - }, - "resource_group": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "The resource group where the project's data and tools are created.", - }, - "state": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "The project status value.", - }, - "event_notifications_crn": &schema.Schema{ - Type: schema.TypeString, - Computed: true, - Description: "The CRN of the event notifications instance if one is connected to this project.", - }, - }, - }, - }, - }, - } -} - -func ResourceIbmProjectInstanceValidator() *validate.ResourceValidator { - validateSchema := make([]validate.ValidateSchema, 0) - validateSchema = append(validateSchema, - validate.ValidateSchema{ - Identifier: "name", - Type: validate.TypeString, - Required: true, - Regexp: `^(?!\s)(?!.*\s$)[^'"<>{}\x00-\x1F]+$`, - MinValueLength: 1, - MaxValueLength: 64, - }, - validate.ValidateSchema{ - Identifier: "description", - Type: validate.TypeString, - Optional: true, - Regexp: `^$|^(?!\s).*\S$`, - MinValueLength: 0, - MaxValueLength: 1024, - }, - validate.ValidateSchema{ - Identifier: "resource_group", - Type: validate.TypeString, - Required: true, - Regexp: `^$|^(?!\s)(?!.*\s$)[^'"<>{}\x00-\x1F]*$`, - MinValueLength: 0, - MaxValueLength: 40, - }, - validate.ValidateSchema{ - Identifier: "location", - Type: validate.TypeString, - Required: true, - Regexp: `^$|^(us-south|us-east|eu-gb|eu-de)$`, - MinValueLength: 0, - MaxValueLength: 12, - }, - ) - - resourceValidator := validate.ResourceValidator{ResourceName: "ibm_project_instance", Schema: validateSchema} - return &resourceValidator -} - -func resourceIbmProjectInstanceCreate(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - projectClient, err := meta.(conns.ClientSession).ProjectV1() - if err != nil { - return diag.FromErr(err) - } - - createProjectOptions := &projectv1.CreateProjectOptions{} - - createProjectOptions.SetName(d.Get("name").(string)) - if _, ok := d.GetOk("description"); ok { - createProjectOptions.SetDescription(d.Get("description").(string)) - } - if _, ok := d.GetOk("configs"); ok { - var configs []projectv1.ProjectConfigPrototype - for _, v := range d.Get("configs").([]interface{}) { - value := v.(map[string]interface{}) - configsItem, err := resourceIbmProjectInstanceMapToProjectConfigPrototype(value) - if err != nil { - return diag.FromErr(err) - } - configs = append(configs, *configsItem) - } - createProjectOptions.SetConfigs(configs) - } - if _, ok := d.GetOk("resource_group"); ok { - createProjectOptions.SetResourceGroup(d.Get("resource_group").(string)) - } - if _, ok := d.GetOk("location"); ok { - createProjectOptions.SetLocation(d.Get("location").(string)) - } - - project, response, err := projectClient.CreateProjectWithContext(context, createProjectOptions) - if err != nil { - log.Printf("[DEBUG] CreateProjectWithContext failed %s\n%s", err, response) - return diag.FromErr(fmt.Errorf("CreateProjectWithContext failed %s\n%s", err, response)) - } - - d.SetId(*project.ID) - - _, err = waitForProjectInstanceCreate(d, meta) - if err != nil { - return diag.FromErr(fmt.Errorf("[ERROR] Error waiting for create project instance (%s) to be succeeded: %s", d.Id(), err)) - } - - return resourceIbmProjectInstanceRead(context, d, meta) -} - -func waitForProjectInstanceCreate(d *schema.ResourceData, meta interface{}) (interface{}, error) { - projectClient, err := meta.(conns.ClientSession).ProjectV1() - if err != nil { - return false, err - } - instanceID := d.Id() - getProjectOptions := &projectv1.GetProjectOptions{} - getProjectOptions.SetID(instanceID) - - stateConf := &resource.StateChangeConf{ - Pending: []string{"not_exists"}, - Target: []string{"exists"}, - Refresh: func() (interface{}, string, error) { - _, resp, err := projectClient.GetProject(getProjectOptions) - if err == nil { - if resp != nil && resp.StatusCode == 200 { - return resp, "exists", nil - } else { - return resp, "not_exists", nil - } - } else { - return nil, "", fmt.Errorf("[ERROR] Get the project instance %s failed with resp code: %d, err: %v", d.Id(), resp.StatusCode, err) - } - }, - Timeout: d.Timeout(schema.TimeoutCreate), - Delay: 2 * time.Second, - MinTimeout: 10 * time.Second, - } - - return stateConf.WaitForState() -} - -func resourceIbmProjectInstanceRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - projectClient, err := meta.(conns.ClientSession).ProjectV1() - if err != nil { - return diag.FromErr(err) - } - - getProjectOptions := &projectv1.GetProjectOptions{} - - getProjectOptions.SetID(d.Id()) - - project, response, err := projectClient.GetProjectWithContext(context, getProjectOptions) - if err != nil { - if response != nil && response.StatusCode == 404 { - d.SetId("") - return nil - } - log.Printf("[DEBUG] GetProjectWithContext failed %s\n%s", err, response) - return diag.FromErr(fmt.Errorf("GetProjectWithContext failed %s\n%s", err, response)) - } - - if !core.IsNil(project.Crn) { - if err = d.Set("crn", project.Crn); err != nil { - return diag.FromErr(fmt.Errorf("Error setting crn: %s", err)) - } - } - if err = d.Set("name", project.Name); err != nil { - return diag.FromErr(fmt.Errorf("Error setting name: %s", err)) - } - if !core.IsNil(project.Description) { - if err = d.Set("description", project.Description); err != nil { - return diag.FromErr(fmt.Errorf("Error setting description: %s", err)) - } - } - if !core.IsNil(project.Configs) { - configs := []map[string]interface{}{} - if err = d.Set("configs", configs); err != nil { - return diag.FromErr(fmt.Errorf("Error setting configs: %s", err)) - } - } - if !core.IsNil(project.Metadata) { - metadataMap, err := resourceIbmProjectInstanceProjectMetadataToMap(project.Metadata) - if err != nil { - return diag.FromErr(err) - } - if err = d.Set("metadata", []map[string]interface{}{metadataMap}); err != nil { - return diag.FromErr(fmt.Errorf("Error setting metadata: %s", err)) - } - } - - return nil -} - -func resourceIbmProjectInstanceUpdate(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - projectClient, err := meta.(conns.ClientSession).ProjectV1() - if err != nil { - return diag.FromErr(err) - } - - updateProjectOptions := &projectv1.UpdateProjectOptions{} - - updateProjectOptions.SetID(d.Id()) - - hasChange := false - - if d.HasChange("name") { - updateProjectOptions.SetName(d.Get("name").(string)) - hasChange = true - } - if d.HasChange("description") { - updateProjectOptions.SetDescription(d.Get("description").(string)) - hasChange = true - } - if d.HasChange("configs") { - var configs []projectv1.ProjectConfigPrototype - for _, v := range d.Get("configs").([]interface{}) { - value := v.(map[string]interface{}) - configsItem, err := resourceIbmProjectInstanceMapToProjectConfigPrototype(value) - if err != nil { - return diag.FromErr(err) - } - configs = append(configs, *configsItem) - } - hasChange = true - } - - if hasChange { - _, response, err := projectClient.UpdateProjectWithContext(context, updateProjectOptions) - if err != nil { - log.Printf("[DEBUG] UpdateProjectWithContext failed %s\n%s", err, response) - return diag.FromErr(fmt.Errorf("UpdateProjectWithContext failed %s\n%s", err, response)) - } - } - - return resourceIbmProjectInstanceRead(context, d, meta) -} - -func resourceIbmProjectInstanceDelete(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - projectClient, err := meta.(conns.ClientSession).ProjectV1() - if err != nil { - return diag.FromErr(err) - } - - deleteProjectOptions := &projectv1.DeleteProjectOptions{} - - deleteProjectOptions.SetID(d.Id()) - - response, err := projectClient.DeleteProjectWithContext(context, deleteProjectOptions) - if err != nil { - log.Printf("[DEBUG] DeleteProjectWithContext failed %s\n%s", err, response) - return diag.FromErr(fmt.Errorf("DeleteProjectWithContext failed %s\n%s", err, response)) - } - - _, err = waitForProjectInstanceDelete(d, meta) - if err != nil { - return diag.FromErr(fmt.Errorf("[ERROR] Error waiting for delete project instance (%s) to be succeeded: %s", d.Id(), err)) - } - - d.SetId("") - - return nil -} - -func waitForProjectInstanceDelete(d *schema.ResourceData, meta interface{}) (interface{}, error) { - projectClient, err := meta.(conns.ClientSession).ProjectV1() - if err != nil { - return false, err - } - instanceID := d.Id() - getProjectOptions := &projectv1.GetProjectOptions{} - getProjectOptions.SetID(instanceID) - - stateConf := &resource.StateChangeConf{ - Pending: []string{"exists"}, - Target: []string{"not_exists"}, - Refresh: func() (interface{}, string, error) { - _, resp, err := projectClient.GetProject(getProjectOptions) - if err != nil { - if resp != nil && resp.StatusCode == 404 { - return resp, "not_exists", nil - } else { - return resp, "exists", nil - } - } else { - return resp, "exists", nil - } - }, - Timeout: d.Timeout(schema.TimeoutDelete), - Delay: 2 * time.Second, - MinTimeout: 10 * time.Second, - } - - return stateConf.WaitForState() -} - -func resourceIbmProjectInstanceMapToProjectConfigPrototype(modelMap map[string]interface{}) (*projectv1.ProjectConfigPrototype, error) { - model := &projectv1.ProjectConfigPrototype{} - if modelMap["id"] != nil && modelMap["id"].(string) != "" { - model.ID = core.StringPtr(modelMap["id"].(string)) - } - model.Name = core.StringPtr(modelMap["name"].(string)) - if modelMap["labels"] != nil { - labels := []string{} - for _, labelsItem := range modelMap["labels"].([]interface{}) { - labels = append(labels, labelsItem.(string)) - } - model.Labels = labels - } - if modelMap["description"] != nil && modelMap["description"].(string) != "" { - model.Description = core.StringPtr(modelMap["description"].(string)) - } - model.LocatorID = core.StringPtr(modelMap["locator_id"].(string)) - if modelMap["input"] != nil { - input := []projectv1.ProjectConfigInputVariable{} - for _, inputItem := range modelMap["input"].([]interface{}) { - inputItemModel, err := resourceIbmProjectInstanceMapToProjectConfigInputVariable(inputItem.(map[string]interface{})) - if err != nil { - return model, err - } - input = append(input, *inputItemModel) - } - model.Input = input - } - if modelMap["setting"] != nil { - setting := []projectv1.ProjectConfigSettingCollection{} - for _, settingItem := range modelMap["setting"].([]interface{}) { - settingItemModel, err := resourceIbmProjectInstanceMapToProjectConfigSettingCollection(settingItem.(map[string]interface{})) - if err != nil { - return model, err - } - setting = append(setting, *settingItemModel) - } - model.Setting = setting - } - return model, nil -} - -func resourceIbmProjectInstanceMapToProjectConfigInputVariable(modelMap map[string]interface{}) (*projectv1.ProjectConfigInputVariable, error) { - model := &projectv1.ProjectConfigInputVariable{} - model.Name = core.StringPtr(modelMap["name"].(string)) - if modelMap["value"] != nil { - model.Value = modelMap["value"].(string) - } - return model, nil -} - -func resourceIbmProjectInstanceMapToProjectConfigSettingCollection(modelMap map[string]interface{}) (*projectv1.ProjectConfigSettingCollection, error) { - model := &projectv1.ProjectConfigSettingCollection{} - model.Name = core.StringPtr(modelMap["name"].(string)) - model.Value = core.StringPtr(modelMap["value"].(string)) - return model, nil -} - -func resourceIbmProjectInstanceProjectConfigPrototypeToMap(model *projectv1.ProjectConfigPrototype) (map[string]interface{}, error) { - modelMap := make(map[string]interface{}) - if model.ID != nil { - modelMap["id"] = model.ID - } - modelMap["name"] = model.Name - if model.Labels != nil { - modelMap["labels"] = model.Labels - } - if model.Description != nil { - modelMap["description"] = model.Description - } - modelMap["locator_id"] = model.LocatorID - if model.Input != nil { - input := []map[string]interface{}{} - for _, inputItem := range model.Input { - inputItemMap, err := resourceIbmProjectInstanceProjectConfigInputVariableToMap(&inputItem) - if err != nil { - return modelMap, err - } - input = append(input, inputItemMap) - } - modelMap["input"] = input - } - if model.Setting != nil { - setting := []map[string]interface{}{} - for _, settingItem := range model.Setting { - settingItemMap, err := resourceIbmProjectInstanceProjectConfigSettingCollectionToMap(&settingItem) - if err != nil { - return modelMap, err - } - setting = append(setting, settingItemMap) - } - modelMap["setting"] = setting - } - return modelMap, nil -} - -func resourceIbmProjectInstanceProjectConfigInputVariableToMap(model *projectv1.ProjectConfigInputVariable) (map[string]interface{}, error) { - modelMap := make(map[string]interface{}) - modelMap["name"] = model.Name - if model.Value != nil { - modelMap["value"] = model.Value - } - return modelMap, nil -} - -func resourceIbmProjectInstanceProjectConfigSettingCollectionToMap(model *projectv1.ProjectConfigSettingCollection) (map[string]interface{}, error) { - modelMap := make(map[string]interface{}) - modelMap["name"] = model.Name - modelMap["value"] = model.Value - return modelMap, nil -} - -func resourceIbmProjectInstanceProjectMetadataToMap(model *projectv1.ProjectMetadata) (map[string]interface{}, error) { - modelMap := make(map[string]interface{}) - if model.Crn != nil { - modelMap["crn"] = model.Crn - } - if model.CreatedAt != nil { - modelMap["created_at"] = model.CreatedAt.String() - } - if model.CumulativeNeedsAttentionView != nil { - cumulativeNeedsAttentionView := []map[string]interface{}{} - for _, cumulativeNeedsAttentionViewItem := range model.CumulativeNeedsAttentionView { - cumulativeNeedsAttentionViewItemMap, err := resourceIbmProjectInstanceCumulativeNeedsAttentionToMap(&cumulativeNeedsAttentionViewItem) - if err != nil { - return modelMap, err - } - cumulativeNeedsAttentionView = append(cumulativeNeedsAttentionView, cumulativeNeedsAttentionViewItemMap) - } - modelMap["cumulative_needs_attention_view"] = cumulativeNeedsAttentionView - } - if model.CumulativeNeedsAttentionViewErr != nil { - modelMap["cumulative_needs_attention_view_err"] = model.CumulativeNeedsAttentionViewErr - } - if model.Location != nil { - modelMap["location"] = model.Location - } - if model.ResourceGroup != nil { - modelMap["resource_group"] = model.ResourceGroup - } - if model.State != nil { - modelMap["state"] = model.State - } - if model.EventNotificationsCrn != nil { - modelMap["event_notifications_crn"] = model.EventNotificationsCrn - } - return modelMap, nil -} - -func resourceIbmProjectInstanceCumulativeNeedsAttentionToMap(model *projectv1.CumulativeNeedsAttention) (map[string]interface{}, error) { - modelMap := make(map[string]interface{}) - if model.Event != nil { - modelMap["event"] = model.Event - } - if model.EventID != nil { - modelMap["event_id"] = model.EventID - } - if model.ConfigID != nil { - modelMap["config_id"] = model.ConfigID - } - return modelMap, nil -} diff --git a/ibm/service/project/resource_ibm_project_instance_test.go b/ibm/service/project/resource_ibm_project_instance_test.go deleted file mode 100644 index 088784f11b..0000000000 --- a/ibm/service/project/resource_ibm_project_instance_test.go +++ /dev/null @@ -1,187 +0,0 @@ -// Copyright IBM Corp. 2023 All Rights Reserved. -// Licensed under the Mozilla Public License v2.0 - -package project_test - -import ( - "fmt" - "testing" - - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" - - acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" - "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" - "github.com/IBM/project-go-sdk/projectv1" -) - -func TestAccIbmProjectInstanceBasic(t *testing.T) { - var conf projectv1.Project - name := fmt.Sprintf("tf_name_%d", acctest.RandIntRange(10, 100)) - nameUpdate := fmt.Sprintf("tf_name_update_%d", acctest.RandIntRange(10, 100)) - resourceGroup := fmt.Sprintf("Default") - location := fmt.Sprintf("us-south") - - resource.Test(t, resource.TestCase{ - PreCheck: func() { acc.TestAccPreCheck(t) }, - Providers: acc.TestAccProviders, - CheckDestroy: testAccCheckIbmProjectInstanceDestroy, - Steps: []resource.TestStep{ - resource.TestStep{ - Config: testAccCheckIbmProjectInstanceConfigBasic(resourceGroup, location, name), - Check: resource.ComposeAggregateTestCheckFunc( - testAccCheckIbmProjectInstanceExists("ibm_project_instance.project_instance", conf), - resource.TestCheckResourceAttr("ibm_project_instance.project_instance", "resource_group", resourceGroup), - resource.TestCheckResourceAttr("ibm_project_instance.project_instance", "location", location), - resource.TestCheckResourceAttr("ibm_project_instance.project_instance", "name", name), - ), - }, - resource.TestStep{ - Config: testAccCheckIbmProjectInstanceConfigBasic(resourceGroup, location, nameUpdate), - Check: resource.ComposeAggregateTestCheckFunc( - resource.TestCheckResourceAttr("ibm_project_instance.project_instance", "resource_group", resourceGroup), - resource.TestCheckResourceAttr("ibm_project_instance.project_instance", "location", location), - resource.TestCheckResourceAttr("ibm_project_instance.project_instance", "name", nameUpdate), - ), - }, - }, - }) -} - -func TestAccIbmProjectInstanceAllArgs(t *testing.T) { - var conf projectv1.Project - name := fmt.Sprintf("tf_name_%d", acctest.RandIntRange(10, 100)) - nameUpdate := fmt.Sprintf("tf_name_%d", acctest.RandIntRange(10, 100)) - description := fmt.Sprintf("tf_description_%d", acctest.RandIntRange(10, 100)) - descriptionUpdate := fmt.Sprintf("tf_description_%d", acctest.RandIntRange(10, 100)) - resourceGroup := fmt.Sprintf("Default") - location := fmt.Sprintf("us-south") - - resource.Test(t, resource.TestCase{ - PreCheck: func() { acc.TestAccPreCheck(t) }, - Providers: acc.TestAccProviders, - CheckDestroy: testAccCheckIbmProjectInstanceDestroy, - Steps: []resource.TestStep{ - resource.TestStep{ - Config: testAccCheckIbmProjectInstanceConfig(name, description, resourceGroup, location), - Check: resource.ComposeAggregateTestCheckFunc( - testAccCheckIbmProjectInstanceExists("ibm_project_instance.project_instance", conf), - resource.TestCheckResourceAttr("ibm_project_instance.project_instance", "resource_group", resourceGroup), - resource.TestCheckResourceAttr("ibm_project_instance.project_instance", "location", location), - resource.TestCheckResourceAttr("ibm_project_instance.project_instance", "name", name), - resource.TestCheckResourceAttr("ibm_project_instance.project_instance", "description", description), - ), - }, - resource.TestStep{ - Config: testAccCheckIbmProjectInstanceConfig(nameUpdate, descriptionUpdate, resourceGroup, location), - Check: resource.ComposeAggregateTestCheckFunc( - resource.TestCheckResourceAttr("ibm_project_instance.project_instance", "resource_group", resourceGroup), - resource.TestCheckResourceAttr("ibm_project_instance.project_instance", "location", location), - resource.TestCheckResourceAttr("ibm_project_instance.project_instance", "name", nameUpdate), - resource.TestCheckResourceAttr("ibm_project_instance.project_instance", "description", descriptionUpdate), - ), - }, - resource.TestStep{ - ResourceName: "ibm_project_instance.project_instance", - ImportState: true, - ImportStateVerify: true, - ImportStateVerifyIgnore: []string{ - "location", - "resource_group", - "configs", - }, - }, - }, - }) -} - -func testAccCheckIbmProjectInstanceConfigBasic(resourceGroup string, location string, name string) string { - return fmt.Sprintf(` - - resource "ibm_project_instance" "project_instance" { - resource_group = "%s" - location = "%s" - name = "%s" - } - `, resourceGroup, location, name) -} - -func testAccCheckIbmProjectInstanceConfig(name string, description string, resourceGroup string, location string) string { - return fmt.Sprintf(` - - resource "ibm_project_instance" "project_instance" { - name = "%s" - description = "%s" - resource_group = "%s" - location = "%s" - configs { - name = "name" - labels = [ "labels" ] - description = "description" - locator_id = "1082e7d2-5e2f-0a11-a3bc-f88a8e1931fc.cd596f95-95a2-4f21-9b84-477f21fd1e95-global" - input { - name = "name" - } - setting { - name = "name" - value = "value" - } - } - } - `, name, description, resourceGroup, location) -} - -func testAccCheckIbmProjectInstanceExists(n string, obj projectv1.Project) resource.TestCheckFunc { - - return func(s *terraform.State) error { - rs, ok := s.RootModule().Resources[n] - if !ok { - return fmt.Errorf("Not found: %s", n) - } - - projectClient, err := acc.TestAccProvider.Meta().(conns.ClientSession).ProjectV1() - if err != nil { - return err - } - - getProjectOptions := &projectv1.GetProjectOptions{} - - getProjectOptions.SetID(rs.Primary.ID) - - project, _, err := projectClient.GetProject(getProjectOptions) - if err != nil { - return err - } - - obj = *project - return nil - } -} - -func testAccCheckIbmProjectInstanceDestroy(s *terraform.State) error { - projectClient, err := acc.TestAccProvider.Meta().(conns.ClientSession).ProjectV1() - if err != nil { - return err - } - for _, rs := range s.RootModule().Resources { - if rs.Type != "ibm_project_instance" { - continue - } - - getProjectOptions := &projectv1.GetProjectOptions{} - - getProjectOptions.SetID(rs.Primary.ID) - - // Try to find the key - _, response, err := projectClient.GetProject(getProjectOptions) - - if err == nil { - return fmt.Errorf("Project definition still exists: %s", rs.Primary.ID) - } else if response.StatusCode != 404 { - return fmt.Errorf("Error checking for Project definition (%s) has been destroyed: %s", rs.Primary.ID, err) - } - } - - return nil -} diff --git a/ibm/service/project/resource_ibm_project_test.go b/ibm/service/project/resource_ibm_project_test.go new file mode 100644 index 0000000000..20174656ec --- /dev/null +++ b/ibm/service/project/resource_ibm_project_test.go @@ -0,0 +1,111 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package project_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM/project-go-sdk/projectv1" +) + +func TestAccIbmProjectBasic(t *testing.T) { + var conf projectv1.Project + location := fmt.Sprintf("us-south") + resourceGroup := fmt.Sprintf("Default") + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIbmProjectDestroy, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmProjectConfigBasic(location, resourceGroup), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIbmProjectExists("ibm_project.project_instance", conf), + resource.TestCheckResourceAttr("ibm_project.project_instance", "location", location), + resource.TestCheckResourceAttr("ibm_project.project_instance", "resource_group", resourceGroup), + ), + }, + resource.TestStep{ + ResourceName: "ibm_project.project_instance", + ImportState: true, + ImportStateVerify: true, + }, + }, + }) +} + +func testAccCheckIbmProjectConfigBasic(location string, resourceGroup string) string { + return fmt.Sprintf(` + resource "ibm_project" "project_instance" { + location = "%s" + resource_group = "%s" + definition { + name = "acme-microservice" + description = "acme-microservice description" + destroy_on_delete = true + } + } + `, location, resourceGroup) +} + +func testAccCheckIbmProjectExists(n string, obj projectv1.Project) resource.TestCheckFunc { + + return func(s *terraform.State) error { + rs, ok := s.RootModule().Resources[n] + if !ok { + return fmt.Errorf("Not found: %s", n) + } + + projectClient, err := acc.TestAccProvider.Meta().(conns.ClientSession).ProjectV1() + if err != nil { + return err + } + + getProjectOptions := &projectv1.GetProjectOptions{} + + getProjectOptions.SetID(rs.Primary.ID) + + project, _, err := projectClient.GetProject(getProjectOptions) + if err != nil { + return err + } + + obj = *project + return nil + } +} + +func testAccCheckIbmProjectDestroy(s *terraform.State) error { + projectClient, err := acc.TestAccProvider.Meta().(conns.ClientSession).ProjectV1() + if err != nil { + return err + } + for _, rs := range s.RootModule().Resources { + if rs.Type != "ibm_project" { + continue + } + + getProjectOptions := &projectv1.GetProjectOptions{} + + getProjectOptions.SetID(rs.Primary.ID) + + // Try to find the key + _, response, err := projectClient.GetProject(getProjectOptions) + + if err == nil { + return fmt.Errorf("project still exists: %s", rs.Primary.ID) + } else if response.StatusCode != 404 { + return fmt.Errorf("Error checking for project (%s) has been destroyed: %s", rs.Primary.ID, err) + } + } + + return nil +} diff --git a/ibm/service/satellite/data_source_ibm_satellite_cluster_worker_pool.go b/ibm/service/satellite/data_source_ibm_satellite_cluster_worker_pool.go index ccffa17cea..e56f585ea9 100644 --- a/ibm/service/satellite/data_source_ibm_satellite_cluster_worker_pool.go +++ b/ibm/service/satellite/data_source_ibm_satellite_cluster_worker_pool.go @@ -97,6 +97,11 @@ func DataSourceIBMSatelliteClusterWorkerPool() *schema.Resource { Computed: true, Description: "Enable auto scalling for worker pool", }, + "openshift_license_source": { + Type: schema.TypeString, + Computed: true, + Description: "License source for Openshift", + }, }, } } @@ -154,6 +159,7 @@ func dataSourceIBMSatelliteClusterWorkerPoolRead(d *schema.ResourceData, meta in d.Set("auto_scale_enabled", *workerPool.AutoscaleEnabled) d.Set("state", *workerPool.Lifecycle.ActualState) d.Set("isolation", *workerPool.Isolation) + d.Set("openshift_license_source", *workerPool.OpenshiftLicense) d.SetId(*workerPool.ID) return nil diff --git a/ibm/service/satellite/resource_ibm_satellite_cluster.go b/ibm/service/satellite/resource_ibm_satellite_cluster.go index 27ad6d268b..98177e1b0c 100644 --- a/ibm/service/satellite/resource_ibm_satellite_cluster.go +++ b/ibm/service/satellite/resource_ibm_satellite_cluster.go @@ -124,6 +124,12 @@ func ResourceIBMSatelliteCluster() *schema.Resource { }, Description: "The OpenShift Container Platform version", }, + "entitlement": { + Type: schema.TypeString, + Optional: true, + DiffSuppressFunc: flex.ApplyOnce, + Description: "Entitlement option reduces additional OCP Licence cost in Openshift Clusters", + }, "operating_system": { Type: schema.TypeString, Optional: true, @@ -390,6 +396,11 @@ func resourceIBMSatelliteClusterCreate(d *schema.ResourceData, meta interface{}) createClusterOptions.Labels = hostLabels } + if v, ok := d.GetOk("entitlement"); ok { + entitlement := v.(string) + createClusterOptions.DefaultWorkerPoolEntitlement = &entitlement + } + if v, ok := d.GetOk("crn_token"); ok { crnToken := v.(string) createRemoteClusterOptions := &kubernetesserviceapiv1.CreateSatelliteClusterRemoteOptions{} diff --git a/ibm/service/satellite/resource_ibm_satellite_cluster_test.go b/ibm/service/satellite/resource_ibm_satellite_cluster_test.go index 548ae6b18d..76752e640c 100644 --- a/ibm/service/satellite/resource_ibm_satellite_cluster_test.go +++ b/ibm/service/satellite/resource_ibm_satellite_cluster_test.go @@ -81,6 +81,36 @@ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCKVmnMOlHKcZK8tpt3MP1lqOLAcqcJzhsvJcjscgVE }) } +func TestAccSatelliteCluster_Entitlement(t *testing.T) { + var instance string + clusterName := fmt.Sprintf("tf-satellitecluster-%d", acctest.RandIntRange(10, 100)) + locationName := fmt.Sprintf("tf-satellitelocation-%d", acctest.RandIntRange(10, 100)) + managed_from := "dal10" + operatingSystem := "REDHAT_8_64" + zones := []string{"us-south-1", "us-south-2", "us-south-3"} + resource_group := "default" + region := "us-south" + resource_prefix := "tf-satellite" + host_provider := "ibm" + publicKey := acc.SatelliteSSHPubKey + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheckSatelliteSSH(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckSatelliteClusterDestroy, + Steps: []resource.TestStep{ + + { + Config: testAccCheckSatelliteEntitlementClusterCreate(clusterName, locationName, managed_from, operatingSystem, resource_group, resource_prefix, region, publicKey, host_provider, zones), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckSatelliteClusterExists("ibm_satellite_cluster.create_cluster", instance), + resource.TestCheckResourceAttr("data.ibm_satellite_cluster_worker_pool.read_default_wp", "openshift_license_source", "cloud_pak"), + ), + }, + }, + }) +} + func TestAccSatelliteCluster_Import(t *testing.T) { var instance string clusterName := fmt.Sprintf("tf-satellitecluster-%d", acctest.RandIntRange(10, 100)) @@ -382,3 +412,112 @@ func testAccCheckSatelliteSingleNodeClusterCreate(clusterName, locationName, man `, locationName, managed_from, resource_group, resource_prefix, resource_prefix, region, resource_prefix, publicKey, resource_prefix, region, resource_prefix, host_provider, clusterName) } + +func testAccCheckSatelliteEntitlementClusterCreate(clusterName, locationName, managed_from, operatingSystem, resource_group, resource_prefix, region, publicKey, host_provider string, zones []string) string { + return fmt.Sprintf(` + + variable "location_zones" { + description = "Allocate your hosts across these three zones" + type = list(string) + default = ["us-south-1", "us-south-2", "us-south-3"] + } + + data "ibm_is_image" "rhel8" { + name = "ibm-redhat-8-8-minimal-amd64-2" + } + + resource "ibm_satellite_location" "location" { + location = "%s" + managed_from = "%s" + zones = var.location_zones + coreos_enabled = true + } + + data "ibm_satellite_attach_host_script" "script" { + location = ibm_satellite_location.location.id + labels = ["env:prod"] + host_provider = "ibm" + } + + data "ibm_resource_group" "resource_group" { + name = "%s" + } + + resource "ibm_is_vpc" "satellite_vpc" { + name = "%s-vpc-1" + } + + resource "ibm_is_subnet" "satellite_subnet" { + count = 3 + + name = "%s-subnet-${count.index}" + vpc = ibm_is_vpc.satellite_vpc.id + total_ipv4_address_count = 256 + zone = "%s-${count.index + 1}" + } + + resource "ibm_is_ssh_key" "satellite_ssh" { + name = "%s-ibm-ssh" + public_key = "%s" + } + + resource "ibm_is_instance" "satellite_instance" { + count = 3 + + name = "%s-instance-${count.index}" + vpc = ibm_is_vpc.satellite_vpc.id + zone = "%s-${count.index + 1}" + image = data.ibm_is_image.rhel8.id + profile = "mx2-8x64" + keys = [ibm_is_ssh_key.satellite_ssh.id] + resource_group = data.ibm_resource_group.resource_group.id + user_data = data.ibm_satellite_attach_host_script.script.host_script + + primary_network_interface { + subnet = ibm_is_subnet.satellite_subnet[count.index].id + } + } + + resource "ibm_is_floating_ip" "satellite_ip" { + count = 3 + + name = "%s-fip-${count.index}" + target = ibm_is_instance.satellite_instance[count.index].primary_network_interface[0].id + } + + resource "ibm_satellite_host" "assign_host" { + count = 3 + + location = ibm_satellite_location.location.id + host_id = element(ibm_is_instance.satellite_instance[*].name, count.index) + labels = ["env:prod"] + zone = element(var.location_zones, count.index) + host_provider = "%s" + } + + resource "ibm_satellite_cluster" "create_cluster" { + name = "%s" + location = ibm_satellite_host.assign_host.0.location + enable_config_admin = true + kube_version = "4.13_openshift" + operating_system = "%s" + entitlement = "cloud_pak" + wait_for_worker_update = true + dynamic "zones" { + for_each = var.location_zones + content { + id = zones.value + } + } + default_worker_pool_labels = { + "test" = "test-pool1" + "test1" = "test-pool2" + } + } + + data "ibm_satellite_cluster_worker_pool" "read_default_wp" { + name = "default" + cluster = ibm_satellite_cluster.create_cluster.id + } +`, locationName, managed_from, resource_group, resource_prefix, resource_prefix, region, resource_prefix, publicKey, resource_prefix, region, resource_prefix, host_provider, clusterName, operatingSystem) +} diff --git a/ibm/service/satellite/resource_ibm_satellite_cluster_worker_pool.go b/ibm/service/satellite/resource_ibm_satellite_cluster_worker_pool.go index e94f270b59..e02f41ed12 100644 --- a/ibm/service/satellite/resource_ibm_satellite_cluster_worker_pool.go +++ b/ibm/service/satellite/resource_ibm_satellite_cluster_worker_pool.go @@ -109,8 +109,10 @@ func ResourceIBMSatelliteClusterWorkerPool() *schema.Resource { Computed: true, }, "entitlement": { - Type: schema.TypeString, - Optional: true, + Type: schema.TypeString, + Optional: true, + DiffSuppressFunc: flex.ApplyOnce, + Description: "Entitlement option reduces additional OCP Licence cost in Openshift Clusters", }, "operating_system": { Type: schema.TypeString, @@ -261,6 +263,11 @@ func resourceIBMSatelliteClusterWorkerPoolCreate(d *schema.ResourceData, meta in createWorkerPoolOptions.Isolation = &isolation } + if v, ok := d.GetOk("entitlement"); ok { + entitlement := v.(string) + createWorkerPoolOptions.Entitlement = &entitlement + } + instance, response, err := satClient.CreateSatelliteWorkerPool(createWorkerPoolOptions) if err != nil { return fmt.Errorf("[ERROR] Error Creating Satellite cluster worker pool: %s\n%s", err, response) diff --git a/ibm/service/satellite/resource_ibm_satellite_cluster_worker_pool_test.go b/ibm/service/satellite/resource_ibm_satellite_cluster_worker_pool_test.go index 9b7d163091..6b79c1c144 100644 --- a/ibm/service/satellite/resource_ibm_satellite_cluster_worker_pool_test.go +++ b/ibm/service/satellite/resource_ibm_satellite_cluster_worker_pool_test.go @@ -44,6 +44,35 @@ func TestAccSatelliteClusterWorkerPool_Basic(t *testing.T) { }) } +func TestAccSatelliteClusterWorkerPool_Entitlement(t *testing.T) { + var instance string + clusterName := fmt.Sprintf("tf-satellitecluster-%d", acctest.RandIntRange(10, 100)) + locationName := fmt.Sprintf("tf-satellitelocation-%d", acctest.RandIntRange(10, 100)) + operatingSystem := "REDHAT_8_64" + workerPoolName := fmt.Sprintf("tf-wp-%d", acctest.RandIntRange(10, 100)) + resource_prefix := "tf-satellite" + publicKey := acc.SatelliteSSHPubKey + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheckSatelliteSSH(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckSatelliteClusterWorkerPoolDestroy, + Steps: []resource.TestStep{ + + { + Config: testAccCheckSatelliteClusterWorkerPoolCreateEntitlement(clusterName, locationName, operatingSystem, workerPoolName, resource_prefix, publicKey), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckSatelliteClusterWorkerPoolExists("ibm_satellite_cluster_worker_pool.create_wp", instance), + resource.TestCheckResourceAttr("ibm_satellite_cluster.create_cluster", "name", clusterName), + resource.TestCheckResourceAttr("ibm_satellite_cluster_worker_pool.create_wp", "name", workerPoolName), + resource.TestCheckResourceAttr("ibm_satellite_cluster_worker_pool.create_wp", "operating_system", operatingSystem), + resource.TestCheckResourceAttr("data.ibm_satellite_cluster_worker_pool.read_created_wp", "openshift_license_source", "cloud_pak"), + ), + }, + }, + }) +} + func TestAccSatelliteClusterWorkerPool_Import(t *testing.T) { var instance string clusterName := fmt.Sprintf("tf-satellitecluster-%d", acctest.RandIntRange(10, 100)) @@ -262,3 +291,130 @@ func testAccCheckSatelliteClusterWorkerPoolCreate(clusterName, locationName, ope `, locationName, resource_prefix, resource_prefix, resource_prefix, resource_prefix, resource_prefix, clusterName, workerPoolName, operatingSystem) } + +func testAccCheckSatelliteClusterWorkerPoolCreateEntitlement(clusterName, locationName, operatingSystem, workerPoolName, resource_prefix, publicKey string) string { + return fmt.Sprintf(` + + variable "location_zones" { + description = "Allocate your hosts across these three zones" + type = list(string) + default = ["us-south-1", "us-south-2", "us-south-3"] + } + + resource "ibm_satellite_location" "location" { + location = "%s" + managed_from = "dal10" + zones = var.location_zones + coreos_enabled = true + } + + data "ibm_is_image" "rhel8" { + name = "ibm-redhat-8-8-minimal-amd64-2" + } + + data "ibm_satellite_attach_host_script" "script" { + location = ibm_satellite_location.location.id + labels = ["env:prod"] + host_provider = "ibm" + } + + data "ibm_resource_group" "resource_group" { + is_default = true + } + + resource "ibm_is_vpc" "satellite_vpc" { + name = "%s-vpc-1" + } + + resource "ibm_is_subnet" "satellite_subnet" { + count = 3 + + name = "%s-subnet-${count.index}" + vpc = ibm_is_vpc.satellite_vpc.id + total_ipv4_address_count = 256 + zone = "us-south-${count.index + 1}" + } + + resource "ibm_is_ssh_key" "satellite_ssh" { + name = "%s-ibm-ssh" + public_key = "%s" + } + + resource "ibm_is_instance" "satellite_instance" { + count = 3 + + name = "%s-instance-${count.index}" + vpc = ibm_is_vpc.satellite_vpc.id + zone = "us-south-${count.index + 1}" + image = data.ibm_is_image.rhel8.id + profile = "mx2-8x64" + keys = [ibm_is_ssh_key.satellite_ssh.id] + resource_group = data.ibm_resource_group.resource_group.id + user_data = data.ibm_satellite_attach_host_script.script.host_script + + primary_network_interface { + subnet = ibm_is_subnet.satellite_subnet[count.index].id + } + } + + resource "ibm_is_floating_ip" "satellite_ip" { + count = 3 + + name = "%s-fip-${count.index}" + target = ibm_is_instance.satellite_instance[count.index].primary_network_interface[0].id + } + + resource "ibm_satellite_host" "assign_host" { + count = 3 + + location = ibm_satellite_location.location.id + host_id = element(ibm_is_instance.satellite_instance[*].name, count.index) + labels = ["env:prod"] + zone = element(var.location_zones, count.index) + host_provider = "ibm" + } + + resource "ibm_satellite_cluster" "create_cluster" { + name = "%s" + location = ibm_satellite_location.location.id + enable_config_admin = true + kube_version = "4.13_openshift" + wait_for_worker_update = true + dynamic "zones" { + for_each = var.location_zones + content { + id = zones.value + } + } + default_worker_pool_labels = { + "test" = "test-pool1" + "test1" = "test-pool2" + } + } + + resource "ibm_satellite_cluster_worker_pool" "create_wp" { + name = "%s" + cluster = ibm_satellite_cluster.create_cluster.id + worker_count = 1 + host_labels = ["env:dev"] + operating_system = "%s" + entitlement = "cloud_pak" + dynamic "zones" { + for_each = var.location_zones + content { + id = zones.value + } + } + worker_pool_labels = { + "test" = "test-pool1" + "test1" = "test-pool2" + } + } + + data "ibm_satellite_cluster_worker_pool" "read_created_wp" { + name = ibm_satellite_cluster_worker_pool.create_wp.name + cluster = ibm_satellite_cluster.create_cluster.id + } + +`, locationName, resource_prefix, resource_prefix, resource_prefix, publicKey, resource_prefix, resource_prefix, clusterName, workerPoolName, operatingSystem) +} diff --git a/ibm/service/scc/data_source_ibm_scc_provider_type_collection.go b/ibm/service/scc/data_source_ibm_scc_provider_type_collection.go index 6cd8ad1e0f..35c21de13d 100644 --- a/ibm/service/scc/data_source_ibm_scc_provider_type_collection.go +++ b/ibm/service/scc/data_source_ibm_scc_provider_type_collection.go @@ -19,7 +19,7 @@ import ( ) func DataSourceIbmSccProviderTypeCollection() *schema.Resource { - return &schema.Resource{ + return AddSchemaData(&schema.Resource{ ReadContext: dataSourceIbmSccProviderTypeCollectionRead, Schema: map[string]*schema.Schema{ @@ -115,7 +115,7 @@ func DataSourceIbmSccProviderTypeCollection() *schema.Resource { }, }, }, - } + }) } func dataSourceIbmSccProviderTypeCollectionRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { @@ -125,6 +125,7 @@ func dataSourceIbmSccProviderTypeCollectionRead(context context.Context, d *sche } listProviderTypesOptions := &securityandcompliancecenterapiv3.ListProviderTypesOptions{} + listProviderTypesOptions.SetInstanceID(d.Get("instance_id").(string)) providerTypesCollection, response, err := securityAndComplianceCenterApIsClient.ListProviderTypesWithContext(context, listProviderTypesOptions) if err != nil { diff --git a/ibm/service/scc/data_source_ibm_scc_provider_type_collection_test.go b/ibm/service/scc/data_source_ibm_scc_provider_type_collection_test.go index b6a6969e9b..8838d2a0d0 100644 --- a/ibm/service/scc/data_source_ibm_scc_provider_type_collection_test.go +++ b/ibm/service/scc/data_source_ibm_scc_provider_type_collection_test.go @@ -18,7 +18,7 @@ func TestAccIbmSccProviderTypeCollectionDataSourceBasic(t *testing.T) { Providers: acc.TestAccProviders, Steps: []resource.TestStep{ resource.TestStep{ - Config: testAccCheckIbmSccProviderTypeCollectionDataSourceConfigBasic(), + Config: testAccCheckIbmSccProviderTypeCollectionDataSourceConfigBasic(acc.SccInstanceID), Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttrSet("data.ibm_scc_provider_type_collection.scc_provider_type_collection_instance", "id"), ), @@ -27,9 +27,10 @@ func TestAccIbmSccProviderTypeCollectionDataSourceBasic(t *testing.T) { }) } -func testAccCheckIbmSccProviderTypeCollectionDataSourceConfigBasic() string { +func testAccCheckIbmSccProviderTypeCollectionDataSourceConfigBasic(instanceID string) string { return fmt.Sprintf(` data "ibm_scc_provider_type_collection" "scc_provider_type_collection_instance" { + instance_id = "%s" } - `) + `, instanceID) } diff --git a/ibm/service/scc/resource_ibm_scc_profile.go b/ibm/service/scc/resource_ibm_scc_profile.go index 0ba57cdf76..c48be7df14 100644 --- a/ibm/service/scc/resource_ibm_scc_profile.go +++ b/ibm/service/scc/resource_ibm_scc_profile.go @@ -58,12 +58,12 @@ func ResourceIbmSccProfile() *schema.Resource { Schema: map[string]*schema.Schema{ "control_library_id": { Type: schema.TypeString, - Optional: true, + Required: true, Description: "The ID of the control library that contains the profile.", }, "control_id": { Type: schema.TypeString, - Optional: true, + Required: true, Description: "The unique ID of the control inside the control library.", }, "control_library_version": { @@ -267,6 +267,7 @@ func ResourceIbmSccProfile() *schema.Resource { "profile_version": { Type: schema.TypeString, Computed: true, + Optional: true, Description: "The version status of the profile.", }, "version_group_label": { @@ -274,11 +275,6 @@ func ResourceIbmSccProfile() *schema.Resource { Computed: true, Description: "The version group label of the profile.", }, - "instance_id": { - Type: schema.TypeString, - Computed: true, - Description: "The instance ID.", - }, "latest": { Type: schema.TypeBool, Computed: true, @@ -372,6 +368,8 @@ func resourceIbmSccProfileCreate(context context.Context, d *schema.ResourceData bodyModelMap["profile_type"] = "custom" if _, ok := d.GetOk("controls"); ok { bodyModelMap["controls"] = d.Get("controls") + } else { + bodyModelMap["controls"] = []interface{}{} } if _, ok := d.GetOk("default_parameters"); ok { bodyModelMap["default_parameters"] = d.Get("default_parameters") @@ -553,7 +551,9 @@ func resourceIbmSccProfileUpdate(context context.Context, d *schema.ResourceData if d.HasChange("profile_description") { hasChange = true } - + if d.HasChange("profile_version") { + hasChange = true + } if hasChange { if _, ok := d.GetOk("controls"); ok { bodyModelMap["controls"] = d.Get("controls") @@ -567,14 +567,16 @@ func resourceIbmSccProfileUpdate(context context.Context, d *schema.ResourceData if _, ok := d.GetOk("profile_description"); ok { bodyModelMap["profile_description"] = d.Get("profile_description") } - + if _, ok := d.GetOk("profile_version"); ok { + bodyModelMap["profile_version"] = d.Get("profile_version") + } convertedModel, err := resourceIbmSccProfileMapToReplaceProfileOptions(bodyModelMap) if err != nil { return diag.FromErr(err) } replaceProfileOptions = convertedModel - replaceProfileOptions.SetProfileID(d.Id()) + replaceProfileOptions.SetProfileID(d.Get("profile_id").(string)) _, response, err := securityandcompliancecenterapiClient.ReplaceProfileWithContext(context, replaceProfileOptions) if err != nil { log.Printf("[DEBUG] ReplaceProfileWithContext failed %s\n%s", err, response) @@ -670,6 +672,8 @@ func resourceIbmSccProfileMapToProfilePrototype(modelMap map[string]interface{}) } } model.DefaultParameters = defaultParameters + // TODO: Validate all the Controls have default Parameters for any parameters found + // Use the instance_id associated return model, nil } @@ -678,6 +682,7 @@ func resourceIbmSccProfileMapToReplaceProfileOptions(modelMap map[string]interfa model.ProfileName = core.StringPtr(modelMap["profile_name"].(string)) model.ProfileDescription = core.StringPtr(modelMap["profile_description"].(string)) model.ProfileType = core.StringPtr(modelMap["profile_type"].(string)) + model.ProfileVersion = core.StringPtr(modelMap["profile_version"].(string)) controls := []securityandcompliancecenterapiv3.ProfileControlsPrototype{} for _, controlsItem := range modelMap["controls"].([]interface{}) { controlsItemModel, err := resourceIbmSccProfileMapToProfileControlsPrototype(controlsItem.(map[string]interface{})) diff --git a/ibm/service/scc/resource_ibm_scc_profile_attachment.go b/ibm/service/scc/resource_ibm_scc_profile_attachment.go index 7c02d9613a..44ebbe12eb 100644 --- a/ibm/service/scc/resource_ibm_scc_profile_attachment.go +++ b/ibm/service/scc/resource_ibm_scc_profile_attachment.go @@ -109,7 +109,8 @@ func ResourceIbmSccProfileAttachment() *schema.Resource { }, "notifications": { Type: schema.TypeList, - Required: true, + MaxItems: 1, + Optional: true, Description: "The request payload of the attachment notifications.", Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ diff --git a/ibm/service/scc/resource_ibm_scc_profile_test.go b/ibm/service/scc/resource_ibm_scc_profile_test.go index 7823df8ad0..0708724cbd 100644 --- a/ibm/service/scc/resource_ibm_scc_profile_test.go +++ b/ibm/service/scc/resource_ibm_scc_profile_test.go @@ -59,6 +59,7 @@ func TestAccIbmSccProfileAllArgs(t *testing.T) { profileType := "custom" profileNameUpdate := profileName profileDescriptionUpdate := profileDescription + profileVersion := "0.0.0" profileTypeUpdate := profileType resource.Test(t, resource.TestCase{ @@ -73,6 +74,7 @@ func TestAccIbmSccProfileAllArgs(t *testing.T) { resource.TestCheckResourceAttr("ibm_scc_profile.scc_profile_instance", "profile_name", profileName), resource.TestCheckResourceAttr("ibm_scc_profile.scc_profile_instance", "profile_description", profileDescription), resource.TestCheckResourceAttr("ibm_scc_profile.scc_profile_instance", "profile_type", profileType), + resource.TestCheckResourceAttr("ibm_scc_profile.scc_profile_instance", "profile_version", profileVersion), ), }, resource.TestStep{ @@ -81,6 +83,7 @@ func TestAccIbmSccProfileAllArgs(t *testing.T) { resource.TestCheckResourceAttr("ibm_scc_profile.scc_profile_instance", "profile_name", profileNameUpdate), resource.TestCheckResourceAttr("ibm_scc_profile.scc_profile_instance", "profile_description", profileDescriptionUpdate), resource.TestCheckResourceAttr("ibm_scc_profile.scc_profile_instance", "profile_type", profileTypeUpdate), + resource.TestCheckResourceAttr("ibm_scc_profile.scc_profile_instance", "profile_version", profileVersion), ), }, resource.TestStep{ @@ -197,6 +200,7 @@ func testAccCheckIbmSccProfileConfig(instanceID string, profileName string, prof profile_name = "%s" profile_description = "%s" profile_type = "%s" + profile_version = "0.0.0" controls { control_library_id = resource.ibm_scc_control_library.scc_control_library_instance.control_library_id control_id = resource.ibm_scc_control_library.scc_control_library_instance.controls[0].control_id diff --git a/ibm/service/schematics/data_source_ibm_schematics_agent.go b/ibm/service/schematics/data_source_ibm_schematics_agent.go new file mode 100644 index 0000000000..a5c21acfd5 --- /dev/null +++ b/ibm/service/schematics/data_source_ibm_schematics_agent.go @@ -0,0 +1,972 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package schematics + +import ( + "context" + "fmt" + "log" + + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + "github.com/IBM/go-sdk-core/v3/core" + "github.com/IBM/schematics-go-sdk/schematicsv1" +) + +func DataSourceIbmSchematicsAgent() *schema.Resource { + return &schema.Resource{ + ReadContext: dataSourceIbmSchematicsAgentRead, + + Schema: map[string]*schema.Schema{ + "agent_id": &schema.Schema{ + Type: schema.TypeString, + Required: true, + Description: "Agent ID to get the details of agent.", + }, + "name": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The name of the agent (must be unique, for an account).", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Agent description.", + }, + "resource_group": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The resource-group name for the agent. By default, agent will be registered in Default Resource Group.", + }, + "tags": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "Tags for the agent.", + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "version": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Agent version.", + }, + "schematics_location": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics.", + }, + "agent_location": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The location where agent is deployed in the user environment.", + }, + "agent_infrastructure": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The infrastructure parameters used by the agent.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "infra_type": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Type of target agent infrastructure.", + }, + "cluster_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The cluster ID where agent services will be running.", + }, + "cluster_resource_group": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The resource group of the cluster (is it required?).", + }, + "cos_instance_name": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The COS instance name to store the agent logs.", + }, + "cos_bucket_name": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The COS bucket name used to store the logs.", + }, + "cos_bucket_region": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The COS bucket region.", + }, + }, + }, + }, + "agent_metadata": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The metadata of an agent.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Name of the metadata.", + }, + "value": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "Value of the metadata name.", + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + }, + }, + }, + "agent_inputs": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "Additional input variables for the agent.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The name of the variable. For example, `name = \"inventory username\"`.", + }, + "value": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The value for the variable or reference to the value. For example, `value = \"\"`. **Note** The SSH key should contain `\n` at the end of the key details in case of command line or API calls.", + }, + "use_default": &schema.Schema{ + Type: schema.TypeBool, + Computed: true, + Description: "True, will ignore the data in the value attribute, instead the data in metadata.default_value will be used.", + }, + "metadata": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "An user editable metadata for the variables.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "type": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Type of the variable.", + }, + "aliases": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The list of aliases for the variable name.", + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The description of the meta data.", + }, + "cloud_data_type": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Cloud data type of the variable. eg. resource_group_id, region, vpc_id.", + }, + "default_value": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Default value for the variable only if the override value is not specified.", + }, + "link_status": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The status of the link.", + }, + "secure": &schema.Schema{ + Type: schema.TypeBool, + Computed: true, + Description: "Is the variable secure or sensitive ?.", + }, + "immutable": &schema.Schema{ + Type: schema.TypeBool, + Computed: true, + Description: "Is the variable readonly ?.", + }, + "hidden": &schema.Schema{ + Type: schema.TypeBool, + Computed: true, + Description: "If **true**, the variable is not displayed on UI or Command line.", + }, + "required": &schema.Schema{ + Type: schema.TypeBool, + Computed: true, + Description: "If the variable required?.", + }, + "options": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The list of possible values for this variable. If type is **integer** or **date**, then the array of string is converted to array of integers or date during the runtime.", + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "min_value": &schema.Schema{ + Type: schema.TypeInt, + Computed: true, + Description: "The minimum value of the variable. Applicable for the integer type.", + }, + "max_value": &schema.Schema{ + Type: schema.TypeInt, + Computed: true, + Description: "The maximum value of the variable. Applicable for the integer type.", + }, + "min_length": &schema.Schema{ + Type: schema.TypeInt, + Computed: true, + Description: "The minimum length of the variable value. Applicable for the string type.", + }, + "max_length": &schema.Schema{ + Type: schema.TypeInt, + Computed: true, + Description: "The maximum length of the variable value. Applicable for the string type.", + }, + "matches": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The regex for the variable value.", + }, + "position": &schema.Schema{ + Type: schema.TypeInt, + Computed: true, + Description: "The relative position of this variable in a list.", + }, + "group_by": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The display name of the group this variable belongs to.", + }, + "source": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The source of this meta-data.", + }, + }, + }, + }, + "link": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The reference link to the variable value By default the expression points to `$self.value`.", + }, + }, + }, + }, + "user_state": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "User defined status of the agent.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "state": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "User-defined states * `enable` Agent is enabled by the user. * `disable` Agent is disbaled by the user.", + }, + "set_by": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Name of the User who set the state of the Object.", + }, + "set_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "When the User who set the state of the Object.", + }, + }, + }, + }, + "agent_crn": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The agent crn, obtained from the Schematics agent deployment configuration.", + }, + "id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The agent resource id.", + }, + "created_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The agent creation date-time.", + }, + "creation_by": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The email address of an user who created the agent.", + }, + "updated_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The agent registration updation time.", + }, + "updated_by": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Email address of user who updated the agent registration.", + }, + "system_state": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "Computed state of the agent.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "status_code": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Agent Status.", + }, + "status_message": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The agent status message.", + }, + }, + }, + }, + "agent_kpi": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "Schematics Agent key performance indicators.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "availability_indicator": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Overall availability indicator reported by the agent.", + }, + "lifecycle_indicator": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Overall lifecycle indicator reported by the agents.", + }, + "percent_usage_indicator": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Percentage usage of the agent resources.", + }, + "application_indicators": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "Agent application key performance indicators.", + Elem: &schema.Schema{ + Type: schema.TypeMap, + }, + }, + "infra_indicators": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "Agent infrastructure key performance indicators.", + Elem: &schema.Schema{ + Type: schema.TypeMap, + }, + }, + }, + }, + }, + "recent_prs_job": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "Run a pre-requisite scanner for deploying agent.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "agent_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Id of the agent.", + }, + "job_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Job Id.", + }, + "updated_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The agent prs job updation time.", + }, + "updated_by": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Email address of user who ran the agent prs job.", + }, + "agent_version": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Agent version.", + }, + "status_code": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Final result of the pre-requisite scanner job.", + }, + "status_message": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The outcome of the pre-requisite scanner job, in a formatted log string.", + }, + "log_url": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "URL to the full pre-requisite scanner job logs.", + }, + }, + }, + }, + "recent_deploy_job": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "Post-installations checks for Agent health.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "agent_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Id of the agent.", + }, + "job_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Job Id.", + }, + "updated_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The agent deploy job updation time.", + }, + "updated_by": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Email address of user who ran the agent deploy job.", + }, + "is_redeployed": &schema.Schema{ + Type: schema.TypeBool, + Computed: true, + Description: "True, when the same version of the agent was redeployed.", + }, + "agent_version": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Agent version.", + }, + "status_code": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Final result of the agent deployment job.", + }, + "status_message": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The outcome of the agent deployment job, in a formatted log string.", + }, + "log_url": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "URL to the full agent deployment job logs.", + }, + }, + }, + }, + "recent_health_job": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "Agent health check.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "agent_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Id of the agent.", + }, + "job_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Job Id.", + }, + "updated_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The agent health check job updation time.", + }, + "updated_by": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Email address of user who ran the agent health check job.", + }, + "agent_version": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Agent version.", + }, + "status_code": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Final result of the health-check job.", + }, + "status_message": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The outcome of the health-check job, in a formatted log string.", + }, + "log_url": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "URL to the full health-check job logs.", + }, + }, + }, + }, + }, + } +} + +func dataSourceIbmSchematicsAgentRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + schematicsClient, err := meta.(conns.ClientSession).SchematicsV1() + if err != nil { + return diag.FromErr(err) + } + + getAgentDataOptions := &schematicsv1.GetAgentDataOptions{ + XFeatureAgents: core.BoolPtr(true), + Profile: core.StringPtr("detailed"), + } + + getAgentDataOptions.SetAgentID(d.Get("agent_id").(string)) + + agentData, response, err := schematicsClient.GetAgentDataWithContext(context, getAgentDataOptions) + if err != nil { + log.Printf("[DEBUG] GetAgentDataWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("GetAgentDataWithContext failed %s\n%s", err, response)) + } + + d.SetId(fmt.Sprintf("%s", *getAgentDataOptions.AgentID)) + + if err = d.Set("name", agentData.Name); err != nil { + return diag.FromErr(fmt.Errorf("Error setting name: %s", err)) + } + + if err = d.Set("description", agentData.Description); err != nil { + return diag.FromErr(fmt.Errorf("Error setting description: %s", err)) + } + + if err = d.Set("resource_group", agentData.ResourceGroup); err != nil { + return diag.FromErr(fmt.Errorf("Error setting resource_group: %s", err)) + } + + if err = d.Set("version", agentData.Version); err != nil { + return diag.FromErr(fmt.Errorf("Error setting version: %s", err)) + } + + if err = d.Set("schematics_location", agentData.SchematicsLocation); err != nil { + return diag.FromErr(fmt.Errorf("Error setting schematics_location: %s", err)) + } + + if err = d.Set("agent_location", agentData.AgentLocation); err != nil { + return diag.FromErr(fmt.Errorf("Error setting agent_location: %s", err)) + } + + agentInfrastructure := []map[string]interface{}{} + if agentData.AgentInfrastructure != nil { + modelMap, err := dataSourceIbmSchematicsAgentAgentInfrastructureToMap(agentData.AgentInfrastructure) + if err != nil { + return diag.FromErr(err) + } + agentInfrastructure = append(agentInfrastructure, modelMap) + } + if err = d.Set("agent_infrastructure", agentInfrastructure); err != nil { + return diag.FromErr(fmt.Errorf("Error setting agent_infrastructure %s", err)) + } + + agentMetadata := []map[string]interface{}{} + if agentData.AgentMetadata != nil { + for _, modelItem := range agentData.AgentMetadata { + modelMap, err := dataSourceIbmSchematicsAgentAgentMetadataInfoToMap(&modelItem) + if err != nil { + return diag.FromErr(err) + } + agentMetadata = append(agentMetadata, modelMap) + } + } + if err = d.Set("agent_metadata", agentMetadata); err != nil { + return diag.FromErr(fmt.Errorf("Error setting agent_metadata %s", err)) + } + + agentInputs := []map[string]interface{}{} + if agentData.AgentInputs != nil { + for _, modelItem := range agentData.AgentInputs { + modelMap, err := dataSourceIbmSchematicsAgentVariableDataToMap(&modelItem) + if err != nil { + return diag.FromErr(err) + } + agentInputs = append(agentInputs, modelMap) + } + } + if err = d.Set("agent_inputs", agentInputs); err != nil { + return diag.FromErr(fmt.Errorf("Error setting agent_inputs %s", err)) + } + + userState := []map[string]interface{}{} + if agentData.UserState != nil { + modelMap, err := dataSourceIbmSchematicsAgentAgentUserStateToMap(agentData.UserState) + if err != nil { + return diag.FromErr(err) + } + userState = append(userState, modelMap) + } + if err = d.Set("user_state", userState); err != nil { + return diag.FromErr(fmt.Errorf("Error setting user_state %s", err)) + } + + if err = d.Set("agent_crn", agentData.AgentCrn); err != nil { + return diag.FromErr(fmt.Errorf("Error setting agent_crn: %s", err)) + } + + if err = d.Set("id", agentData.ID); err != nil { + return diag.FromErr(fmt.Errorf("Error setting id: %s", err)) + } + + if err = d.Set("created_at", flex.DateTimeToString(agentData.CreatedAt)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting created_at: %s", err)) + } + + if err = d.Set("creation_by", agentData.CreationBy); err != nil { + return diag.FromErr(fmt.Errorf("Error setting creation_by: %s", err)) + } + + if err = d.Set("updated_at", flex.DateTimeToString(agentData.UpdatedAt)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting updated_at: %s", err)) + } + + if err = d.Set("updated_by", agentData.UpdatedBy); err != nil { + return diag.FromErr(fmt.Errorf("Error setting updated_by: %s", err)) + } + + systemState := []map[string]interface{}{} + if agentData.SystemState != nil { + modelMap, err := dataSourceIbmSchematicsAgentAgentSystemStatusToMap(agentData.SystemState) + if err != nil { + return diag.FromErr(err) + } + systemState = append(systemState, modelMap) + } + if err = d.Set("system_state", systemState); err != nil { + return diag.FromErr(fmt.Errorf("Error setting system_state %s", err)) + } + + agentKpi := []map[string]interface{}{} + if agentData.AgentKpi != nil { + modelMap, err := dataSourceIbmSchematicsAgentAgentKPIDataToMap(agentData.AgentKpi) + if err != nil { + return diag.FromErr(err) + } + agentKpi = append(agentKpi, modelMap) + } + if err = d.Set("agent_kpi", agentKpi); err != nil { + return diag.FromErr(fmt.Errorf("Error setting agent_kpi %s", err)) + } + + recentPrsJob := []map[string]interface{}{} + if agentData.RecentPrsJob != nil { + modelMap, err := dataSourceIbmSchematicsAgentAgentDataRecentPrsJobToMap(agentData.RecentPrsJob) + if err != nil { + return diag.FromErr(err) + } + recentPrsJob = append(recentPrsJob, modelMap) + } + if err = d.Set("recent_prs_job", recentPrsJob); err != nil { + return diag.FromErr(fmt.Errorf("Error setting recent_prs_job %s", err)) + } + + recentDeployJob := []map[string]interface{}{} + if agentData.RecentDeployJob != nil { + modelMap, err := dataSourceIbmSchematicsAgentAgentDataRecentDeployJobToMap(agentData.RecentDeployJob) + if err != nil { + return diag.FromErr(err) + } + recentDeployJob = append(recentDeployJob, modelMap) + } + if err = d.Set("recent_deploy_job", recentDeployJob); err != nil { + return diag.FromErr(fmt.Errorf("Error setting recent_deploy_job %s", err)) + } + + recentHealthJob := []map[string]interface{}{} + if agentData.RecentHealthJob != nil { + modelMap, err := dataSourceIbmSchematicsAgentAgentDataRecentHealthJobToMap(agentData.RecentHealthJob) + if err != nil { + return diag.FromErr(err) + } + recentHealthJob = append(recentHealthJob, modelMap) + } + if err = d.Set("recent_health_job", recentHealthJob); err != nil { + return diag.FromErr(fmt.Errorf("Error setting recent_health_job %s", err)) + } + + return nil +} + +func dataSourceIbmSchematicsAgentAgentInfrastructureToMap(model *schematicsv1.AgentInfrastructure) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.InfraType != nil { + modelMap["infra_type"] = *model.InfraType + } + if model.ClusterID != nil { + modelMap["cluster_id"] = *model.ClusterID + } + if model.ClusterResourceGroup != nil { + modelMap["cluster_resource_group"] = *model.ClusterResourceGroup + } + if model.CosInstanceName != nil { + modelMap["cos_instance_name"] = *model.CosInstanceName + } + if model.CosBucketName != nil { + modelMap["cos_bucket_name"] = *model.CosBucketName + } + if model.CosBucketRegion != nil { + modelMap["cos_bucket_region"] = *model.CosBucketRegion + } + return modelMap, nil +} + +func dataSourceIbmSchematicsAgentAgentMetadataInfoToMap(model *schematicsv1.AgentMetadataInfo) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.Name != nil { + modelMap["name"] = *model.Name + } + if model.Value != nil { + modelMap["value"] = model.Value + } + return modelMap, nil +} + +func dataSourceIbmSchematicsAgentVariableDataToMap(model *schematicsv1.VariableData) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.Name != nil { + modelMap["name"] = *model.Name + } + if model.Value != nil { + modelMap["value"] = *model.Value + } + if model.UseDefault != nil { + modelMap["use_default"] = *model.UseDefault + } + if model.Metadata != nil { + metadataMap, err := dataSourceIbmSchematicsAgentVariableMetadataToMap(model.Metadata) + if err != nil { + return modelMap, err + } + modelMap["metadata"] = []map[string]interface{}{metadataMap} + } + if model.Link != nil { + modelMap["link"] = *model.Link + } + return modelMap, nil +} + +func dataSourceIbmSchematicsAgentVariableMetadataToMap(model *schematicsv1.VariableMetadata) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.Type != nil { + modelMap["type"] = *model.Type + } + if model.Aliases != nil { + modelMap["aliases"] = model.Aliases + } + if model.Description != nil { + modelMap["description"] = *model.Description + } + if model.CloudDataType != nil { + modelMap["cloud_data_type"] = *model.CloudDataType + } + if model.DefaultValue != nil { + modelMap["default_value"] = *model.DefaultValue + } + if model.LinkStatus != nil { + modelMap["link_status"] = *model.LinkStatus + } + if model.Secure != nil { + modelMap["secure"] = *model.Secure + } + if model.Immutable != nil { + modelMap["immutable"] = *model.Immutable + } + if model.Hidden != nil { + modelMap["hidden"] = *model.Hidden + } + if model.Required != nil { + modelMap["required"] = *model.Required + } + if model.Options != nil { + modelMap["options"] = model.Options + } + if model.MinValue != nil { + modelMap["min_value"] = *model.MinValue + } + if model.MaxValue != nil { + modelMap["max_value"] = *model.MaxValue + } + if model.MinLength != nil { + modelMap["min_length"] = *model.MinLength + } + if model.MaxLength != nil { + modelMap["max_length"] = *model.MaxLength + } + if model.Matches != nil { + modelMap["matches"] = *model.Matches + } + if model.Position != nil { + modelMap["position"] = *model.Position + } + if model.GroupBy != nil { + modelMap["group_by"] = *model.GroupBy + } + if model.Source != nil { + modelMap["source"] = *model.Source + } + return modelMap, nil +} + +func dataSourceIbmSchematicsAgentAgentUserStateToMap(model *schematicsv1.AgentUserState) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.State != nil { + modelMap["state"] = *model.State + } + if model.SetBy != nil { + modelMap["set_by"] = *model.SetBy + } + if model.SetAt != nil { + modelMap["set_at"] = model.SetAt.String() + } + return modelMap, nil +} + +func dataSourceIbmSchematicsAgentAgentSystemStatusToMap(model *schematicsv1.AgentSystemStatus) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.StatusCode != nil { + modelMap["status_code"] = *model.StatusCode + } + if model.StatusMessage != nil { + modelMap["status_message"] = *model.StatusMessage + } + return modelMap, nil +} + +func dataSourceIbmSchematicsAgentAgentKPIDataToMap(model *schematicsv1.AgentKPIData) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.AvailabilityIndicator != nil { + modelMap["availability_indicator"] = *model.AvailabilityIndicator + } + if model.LifecycleIndicator != nil { + modelMap["lifecycle_indicator"] = *model.LifecycleIndicator + } + if model.PercentUsageIndicator != nil { + modelMap["percent_usage_indicator"] = *model.PercentUsageIndicator + } + if model.ApplicationIndicators != nil { + } + if model.InfraIndicators != nil { + } + return modelMap, nil +} + +func dataSourceIbmSchematicsAgentAgentDataRecentPrsJobToMap(model *schematicsv1.AgentDataRecentPrsJob) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.AgentID != nil { + modelMap["agent_id"] = *model.AgentID + } + if model.JobID != nil { + modelMap["job_id"] = *model.JobID + } + if model.UpdatedAt != nil { + modelMap["updated_at"] = model.UpdatedAt.String() + } + if model.UpdatedBy != nil { + modelMap["updated_by"] = *model.UpdatedBy + } + if model.AgentVersion != nil { + modelMap["agent_version"] = *model.AgentVersion + } + if model.StatusCode != nil { + modelMap["status_code"] = *model.StatusCode + } + if model.StatusMessage != nil { + modelMap["status_message"] = *model.StatusMessage + } + if model.LogURL != nil { + modelMap["log_url"] = *model.LogURL + } + return modelMap, nil +} + +func dataSourceIbmSchematicsAgentAgentDataRecentDeployJobToMap(model *schematicsv1.AgentDataRecentDeployJob) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.AgentID != nil { + modelMap["agent_id"] = *model.AgentID + } + if model.JobID != nil { + modelMap["job_id"] = *model.JobID + } + if model.UpdatedAt != nil { + modelMap["updated_at"] = model.UpdatedAt.String() + } + if model.UpdatedBy != nil { + modelMap["updated_by"] = *model.UpdatedBy + } + if model.IsRedeployed != nil { + modelMap["is_redeployed"] = *model.IsRedeployed + } + if model.AgentVersion != nil { + modelMap["agent_version"] = *model.AgentVersion + } + if model.StatusCode != nil { + modelMap["status_code"] = *model.StatusCode + } + if model.StatusMessage != nil { + modelMap["status_message"] = *model.StatusMessage + } + if model.LogURL != nil { + modelMap["log_url"] = *model.LogURL + } + return modelMap, nil +} + +func dataSourceIbmSchematicsAgentAgentDataRecentHealthJobToMap(model *schematicsv1.AgentDataRecentHealthJob) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.AgentID != nil { + modelMap["agent_id"] = *model.AgentID + } + if model.JobID != nil { + modelMap["job_id"] = *model.JobID + } + if model.UpdatedAt != nil { + modelMap["updated_at"] = model.UpdatedAt.String() + } + if model.UpdatedBy != nil { + modelMap["updated_by"] = *model.UpdatedBy + } + if model.AgentVersion != nil { + modelMap["agent_version"] = *model.AgentVersion + } + if model.StatusCode != nil { + modelMap["status_code"] = *model.StatusCode + } + if model.StatusMessage != nil { + modelMap["status_message"] = *model.StatusMessage + } + if model.LogURL != nil { + modelMap["log_url"] = *model.LogURL + } + return modelMap, nil +} diff --git a/ibm/service/schematics/data_source_ibm_schematics_agent_deploy.go b/ibm/service/schematics/data_source_ibm_schematics_agent_deploy.go new file mode 100644 index 0000000000..7fa062e5b4 --- /dev/null +++ b/ibm/service/schematics/data_source_ibm_schematics_agent_deploy.go @@ -0,0 +1,132 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package schematics + +import ( + "context" + "fmt" + "log" + + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + "github.com/IBM/go-sdk-core/v3/core" + "github.com/IBM/schematics-go-sdk/schematicsv1" +) + +func DataSourceIbmSchematicsAgentDeploy() *schema.Resource { + return &schema.Resource{ + ReadContext: dataSourceIbmSchematicsAgentDeployRead, + + Schema: map[string]*schema.Schema{ + "agent_id": &schema.Schema{ + Type: schema.TypeString, + Required: true, + Description: "Agent ID to get the details of agent.", + }, + "job_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Job Id.", + }, + "updated_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The agent deploy job updation time.", + }, + "updated_by": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Email address of user who ran the agent deploy job.", + }, + "is_redeployed": &schema.Schema{ + Type: schema.TypeBool, + Computed: true, + Description: "True, when the same version of the agent was redeployed.", + }, + "agent_version": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Agent version.", + }, + "status_code": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Final result of the agent deployment job.", + }, + "status_message": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The outcome of the agent deployment job, in a formatted log string.", + }, + "log_url": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "URL to the full agent deployment job logs.", + }, + }, + } +} + +func dataSourceIbmSchematicsAgentDeployRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + + schematicsClient, err := meta.(conns.ClientSession).SchematicsV1() + if err != nil { + return diag.FromErr(err) + } + + getAgentDataOptions := &schematicsv1.GetAgentDataOptions{ + XFeatureAgents: core.BoolPtr(true), + Profile: core.StringPtr("detailed"), + } + getAgentDataOptions.SetAgentID(d.Get("agent_id").(string)) + + agentData, response, err := schematicsClient.GetAgentDataWithContext(context, getAgentDataOptions) + if err != nil { + if response != nil && response.StatusCode == 404 { + d.SetId(DataSourceIBMSchematicsAgentID(d)) + return nil + } + log.Printf("[DEBUG] GetAgentDataWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("GetAgentDataWithContext failed %s\n%s", err, response)) + } + d.SetId(DataSourceIBMSchematicsAgentID(d)) + + if agentData.RecentDeployJob != nil { + + if err = d.Set("agent_id", getAgentDataOptions.AgentID); err != nil { + return diag.FromErr(fmt.Errorf("Error setting agent_id: %s", err)) + } + if err = d.Set("job_id", agentData.RecentDeployJob.JobID); err != nil { + return diag.FromErr(fmt.Errorf("Error setting job_id: %s", err)) + } else if agentData.RecentDeployJob.JobID != nil { + d.SetId(fmt.Sprintf("%s", *agentData.RecentDeployJob.JobID)) + } + if err = d.Set("updated_at", flex.DateTimeToString(agentData.RecentDeployJob.UpdatedAt)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting updated_at: %s", err)) + } + if err = d.Set("updated_by", agentData.RecentDeployJob.UpdatedBy); err != nil { + return diag.FromErr(fmt.Errorf("Error setting updated_by: %s", err)) + } + if err = d.Set("is_redeployed", agentData.RecentDeployJob.IsRedeployed); err != nil { + return diag.FromErr(fmt.Errorf("Error setting is_redeployed: %s", err)) + } + if err = d.Set("agent_version", agentData.Version); err != nil { + return diag.FromErr(fmt.Errorf("Error setting agent_version: %s", err)) + } + if err = d.Set("status_code", agentData.RecentDeployJob.StatusCode); err != nil { + return diag.FromErr(fmt.Errorf("Error setting status_code: %s", err)) + } + if err = d.Set("status_message", agentData.RecentDeployJob.StatusMessage); err != nil { + return diag.FromErr(fmt.Errorf("Error setting status_message: %s", err)) + } + if err = d.Set("log_url", agentData.RecentDeployJob.LogURL); err != nil { + return diag.FromErr(fmt.Errorf("Error setting log_url: %s", err)) + } + + } + return nil +} diff --git a/ibm/service/schematics/data_source_ibm_schematics_agent_deploy_test.go b/ibm/service/schematics/data_source_ibm_schematics_agent_deploy_test.go new file mode 100644 index 0000000000..dc89e8d162 --- /dev/null +++ b/ibm/service/schematics/data_source_ibm_schematics_agent_deploy_test.go @@ -0,0 +1,84 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package schematics_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" +) + +func TestAccIbmSchematicsAgentDeployDataSourceBasic(t *testing.T) { + agentDeployJobAgentID := fmt.Sprintf("tf_agent_id_%d", acctest.RandIntRange(10, 100)) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmSchematicsAgentDeployDataSourceConfigBasic(agentDeployJobAgentID), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_deploy.schematics_agent_deploy_instance", "id"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_deploy.schematics_agent_deploy_instance", "agent_id"), + ), + }, + }, + }) +} + +func TestAccIbmSchematicsAgentDeployDataSourceAllArgs(t *testing.T) { + agentDeployJobAgentID := fmt.Sprintf("tf_agent_id_%d", acctest.RandIntRange(10, 100)) + agentDeployJobForce := "false" + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmSchematicsAgentDeployDataSourceConfig(agentDeployJobAgentID, agentDeployJobForce), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_deploy.schematics_agent_deploy_instance", "id"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_deploy.schematics_agent_deploy_instance", "agent_id"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_deploy.schematics_agent_deploy_instance", "job_id"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_deploy.schematics_agent_deploy_instance", "updated_at"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_deploy.schematics_agent_deploy_instance", "updated_by"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_deploy.schematics_agent_deploy_instance", "is_redeployed"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_deploy.schematics_agent_deploy_instance", "agent_version"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_deploy.schematics_agent_deploy_instance", "status_code"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_deploy.schematics_agent_deploy_instance", "status_message"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_deploy.schematics_agent_deploy_instance", "log_url"), + ), + }, + }, + }) +} + +func testAccCheckIbmSchematicsAgentDeployDataSourceConfigBasic(agentDeployJobAgentID string) string { + return fmt.Sprintf(` + + resource "ibm_schematics_agent_deploy" "schematics_agent_deploy_instance" { + agent_id = "%s" + } + data "ibm_schematics_agent_deploy" "schematics_agent_deploy_instance" { + agent_id = ibm_schematics_agent_deploy.schematics_agent_deploy_instance.agent_id + } + `, agentDeployJobAgentID) +} + +func testAccCheckIbmSchematicsAgentDeployDataSourceConfig(agentDeployJobAgentID string, agentDeployJobForce string) string { + return fmt.Sprintf(` + resource "ibm_schematics_agent_deploy" "schematics_agent_deploy_instance" { + agent_id = "%s" + force = %s + } + + data "ibm_schematics_agent_deploy" "schematics_agent_deploy_instance" { + agent_id = ibm_schematics_agent_deploy.schematics_agent_deploy_instance.agent_id + } + `, agentDeployJobAgentID, agentDeployJobForce) +} diff --git a/ibm/service/schematics/data_source_ibm_schematics_agent_health.go b/ibm/service/schematics/data_source_ibm_schematics_agent_health.go new file mode 100644 index 0000000000..87ea05609d --- /dev/null +++ b/ibm/service/schematics/data_source_ibm_schematics_agent_health.go @@ -0,0 +1,124 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package schematics + +import ( + "context" + "fmt" + "log" + + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + "github.com/IBM/go-sdk-core/v3/core" + "github.com/IBM/schematics-go-sdk/schematicsv1" +) + +func DataSourceIbmSchematicsAgentHealth() *schema.Resource { + return &schema.Resource{ + ReadContext: dataSourceIbmSchematicsAgentHealthRead, + + Schema: map[string]*schema.Schema{ + "agent_id": &schema.Schema{ + Type: schema.TypeString, + Required: true, + Description: "Agent ID to get the details of agent.", + }, + "job_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Job Id.", + }, + "updated_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The agent health check job updation time.", + }, + "updated_by": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Email address of user who ran the agent health check job.", + }, + "agent_version": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Agent version.", + }, + "status_code": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Final result of the health-check job.", + }, + "status_message": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The outcome of the health-check job, in a formatted log string.", + }, + "log_url": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "URL to the full health-check job logs.", + }, + }, + } +} + +func dataSourceIbmSchematicsAgentHealthRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + + schematicsClient, err := meta.(conns.ClientSession).SchematicsV1() + if err != nil { + return diag.FromErr(err) + } + + getAgentDataOptions := &schematicsv1.GetAgentDataOptions{ + XFeatureAgents: core.BoolPtr(true), + Profile: core.StringPtr("detailed"), + } + getAgentDataOptions.SetAgentID(d.Get("agent_id").(string)) + + agentData, response, err := schematicsClient.GetAgentDataWithContext(context, getAgentDataOptions) + if err != nil { + if response != nil && response.StatusCode == 404 { + d.SetId(DataSourceIBMSchematicsAgentID(d)) + return nil + } + log.Printf("[DEBUG] GetAgentDataWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("GetAgentDataWithContext failed %s\n%s", err, response)) + } + d.SetId(DataSourceIBMSchematicsAgentID(d)) + + if agentData.RecentHealthJob != nil { + + if err = d.Set("agent_id", getAgentDataOptions.AgentID); err != nil { + return diag.FromErr(fmt.Errorf("Error setting agent_id: %s", err)) + } + if err = d.Set("job_id", agentData.RecentHealthJob.JobID); err != nil { + return diag.FromErr(fmt.Errorf("Error setting job_id: %s", err)) + } else if agentData.RecentHealthJob.JobID != nil { + d.SetId(fmt.Sprintf("%s", *agentData.RecentHealthJob.JobID)) + } + if err = d.Set("updated_at", flex.DateTimeToString(agentData.RecentHealthJob.UpdatedAt)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting updated_at: %s", err)) + } + if err = d.Set("updated_by", agentData.RecentHealthJob.UpdatedBy); err != nil { + return diag.FromErr(fmt.Errorf("Error setting updated_by: %s", err)) + } + if err = d.Set("agent_version", agentData.Version); err != nil { + return diag.FromErr(fmt.Errorf("Error setting agent_version: %s", err)) + } + if err = d.Set("status_code", agentData.RecentHealthJob.StatusCode); err != nil { + return diag.FromErr(fmt.Errorf("Error setting status_code: %s", err)) + } + if err = d.Set("status_message", agentData.RecentHealthJob.StatusMessage); err != nil { + return diag.FromErr(fmt.Errorf("Error setting status_message: %s", err)) + } + if err = d.Set("log_url", agentData.RecentHealthJob.LogURL); err != nil { + return diag.FromErr(fmt.Errorf("Error setting log_url: %s", err)) + } + + } + return nil +} diff --git a/ibm/service/schematics/data_source_ibm_schematics_agent_health_test.go b/ibm/service/schematics/data_source_ibm_schematics_agent_health_test.go new file mode 100644 index 0000000000..e7351e4e8e --- /dev/null +++ b/ibm/service/schematics/data_source_ibm_schematics_agent_health_test.go @@ -0,0 +1,83 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package schematics_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" +) + +func TestAccIbmSchematicsAgentHealthDataSourceBasic(t *testing.T) { + agentHealthJobAgentID := fmt.Sprintf("tf_agent_id_%d", acctest.RandIntRange(10, 100)) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmSchematicsAgentHealthDataSourceConfigBasic(agentHealthJobAgentID), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_health.schematics_agent_health_instance", "id"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_health.schematics_agent_health_instance", "agent_id"), + ), + }, + }, + }) +} + +func TestAccIbmSchematicsAgentHealthDataSourceAllArgs(t *testing.T) { + agentHealthJobAgentID := fmt.Sprintf("tf_agent_id_%d", acctest.RandIntRange(10, 100)) + agentHealthJobForce := "false" + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmSchematicsAgentHealthDataSourceConfig(agentHealthJobAgentID, agentHealthJobForce), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_health.schematics_agent_health_instance", "id"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_health.schematics_agent_health_instance", "agent_id"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_health.schematics_agent_health_instance", "job_id"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_health.schematics_agent_health_instance", "updated_at"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_health.schematics_agent_health_instance", "updated_by"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_health.schematics_agent_health_instance", "agent_version"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_health.schematics_agent_health_instance", "status_code"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_health.schematics_agent_health_instance", "status_message"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_health.schematics_agent_health_instance", "log_url"), + ), + }, + }, + }) +} + +func testAccCheckIbmSchematicsAgentHealthDataSourceConfigBasic(agentHealthJobAgentID string) string { + return fmt.Sprintf(` + resource "ibm_schematics_agent_health" "schematics_agent_health_instance" { + agent_id = "%s" + } + + data "ibm_schematics_agent_health" "schematics_agent_health_instance" { + agent_id = ibm_schematics_agent_health.schematics_agent_health.agent_id + } + `, agentHealthJobAgentID) +} + +func testAccCheckIbmSchematicsAgentHealthDataSourceConfig(agentHealthJobAgentID string, agentHealthJobForce string) string { + return fmt.Sprintf(` + resource "ibm_schematics_agent_health" "schematics_agent_health_instance" { + agent_id = "%s" + force = %s + } + + data "ibm_schematics_agent_health" "schematics_agent_health_instance" { + agent_id = ibm_schematics_agent_health.schematics_agent_health.agent_id + } + `, agentHealthJobAgentID, agentHealthJobForce) +} diff --git a/ibm/service/schematics/data_source_ibm_schematics_agent_prs.go b/ibm/service/schematics/data_source_ibm_schematics_agent_prs.go new file mode 100644 index 0000000000..e0c4eb613f --- /dev/null +++ b/ibm/service/schematics/data_source_ibm_schematics_agent_prs.go @@ -0,0 +1,129 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package schematics + +import ( + "context" + "fmt" + "log" + "time" + + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + "github.com/IBM/go-sdk-core/v3/core" + "github.com/IBM/schematics-go-sdk/schematicsv1" +) + +func DataSourceIbmSchematicsAgentPrs() *schema.Resource { + return &schema.Resource{ + ReadContext: dataSourceIbmSchematicsAgentPrsRead, + + Schema: map[string]*schema.Schema{ + "agent_id": &schema.Schema{ + Type: schema.TypeString, + Required: true, + Description: "Agent ID to get the details of agent.", + }, + "job_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Job Id.", + }, + "updated_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The agent prs job updation time.", + }, + "updated_by": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Email address of user who ran the agent prs job.", + }, + "agent_version": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Agent version.", + }, + "status_code": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Final result of the pre-requisite scanner job.", + }, + "status_message": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The outcome of the pre-requisite scanner job, in a formatted log string.", + }, + "log_url": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "URL to the full pre-requisite scanner job logs.", + }, + }, + } +} + +func dataSourceIbmSchematicsAgentPrsRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + schematicsClient, err := meta.(conns.ClientSession).SchematicsV1() + if err != nil { + return diag.FromErr(err) + } + + getAgentDataOptions := &schematicsv1.GetAgentDataOptions{ + XFeatureAgents: core.BoolPtr(true), + Profile: core.StringPtr("detailed"), + } + getAgentDataOptions.SetAgentID(d.Get("agent_id").(string)) + + agentData, response, err := schematicsClient.GetAgentDataWithContext(context, getAgentDataOptions) + if err != nil { + if response != nil && response.StatusCode == 404 { + d.SetId(DataSourceIBMSchematicsAgentID(d)) + return nil + } + log.Printf("[DEBUG] GetAgentDataWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("GetAgentDataWithContext failed %s\n%s", err, response)) + } + d.SetId(DataSourceIBMSchematicsAgentID(d)) + + if agentData.RecentPrsJob != nil { + + if err = d.Set("agent_id", getAgentDataOptions.AgentID); err != nil { + return diag.FromErr(fmt.Errorf("Error setting agent_id: %s", err)) + } + if err = d.Set("job_id", agentData.RecentPrsJob.JobID); err != nil { + return diag.FromErr(fmt.Errorf("Error setting job_id: %s", err)) + } else if agentData.RecentPrsJob.JobID != nil { + d.SetId(fmt.Sprintf("%s", *agentData.RecentPrsJob.JobID)) + } + if err = d.Set("updated_at", flex.DateTimeToString(agentData.RecentPrsJob.UpdatedAt)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting updated_at: %s", err)) + } + if err = d.Set("updated_by", agentData.RecentPrsJob.UpdatedBy); err != nil { + return diag.FromErr(fmt.Errorf("Error setting updated_by: %s", err)) + } + if err = d.Set("agent_version", agentData.Version); err != nil { + return diag.FromErr(fmt.Errorf("Error setting agent_version: %s", err)) + } + if err = d.Set("status_code", agentData.RecentPrsJob.StatusCode); err != nil { + return diag.FromErr(fmt.Errorf("Error setting status_code: %s", err)) + } + if err = d.Set("status_message", agentData.RecentPrsJob.StatusMessage); err != nil { + return diag.FromErr(fmt.Errorf("Error setting status_message: %s", err)) + } + if err = d.Set("log_url", agentData.RecentPrsJob.LogURL); err != nil { + return diag.FromErr(fmt.Errorf("Error setting log_url: %s", err)) + } + + } + return nil +} + +// DataSourceIBMSchematicsAgentID returns a reasonable ID +func DataSourceIBMSchematicsAgentID(d *schema.ResourceData) string { + return time.Now().UTC().String() +} diff --git a/ibm/service/schematics/data_source_ibm_schematics_agent_prs_test.go b/ibm/service/schematics/data_source_ibm_schematics_agent_prs_test.go new file mode 100644 index 0000000000..3a1e4be7fd --- /dev/null +++ b/ibm/service/schematics/data_source_ibm_schematics_agent_prs_test.go @@ -0,0 +1,83 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package schematics_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" +) + +func TestAccIbmSchematicsAgentPrsDataSourceBasic(t *testing.T) { + agentPRSJobAgentID := fmt.Sprintf("tf_agent_id_%d", acctest.RandIntRange(10, 100)) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmSchematicsAgentPrsDataSourceConfigBasic(agentPRSJobAgentID), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_prs.schematics_agent_prs_instance", "id"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_prs.schematics_agent_prs_instance", "agent_id"), + ), + }, + }, + }) +} + +func TestAccIbmSchematicsAgentPrsDataSourceAllArgs(t *testing.T) { + agentPRSJobAgentID := fmt.Sprintf("tf_agent_id_%d", acctest.RandIntRange(10, 100)) + agentPRSJobForce := "false" + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmSchematicsAgentPrsDataSourceConfig(agentPRSJobAgentID, agentPRSJobForce), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_prs.schematics_agent_prs_instance", "id"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_prs.schematics_agent_prs_instance", "agent_id"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_prs.schematics_agent_prs_instance", "job_id"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_prs.schematics_agent_prs_instance", "updated_at"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_prs.schematics_agent_prs_instance", "updated_by"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_prs.schematics_agent_prs_instance", "agent_version"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_prs.schematics_agent_prs_instance", "status_code"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_prs.schematics_agent_prs_instance", "status_message"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_prs.schematics_agent_prs_instance", "log_url"), + ), + }, + }, + }) +} + +func testAccCheckIbmSchematicsAgentPrsDataSourceConfigBasic(agentPRSJobAgentID string) string { + return fmt.Sprintf(` + resource "ibm_schematics_agent_prs" "schematics_agent_prs_instance" { + agent_id = "%s" + } + + data "ibm_schematics_agent_prs" "schematics_agent_prs_instance" { + agent_id = ibm_schematics_agent_prs.schematics_agent_prs_instance.agent_id + } + `, agentPRSJobAgentID) +} + +func testAccCheckIbmSchematicsAgentPrsDataSourceConfig(agentPRSJobAgentID string, agentPRSJobForce string) string { + return fmt.Sprintf(` + resource "ibm_schematics_agent_prs" "schematics_agent_prs_instance" { + agent_id = "%s" + force = %s + } + + data "ibm_schematics_agent_prs" "schematics_agent_prs_instance" { + agent_id = ibm_schematics_agent_prs.schematics_agent_prs_instance.agent_id + } + `, agentPRSJobAgentID, agentPRSJobForce) +} diff --git a/ibm/service/schematics/data_source_ibm_schematics_agent_test.go b/ibm/service/schematics/data_source_ibm_schematics_agent_test.go new file mode 100644 index 0000000000..f3ec02934b --- /dev/null +++ b/ibm/service/schematics/data_source_ibm_schematics_agent_test.go @@ -0,0 +1,183 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package schematics_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" +) + +func TestAccIbmSchematicsAgentDataSourceBasic(t *testing.T) { + agentDataName := fmt.Sprintf("tf_name_%d", acctest.RandIntRange(10, 100)) + agentDataVersion := "1.0.0-beta2" + agentDataSchematicsLocation := "us-south" + agentDataAgentLocation := "eu-de" + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmSchematicsAgentDataSourceConfigBasic(agentDataName, agentDataVersion, agentDataSchematicsLocation, agentDataAgentLocation), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "id"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "agent_id"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "name"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "resource_group"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "version"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "schematics_location"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "agent_location"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "agent_infrastructure.#"), + ), + }, + }, + }) +} + +func TestAccIbmSchematicsAgentDataSourceAllArgs(t *testing.T) { + agentDataName := fmt.Sprintf("tf_name_%d", acctest.RandIntRange(10, 100)) + agentDataVersion := "1.0.0-beta2" + agentDataSchematicsLocation := "us-south" + agentDataAgentLocation := "eu-de" + agentDataDescription := fmt.Sprintf("tf_description_%d", acctest.RandIntRange(10, 100)) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmSchematicsAgentDataSourceConfig(agentDataName, agentDataVersion, agentDataSchematicsLocation, agentDataAgentLocation, agentDataDescription), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "id"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "agent_id"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "name"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "description"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "resource_group"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "tags.#"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "version"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "schematics_location"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "agent_location"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "agent_infrastructure.#"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "agent_metadata.#"), + resource.TestCheckResourceAttr("data.ibm_schematics_agent.schematics_agent_instance", "agent_metadata.0.name", agentDataName), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "agent_inputs.#"), + resource.TestCheckResourceAttr("data.ibm_schematics_agent.schematics_agent_instance", "agent_inputs.0.name", agentDataName), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "agent_inputs.0.value"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "agent_inputs.0.use_default"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "agent_inputs.0.link"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "user_state.#"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "agent_crn"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "id"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "created_at"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "creation_by"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "updated_at"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "updated_by"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "system_state.#"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "agent_kpi.#"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "recent_prs_job.#"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "recent_deploy_job.#"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "recent_health_job.#"), + ), + }, + }, + }) +} + +func testAccCheckIbmSchematicsAgentDataSourceConfigBasic(agentDataName string, agentDataVersion string, agentDataSchematicsLocation string, agentDataAgentLocation string) string { + return fmt.Sprintf(` + resource "ibm_schematics_agent" "schematics_agent_instance" { + name = "%s" + resource_group = "Default" + version = "%s" + schematics_location = "%s" + agent_location = "%s" + agent_infrastructure { + infra_type = "ibm_kubernetes" + cluster_id = "cluster_id" + cluster_resource_group = "cluster_resource_group" + cos_instance_name = "cos_instance_name" + cos_bucket_name = "cos_bucket_name" + cos_bucket_region = "cos_bucket_region" + } + } + + data "ibm_schematics_agent" "schematics_agent_instance" { + agent_id = ibm_schematics_agent.schematics_agent_instance.id + } + `, agentDataName, agentDataVersion, agentDataSchematicsLocation, agentDataAgentLocation) +} + +func testAccCheckIbmSchematicsAgentDataSourceConfig(agentDataName string, agentDataVersion string, agentDataSchematicsLocation string, agentDataAgentLocation string, agentDataDescription string) string { + return fmt.Sprintf(` + resource "ibm_schematics_agent" "schematics_agent_instance" { + name = "%s" + resource_group = "Default" + version = "%s" + schematics_location = "%s" + agent_location = "%s" + agent_infrastructure { + infra_type = "ibm_kubernetes" + cluster_id = "cluster_id" + cluster_resource_group = "cluster_resource_group" + cos_instance_name = "cos_instance_name" + cos_bucket_name = "cos_bucket_name" + cos_bucket_region = "cos_bucket_region" + } + description = "%s" + tags = "FIXME" + agent_metadata { + name = "purpose" + value = ["git", "terraform", "ansible"] + } + agent_inputs { + name = "name" + value = "value" + use_default = true + metadata { + type = "boolean" + aliases = [ "aliases" ] + description = "description" + cloud_data_type = "cloud_data_type" + default_value = "default_value" + link_status = "normal" + secure = true + immutable = true + hidden = true + required = true + options = [ "options" ] + min_value = 1 + max_value = 1 + min_length = 1 + max_length = 1 + matches = "matches" + position = 1 + group_by = "group_by" + source = "source" + } + link = "link" + } + user_state { + state = "enable" + set_by = "set_by" + set_at = "2021-01-31T09:44:12Z" + } + agent_kpi { + availability_indicator = "available" + lifecycle_indicator = "consistent" + percent_usage_indicator = "percent_usage_indicator" + application_indicators = [ null ] + infra_indicators = [ null ] + } + } + + data "ibm_schematics_agent" "schematics_agent_instance" { + agent_id = ibm_schematics_agent.schematics_agent_instance.id + } + `, agentDataName, agentDataVersion, agentDataSchematicsLocation, agentDataAgentLocation, agentDataDescription) +} diff --git a/ibm/service/schematics/data_source_ibm_schematics_agents.go b/ibm/service/schematics/data_source_ibm_schematics_agents.go new file mode 100644 index 0000000000..2b37171461 --- /dev/null +++ b/ibm/service/schematics/data_source_ibm_schematics_agents.go @@ -0,0 +1,363 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package schematics + +import ( + "context" + "fmt" + "log" + "time" + + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + "github.com/IBM/schematics-go-sdk/schematicsv1" +) + +func DataSourceIbmSchematicsAgents() *schema.Resource { + return &schema.Resource{ + ReadContext: dataSourceIbmSchematicsAgentsRead, + + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The name of the agent (must be unique, for an account).", + }, + "total_count": &schema.Schema{ + Type: schema.TypeInt, + Computed: true, + Description: "The total number of records.", + }, + "limit": &schema.Schema{ + Type: schema.TypeInt, + Computed: true, + Description: "The number of records returned.", + }, + "offset": &schema.Schema{ + Type: schema.TypeInt, + Computed: true, + Description: "The skipped number of records.", + }, + "agents": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The list of agents in the account.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The name of the agent (must be unique, for an account).", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Agent description.", + }, + "resource_group": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The resource-group name for the agent. By default, Agent will be registered in Default Resource Group.", + }, + "tags": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "Tags for the agent.", + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "agent_location": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The location where agent is deployed in the user environment.", + }, + "location": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics.", + }, + "profile_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The IAM trusted profile id, used by the Agent instance.", + }, + "agent_crn": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The Agent crn, obtained from the Schematics Agent deployment configuration.", + }, + "id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The Agent registration id.", + }, + "registered_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The Agent registration date-time.", + }, + "registered_by": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The email address of an user who registered the Agent.", + }, + "updated_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The Agent registration updation time.", + }, + "updated_by": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Email address of user who updated the Agent registration.", + }, + "user_state": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "User defined status of the agent.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "state": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "User-defined states * `enable` Agent is enabled by the user. * `disable` Agent is disbaled by the user.", + }, + "set_by": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Name of the User who set the state of the Object.", + }, + "set_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "When the User who set the state of the Object.", + }, + }, + }, + }, + "connection_state": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "Connection status of the agent.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "state": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Agent Connection Status * `Connected` When Schematics is able to connect to the agent. * `Disconnected` When Schematics is able not connect to the agent.", + }, + "checked_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "When the connection state is modified.", + }, + }, + }, + }, + "system_state": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "Computed state of the agent.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "state": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Agent Status.", + }, + "message": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The Agent status message.", + }, + }, + }, + }, + }, + }, + }, + }, + } +} + +func dataSourceIbmSchematicsAgentsRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + schematicsClient, err := meta.(conns.ClientSession).SchematicsV1() + if err != nil { + return diag.FromErr(err) + } + + listAgentOptions := &schematicsv1.ListAgentOptions{} + + agentList, response, err := schematicsClient.ListAgentWithContext(context, listAgentOptions) + if err != nil { + log.Printf("[DEBUG] ListAgentWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("ListAgentWithContext failed %s\n%s", err, response)) + } + + // Use the provided filter argument and construct a new list with only the requested resource(s) + var matchAgents []schematicsv1.Agent + var name string + var suppliedFilter bool + + if v, ok := d.GetOk("name"); ok { + name = v.(string) + suppliedFilter = true + for _, data := range agentList.Agents { + if *data.Name == name { + matchAgents = append(matchAgents, data) + } + } + } else { + matchAgents = agentList.Agents + } + agentList.Agents = matchAgents + + if suppliedFilter { + if len(agentList.Agents) == 0 { + log.Printf("[DEBUG] no Agents found with name %s\n", name) + // return diag.FromErr(fmt.Errorf("no Agents found with name %s", name)) + } + d.SetId(name) + } else { + d.SetId(dataSourceIbmSchematicsAgentsID(d)) + } + + if err = d.Set("total_count", flex.IntValue(agentList.TotalCount)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting total_count: %s", err)) + } + + if err = d.Set("limit", flex.IntValue(agentList.Limit)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting limit: %s", err)) + } + + if err = d.Set("offset", flex.IntValue(agentList.Offset)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting offset: %s", err)) + } + + agents := []map[string]interface{}{} + if agentList.Agents != nil { + for _, modelItem := range agentList.Agents { + modelMap, err := dataSourceIbmSchematicsAgentsAgentToMap(&modelItem) + if err != nil { + return diag.FromErr(err) + } + agents = append(agents, modelMap) + } + } + if err = d.Set("agents", agents); err != nil { + return diag.FromErr(fmt.Errorf("Error setting agents %s", err)) + } + + return nil +} + +// dataSourceIbmSchematicsAgentsID returns a reasonable ID for the list. +func dataSourceIbmSchematicsAgentsID(d *schema.ResourceData) string { + return time.Now().UTC().String() +} + +func dataSourceIbmSchematicsAgentsAgentToMap(model *schematicsv1.Agent) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.Name != nil { + modelMap["name"] = *model.Name + } + if model.Description != nil { + modelMap["description"] = *model.Description + } + if model.ResourceGroup != nil { + modelMap["resource_group"] = *model.ResourceGroup + } + if model.Tags != nil { + modelMap["tags"] = model.Tags + } + if model.AgentLocation != nil { + modelMap["agent_location"] = *model.AgentLocation + } + if model.Location != nil { + modelMap["location"] = *model.Location + } + if model.ProfileID != nil { + modelMap["profile_id"] = *model.ProfileID + } + if model.AgentCrn != nil { + modelMap["agent_crn"] = *model.AgentCrn + } + if model.ID != nil { + modelMap["id"] = *model.ID + } + if model.RegisteredAt != nil { + modelMap["registered_at"] = model.RegisteredAt.String() + } + if model.RegisteredBy != nil { + modelMap["registered_by"] = *model.RegisteredBy + } + if model.UpdatedAt != nil { + modelMap["updated_at"] = model.UpdatedAt.String() + } + if model.UpdatedBy != nil { + modelMap["updated_by"] = *model.UpdatedBy + } + if model.UserState != nil { + userStateMap, err := dataSourceIbmSchematicsAgentsAgentUserStateToMap(model.UserState) + if err != nil { + return modelMap, err + } + modelMap["user_state"] = []map[string]interface{}{userStateMap} + } + if model.ConnectionState != nil { + connectionStateMap, err := dataSourceIbmSchematicsAgentsConnectionStateToMap(model.ConnectionState) + if err != nil { + return modelMap, err + } + modelMap["connection_state"] = []map[string]interface{}{connectionStateMap} + } + if model.SystemState != nil { + systemStateMap, err := dataSourceIbmSchematicsAgentsAgentSystemStateToMap(model.SystemState) + if err != nil { + return modelMap, err + } + modelMap["system_state"] = []map[string]interface{}{systemStateMap} + } + return modelMap, nil +} + +func dataSourceIbmSchematicsAgentsAgentUserStateToMap(model *schematicsv1.AgentUserState) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.State != nil { + modelMap["state"] = *model.State + } + if model.SetBy != nil { + modelMap["set_by"] = *model.SetBy + } + if model.SetAt != nil { + modelMap["set_at"] = model.SetAt.String() + } + return modelMap, nil +} + +func dataSourceIbmSchematicsAgentsConnectionStateToMap(model *schematicsv1.ConnectionState) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.State != nil { + modelMap["state"] = *model.State + } + if model.CheckedAt != nil { + modelMap["checked_at"] = model.CheckedAt.String() + } + return modelMap, nil +} + +func dataSourceIbmSchematicsAgentsAgentSystemStateToMap(model *schematicsv1.AgentSystemState) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.State != nil { + modelMap["state"] = *model.State + } + if model.Message != nil { + modelMap["message"] = *model.Message + } + return modelMap, nil +} diff --git a/ibm/service/schematics/data_source_ibm_schematics_agents_test.go b/ibm/service/schematics/data_source_ibm_schematics_agents_test.go new file mode 100644 index 0000000000..ea9b65b48a --- /dev/null +++ b/ibm/service/schematics/data_source_ibm_schematics_agents_test.go @@ -0,0 +1,36 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package schematics_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" +) + +func TestAccIbmSchematicsAgentsDataSourceBasic(t *testing.T) { + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmSchematicsAgentsDataSourceConfigBasic(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("data.ibm_schematics_agents.schematics_agents_instance", "id"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_agents.schematics_agents_instance", "offset"), + ), + }, + }, + }) +} + +func testAccCheckIbmSchematicsAgentsDataSourceConfigBasic() string { + return fmt.Sprintf(` + data "ibm_schematics_agents" "schematics_agents_instance" { + } + `) +} diff --git a/ibm/service/schematics/data_source_ibm_schematics_policies.go b/ibm/service/schematics/data_source_ibm_schematics_policies.go new file mode 100644 index 0000000000..7cfe407d0e --- /dev/null +++ b/ibm/service/schematics/data_source_ibm_schematics_policies.go @@ -0,0 +1,283 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package schematics + +import ( + "context" + "fmt" + "log" + "time" + + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + "github.com/IBM/schematics-go-sdk/schematicsv1" +) + +func DataSourceIbmSchematicsPolicies() *schema.Resource { + return &schema.Resource{ + ReadContext: dataSourceIbmSchematicsPoliciesRead, + + Schema: map[string]*schema.Schema{ + "policy_kind": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "Policy kind or categories for managing and deriving policy decision * `agent_assignment_policy` Agent assignment policy for job execution.", + }, + "total_count": &schema.Schema{ + Type: schema.TypeInt, + Computed: true, + Description: "The total number of policy records.", + }, + "limit": &schema.Schema{ + Type: schema.TypeInt, + Computed: true, + Description: "The number of policy records returned.", + }, + "offset": &schema.Schema{ + Type: schema.TypeInt, + Computed: true, + Description: "The skipped number of policy records.", + }, + "policies": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The list of Schematics policies.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The name of Schematics customization policy.", + }, + "id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The system generated Policy Id.", + }, + "crn": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The policy CRN.", + }, + "account": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The Account id.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The description of Schematics customization policy.", + }, + "resource_group": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Resource-group name for the Policy. By default, Policy will be created in Default Resource Group.", + }, + "tags": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "Tags for the Schematics customization policy.", + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "location": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics.", + }, + "state": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "User defined status of the Schematics object.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "state": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "User-defined states * `draft` Object can be modified; can be used by Jobs run by the author, during execution * `live` Object can be modified; can be used by Jobs during execution * `locked` Object cannot be modified; can be used by Jobs during execution * `disable` Object can be modified. cannot be used by Jobs during execution.", + }, + "set_by": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Name of the User who set the state of the Object.", + }, + "set_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "When the User who set the state of the Object.", + }, + }, + }, + }, + "policy_kind": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Policy kind or categories for managing and deriving policy decision * `agent_assignment_policy` Agent assignment policy for job execution.", + }, + "created_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The policy creation time.", + }, + "created_by": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The user who created the Policy.", + }, + "updated_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The policy updation time.", + }, + }, + }, + }, + }, + } +} + +func dataSourceIbmSchematicsPoliciesRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + schematicsClient, err := meta.(conns.ClientSession).SchematicsV1() + if err != nil { + return diag.FromErr(err) + } + + listPolicyOptions := &schematicsv1.ListPolicyOptions{} + + policyList, response, err := schematicsClient.ListPolicyWithContext(context, listPolicyOptions) + if err != nil { + log.Printf("[DEBUG] ListPolicyWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("ListPolicyWithContext failed %s\n%s", err, response)) + } + + // Use the provided filter argument and construct a new list with only the requested resource(s) + var matchPolicies []schematicsv1.PolicyLite + var policyKind string + var suppliedFilter bool + + if v, ok := d.GetOk("policy_kind"); ok { + policyKind = v.(string) + suppliedFilter = true + for _, data := range policyList.Policies { + if data.PolicyKind != nil { + if *data.PolicyKind == policyKind { + matchPolicies = append(matchPolicies, data) + } + } + } + } else { + matchPolicies = policyList.Policies + } + policyList.Policies = matchPolicies + + if suppliedFilter { + if len(policyList.Policies) == 0 { + log.Printf("[DEBUG] no Policies found with policyKind %s\n", policyKind) + // return diag.FromErr(fmt.Errorf("no Policies found with policyKind %s", policyKind)) + } + d.SetId(policyKind) + } else { + d.SetId(dataSourceIbmSchematicsPoliciesID(d)) + } + + if err = d.Set("total_count", flex.IntValue(policyList.TotalCount)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting total_count: %s", err)) + } + + if err = d.Set("limit", flex.IntValue(policyList.Limit)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting limit: %s", err)) + } + + if err = d.Set("offset", flex.IntValue(policyList.Offset)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting offset: %s", err)) + } + + policies := []map[string]interface{}{} + if policyList.Policies != nil { + for _, modelItem := range policyList.Policies { + modelMap, err := dataSourceIbmSchematicsPoliciesPolicyLiteToMap(&modelItem) + if err != nil { + return diag.FromErr(err) + } + policies = append(policies, modelMap) + } + } + if err = d.Set("policies", policies); err != nil { + return diag.FromErr(fmt.Errorf("Error setting policies %s", err)) + } + + return nil +} + +// dataSourceIbmSchematicsPoliciesID returns a reasonable ID for the list. +func dataSourceIbmSchematicsPoliciesID(d *schema.ResourceData) string { + return time.Now().UTC().String() +} + +func dataSourceIbmSchematicsPoliciesPolicyLiteToMap(model *schematicsv1.PolicyLite) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.Name != nil { + modelMap["name"] = *model.Name + } + if model.ID != nil { + modelMap["id"] = *model.ID + } + if model.Crn != nil { + modelMap["crn"] = *model.Crn + } + if model.Account != nil { + modelMap["account"] = *model.Account + } + if model.Description != nil { + modelMap["description"] = *model.Description + } + if model.ResourceGroup != nil { + modelMap["resource_group"] = *model.ResourceGroup + } + if model.Tags != nil { + modelMap["tags"] = model.Tags + } + if model.Location != nil { + modelMap["location"] = *model.Location + } + if model.State != nil { + stateMap, err := dataSourceIbmSchematicsPoliciesUserStateToMap(model.State) + if err != nil { + return modelMap, err + } + modelMap["state"] = []map[string]interface{}{stateMap} + } + if model.PolicyKind != nil { + modelMap["policy_kind"] = *model.PolicyKind + } + if model.CreatedAt != nil { + modelMap["created_at"] = model.CreatedAt.String() + } + if model.CreatedBy != nil { + modelMap["created_by"] = *model.CreatedBy + } + if model.UpdatedAt != nil { + modelMap["updated_at"] = model.UpdatedAt.String() + } + return modelMap, nil +} + +func dataSourceIbmSchematicsPoliciesUserStateToMap(model *schematicsv1.UserState) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.State != nil { + modelMap["state"] = *model.State + } + if model.SetBy != nil { + modelMap["set_by"] = *model.SetBy + } + if model.SetAt != nil { + modelMap["set_at"] = model.SetAt.String() + } + return modelMap, nil +} diff --git a/ibm/service/schematics/data_source_ibm_schematics_policies_test.go b/ibm/service/schematics/data_source_ibm_schematics_policies_test.go new file mode 100644 index 0000000000..a1ed441df9 --- /dev/null +++ b/ibm/service/schematics/data_source_ibm_schematics_policies_test.go @@ -0,0 +1,37 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package schematics_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" +) + +func TestAccIbmSchematicsPoliciesDataSourceBasic(t *testing.T) { + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmSchematicsPoliciesDataSourceConfigBasic(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("data.ibm_schematics_policies.schematics_policies_instance", "id"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_policies.schematics_policies_instance", "offset"), + ), + }, + }, + }) +} + +func testAccCheckIbmSchematicsPoliciesDataSourceConfigBasic() string { + return fmt.Sprintf(` + data "ibm_schematics_policies" "schematics_policies_instance" { + policy_kind = "agent_assignment_policy" + } + `) +} diff --git a/ibm/service/schematics/data_source_ibm_schematics_policy.go b/ibm/service/schematics/data_source_ibm_schematics_policy.go new file mode 100644 index 0000000000..51b2c40256 --- /dev/null +++ b/ibm/service/schematics/data_source_ibm_schematics_policy.go @@ -0,0 +1,479 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package schematics + +import ( + "context" + "fmt" + "log" + + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + "github.com/IBM/schematics-go-sdk/schematicsv1" +) + +func DataSourceIbmSchematicsPolicy() *schema.Resource { + return &schema.Resource{ + ReadContext: dataSourceIbmSchematicsPolicyRead, + + Schema: map[string]*schema.Schema{ + "policy_id": &schema.Schema{ + Type: schema.TypeString, + Required: true, + Description: "ID to get the details of policy.", + }, + "name": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Name of Schematics customization policy.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The description of Schematics customization policy.", + }, + "resource_group": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The resource group name for the policy. By default, Policy will be created in `default` Resource Group.", + }, + "tags": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "Tags for the Schematics customization policy.", + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "location": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics.", + }, + "state": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "User defined status of the Schematics object.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "state": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "User-defined states * `draft` Object can be modified; can be used by Jobs run by the author, during execution * `live` Object can be modified; can be used by Jobs during execution * `locked` Object cannot be modified; can be used by Jobs during execution * `disable` Object can be modified. cannot be used by Jobs during execution.", + }, + "set_by": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Name of the User who set the state of the Object.", + }, + "set_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "When the User who set the state of the Object.", + }, + }, + }, + }, + "kind": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Policy kind or categories for managing and deriving policy decision * `agent_assignment_policy` Agent assignment policy for job execution.", + }, + "target": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The objects for the Schematics policy.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "selector_kind": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Types of schematics object selector.", + }, + "selector_ids": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "Static selectors of schematics object ids (agent, workspace, action or blueprint) for the Schematics policy.", + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "selector_scope": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "Selectors to dynamically list of schematics object ids (agent, workspace, action or blueprint) for the Schematics policy.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "kind": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Name of the Schematics automation resource.", + }, + "tags": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The tag based selector.", + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "resource_groups": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The resource group based selector.", + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "locations": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The location based selector.", + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + }, + }, + }, + }, + }, + }, + "parameter": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The parameter to tune the Schematics policy.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "agent_assignment_policy_parameter": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "Parameters for the `agent_assignment_policy`.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "selector_kind": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Types of schematics object selector.", + }, + "selector_ids": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The static selectors of schematics object ids (workspace, action or blueprint) for the Schematics policy.", + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "selector_scope": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The selectors to dynamically list of schematics object ids (workspace, action or blueprint) for the Schematics policy.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "kind": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Name of the Schematics automation resource.", + }, + "tags": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The tag based selector.", + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "resource_groups": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The resource group based selector.", + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "locations": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "The location based selector.", + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + "id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The system generated policy Id.", + }, + "crn": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The policy CRN.", + }, + "account": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The Account id.", + }, + "scoped_resources": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "List of scoped Schematics resources targeted by the policy.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "kind": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Name of the Schematics automation resource.", + }, + "id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Schematics resource Id.", + }, + }, + }, + }, + "created_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The policy creation time.", + }, + "created_by": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The user who created the policy.", + }, + "updated_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The policy updation time.", + }, + }, + } +} + +func dataSourceIbmSchematicsPolicyRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + schematicsClient, err := meta.(conns.ClientSession).SchematicsV1() + if err != nil { + return diag.FromErr(err) + } + + getPolicyOptions := &schematicsv1.GetPolicyOptions{} + + getPolicyOptions.SetPolicyID(d.Get("policy_id").(string)) + + policy, response, err := schematicsClient.GetPolicyWithContext(context, getPolicyOptions) + if err != nil { + log.Printf("[DEBUG] GetPolicyWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("GetPolicyWithContext failed %s\n%s", err, response)) + } + + d.SetId(fmt.Sprintf("%s", *getPolicyOptions.PolicyID)) + + if err = d.Set("name", policy.Name); err != nil { + return diag.FromErr(fmt.Errorf("Error setting name: %s", err)) + } + + if err = d.Set("description", policy.Description); err != nil { + return diag.FromErr(fmt.Errorf("Error setting description: %s", err)) + } + + if err = d.Set("resource_group", policy.ResourceGroup); err != nil { + return diag.FromErr(fmt.Errorf("Error setting resource_group: %s", err)) + } + + if err = d.Set("location", policy.Location); err != nil { + return diag.FromErr(fmt.Errorf("Error setting location: %s", err)) + } + + state := []map[string]interface{}{} + if policy.State != nil { + modelMap, err := dataSourceIbmSchematicsPolicyUserStateToMap(policy.State) + if err != nil { + return diag.FromErr(err) + } + state = append(state, modelMap) + } + if err = d.Set("state", state); err != nil { + return diag.FromErr(fmt.Errorf("Error setting state %s", err)) + } + + if err = d.Set("kind", policy.Kind); err != nil { + return diag.FromErr(fmt.Errorf("Error setting kind: %s", err)) + } + + target := []map[string]interface{}{} + if policy.Target != nil { + modelMap, err := dataSourceIbmSchematicsPolicyPolicyObjectsToMap(policy.Target) + if err != nil { + return diag.FromErr(err) + } + target = append(target, modelMap) + } + if err = d.Set("target", target); err != nil { + return diag.FromErr(fmt.Errorf("Error setting target %s", err)) + } + + parameter := []map[string]interface{}{} + if policy.Parameter != nil { + modelMap, err := dataSourceIbmSchematicsPolicyPolicyParameterToMap(policy.Parameter) + if err != nil { + return diag.FromErr(err) + } + parameter = append(parameter, modelMap) + } + if err = d.Set("parameter", parameter); err != nil { + return diag.FromErr(fmt.Errorf("Error setting parameter %s", err)) + } + + if err = d.Set("id", policy.ID); err != nil { + return diag.FromErr(fmt.Errorf("Error setting id: %s", err)) + } + + if err = d.Set("crn", policy.Crn); err != nil { + return diag.FromErr(fmt.Errorf("Error setting crn: %s", err)) + } + + if err = d.Set("account", policy.Account); err != nil { + return diag.FromErr(fmt.Errorf("Error setting account: %s", err)) + } + + scopedResources := []map[string]interface{}{} + if policy.ScopedResources != nil { + for _, modelItem := range policy.ScopedResources { + modelMap, err := dataSourceIbmSchematicsPolicyScopedResourceToMap(&modelItem) + if err != nil { + return diag.FromErr(err) + } + scopedResources = append(scopedResources, modelMap) + } + } + if err = d.Set("scoped_resources", scopedResources); err != nil { + return diag.FromErr(fmt.Errorf("Error setting scoped_resources %s", err)) + } + + if err = d.Set("created_at", flex.DateTimeToString(policy.CreatedAt)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting created_at: %s", err)) + } + + if err = d.Set("created_by", policy.CreatedBy); err != nil { + return diag.FromErr(fmt.Errorf("Error setting created_by: %s", err)) + } + + if err = d.Set("updated_at", flex.DateTimeToString(policy.UpdatedAt)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting updated_at: %s", err)) + } + + return nil +} + +func dataSourceIbmSchematicsPolicyUserStateToMap(model *schematicsv1.UserState) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.State != nil { + modelMap["state"] = *model.State + } + if model.SetBy != nil { + modelMap["set_by"] = *model.SetBy + } + if model.SetAt != nil { + modelMap["set_at"] = model.SetAt.String() + } + return modelMap, nil +} + +func dataSourceIbmSchematicsPolicyPolicyObjectsToMap(model *schematicsv1.PolicyObjects) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.SelectorKind != nil { + modelMap["selector_kind"] = *model.SelectorKind + } + if model.SelectorIds != nil { + modelMap["selector_ids"] = model.SelectorIds + } + if model.SelectorScope != nil { + selectorScope := []map[string]interface{}{} + for _, selectorScopeItem := range model.SelectorScope { + selectorScopeItemMap, err := dataSourceIbmSchematicsPolicyPolicyObjectSelectorToMap(&selectorScopeItem) + if err != nil { + return modelMap, err + } + selectorScope = append(selectorScope, selectorScopeItemMap) + } + modelMap["selector_scope"] = selectorScope + } + return modelMap, nil +} + +func dataSourceIbmSchematicsPolicyPolicyObjectSelectorToMap(model *schematicsv1.PolicyObjectSelector) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.Kind != nil { + modelMap["kind"] = *model.Kind + } + if model.Tags != nil { + modelMap["tags"] = model.Tags + } + if model.ResourceGroups != nil { + modelMap["resource_groups"] = model.ResourceGroups + } + if model.Locations != nil { + modelMap["locations"] = model.Locations + } + return modelMap, nil +} + +func dataSourceIbmSchematicsPolicyPolicyParameterToMap(model *schematicsv1.PolicyParameter) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.AgentAssignmentPolicyParameter != nil { + agentAssignmentPolicyParameterMap, err := dataSourceIbmSchematicsPolicyAgentAssignmentPolicyParameterToMap(model.AgentAssignmentPolicyParameter) + if err != nil { + return modelMap, err + } + modelMap["agent_assignment_policy_parameter"] = []map[string]interface{}{agentAssignmentPolicyParameterMap} + } + return modelMap, nil +} + +func dataSourceIbmSchematicsPolicyAgentAssignmentPolicyParameterToMap(model *schematicsv1.AgentAssignmentPolicyParameter) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.SelectorKind != nil { + modelMap["selector_kind"] = *model.SelectorKind + } + if model.SelectorIds != nil { + modelMap["selector_ids"] = model.SelectorIds + } + if model.SelectorScope != nil { + selectorScope := []map[string]interface{}{} + for _, selectorScopeItem := range model.SelectorScope { + selectorScopeItemMap, err := dataSourceIbmSchematicsPolicyPolicyObjectSelectorToMap(&selectorScopeItem) + if err != nil { + return modelMap, err + } + selectorScope = append(selectorScope, selectorScopeItemMap) + } + modelMap["selector_scope"] = selectorScope + } + return modelMap, nil +} + +func dataSourceIbmSchematicsPolicyScopedResourceToMap(model *schematicsv1.ScopedResource) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.Kind != nil { + modelMap["kind"] = *model.Kind + } + if model.ID != nil { + modelMap["id"] = *model.ID + } + return modelMap, nil +} diff --git a/ibm/service/schematics/data_source_ibm_schematics_policy_test.go b/ibm/service/schematics/data_source_ibm_schematics_policy_test.go new file mode 100644 index 0000000000..a31976aa94 --- /dev/null +++ b/ibm/service/schematics/data_source_ibm_schematics_policy_test.go @@ -0,0 +1,133 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package schematics_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" +) + +func TestAccIbmSchematicsPolicyDataSourceBasic(t *testing.T) { + policyName := fmt.Sprintf("tf_name_%d", acctest.RandIntRange(10, 100)) + policyKind := "agent_assignment_policy" + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmSchematicsPolicyDataSourceConfigBasic(policyName, policyKind), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "id"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "policy_id"), + ), + }, + }, + }) +} + +func TestAccIbmSchematicsPolicyDataSourceAllArgs(t *testing.T) { + policyName := fmt.Sprintf("tf_name_%d", acctest.RandIntRange(10, 100)) + policyDescription := fmt.Sprintf("tf_description_%d", acctest.RandIntRange(10, 100)) + policyResourceGroup := fmt.Sprintf("tf_resource_group_%d", acctest.RandIntRange(10, 100)) + policyLocation := "us-south" + policyKind := "agent_assignment_policy" + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmSchematicsPolicyDataSourceConfig(policyName, policyDescription, policyResourceGroup, policyLocation, policyKind), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "id"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "policy_id"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "name"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "description"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "resource_group"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "tags.#"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "location"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "state.#"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "kind"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "target.#"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "parameter.#"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "id"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "crn"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "account"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "scoped_resources.#"), + resource.TestCheckResourceAttr("data.ibm_schematics_policy.schematics_policy_instance", "scoped_resources.0.kind", policyKind), + resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "scoped_resources.0.id"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "created_at"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "created_by"), + resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "updated_at"), + ), + }, + }, + }) +} + +func testAccCheckIbmSchematicsPolicyDataSourceConfigBasic(policyName, policyKind string) string { + return fmt.Sprintf(` + resource "ibm_schematics_policy" "schematics_policy_instance" { + name = "%s" + kind = "%s" + } + + data "ibm_schematics_policy" "schematics_policy_instance" { + policy_id = ibm_schematics_policy.schematics_policy_instance.id + } + `, policyName, policyKind) +} + +func testAccCheckIbmSchematicsPolicyDataSourceConfig(policyName string, policyDescription string, policyResourceGroup string, policyLocation string, policyKind string) string { + return fmt.Sprintf(` + resource "ibm_schematics_policy" "schematics_policy_instance" { + name = "%s" + description = "%s" + resource_group = "%s" + tags = "FIXME" + location = "%s" + state { + state = "draft" + set_by = "set_by" + set_at = "2021-01-31T09:44:12Z" + } + kind = "%s" + target { + selector_kind = "ids" + selector_ids = [ "selector_ids" ] + selector_scope { + kind = "workspace" + tags = [ "tags" ] + resource_groups = [ "resource_groups" ] + locations = [ "us-south" ] + } + } + parameter { + agent_assignment_policy_parameter { + selector_kind = "ids" + selector_ids = [ "selector_ids" ] + selector_scope { + kind = "workspace" + tags = [ "tags" ] + resource_groups = [ "resource_groups" ] + locations = [ "us-south" ] + } + } + } + scoped_resources { + kind = "workspace" + id = "id" + } + } + + data "ibm_schematics_policy" "schematics_policy_instance" { + policy_id = ibm_schematics_policy.schematics_policy_instance.id + } + `, policyName, policyDescription, policyResourceGroup, policyLocation, policyKind) +} diff --git a/ibm/service/schematics/data_source_ibm_schematics_workspace.go b/ibm/service/schematics/data_source_ibm_schematics_workspace.go index d6855d253f..bdd9f28d1f 100644 --- a/ibm/service/schematics/data_source_ibm_schematics_workspace.go +++ b/ibm/service/schematics/data_source_ibm_schematics_workspace.go @@ -85,9 +85,31 @@ func DataSourceIBMSchematicsWorkspace() *schema.Resource { Computed: true, Description: "The version of the software template that you chose to install from the IBM Cloud catalog.", }, - }, - }, - }, + "service_extensions": { + Type: schema.TypeList, + Computed: true, + Description: "List of service data", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "name": { + Type: schema.TypeString, + Computed: true, + Description: "Name of the Service Data.", + }, + "value": { + Type: schema.TypeString, + Computed: true, + Description: "Value of the Service Data.", + }, + "type": { + Type: schema.TypeString, + Computed: true, + Description: "Type of the value string, int, bool.", + }, + }, + }, + }, + }}}, "created_at": { Type: schema.TypeString, Computed: true, @@ -300,6 +322,11 @@ func DataSourceIBMSchematicsWorkspace() *schema.Resource { Description: "A list of input variables that are associated with the workspace.", Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Name of the variable.", + }, "type": &schema.Schema{ Type: schema.TypeString, Computed: true, @@ -323,7 +350,7 @@ func DataSourceIBMSchematicsWorkspace() *schema.Resource { Computed: true, Description: "Cloud data type of the variable. eg. resource_group_id, region, vpc_id.", }, - "default_value": &schema.Schema{ + "default": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "Default value for the variable only if the override value is not specified.", @@ -401,6 +428,58 @@ func DataSourceIBMSchematicsWorkspace() *schema.Resource { Computed: true, Description: "The source of this meta-data.", }, + "metadata": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "A list of input variables that are associated with the workspace.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "default_value": { + Type: schema.TypeString, + Computed: true, + Description: "Default value for the variable only if the override value is not specified.", + }, + "description": { + Type: schema.TypeString, + Computed: true, + Description: "The description of the meta data.", + }, + "hidden": { + Type: schema.TypeBool, + Computed: true, + Description: "If **true**, the variable is not displayed on UI or Command line.", + }, + "required": { + Type: schema.TypeBool, + Computed: true, + Description: "If the variable required?.", + }, + "options": { + Type: schema.TypeList, + Computed: true, + Description: "The list of possible values for this variable. If type is **integer** or **date**, then the array of string is converted to array of integers or date during the runtime.", + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "type": { + Type: schema.TypeString, + Computed: true, + Description: "Type of the variable.", + }, + "secure": { + Type: schema.TypeBool, + Computed: true, + Description: "If set to `true`, the value of your input variable is protected and not returned in your API response.", + }, + }, + }, + }, + "value": { + Type: schema.TypeString, + Computed: true, + Description: "The value of the variable. Applicable for the integer type.", + }, }, }, }, @@ -670,8 +749,9 @@ func dataSourceIBMSchematicsWorkspaceRead(context context.Context, d *schema.Res if err = d.Set("template_values", templateData[0]["values"]); err != nil { return diag.FromErr(fmt.Errorf("[ERROR] Error reading values: %s", err)) } - if err = d.Set("template_values_metadata", templateData[0]["values_metadata"]); err != nil { - return diag.FromErr(fmt.Errorf("[ERROR] Error reading values_metadata: %s", err)) + err = d.Set("template_values_metadata", dataSourceWorkspaceResponseFlattenValuesMetadata(templateData[0]["values_metadata"])) + if err != nil { + fmt.Println(fmt.Errorf("[ERROR] Error reading template_values_metadata %s", err)) } if err = d.Set("template_inputs", templateData[0]["variablestore"]); err != nil { return diag.FromErr(fmt.Errorf("[ERROR] Error reading variablestore: %s", err)) @@ -799,10 +879,31 @@ func dataSourceWorkspaceResponseCatalogRefToMap(catalogRefItem schematicsv1.Cata if catalogRefItem.OfferingVersion != nil { catalogRefMap["offering_version"] = catalogRefItem.OfferingVersion } - + if catalogRefItem.ServiceExtensions != nil { + serviceExtensionsList := []map[string]interface{}{} + for _, serviceExtensionsItem := range catalogRefItem.ServiceExtensions { + serviceExtensionsList = append(serviceExtensionsList, dataSourceWorkspaceResponseCatalogRefServiceExtensionsToMap(serviceExtensionsItem)) + } + catalogRefMap["service_extensions"] = serviceExtensionsList + } return catalogRefMap } +func dataSourceWorkspaceResponseCatalogRefServiceExtensionsToMap(serviceExtensionsItem schematicsv1.ServiceExtensions) (serviceExtensionMap map[string]interface{}) { + serviceExtensionMap = map[string]interface{}{} + + if serviceExtensionsItem.Name != nil { + serviceExtensionMap["name"] = *serviceExtensionsItem.Name + } + if serviceExtensionsItem.Type != nil { + serviceExtensionMap["type"] = serviceExtensionsItem.Type + } + if serviceExtensionsItem.Value != nil { + serviceExtensionMap["value"] = *serviceExtensionsItem.Value + } + return serviceExtensionMap +} + func dataSourceWorkspaceResponseFlattenRuntimeData(result []schematicsv1.TemplateRunTimeDataResponse) (runtimeData []map[string]interface{}) { for _, runtimeDataItem := range result { runtimeData = append(runtimeData, dataSourceWorkspaceResponseRuntimeDataToMap(runtimeDataItem)) @@ -915,11 +1016,11 @@ func dataSourceWorkspaceResponseTemplateDataToMap(templateDataItem schematicsv1. templateDataMap["values"] = templateDataItem.Values } if templateDataItem.ValuesMetadata != nil { - valuesMetadata := []map[string]interface{}{} + valuesMetadataList := []interface{}{} for _, valuesMetadataItem := range templateDataItem.ValuesMetadata { - valuesMetadata = append(valuesMetadata, valuesMetadataItem) + valuesMetadataList = append(valuesMetadataList, valuesMetadataItem) } - templateDataMap["values_metadata"] = valuesMetadata + templateDataMap["values_metadata"] = valuesMetadataList } if templateDataItem.ValuesURL != nil { templateDataMap["values_url"] = templateDataItem.ValuesURL @@ -934,6 +1035,111 @@ func dataSourceWorkspaceResponseTemplateDataToMap(templateDataItem schematicsv1. return templateDataMap } + +func dataSourceWorkspaceResponseFlattenValuesMetadata(result interface{}) (valuesMetadata []map[string]interface{}) { + if result != nil { + for _, res := range result.([]interface{}) { + valuesMetadataMap := dataSourceWorkspaceResponseValuesMetadataToMap(res.(map[string]interface{})) + valuesMetadata = append(valuesMetadata, valuesMetadataMap) + } + } + return valuesMetadata +} + +func dataSourceWorkspaceResponseValuesMetadataToMap(valuesMetadataItem map[string]interface{}) map[string]interface{} { + valuesMetadataMap := map[string]interface{}{} + + if valuesMetadataItem["name"] != nil { + valuesMetadataMap["name"] = valuesMetadataItem["name"].(string) + } + if valuesMetadataItem["type"] != nil { + valuesMetadataMap["type"] = valuesMetadataItem["type"].(string) + } + + if valuesMetadataItem["aliases"] != nil { + valuesMetadataMap["aliases"] = valuesMetadataItem["aliases"] + } + + if valuesMetadataItem["description"] != nil { + valuesMetadataMap["description"] = valuesMetadataItem["description"].(string) + } + + if valuesMetadataItem["cloud_data_type"] != nil { + valuesMetadataMap["cloud_data_type"] = valuesMetadataItem["cloud_data_type"].(string) + } + + if valuesMetadataItem["default"] != nil { + valuesMetadataMap["default"] = valuesMetadataItem["default"].(string) + } + + if valuesMetadataItem["link_status"] != nil { + valuesMetadataMap["link_status"] = valuesMetadataItem["link_status"].(string) + } + + if valuesMetadataItem["secure"] != nil { + valuesMetadataMap["secure"] = valuesMetadataItem["secure"] + } + + if valuesMetadataItem["immutable"] != nil { + valuesMetadataMap["immutable"] = valuesMetadataItem["immutable"] + } + + if valuesMetadataItem["hidden"] != nil { + valuesMetadataMap["hidden"] = valuesMetadataItem["hidden"] + } + + if valuesMetadataItem["required"] != nil { + valuesMetadataMap["required"] = valuesMetadataItem["required"] + } + + if valuesMetadataItem["options"] != nil { + valuesMetadataMap["options"] = valuesMetadataItem["options"] + } + + if valuesMetadataItem["min_value"] != nil { + valuesMetadataMap["min_value"] = valuesMetadataItem["min_value"] + } + + if valuesMetadataItem["max_value"] != nil { + valuesMetadataMap["max_value"] = valuesMetadataItem["max_value"] + } + + if valuesMetadataItem["min_length"] != nil { + valuesMetadataMap["min_length"] = valuesMetadataItem["min_length"] + } + + if valuesMetadataItem["max_length"] != nil { + valuesMetadataMap["max_length"] = valuesMetadataItem["max_length"] + } + + if valuesMetadataItem["matches"] != nil { + valuesMetadataMap["matches"] = valuesMetadataItem["matches"].(string) + } + + if valuesMetadataItem["position"] != nil { + valuesMetadataMap["position"] = valuesMetadataItem["position"] + } + + if valuesMetadataItem["group_by"] != nil { + valuesMetadataMap["group_by"] = valuesMetadataItem["group_by"].(string) + } + + if valuesMetadataItem["source"] != nil { + valuesMetadataMap["source"] = valuesMetadataItem["source"].(string) + } + + if valuesMetadataItem["metadata"] != nil { + metadataList := []map[string]interface{}{} + + valuesMetadataMap["metadata"] = append(metadataList, valuesMetadataItem["metadata"].(map[string]interface{})) + + } + if valuesMetadataItem["value"] != nil { + valuesMetadataMap["value"] = valuesMetadataItem["value"].(string) + } + + return valuesMetadataMap +} func dataSourceIbmSchematicsWorkspaceVariableMetadataToMap(model *schematicsv1.VariableMetadata) map[string]interface{} { modelMap := make(map[string]interface{}) if model.Type != nil { diff --git a/ibm/service/schematics/resource_ibm_schematics_agent.go b/ibm/service/schematics/resource_ibm_schematics_agent.go new file mode 100644 index 0000000000..edfbf33540 --- /dev/null +++ b/ibm/service/schematics/resource_ibm_schematics_agent.go @@ -0,0 +1,1332 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package schematics + +import ( + "context" + "fmt" + "log" + "time" + + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + "github.com/IBM/go-sdk-core/v5/core" + "github.com/IBM/schematics-go-sdk/schematicsv1" +) + +func ResourceIbmSchematicsAgent() *schema.Resource { + return &schema.Resource{ + CreateContext: resourceIbmSchematicsAgentCreate, + ReadContext: resourceIbmSchematicsAgentRead, + UpdateContext: resourceIbmSchematicsAgentUpdate, + DeleteContext: resourceIbmSchematicsAgentDelete, + Importer: &schema.ResourceImporter{}, + Timeouts: &schema.ResourceTimeout{ + Create: schema.DefaultTimeout(10 * time.Minute), + Update: schema.DefaultTimeout(10 * time.Minute), + Delete: schema.DefaultTimeout(10 * time.Minute), + }, + + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Required: true, + Description: "The name of the agent (must be unique, for an account).", + }, + "resource_group": &schema.Schema{ + Type: schema.TypeString, + Required: true, + Description: "The resource-group name for the agent. By default, agent will be registered in Default Resource Group.", + }, + "version": &schema.Schema{ + Type: schema.TypeString, + Required: true, + Description: "Agent version.", + }, + "schematics_location": &schema.Schema{ + Type: schema.TypeString, + Required: true, + Description: "List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics.", + }, + "agent_location": &schema.Schema{ + Type: schema.TypeString, + Required: true, + Description: "The location where agent is deployed in the user environment.", + }, + "agent_infrastructure": &schema.Schema{ + Type: schema.TypeList, + MinItems: 1, + MaxItems: 1, + Required: true, + Description: "The infrastructure parameters used by the agent.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "infra_type": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "Type of target agent infrastructure.", + }, + "cluster_id": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The cluster ID where agent services will be running.", + }, + "cluster_resource_group": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The resource group of the cluster (is it required?).", + }, + "cos_instance_name": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The COS instance name to store the agent logs.", + }, + "cos_bucket_name": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The COS bucket name used to store the logs.", + }, + "cos_bucket_region": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The COS bucket region.", + }, + }, + }, + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "Agent description.", + }, + "tags": &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Description: "Tags for the agent.", + Elem: &schema.Schema{Type: schema.TypeString}, + }, + "agent_metadata": &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Description: "The metadata of an agent.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "Name of the metadata.", + }, + "value": &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Description: "Value of the metadata name.", + Elem: &schema.Schema{Type: schema.TypeString}, + }, + }, + }, + }, + "agent_inputs": &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Description: "Additional input variables for the agent.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The name of the variable. For example, `name = \"inventory username\"`.", + }, + "value": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The value for the variable or reference to the value. For example, `value = \"\"`. **Note** The SSH key should contain `\n` at the end of the key details in case of command line or API calls.", + }, + "use_default": &schema.Schema{ + Type: schema.TypeBool, + Optional: true, + Description: "True, will ignore the data in the value attribute, instead the data in metadata.default_value will be used.", + }, + "metadata": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Description: "An user editable metadata for the variables.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "type": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "Type of the variable.", + }, + "aliases": &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Description: "The list of aliases for the variable name.", + Elem: &schema.Schema{Type: schema.TypeString}, + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The description of the meta data.", + }, + "cloud_data_type": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "Cloud data type of the variable. eg. resource_group_id, region, vpc_id.", + }, + "default_value": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "Default value for the variable only if the override value is not specified.", + }, + "link_status": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The status of the link.", + }, + "secure": &schema.Schema{ + Type: schema.TypeBool, + Optional: true, + Description: "Is the variable secure or sensitive ?.", + }, + "immutable": &schema.Schema{ + Type: schema.TypeBool, + Optional: true, + Description: "Is the variable readonly ?.", + }, + "hidden": &schema.Schema{ + Type: schema.TypeBool, + Optional: true, + Description: "If **true**, the variable is not displayed on UI or Command line.", + }, + "required": &schema.Schema{ + Type: schema.TypeBool, + Optional: true, + Description: "If the variable required?.", + }, + "options": &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Description: "The list of possible values for this variable. If type is **integer** or **date**, then the array of string is converted to array of integers or date during the runtime.", + Elem: &schema.Schema{Type: schema.TypeString}, + }, + "min_value": &schema.Schema{ + Type: schema.TypeInt, + Optional: true, + Description: "The minimum value of the variable. Applicable for the integer type.", + }, + "max_value": &schema.Schema{ + Type: schema.TypeInt, + Optional: true, + Description: "The maximum value of the variable. Applicable for the integer type.", + }, + "min_length": &schema.Schema{ + Type: schema.TypeInt, + Optional: true, + Description: "The minimum length of the variable value. Applicable for the string type.", + }, + "max_length": &schema.Schema{ + Type: schema.TypeInt, + Optional: true, + Description: "The maximum length of the variable value. Applicable for the string type.", + }, + "matches": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The regex for the variable value.", + }, + "position": &schema.Schema{ + Type: schema.TypeInt, + Optional: true, + Description: "The relative position of this variable in a list.", + }, + "group_by": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The display name of the group this variable belongs to.", + }, + "source": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The source of this meta-data.", + }, + }, + }, + }, + "link": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The reference link to the variable value By default the expression points to `$self.value`.", + }, + }, + }, + }, + "user_state": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Computed: true, + Description: "User defined status of the agent.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "state": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "User-defined states * `enable` Agent is enabled by the user. * `disable` Agent is disbaled by the user.", + }, + "set_by": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Name of the User who set the state of the Object.", + }, + "set_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "When the User who set the state of the Object.", + }, + }, + }, + }, + "agent_kpi": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Computed: true, + Description: "Schematics Agent key performance indicators.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "availability_indicator": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "Overall availability indicator reported by the agent.", + }, + "lifecycle_indicator": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "Overall lifecycle indicator reported by the agents.", + }, + "percent_usage_indicator": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "Percentage usage of the agent resources.", + }, + "application_indicators": &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Computed: true, + Description: "Agent application key performance indicators.", + Elem: &schema.Schema{Type: schema.TypeMap}, + }, + "infra_indicators": &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Computed: true, + Description: "Agent infrastructure key performance indicators.", + Elem: &schema.Schema{Type: schema.TypeMap}, + }, + }, + }, + }, + "agent_crn": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The agent crn, obtained from the Schematics agent deployment configuration.", + }, + "created_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The agent creation date-time.", + }, + "creation_by": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The email address of an user who created the agent.", + }, + "updated_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The agent registration updation time.", + }, + "updated_by": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Email address of user who updated the agent registration.", + }, + "system_state": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "Computed state of the agent.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "status_code": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "Agent Status.", + }, + "status_message": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "The agent status message.", + }, + }, + }, + }, + "recent_prs_job": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "Run a pre-requisite scanner for deploying agent.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "agent_id": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "Id of the agent.", + }, + "job_id": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "Job Id.", + }, + "updated_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The agent prs job updation time.", + }, + "updated_by": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Email address of user who ran the agent prs job.", + }, + "agent_version": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Agent version.", + }, + "status_code": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "Final result of the pre-requisite scanner job.", + }, + "status_message": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "The outcome of the pre-requisite scanner job, in a formatted log string.", + }, + "log_url": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "URL to the full pre-requisite scanner job logs.", + }, + }, + }, + }, + "recent_deploy_job": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "Post-installations checks for Agent health.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "agent_id": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "Id of the agent.", + }, + "job_id": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "Job Id.", + }, + "updated_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The agent deploy job updation time.", + }, + "updated_by": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Email address of user who ran the agent deploy job.", + }, + "is_redeployed": &schema.Schema{ + Type: schema.TypeBool, + Optional: true, + Computed: true, + Description: "True, when the same version of the agent was redeployed.", + }, + "agent_version": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Agent version.", + }, + "status_code": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "Final result of the agent deployment job.", + }, + "status_message": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "The outcome of the agent deployment job, in a formatted log string.", + }, + "log_url": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "URL to the full agent deployment job logs.", + }, + }, + }, + }, + "recent_health_job": &schema.Schema{ + Type: schema.TypeList, + Computed: true, + Description: "Agent health check.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "agent_id": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "Id of the agent.", + }, + "job_id": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "Job Id.", + }, + "updated_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The agent health check job updation time.", + }, + "updated_by": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Email address of user who ran the agent health check job.", + }, + "agent_version": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Agent version.", + }, + "status_code": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "Final result of the health-check job.", + }, + "status_message": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "The outcome of the health-check job, in a formatted log string.", + }, + "log_url": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "URL to the full health-check job logs.", + }, + }, + }, + }, + }, + } +} + +func resourceIbmSchematicsAgentCreate(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + schematicsClient, err := meta.(conns.ClientSession).SchematicsV1() + if err != nil { + return diag.FromErr(err) + } + + createAgentDataOptions := &schematicsv1.CreateAgentDataOptions{ + XFeatureAgents: core.BoolPtr(true), + } + + createAgentDataOptions.SetName(d.Get("name").(string)) + createAgentDataOptions.SetResourceGroup(d.Get("resource_group").(string)) + createAgentDataOptions.SetVersion(d.Get("version").(string)) + createAgentDataOptions.SetSchematicsLocation(d.Get("schematics_location").(string)) + createAgentDataOptions.SetAgentLocation(d.Get("agent_location").(string)) + agentInfrastructureModel, err := resourceIbmSchematicsAgentMapToAgentInfrastructure(d.Get("agent_infrastructure.0").(map[string]interface{})) + if err != nil { + return diag.FromErr(err) + } + createAgentDataOptions.SetAgentInfrastructure(agentInfrastructureModel) + if _, ok := d.GetOk("description"); ok { + createAgentDataOptions.SetDescription(d.Get("description").(string)) + } + if _, ok := d.GetOk("tags"); ok { + createAgentDataOptions.SetTags(d.Get("tags").([]string)) + } + if _, ok := d.GetOk("agent_metadata"); ok { + var agentMetadata []schematicsv1.AgentMetadataInfo + for _, e := range d.Get("agent_metadata").([]interface{}) { + value := e.(map[string]interface{}) + agentMetadataItem, err := resourceIbmSchematicsAgentMapToAgentMetadataInfo(value) + if err != nil { + return diag.FromErr(err) + } + agentMetadata = append(agentMetadata, *agentMetadataItem) + } + createAgentDataOptions.SetAgentMetadata(agentMetadata) + } + if _, ok := d.GetOk("agent_inputs"); ok { + var agentInputs []schematicsv1.VariableData + for _, e := range d.Get("agent_inputs").([]interface{}) { + value := e.(map[string]interface{}) + agentInputsItem, err := resourceIbmSchematicsAgentMapToVariableData(value) + if err != nil { + return diag.FromErr(err) + } + agentInputs = append(agentInputs, *agentInputsItem) + } + createAgentDataOptions.SetAgentInputs(agentInputs) + } + if _, ok := d.GetOk("user_state"); ok { + userStateModel, err := resourceIbmSchematicsAgentMapToAgentUserState(d.Get("user_state.0").(map[string]interface{})) + if err != nil { + return diag.FromErr(err) + } + createAgentDataOptions.SetUserState(userStateModel) + } + if _, ok := d.GetOk("agent_kpi"); ok { + agentKpiModel, err := resourceIbmSchematicsAgentMapToAgentKPIData(d.Get("agent_kpi.0").(map[string]interface{})) + if err != nil { + return diag.FromErr(err) + } + createAgentDataOptions.SetAgentKpi(agentKpiModel) + } + + agentData, response, err := schematicsClient.CreateAgentDataWithContext(context, createAgentDataOptions) + if err != nil { + log.Printf("[DEBUG] CreateAgentDataWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("CreateAgentDataWithContext failed %s\n%s", err, response)) + } + + d.SetId(*agentData.ID) + + return resourceIbmSchematicsAgentRead(context, d, meta) +} + +func resourceIbmSchematicsAgentRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + schematicsClient, err := meta.(conns.ClientSession).SchematicsV1() + if err != nil { + return diag.FromErr(err) + } + + getAgentDataOptions := &schematicsv1.GetAgentDataOptions{ + XFeatureAgents: core.BoolPtr(true), + Profile: core.StringPtr("detailed"), + } + + getAgentDataOptions.SetAgentID(d.Id()) + + agentData, response, err := schematicsClient.GetAgentDataWithContext(context, getAgentDataOptions) + if err != nil { + if response != nil && response.StatusCode == 404 { + d.SetId("") + return nil + } + log.Printf("[DEBUG] GetAgentDataWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("GetAgentDataWithContext failed %s\n%s", err, response)) + } + + if err = d.Set("name", agentData.Name); err != nil { + return diag.FromErr(fmt.Errorf("Error setting name: %s", err)) + } + if err = d.Set("resource_group", agentData.ResourceGroup); err != nil { + return diag.FromErr(fmt.Errorf("Error setting resource_group: %s", err)) + } + if err = d.Set("version", agentData.Version); err != nil { + return diag.FromErr(fmt.Errorf("Error setting version: %s", err)) + } + if err = d.Set("schematics_location", agentData.SchematicsLocation); err != nil { + return diag.FromErr(fmt.Errorf("Error setting schematics_location: %s", err)) + } + if err = d.Set("agent_location", agentData.AgentLocation); err != nil { + return diag.FromErr(fmt.Errorf("Error setting agent_location: %s", err)) + } + agentInfrastructureMap, err := resourceIbmSchematicsAgentAgentInfrastructureToMap(agentData.AgentInfrastructure) + if err != nil { + return diag.FromErr(err) + } + if err = d.Set("agent_infrastructure", []map[string]interface{}{agentInfrastructureMap}); err != nil { + return diag.FromErr(fmt.Errorf("Error setting agent_infrastructure: %s", err)) + } + if err = d.Set("description", agentData.Description); err != nil { + return diag.FromErr(fmt.Errorf("Error setting description: %s", err)) + } + if agentData.Tags != nil { + if err = d.Set("tags", agentData.Tags); err != nil { + return diag.FromErr(fmt.Errorf("Error setting tags: %s", err)) + } + } + agentMetadata := []map[string]interface{}{} + if agentData.AgentMetadata != nil { + for _, agentMetadataItem := range agentData.AgentMetadata { + agentMetadataItemMap, err := resourceIbmSchematicsAgentAgentMetadataInfoToMap(&agentMetadataItem) + if err != nil { + return diag.FromErr(err) + } + agentMetadata = append(agentMetadata, agentMetadataItemMap) + } + } + if err = d.Set("agent_metadata", agentMetadata); err != nil { + return diag.FromErr(fmt.Errorf("Error setting agent_metadata: %s", err)) + } + agentInputs := []map[string]interface{}{} + if agentData.AgentInputs != nil { + for _, agentInputsItem := range agentData.AgentInputs { + agentInputsItemMap, err := resourceIbmSchematicsAgentVariableDataToMap(&agentInputsItem) + if err != nil { + return diag.FromErr(err) + } + agentInputs = append(agentInputs, agentInputsItemMap) + } + } + if err = d.Set("agent_inputs", agentInputs); err != nil { + return diag.FromErr(fmt.Errorf("Error setting agent_inputs: %s", err)) + } + if agentData.UserState != nil { + userStateMap, err := resourceIbmSchematicsAgentAgentUserStateToMap(agentData.UserState) + if err != nil { + return diag.FromErr(err) + } + if err = d.Set("user_state", []map[string]interface{}{userStateMap}); err != nil { + return diag.FromErr(fmt.Errorf("Error setting user_state: %s", err)) + } + } + if agentData.AgentKpi != nil { + agentKpiMap, err := resourceIbmSchematicsAgentAgentKPIDataToMap(agentData.AgentKpi) + if err != nil { + return diag.FromErr(err) + } + if err = d.Set("agent_kpi", []map[string]interface{}{agentKpiMap}); err != nil { + return diag.FromErr(fmt.Errorf("Error setting agent_kpi: %s", err)) + } + } + if err = d.Set("agent_crn", agentData.AgentCrn); err != nil { + return diag.FromErr(fmt.Errorf("Error setting agent_crn: %s", err)) + } + if err = d.Set("created_at", flex.DateTimeToString(agentData.CreatedAt)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting created_at: %s", err)) + } + if err = d.Set("creation_by", agentData.CreationBy); err != nil { + return diag.FromErr(fmt.Errorf("Error setting creation_by: %s", err)) + } + if err = d.Set("updated_at", flex.DateTimeToString(agentData.UpdatedAt)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting updated_at: %s", err)) + } + if err = d.Set("updated_by", agentData.UpdatedBy); err != nil { + return diag.FromErr(fmt.Errorf("Error setting updated_by: %s", err)) + } + if agentData.SystemState != nil { + systemStateMap, err := resourceIbmSchematicsAgentAgentSystemStatusToMap(agentData.SystemState) + if err != nil { + return diag.FromErr(err) + } + if err = d.Set("system_state", []map[string]interface{}{systemStateMap}); err != nil { + return diag.FromErr(fmt.Errorf("Error setting system_state: %s", err)) + } + } + if agentData.RecentPrsJob != nil { + recentPrsJobMap, err := resourceIbmSchematicsAgentAgentDataRecentPrsJobToMap(agentData.RecentPrsJob) + if err != nil { + return diag.FromErr(err) + } + if err = d.Set("recent_prs_job", []map[string]interface{}{recentPrsJobMap}); err != nil { + return diag.FromErr(fmt.Errorf("Error setting recent_prs_job: %s", err)) + } + } + if agentData.RecentDeployJob != nil { + recentDeployJobMap, err := resourceIbmSchematicsAgentAgentDataRecentDeployJobToMap(agentData.RecentDeployJob) + if err != nil { + return diag.FromErr(err) + } + if err = d.Set("recent_deploy_job", []map[string]interface{}{recentDeployJobMap}); err != nil { + return diag.FromErr(fmt.Errorf("Error setting recent_deploy_job: %s", err)) + } + } + if agentData.RecentHealthJob != nil { + recentHealthJobMap, err := resourceIbmSchematicsAgentAgentDataRecentHealthJobToMap(agentData.RecentHealthJob) + if err != nil { + return diag.FromErr(err) + } + if err = d.Set("recent_health_job", []map[string]interface{}{recentHealthJobMap}); err != nil { + return diag.FromErr(fmt.Errorf("Error setting recent_health_job: %s", err)) + } + } + + return nil +} + +func resourceIbmSchematicsAgentUpdate(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + schematicsClient, err := meta.(conns.ClientSession).SchematicsV1() + if err != nil { + return diag.FromErr(err) + } + + updateAgentDataOptions := &schematicsv1.UpdateAgentDataOptions{ + XFeatureAgents: core.BoolPtr(true), + } + + updateAgentDataOptions.SetAgentID(d.Id()) + + hasChange := false + + if d.HasChange("name") || d.HasChange("resource_group") || d.HasChange("version") || d.HasChange("schematics_location") || d.HasChange("agent_location") || d.HasChange("agent_infrastructure") { + updateAgentDataOptions.SetName(d.Get("name").(string)) + updateAgentDataOptions.SetResourceGroup(d.Get("resource_group").(string)) + updateAgentDataOptions.SetVersion(d.Get("version").(string)) + updateAgentDataOptions.SetSchematicsLocation(d.Get("schematics_location").(string)) + updateAgentDataOptions.SetAgentLocation(d.Get("agent_location").(string)) + agentInfrastructure, err := resourceIbmSchematicsAgentMapToAgentInfrastructure(d.Get("agent_infrastructure.0").(map[string]interface{})) + if err != nil { + return diag.FromErr(err) + } + updateAgentDataOptions.SetAgentInfrastructure(agentInfrastructure) + hasChange = true + } + if d.HasChange("description") { + updateAgentDataOptions.SetDescription(d.Get("description").(string)) + hasChange = true + } + if d.HasChange("tags") { + updateAgentDataOptions.SetTags(d.Get("tags").([]string)) + hasChange = true + } + if d.HasChange("agent_metadata") { + var agentMetadata []schematicsv1.AgentMetadataInfo + for _, e := range d.Get("agent_metadata").([]interface{}) { + value := e.(map[string]interface{}) + agentMetadataItem, err := resourceIbmSchematicsAgentMapToAgentMetadataInfo(value) + if err != nil { + return diag.FromErr(err) + } + agentMetadata = append(agentMetadata, *agentMetadataItem) + } + updateAgentDataOptions.SetAgentMetadata(agentMetadata) + hasChange = true + } + if d.HasChange("agent_inputs") { + // TODO: handle AgentInputs of type TypeList -- not primitive, not model + var agentInputs []schematicsv1.VariableData + for _, e := range d.Get("agent_inputs").([]interface{}) { + value := e.(map[string]interface{}) + agentInputsItem, err := resourceIbmSchematicsAgentMapToVariableData(value) + if err != nil { + return diag.FromErr(err) + } + agentInputs = append(agentInputs, *agentInputsItem) + } + updateAgentDataOptions.SetAgentInputs(agentInputs) + hasChange = true + } + if d.HasChange("user_state") { + userState, err := resourceIbmSchematicsAgentMapToAgentUserState(d.Get("user_state.0").(map[string]interface{})) + if err != nil { + return diag.FromErr(err) + } + updateAgentDataOptions.SetUserState(userState) + hasChange = true + } + if d.HasChange("agent_kpi") { + agentKpi, err := resourceIbmSchematicsAgentMapToAgentKPIData(d.Get("agent_kpi.0").(map[string]interface{})) + if err != nil { + return diag.FromErr(err) + } + updateAgentDataOptions.SetAgentKpi(agentKpi) + hasChange = true + } + + if hasChange { + _, response, err := schematicsClient.UpdateAgentDataWithContext(context, updateAgentDataOptions) + if err != nil { + log.Printf("[DEBUG] UpdateAgentDataWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("UpdateAgentDataWithContext failed %s\n%s", err, response)) + } + } + + return resourceIbmSchematicsAgentRead(context, d, meta) +} + +func resourceIbmSchematicsAgentDelete(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + schematicsClient, err := meta.(conns.ClientSession).SchematicsV1() + if err != nil { + return diag.FromErr(err) + } + + deleteAgentDataOptions := &schematicsv1.DeleteAgentDataOptions{ + XFeatureAgents: core.BoolPtr(true), + } + + deleteAgentDataOptions.SetAgentID(d.Id()) + + response, err := schematicsClient.DeleteAgentDataWithContext(context, deleteAgentDataOptions) + if err != nil { + log.Printf("[DEBUG] DeleteAgentDataWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("DeleteAgentDataWithContext failed %s\n%s", err, response)) + } + + d.SetId("") + + return nil +} + +func resourceIbmSchematicsAgentMapToAgentInfrastructure(modelMap map[string]interface{}) (*schematicsv1.AgentInfrastructure, error) { + model := &schematicsv1.AgentInfrastructure{} + if modelMap["infra_type"] != nil && modelMap["infra_type"].(string) != "" { + model.InfraType = core.StringPtr(modelMap["infra_type"].(string)) + } + if modelMap["cluster_id"] != nil && modelMap["cluster_id"].(string) != "" { + model.ClusterID = core.StringPtr(modelMap["cluster_id"].(string)) + } + if modelMap["cluster_resource_group"] != nil && modelMap["cluster_resource_group"].(string) != "" { + model.ClusterResourceGroup = core.StringPtr(modelMap["cluster_resource_group"].(string)) + } + if modelMap["cos_instance_name"] != nil && modelMap["cos_instance_name"].(string) != "" { + model.CosInstanceName = core.StringPtr(modelMap["cos_instance_name"].(string)) + } + if modelMap["cos_bucket_name"] != nil && modelMap["cos_bucket_name"].(string) != "" { + model.CosBucketName = core.StringPtr(modelMap["cos_bucket_name"].(string)) + } + if modelMap["cos_bucket_region"] != nil && modelMap["cos_bucket_region"].(string) != "" { + model.CosBucketRegion = core.StringPtr(modelMap["cos_bucket_region"].(string)) + } + return model, nil +} + +func resourceIbmSchematicsAgentMapToAgentMetadataInfo(modelMap map[string]interface{}) (*schematicsv1.AgentMetadataInfo, error) { + model := &schematicsv1.AgentMetadataInfo{} + if modelMap["name"] != nil && modelMap["name"].(string) != "" { + model.Name = core.StringPtr(modelMap["name"].(string)) + } + if modelMap["value"] != nil { + value := []string{} + for _, valueItem := range modelMap["value"].([]interface{}) { + value = append(value, valueItem.(string)) + } + model.Value = value + } + return model, nil +} + +func resourceIbmSchematicsAgentMapToVariableData(modelMap map[string]interface{}) (*schematicsv1.VariableData, error) { + model := &schematicsv1.VariableData{} + if modelMap["name"] != nil && modelMap["name"].(string) != "" { + model.Name = core.StringPtr(modelMap["name"].(string)) + } + if modelMap["value"] != nil && modelMap["value"].(string) != "" { + model.Value = core.StringPtr(modelMap["value"].(string)) + } + if modelMap["use_default"] != nil { + model.UseDefault = core.BoolPtr(modelMap["use_default"].(bool)) + } + if modelMap["metadata"] != nil && len(modelMap["metadata"].([]interface{})) > 0 { + MetadataModel, err := resourceIbmSchematicsAgentMapToVariableMetadata(modelMap["metadata"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.Metadata = MetadataModel + } + if modelMap["link"] != nil && modelMap["link"].(string) != "" { + model.Link = core.StringPtr(modelMap["link"].(string)) + } + return model, nil +} + +func resourceIbmSchematicsAgentMapToVariableMetadata(modelMap map[string]interface{}) (*schematicsv1.VariableMetadata, error) { + model := &schematicsv1.VariableMetadata{} + if modelMap["type"] != nil && modelMap["type"].(string) != "" { + model.Type = core.StringPtr(modelMap["type"].(string)) + } + if modelMap["aliases"] != nil { + aliases := []string{} + for _, aliasesItem := range modelMap["aliases"].([]interface{}) { + aliases = append(aliases, aliasesItem.(string)) + } + model.Aliases = aliases + } + if modelMap["description"] != nil && modelMap["description"].(string) != "" { + model.Description = core.StringPtr(modelMap["description"].(string)) + } + if modelMap["cloud_data_type"] != nil && modelMap["cloud_data_type"].(string) != "" { + model.CloudDataType = core.StringPtr(modelMap["cloud_data_type"].(string)) + } + if modelMap["default_value"] != nil && modelMap["default_value"].(string) != "" { + model.DefaultValue = core.StringPtr(modelMap["default_value"].(string)) + } + if modelMap["link_status"] != nil && modelMap["link_status"].(string) != "" { + model.LinkStatus = core.StringPtr(modelMap["link_status"].(string)) + } + if modelMap["secure"] != nil { + model.Secure = core.BoolPtr(modelMap["secure"].(bool)) + } + if modelMap["immutable"] != nil { + model.Immutable = core.BoolPtr(modelMap["immutable"].(bool)) + } + if modelMap["hidden"] != nil { + model.Hidden = core.BoolPtr(modelMap["hidden"].(bool)) + } + if modelMap["required"] != nil { + model.Required = core.BoolPtr(modelMap["required"].(bool)) + } + if modelMap["options"] != nil { + options := []string{} + for _, optionsItem := range modelMap["options"].([]interface{}) { + options = append(options, optionsItem.(string)) + } + model.Options = options + } + if modelMap["min_value"] != nil { + model.MinValue = core.Int64Ptr(int64(modelMap["min_value"].(int))) + } + if modelMap["max_value"] != nil { + model.MaxValue = core.Int64Ptr(int64(modelMap["max_value"].(int))) + } + if modelMap["min_length"] != nil { + model.MinLength = core.Int64Ptr(int64(modelMap["min_length"].(int))) + } + if modelMap["max_length"] != nil { + model.MaxLength = core.Int64Ptr(int64(modelMap["max_length"].(int))) + } + if modelMap["matches"] != nil && modelMap["matches"].(string) != "" { + model.Matches = core.StringPtr(modelMap["matches"].(string)) + } + if modelMap["position"] != nil { + model.Position = core.Int64Ptr(int64(modelMap["position"].(int))) + } + if modelMap["group_by"] != nil && modelMap["group_by"].(string) != "" { + model.GroupBy = core.StringPtr(modelMap["group_by"].(string)) + } + if modelMap["source"] != nil && modelMap["source"].(string) != "" { + model.Source = core.StringPtr(modelMap["source"].(string)) + } + return model, nil +} + +func resourceIbmSchematicsAgentMapToAgentUserState(modelMap map[string]interface{}) (*schematicsv1.AgentUserState, error) { + model := &schematicsv1.AgentUserState{} + if modelMap["state"] != nil && modelMap["state"].(string) != "" { + model.State = core.StringPtr(modelMap["state"].(string)) + } + if modelMap["set_by"] != nil && modelMap["set_by"].(string) != "" { + model.SetBy = core.StringPtr(modelMap["set_by"].(string)) + } + if modelMap["set_at"] != nil { + + } + return model, nil +} + +func resourceIbmSchematicsAgentMapToAgentKPIData(modelMap map[string]interface{}) (*schematicsv1.AgentKPIData, error) { + model := &schematicsv1.AgentKPIData{} + if modelMap["availability_indicator"] != nil && modelMap["availability_indicator"].(string) != "" { + model.AvailabilityIndicator = core.StringPtr(modelMap["availability_indicator"].(string)) + } + if modelMap["lifecycle_indicator"] != nil && modelMap["lifecycle_indicator"].(string) != "" { + model.LifecycleIndicator = core.StringPtr(modelMap["lifecycle_indicator"].(string)) + } + if modelMap["percent_usage_indicator"] != nil && modelMap["percent_usage_indicator"].(string) != "" { + model.PercentUsageIndicator = core.StringPtr(modelMap["percent_usage_indicator"].(string)) + } + if modelMap["application_indicators"] != nil { + applicationIndicators := []interface{}{} + for _, applicationIndicatorsItem := range modelMap["application_indicators"].([]interface{}) { + applicationIndicators = append(applicationIndicators, applicationIndicatorsItem) + } + model.ApplicationIndicators = applicationIndicators + } + if modelMap["infra_indicators"] != nil { + infraIndicators := []interface{}{} + for _, infraIndicatorsItem := range modelMap["infra_indicators"].([]interface{}) { + infraIndicators = append(infraIndicators, infraIndicatorsItem) + } + model.InfraIndicators = infraIndicators + } + return model, nil +} + +func resourceIbmSchematicsAgentAgentInfrastructureToMap(model *schematicsv1.AgentInfrastructure) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.InfraType != nil { + modelMap["infra_type"] = model.InfraType + } + if model.ClusterID != nil { + modelMap["cluster_id"] = model.ClusterID + } + if model.ClusterResourceGroup != nil { + modelMap["cluster_resource_group"] = model.ClusterResourceGroup + } + if model.CosInstanceName != nil { + modelMap["cos_instance_name"] = model.CosInstanceName + } + if model.CosBucketName != nil { + modelMap["cos_bucket_name"] = model.CosBucketName + } + if model.CosBucketRegion != nil { + modelMap["cos_bucket_region"] = model.CosBucketRegion + } + return modelMap, nil +} + +func resourceIbmSchematicsAgentAgentMetadataInfoToMap(model *schematicsv1.AgentMetadataInfo) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.Name != nil { + modelMap["name"] = model.Name + } + if model.Value != nil { + modelMap["value"] = model.Value + } + return modelMap, nil +} + +func resourceIbmSchematicsAgentVariableDataToMap(model *schematicsv1.VariableData) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.Name != nil { + modelMap["name"] = model.Name + } + if model.Value != nil { + modelMap["value"] = model.Value + } + if model.UseDefault != nil { + modelMap["use_default"] = model.UseDefault + } + if model.Metadata != nil { + metadataMap, err := resourceIbmSchematicsAgentVariableMetadataToMap(model.Metadata) + if err != nil { + return modelMap, err + } + modelMap["metadata"] = []map[string]interface{}{metadataMap} + } + if model.Link != nil { + modelMap["link"] = model.Link + } + return modelMap, nil +} + +func resourceIbmSchematicsAgentVariableMetadataToMap(model *schematicsv1.VariableMetadata) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.Type != nil { + modelMap["type"] = model.Type + } + if model.Aliases != nil { + modelMap["aliases"] = model.Aliases + } + if model.Description != nil { + modelMap["description"] = model.Description + } + if model.CloudDataType != nil { + modelMap["cloud_data_type"] = model.CloudDataType + } + if model.DefaultValue != nil { + modelMap["default_value"] = model.DefaultValue + } + if model.LinkStatus != nil { + modelMap["link_status"] = model.LinkStatus + } + if model.Secure != nil { + modelMap["secure"] = model.Secure + } + if model.Immutable != nil { + modelMap["immutable"] = model.Immutable + } + if model.Hidden != nil { + modelMap["hidden"] = model.Hidden + } + if model.Required != nil { + modelMap["required"] = model.Required + } + if model.Options != nil { + modelMap["options"] = model.Options + } + if model.MinValue != nil { + modelMap["min_value"] = flex.IntValue(model.MinValue) + } + if model.MaxValue != nil { + modelMap["max_value"] = flex.IntValue(model.MaxValue) + } + if model.MinLength != nil { + modelMap["min_length"] = flex.IntValue(model.MinLength) + } + if model.MaxLength != nil { + modelMap["max_length"] = flex.IntValue(model.MaxLength) + } + if model.Matches != nil { + modelMap["matches"] = model.Matches + } + if model.Position != nil { + modelMap["position"] = flex.IntValue(model.Position) + } + if model.GroupBy != nil { + modelMap["group_by"] = model.GroupBy + } + if model.Source != nil { + modelMap["source"] = model.Source + } + return modelMap, nil +} + +func resourceIbmSchematicsAgentAgentUserStateToMap(model *schematicsv1.AgentUserState) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.State != nil { + modelMap["state"] = model.State + } + if model.SetBy != nil { + modelMap["set_by"] = model.SetBy + } + if model.SetAt != nil { + modelMap["set_at"] = model.SetAt.String() + } + return modelMap, nil +} + +func resourceIbmSchematicsAgentAgentKPIDataToMap(model *schematicsv1.AgentKPIData) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.AvailabilityIndicator != nil { + modelMap["availability_indicator"] = model.AvailabilityIndicator + } + if model.LifecycleIndicator != nil { + modelMap["lifecycle_indicator"] = model.LifecycleIndicator + } + if model.PercentUsageIndicator != nil { + modelMap["percent_usage_indicator"] = model.PercentUsageIndicator + } + if model.ApplicationIndicators != nil { + applicationIndicators := []map[string]interface{}{} + for _, applicationIndicatorsItem := range model.ApplicationIndicators { + applicationIndicators = append(applicationIndicators, applicationIndicatorsItem.(map[string]interface{})) + } + modelMap["application_indicators"] = applicationIndicators + } + if model.InfraIndicators != nil { + infraIndicators := []map[string]interface{}{} + for _, infraIndicatorsItem := range model.InfraIndicators { + infraIndicators = append(infraIndicators, infraIndicatorsItem.(map[string]interface{})) + } + modelMap["infra_indicators"] = infraIndicators + } + return modelMap, nil +} + +func resourceIbmSchematicsAgentAgentSystemStatusToMap(model *schematicsv1.AgentSystemStatus) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.StatusCode != nil { + modelMap["status_code"] = model.StatusCode + } + if model.StatusMessage != nil { + modelMap["status_message"] = model.StatusMessage + } + return modelMap, nil +} + +func resourceIbmSchematicsAgentAgentDataRecentPrsJobToMap(model *schematicsv1.AgentDataRecentPrsJob) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.AgentID != nil { + modelMap["agent_id"] = model.AgentID + } + if model.JobID != nil { + modelMap["job_id"] = model.JobID + } + if model.UpdatedAt != nil { + modelMap["updated_at"] = model.UpdatedAt.String() + } + if model.UpdatedBy != nil { + modelMap["updated_by"] = model.UpdatedBy + } + if model.AgentVersion != nil { + modelMap["agent_version"] = model.AgentVersion + } + if model.StatusCode != nil { + modelMap["status_code"] = model.StatusCode + } + if model.StatusMessage != nil { + modelMap["status_message"] = model.StatusMessage + } + if model.LogURL != nil { + modelMap["log_url"] = model.LogURL + } + return modelMap, nil +} + +func resourceIbmSchematicsAgentAgentDataRecentDeployJobToMap(model *schematicsv1.AgentDataRecentDeployJob) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.AgentID != nil { + modelMap["agent_id"] = model.AgentID + } + if model.JobID != nil { + modelMap["job_id"] = model.JobID + } + if model.UpdatedAt != nil { + modelMap["updated_at"] = model.UpdatedAt.String() + } + if model.UpdatedBy != nil { + modelMap["updated_by"] = model.UpdatedBy + } + if model.IsRedeployed != nil { + modelMap["is_redeployed"] = model.IsRedeployed + } + if model.AgentVersion != nil { + modelMap["agent_version"] = model.AgentVersion + } + if model.StatusCode != nil { + modelMap["status_code"] = model.StatusCode + } + if model.StatusMessage != nil { + modelMap["status_message"] = model.StatusMessage + } + if model.LogURL != nil { + modelMap["log_url"] = model.LogURL + } + return modelMap, nil +} + +func resourceIbmSchematicsAgentAgentDataRecentHealthJobToMap(model *schematicsv1.AgentDataRecentHealthJob) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.AgentID != nil { + modelMap["agent_id"] = model.AgentID + } + if model.JobID != nil { + modelMap["job_id"] = model.JobID + } + if model.UpdatedAt != nil { + modelMap["updated_at"] = model.UpdatedAt.String() + } + if model.UpdatedBy != nil { + modelMap["updated_by"] = model.UpdatedBy + } + if model.AgentVersion != nil { + modelMap["agent_version"] = model.AgentVersion + } + if model.StatusCode != nil { + modelMap["status_code"] = model.StatusCode + } + if model.StatusMessage != nil { + modelMap["status_message"] = model.StatusMessage + } + if model.LogURL != nil { + modelMap["log_url"] = model.LogURL + } + return modelMap, nil +} diff --git a/ibm/service/schematics/resource_ibm_schematics_agent_deploy.go b/ibm/service/schematics/resource_ibm_schematics_agent_deploy.go new file mode 100644 index 0000000000..ec9564c686 --- /dev/null +++ b/ibm/service/schematics/resource_ibm_schematics_agent_deploy.go @@ -0,0 +1,286 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package schematics + +import ( + "context" + "fmt" + "log" + "time" + + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + "github.com/IBM/go-sdk-core/v3/core" + "github.com/IBM/schematics-go-sdk/schematicsv1" +) + +func ResourceIbmSchematicsAgentDeploy() *schema.Resource { + return &schema.Resource{ + CreateContext: resourceIbmSchematicsAgentDeployCreate, + ReadContext: resourceIbmSchematicsAgentDeployRead, + UpdateContext: resourceIbmSchematicsAgentDeployUpdate, + DeleteContext: resourceIbmSchematicsAgentDeployDelete, + Importer: &schema.ResourceImporter{}, + Timeouts: &schema.ResourceTimeout{ + Create: schema.DefaultTimeout(10 * time.Minute), + Update: schema.DefaultTimeout(10 * time.Minute), + Delete: schema.DefaultTimeout(10 * time.Minute), + }, + + Schema: map[string]*schema.Schema{ + "agent_id": &schema.Schema{ + Type: schema.TypeString, + Required: true, + ForceNew: true, + Description: "Agent ID to get the details of agent.", + }, + "force": &schema.Schema{ + Type: schema.TypeBool, + Optional: true, + Description: "Equivalent to -force options in the command line, default is false.", + }, + "job_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Job Id.", + }, + "updated_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The agent deploy job updation time.", + }, + "updated_by": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Email address of user who ran the agent deploy job.", + }, + "is_redeployed": &schema.Schema{ + Type: schema.TypeBool, + Computed: true, + Description: "True, when the same version of the agent was redeployed.", + }, + "agent_version": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Agent version.", + }, + "status_code": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Final result of the agent deployment job.", + }, + "status_message": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The outcome of the agent deployment job, in a formatted log string.", + }, + "log_url": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "URL to the full agent deployment job logs.", + }, + }, + } +} + +func resourceIbmSchematicsAgentDeployCreate(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + schematicsClient, err := meta.(conns.ClientSession).SchematicsV1() + if err != nil { + return diag.FromErr(err) + } + session, err := meta.(conns.ClientSession).BluemixSession() + if err != nil { + return diag.FromErr(err) + } + iamAccessToken := session.Config.IAMAccessToken + iamRefreshToken := session.Config.IAMRefreshToken + + deployAgentJobOptions := &schematicsv1.DeployAgentJobOptions{} + ff := map[string]string{ + "X-Feature-Agents": "true", + "Authorization": iamAccessToken, + "refresh_token": iamRefreshToken, + } + deployAgentJobOptions.Headers = ff + deployAgentJobOptions.SetAgentID(d.Get("agent_id").(string)) + if _, ok := d.GetOk("force"); ok { + deployAgentJobOptions.SetForce(d.Get("force").(bool)) + } + + agentDeployJob, response, err := schematicsClient.DeployAgentJobWithContext(context, deployAgentJobOptions) + if err != nil { + log.Printf("[DEBUG] DeployAgentJobWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("DeployAgentJobWithContext failed %s\n%s", err, response)) + } + + d.SetId(fmt.Sprintf("%s/%s", *deployAgentJobOptions.AgentID, *agentDeployJob.JobID)) + log.Printf("[INFO] Agent : %s", *deployAgentJobOptions.AgentID) + d.Set("status_message", *agentDeployJob.StatusMessage) + + _, err = isWaitForAgentAvailable(context, schematicsClient, *deployAgentJobOptions.AgentID, d.Timeout(schema.TimeoutCreate)) + if err != nil { + return diag.FromErr(fmt.Errorf("Waiting for agent to be available failed %s", err)) + } + + return resourceIbmSchematicsAgentDeployRead(context, d, meta) +} + +const ( + agentProvisioningTriggered = "Triggered deployment" + agentProvisioningDone = "success" + agentProvisioningPending = "PENDING" + agentProvisioninFailed = "Job Failed" +) + +func isWaitForAgentAvailable(context context.Context, schematicsClient *schematicsv1.SchematicsV1, id string, timeout time.Duration) (interface{}, error) { + log.Printf("Waiting for agent (%s) to be available.", id) + stateConf := &resource.StateChangeConf{ + Pending: []string{"retry", agentProvisioningPending, agentProvisioningTriggered}, + Target: []string{agentProvisioningDone, agentProvisioninFailed, ""}, + Refresh: agentRefreshFunc(schematicsClient, id), + Timeout: timeout, + Delay: 10 * time.Second, + MinTimeout: 10 * time.Second, + } + return stateConf.WaitForStateContext(context) +} +func agentRefreshFunc(schematicsClient *schematicsv1.SchematicsV1, id string) resource.StateRefreshFunc { + return func() (interface{}, string, error) { + getAgentDataOptions := &schematicsv1.GetAgentDataOptions{ + AgentID: core.StringPtr(id), + XFeatureAgents: core.BoolPtr(true), + Profile: core.StringPtr("detailed"), + } + + agent, response, err := schematicsClient.GetAgentData(getAgentDataOptions) + if err != nil { + return nil, "", fmt.Errorf("[ERROR] Error Getting Agent: %s\n%s", err, response) + } + if *agent.RecentDeployJob.StatusMessage == agentProvisioninFailed || *agent.RecentDeployJob.StatusMessage == agentProvisioningDone { + return agent, agentProvisioningDone, nil + } + return agent, agentProvisioningPending, nil + } +} + +func resourceIbmSchematicsAgentDeployRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + schematicsClient, err := meta.(conns.ClientSession).SchematicsV1() + if err != nil { + return diag.FromErr(err) + } + + parts, err := flex.SepIdParts(d.Id(), "/") + if err != nil { + return diag.FromErr(err) + } + + getAgentDataOptions := &schematicsv1.GetAgentDataOptions{ + XFeatureAgents: core.BoolPtr(true), + Profile: core.StringPtr("detailed"), + } + + getAgentDataOptions.SetAgentID(parts[0]) + agentData, response, err := schematicsClient.GetAgentDataWithContext(context, getAgentDataOptions) + if err != nil { + if response != nil && response.StatusCode == 404 { + d.SetId("") + return nil + } + log.Printf("[DEBUG] GetAgentDataWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("GetAgentDataWithContext failed %s\n%s", err, response)) + } + if agentData.RecentDeployJob != nil { + + if err = d.Set("agent_id", parts[0]); err != nil { + return diag.FromErr(fmt.Errorf("Error setting agent_id: %s", err)) + } + if err = d.Set("job_id", agentData.RecentDeployJob.JobID); err != nil { + return diag.FromErr(fmt.Errorf("Error setting job_id: %s", err)) + } + if err = d.Set("updated_at", flex.DateTimeToString(agentData.RecentDeployJob.UpdatedAt)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting updated_at: %s", err)) + } + if err = d.Set("updated_by", agentData.RecentDeployJob.UpdatedBy); err != nil { + return diag.FromErr(fmt.Errorf("Error setting updated_by: %s", err)) + } + if err = d.Set("agent_version", agentData.Version); err != nil { + return diag.FromErr(fmt.Errorf("Error setting agent_version: %s", err)) + } + if err = d.Set("status_code", agentData.RecentDeployJob.StatusCode); err != nil { + return diag.FromErr(fmt.Errorf("Error setting status_code: %s", err)) + } + if err = d.Set("status_message", agentData.RecentDeployJob.StatusMessage); err != nil { + return diag.FromErr(fmt.Errorf("Error setting status_message: %s", err)) + } + if err = d.Set("log_url", agentData.RecentDeployJob.LogURL); err != nil { + return diag.FromErr(fmt.Errorf("Error setting log_url: %s", err)) + } + + } + return nil +} + +func resourceIbmSchematicsAgentDeployUpdate(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + schematicsClient, err := meta.(conns.ClientSession).SchematicsV1() + if err != nil { + return diag.FromErr(err) + } + session, err := meta.(conns.ClientSession).BluemixSession() + if err != nil { + return diag.FromErr(err) + } + iamAccessToken := session.Config.IAMAccessToken + iamRefreshToken := session.Config.IAMRefreshToken + deployAgentJobOptions := &schematicsv1.DeployAgentJobOptions{} + ff := map[string]string{ + "X-Feature-Agents": "true", + "Authorization": iamAccessToken, + "refresh_token": iamRefreshToken, + } + deployAgentJobOptions.Headers = ff + + parts, err := flex.SepIdParts(d.Id(), "/") + if err != nil { + return diag.FromErr(err) + } + + deployAgentJobOptions.SetAgentID(parts[0]) + + hasChange := false + + if d.HasChange("agent_id") { + return diag.FromErr(fmt.Errorf("Cannot update resource property \"%s\" with the ForceNew annotation."+ + " The resource must be re-created to update this property.", "agent_id")) + } + if d.HasChange("force") { + deployAgentJobOptions.SetForce(d.Get("force").(bool)) + hasChange = true + } + + if hasChange { + agentDeployJob, response, err := schematicsClient.DeployAgentJobWithContext(context, deployAgentJobOptions) + if err != nil { + log.Printf("[DEBUG] DeployAgentJobWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("DeployAgentJobWithContext failed %s\n%s", err, response)) + } + d.SetId(fmt.Sprintf("%s/%s", *deployAgentJobOptions.AgentID, *agentDeployJob.JobID)) + d.Set("status_message", *agentDeployJob.StatusMessage) + + _, err = isWaitForAgentAvailable(context, schematicsClient, parts[0], d.Timeout(schema.TimeoutUpdate)) + if err != nil { + return diag.FromErr(fmt.Errorf("Waiting for agent to be available failed %s", err)) + } + } + + return resourceIbmSchematicsAgentDeployRead(context, d, meta) +} + +func resourceIbmSchematicsAgentDeployDelete(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + d.SetId("") + return nil +} diff --git a/ibm/service/schematics/resource_ibm_schematics_agent_deploy_test.go b/ibm/service/schematics/resource_ibm_schematics_agent_deploy_test.go new file mode 100644 index 0000000000..bd73dc2fcf --- /dev/null +++ b/ibm/service/schematics/resource_ibm_schematics_agent_deploy_test.go @@ -0,0 +1,163 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package schematics_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + "github.com/IBM/go-sdk-core/v5/core" + "github.com/IBM/schematics-go-sdk/schematicsv1" +) + +func TestAccIbmSchematicsAgentDeployBasic(t *testing.T) { + var conf *schematicsv1.AgentDataRecentDeployJob + agentID := fmt.Sprintf("tf_agent_id_%d", acctest.RandIntRange(10, 100)) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIbmSchematicsAgentDeployDestroy, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmSchematicsAgentDeployConfigBasic(agentID), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIbmSchematicsAgentDeployExists("ibm_schematics_agent_deploy.schematics_agent_deploy_instance", conf), + resource.TestCheckResourceAttr("ibm_schematics_agent_deploy.schematics_agent_deploy_instance", "agent_id", agentID), + ), + }, + }, + }) +} + +func TestAccIbmSchematicsAgentDeployAllArgs(t *testing.T) { + var conf *schematicsv1.AgentDataRecentDeployJob + agentID := fmt.Sprintf("tf_agent_id_%d", acctest.RandIntRange(10, 100)) + force := "false" + forceUpdate := "true" + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIbmSchematicsAgentDeployDestroy, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmSchematicsAgentDeployConfig(agentID, force), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIbmSchematicsAgentDeployExists("ibm_schematics_agent_deploy.schematics_agent_deploy_instance", conf), + resource.TestCheckResourceAttr("ibm_schematics_agent_deploy.schematics_agent_deploy_instance", "agent_id", agentID), + resource.TestCheckResourceAttr("ibm_schematics_agent_deploy.schematics_agent_deploy_instance", "force", force), + ), + }, + resource.TestStep{ + Config: testAccCheckIbmSchematicsAgentDeployConfig(agentID, forceUpdate), + Check: resource.ComposeAggregateTestCheckFunc( + resource.TestCheckResourceAttr("ibm_schematics_agent_deploy.schematics_agent_deploy_instance", "agent_id", agentID), + resource.TestCheckResourceAttr("ibm_schematics_agent_deploy.schematics_agent_deploy_instance", "force", forceUpdate), + ), + }, + resource.TestStep{ + ResourceName: "ibm_schematics_agent_deploy.schematics_agent_deploy_instance", + ImportState: true, + ImportStateVerify: true, + }, + }, + }) +} + +func testAccCheckIbmSchematicsAgentDeployConfigBasic(agentID string) string { + return fmt.Sprintf(` + + resource "ibm_schematics_agent_deploy" "schematics_agent_deploy_instance" { + agent_id = "%s" + } + `, agentID) +} + +func testAccCheckIbmSchematicsAgentDeployConfig(agentID string, force string) string { + return fmt.Sprintf(` + + resource "ibm_schematics_agent_deploy" "schematics_agent_deploy_instance" { + agent_id = "%s" + force = %s + } + `, agentID, force) +} + +func testAccCheckIbmSchematicsAgentDeployExists(n string, obj *schematicsv1.AgentDataRecentDeployJob) resource.TestCheckFunc { + + return func(s *terraform.State) error { + rs, ok := s.RootModule().Resources[n] + if !ok { + return fmt.Errorf("Not found: %s", n) + } + + schematicsClient, err := acc.TestAccProvider.Meta().(conns.ClientSession).SchematicsV1() + if err != nil { + return err + } + + getAgentDataOptions := &schematicsv1.GetAgentDataOptions{ + XFeatureAgents: core.BoolPtr(true), + Profile: core.StringPtr("detailed"), + } + + parts, err := flex.SepIdParts(rs.Primary.ID, "/") + if err != nil { + return err + } + + getAgentDataOptions.SetAgentID(parts[0]) + + agentData, _, err := schematicsClient.GetAgentData(getAgentDataOptions) + if err != nil { + return err + } + + obj = agentData.RecentDeployJob + return nil + } +} + +func testAccCheckIbmSchematicsAgentDeployDestroy(s *terraform.State) error { + schematicsClient, err := acc.TestAccProvider.Meta().(conns.ClientSession).SchematicsV1() + if err != nil { + return err + } + for _, rs := range s.RootModule().Resources { + if rs.Type != "ibm_schematics_agent_deploy" { + continue + } + + getAgentDataOptions := &schematicsv1.GetAgentDataOptions{ + XFeatureAgents: core.BoolPtr(true), + Profile: core.StringPtr("detailed"), + } + + parts, err := flex.SepIdParts(rs.Primary.ID, "/") + if err != nil { + return err + } + + getAgentDataOptions.SetAgentID(parts[0]) + + agent, response, err := schematicsClient.GetAgentData(getAgentDataOptions) + + if err == nil && agent.RecentDeployJob != nil { + // Agent Deploy Job can never really truely be deleted + return nil + } else if response.StatusCode != 404 { + return fmt.Errorf("Error checking for schematics_agent (%s) has been destroyed: %s", parts[0], err) + } + } + + return nil +} diff --git a/ibm/service/schematics/resource_ibm_schematics_agent_health.go b/ibm/service/schematics/resource_ibm_schematics_agent_health.go new file mode 100644 index 0000000000..01f9e5c34b --- /dev/null +++ b/ibm/service/schematics/resource_ibm_schematics_agent_health.go @@ -0,0 +1,228 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package schematics + +import ( + "context" + "fmt" + "log" + + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + "github.com/IBM/go-sdk-core/v5/core" + "github.com/IBM/schematics-go-sdk/schematicsv1" +) + +func ResourceIbmSchematicsAgentHealth() *schema.Resource { + return &schema.Resource{ + CreateContext: resourceIbmSchematicsAgentHealthCreate, + ReadContext: resourceIbmSchematicsAgentHealthRead, + UpdateContext: resourceIbmSchematicsAgentHealthUpdate, + DeleteContext: resourceIbmSchematicsAgentHealthDelete, + Importer: &schema.ResourceImporter{}, + + Schema: map[string]*schema.Schema{ + "agent_id": &schema.Schema{ + Type: schema.TypeString, + Required: true, + ForceNew: true, + Description: "Agent ID to get the details of agent.", + }, + "force": &schema.Schema{ + Type: schema.TypeBool, + Optional: true, + Description: "Equivalent to -force options in the command line, default is false.", + }, + "job_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Job Id.", + }, + "updated_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The agent health check job updation time.", + }, + "updated_by": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Email address of user who ran the agent health check job.", + }, + "agent_version": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Agent version.", + }, + "status_code": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Final result of the health-check job.", + }, + "status_message": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The outcome of the health-check job, in a formatted log string.", + }, + "log_url": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "URL to the full health-check job logs.", + }, + }, + } +} + +func resourceIbmSchematicsAgentHealthCreate(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + schematicsClient, err := meta.(conns.ClientSession).SchematicsV1() + if err != nil { + return diag.FromErr(err) + } + session, err := meta.(conns.ClientSession).BluemixSession() + if err != nil { + return diag.FromErr(err) + } + iamAccessToken := session.Config.IAMAccessToken + iamRefreshToken := session.Config.IAMRefreshToken + + healthCheckAgentJobOptions := &schematicsv1.HealthCheckAgentJobOptions{} + ff := map[string]string{ + "X-Feature-Agents": "true", + "Authorization": iamAccessToken, + "refresh_token": iamRefreshToken, + } + healthCheckAgentJobOptions.Headers = ff + + healthCheckAgentJobOptions.SetAgentID(d.Get("agent_id").(string)) + if _, ok := d.GetOk("force"); ok { + healthCheckAgentJobOptions.SetForce(d.Get("force").(bool)) + } + + agentHealthJob, response, err := schematicsClient.HealthCheckAgentJobWithContext(context, healthCheckAgentJobOptions) + if err != nil { + log.Printf("[DEBUG] HealthCheckAgentJobWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("HealthCheckAgentJobWithContext failed %s\n%s", err, response)) + } + + d.SetId(fmt.Sprintf("%s/%s", *healthCheckAgentJobOptions.AgentID, *agentHealthJob.JobID)) + + return resourceIbmSchematicsAgentHealthRead(context, d, meta) +} + +func resourceIbmSchematicsAgentHealthRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + schematicsClient, err := meta.(conns.ClientSession).SchematicsV1() + if err != nil { + return diag.FromErr(err) + } + + parts, err := flex.SepIdParts(d.Id(), "/") + if err != nil { + return diag.FromErr(err) + } + + getAgentDataOptions := &schematicsv1.GetAgentDataOptions{ + XFeatureAgents: core.BoolPtr(true), + Profile: core.StringPtr("detailed"), + } + + getAgentDataOptions.SetAgentID(parts[0]) + + agentData, response, err := schematicsClient.GetAgentDataWithContext(context, getAgentDataOptions) + if err != nil { + if response != nil && response.StatusCode == 404 { + d.SetId("") + return nil + } + log.Printf("[DEBUG] GetAgentDataWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("GetAgentDataWithContext failed %s\n%s", err, response)) + } + + if agentData.RecentHealthJob != nil { + + if err = d.Set("agent_id", parts[0]); err != nil { + return diag.FromErr(fmt.Errorf("Error setting agent_id: %s", err)) + } + if err = d.Set("job_id", agentData.RecentHealthJob.JobID); err != nil { + return diag.FromErr(fmt.Errorf("Error setting job_id: %s", err)) + } + if err = d.Set("updated_at", flex.DateTimeToString(agentData.RecentHealthJob.UpdatedAt)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting updated_at: %s", err)) + } + if err = d.Set("updated_by", agentData.RecentHealthJob.UpdatedBy); err != nil { + return diag.FromErr(fmt.Errorf("Error setting updated_by: %s", err)) + } + if err = d.Set("agent_version", agentData.Version); err != nil { + return diag.FromErr(fmt.Errorf("Error setting agent_version: %s", err)) + } + if err = d.Set("status_code", agentData.RecentHealthJob.StatusCode); err != nil { + return diag.FromErr(fmt.Errorf("Error setting status_code: %s", err)) + } + if err = d.Set("status_message", agentData.RecentHealthJob.StatusMessage); err != nil { + return diag.FromErr(fmt.Errorf("Error setting status_message: %s", err)) + } + if err = d.Set("log_url", agentData.RecentHealthJob.LogURL); err != nil { + return diag.FromErr(fmt.Errorf("Error setting log_url: %s", err)) + } + + } + + return nil +} + +func resourceIbmSchematicsAgentHealthUpdate(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + schematicsClient, err := meta.(conns.ClientSession).SchematicsV1() + if err != nil { + return diag.FromErr(err) + } + session, err := meta.(conns.ClientSession).BluemixSession() + if err != nil { + return diag.FromErr(err) + } + iamAccessToken := session.Config.IAMAccessToken + iamRefreshToken := session.Config.IAMRefreshToken + + healthCheckAgentJobOptions := &schematicsv1.HealthCheckAgentJobOptions{} + ff := map[string]string{ + "X-Feature-Agents": "true", + "Authorization": iamAccessToken, + "refresh_token": iamRefreshToken, + } + healthCheckAgentJobOptions.Headers = ff + + parts, err := flex.SepIdParts(d.Id(), "/") + if err != nil { + return diag.FromErr(err) + } + + healthCheckAgentJobOptions.SetAgentID(parts[0]) + + hasChange := false + + if d.HasChange("agent_id") { + return diag.FromErr(fmt.Errorf("Cannot update resource property \"%s\" with the ForceNew annotation."+ + " The resource must be re-created to update this property.", "agent_id")) + } + if d.HasChange("force") { + healthCheckAgentJobOptions.SetForce(d.Get("force").(bool)) + hasChange = true + } + + if hasChange { + agentHealthJob, response, err := schematicsClient.HealthCheckAgentJobWithContext(context, healthCheckAgentJobOptions) + if err != nil { + log.Printf("[DEBUG] HealthCheckAgentJobWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("HealthCheckAgentJobWithContext failed %s\n%s", err, response)) + } + d.SetId(fmt.Sprintf("%s/%s", *healthCheckAgentJobOptions.AgentID, *agentHealthJob.JobID)) + } + + return resourceIbmSchematicsAgentHealthRead(context, d, meta) +} + +func resourceIbmSchematicsAgentHealthDelete(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + d.SetId("") + return nil +} diff --git a/ibm/service/schematics/resource_ibm_schematics_agent_health_test.go b/ibm/service/schematics/resource_ibm_schematics_agent_health_test.go new file mode 100644 index 0000000000..3b20dc5dd5 --- /dev/null +++ b/ibm/service/schematics/resource_ibm_schematics_agent_health_test.go @@ -0,0 +1,164 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package schematics_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + "github.com/IBM/go-sdk-core/v5/core" + "github.com/IBM/schematics-go-sdk/schematicsv1" +) + +func TestAccIbmSchematicsAgentHealthBasic(t *testing.T) { + var conf *schematicsv1.AgentDataRecentHealthJob + agentID := fmt.Sprintf("tf_agent_id_%d", acctest.RandIntRange(10, 100)) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIbmSchematicsAgentHealthDestroy, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmSchematicsAgentHealthConfigBasic(agentID), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIbmSchematicsAgentHealthExists("ibm_schematics_agent_health.schematics_agent_health_instance", conf), + resource.TestCheckResourceAttr("ibm_schematics_agent_health.schematics_agent_health_instance", "agent_id", agentID), + ), + }, + }, + }) +} + +func TestAccIbmSchematicsAgentHealthAllArgs(t *testing.T) { + var conf *schematicsv1.AgentDataRecentHealthJob + agentID := fmt.Sprintf("tf_agent_id_%d", acctest.RandIntRange(10, 100)) + force := "false" + forceUpdate := "true" + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIbmSchematicsAgentHealthDestroy, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmSchematicsAgentHealthConfig(agentID, force), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIbmSchematicsAgentHealthExists("ibm_schematics_agent_health.schematics_agent_health_instance", conf), + resource.TestCheckResourceAttr("ibm_schematics_agent_health.schematics_agent_health_instance", "agent_id", agentID), + resource.TestCheckResourceAttr("ibm_schematics_agent_health.schematics_agent_health_instance", "force", force), + ), + }, + resource.TestStep{ + Config: testAccCheckIbmSchematicsAgentHealthConfig(agentID, forceUpdate), + Check: resource.ComposeAggregateTestCheckFunc( + resource.TestCheckResourceAttr("ibm_schematics_agent_health.schematics_agent_health_instance", "agent_id", agentID), + resource.TestCheckResourceAttr("ibm_schematics_agent_health.schematics_agent_health_instance", "force", forceUpdate), + ), + }, + resource.TestStep{ + ResourceName: "ibm_schematics_agent_health.schematics_agent_health_instance", + ImportState: true, + ImportStateVerify: true, + }, + }, + }) +} + +func testAccCheckIbmSchematicsAgentHealthConfigBasic(agentID string) string { + return fmt.Sprintf(` + + resource "ibm_schematics_agent_health" "schematics_agent_health_instance" { + agent_id = "%s" + } + `, agentID) +} + +func testAccCheckIbmSchematicsAgentHealthConfig(agentID string, force string) string { + return fmt.Sprintf(` + + resource "ibm_schematics_agent_health" "schematics_agent_health_instance" { + agent_id = "%s" + force = %s + } + `, agentID, force) +} + +func testAccCheckIbmSchematicsAgentHealthExists(n string, obj *schematicsv1.AgentDataRecentHealthJob) resource.TestCheckFunc { + + return func(s *terraform.State) error { + rs, ok := s.RootModule().Resources[n] + if !ok { + return fmt.Errorf("Not found: %s", n) + } + + schematicsClient, err := acc.TestAccProvider.Meta().(conns.ClientSession).SchematicsV1() + if err != nil { + return err + } + + getAgentDataOptions := &schematicsv1.GetAgentDataOptions{ + XFeatureAgents: core.BoolPtr(true), + Profile: core.StringPtr("detailed"), + } + + parts, err := flex.SepIdParts(rs.Primary.ID, "/") + if err != nil { + return err + } + + getAgentDataOptions.SetAgentID(parts[0]) + + agentData, _, err := schematicsClient.GetAgentData(getAgentDataOptions) + if err != nil { + return err + } + + obj = agentData.RecentHealthJob + return nil + } +} + +func testAccCheckIbmSchematicsAgentHealthDestroy(s *terraform.State) error { + schematicsClient, err := acc.TestAccProvider.Meta().(conns.ClientSession).SchematicsV1() + if err != nil { + return err + } + for _, rs := range s.RootModule().Resources { + if rs.Type != "ibm_schematics_agent_health" { + continue + } + + getAgentDataOptions := &schematicsv1.GetAgentDataOptions{ + XFeatureAgents: core.BoolPtr(true), + Profile: core.StringPtr("detailed"), + } + + parts, err := flex.SepIdParts(rs.Primary.ID, "/") + if err != nil { + return err + } + + getAgentDataOptions.SetAgentID(parts[0]) + + agent, response, err := schematicsClient.GetAgentData(getAgentDataOptions) + + if err == nil && agent.RecentHealthJob != nil { + // Agent health Job can never really truely be deleted + return nil + } else if response.StatusCode != 404 { + return fmt.Errorf("Error checking for schematics_agent (%s) has been destroyed: %s", parts[0], err) + } + + } + + return nil +} diff --git a/ibm/service/schematics/resource_ibm_schematics_agent_prs.go b/ibm/service/schematics/resource_ibm_schematics_agent_prs.go new file mode 100644 index 0000000000..a672152b16 --- /dev/null +++ b/ibm/service/schematics/resource_ibm_schematics_agent_prs.go @@ -0,0 +1,225 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package schematics + +import ( + "context" + "fmt" + "log" + + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + "github.com/IBM/go-sdk-core/v3/core" + "github.com/IBM/schematics-go-sdk/schematicsv1" +) + +func ResourceIbmSchematicsAgentPrs() *schema.Resource { + return &schema.Resource{ + CreateContext: resourceIbmSchematicsAgentPrsCreate, + ReadContext: resourceIbmSchematicsAgentPrsRead, + UpdateContext: resourceIbmSchematicsAgentPrsUpdate, + DeleteContext: resourceIbmSchematicsAgentPrsDelete, + Importer: &schema.ResourceImporter{}, + + Schema: map[string]*schema.Schema{ + "agent_id": &schema.Schema{ + Type: schema.TypeString, + Required: true, + ForceNew: true, + Description: "Agent ID to get the details of agent.", + }, + "force": &schema.Schema{ + Type: schema.TypeBool, + Optional: true, + Description: "Equivalent to -force options in the command line, default is false.", + }, + "job_id": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Job Id.", + }, + "updated_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The agent prs job updation time.", + }, + "updated_by": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Email address of user who ran the agent prs job.", + }, + "agent_version": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Agent version.", + }, + "status_code": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Final result of the pre-requisite scanner job.", + }, + "status_message": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The outcome of the pre-requisite scanner job, in a formatted log string.", + }, + "log_url": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "URL to the full pre-requisite scanner job logs.", + }, + }, + } +} + +func resourceIbmSchematicsAgentPrsCreate(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + schematicsClient, err := meta.(conns.ClientSession).SchematicsV1() + if err != nil { + return diag.FromErr(err) + } + session, err := meta.(conns.ClientSession).BluemixSession() + if err != nil { + return diag.FromErr(err) + } + iamAccessToken := session.Config.IAMAccessToken + iamRefreshToken := session.Config.IAMRefreshToken + + prsAgentJobOptions := &schematicsv1.PrsAgentJobOptions{} + ff := map[string]string{ + "X-Feature-Agents": "true", + "Authorization": iamAccessToken, + "refresh_token": iamRefreshToken, + } + prsAgentJobOptions.Headers = ff + prsAgentJobOptions.SetAgentID(d.Get("agent_id").(string)) + if _, ok := d.GetOk("force"); ok { + prsAgentJobOptions.SetForce(d.Get("force").(bool)) + } + + agentPrsJob, response, err := schematicsClient.PrsAgentJobWithContext(context, prsAgentJobOptions) + if err != nil { + log.Printf("[DEBUG] PrsAgentJobWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("PrsAgentJobWithContext failed %s\n%s", err, response)) + } + + d.SetId(fmt.Sprintf("%s/%s", *prsAgentJobOptions.AgentID, *agentPrsJob.JobID)) + + return resourceIbmSchematicsAgentPrsRead(context, d, meta) +} + +func resourceIbmSchematicsAgentPrsRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + schematicsClient, err := meta.(conns.ClientSession).SchematicsV1() + if err != nil { + return diag.FromErr(err) + } + + parts, err := flex.SepIdParts(d.Id(), "/") + if err != nil { + return diag.FromErr(err) + } + + getAgentDataOptions := &schematicsv1.GetAgentDataOptions{ + XFeatureAgents: core.BoolPtr(true), + Profile: core.StringPtr("detailed"), + } + + getAgentDataOptions.SetAgentID(parts[0]) + + agentData, response, err := schematicsClient.GetAgentDataWithContext(context, getAgentDataOptions) + if err != nil { + if response != nil && response.StatusCode == 404 { + d.SetId("") + return nil + } + log.Printf("[DEBUG] GetAgentDataWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("GetAgentDataWithContext failed %s\n%s", err, response)) + } + if agentData.RecentPrsJob != nil { + + if err = d.Set("agent_id", parts[0]); err != nil { + return diag.FromErr(fmt.Errorf("Error setting agent_id: %s", err)) + } + if err = d.Set("job_id", agentData.RecentPrsJob.JobID); err != nil { + return diag.FromErr(fmt.Errorf("Error setting job_id: %s", err)) + } + if err = d.Set("updated_at", flex.DateTimeToString(agentData.RecentPrsJob.UpdatedAt)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting updated_at: %s", err)) + } + if err = d.Set("updated_by", agentData.RecentPrsJob.UpdatedBy); err != nil { + return diag.FromErr(fmt.Errorf("Error setting updated_by: %s", err)) + } + if err = d.Set("agent_version", agentData.Version); err != nil { + return diag.FromErr(fmt.Errorf("Error setting agent_version: %s", err)) + } + if err = d.Set("status_code", agentData.RecentPrsJob.StatusCode); err != nil { + return diag.FromErr(fmt.Errorf("Error setting status_code: %s", err)) + } + if err = d.Set("status_message", agentData.RecentPrsJob.StatusMessage); err != nil { + return diag.FromErr(fmt.Errorf("Error setting status_message: %s", err)) + } + if err = d.Set("log_url", agentData.RecentPrsJob.LogURL); err != nil { + return diag.FromErr(fmt.Errorf("Error setting log_url: %s", err)) + } + + } + return nil +} + +func resourceIbmSchematicsAgentPrsUpdate(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + schematicsClient, err := meta.(conns.ClientSession).SchematicsV1() + if err != nil { + return diag.FromErr(err) + } + session, err := meta.(conns.ClientSession).BluemixSession() + if err != nil { + return diag.FromErr(err) + } + iamAccessToken := session.Config.IAMAccessToken + iamRefreshToken := session.Config.IAMRefreshToken + + prsAgentJobOptions := &schematicsv1.PrsAgentJobOptions{} + ff := map[string]string{ + "X-Feature-Agents": "true", + "Authorization": iamAccessToken, + "refresh_token": iamRefreshToken, + } + prsAgentJobOptions.Headers = ff + + parts, err := flex.SepIdParts(d.Id(), "/") + if err != nil { + return diag.FromErr(err) + } + + prsAgentJobOptions.SetAgentID(parts[0]) + + hasChange := false + + if d.HasChange("agent_id") { + return diag.FromErr(fmt.Errorf("Cannot update resource property \"%s\" with the ForceNew annotation."+ + " The resource must be re-created to update this property.", "agent_id")) + } + if d.HasChange("force") { + prsAgentJobOptions.SetForce(d.Get("force").(bool)) + hasChange = true + } + + if hasChange { + agentPrsJob, response, err := schematicsClient.PrsAgentJobWithContext(context, prsAgentJobOptions) + if err != nil { + log.Printf("[DEBUG] PrsAgentJobWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("PrsAgentJobWithContext failed %s\n%s", err, response)) + } + d.SetId(fmt.Sprintf("%s/%s", *prsAgentJobOptions.AgentID, *agentPrsJob.JobID)) + } + + return resourceIbmSchematicsAgentPrsRead(context, d, meta) +} + +func resourceIbmSchematicsAgentPrsDelete(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + d.SetId("") + return nil +} diff --git a/ibm/service/schematics/resource_ibm_schematics_agent_prs_test.go b/ibm/service/schematics/resource_ibm_schematics_agent_prs_test.go new file mode 100644 index 0000000000..66894e0125 --- /dev/null +++ b/ibm/service/schematics/resource_ibm_schematics_agent_prs_test.go @@ -0,0 +1,162 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package schematics_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + "github.com/IBM/go-sdk-core/v5/core" + "github.com/IBM/schematics-go-sdk/schematicsv1" +) + +func TestAccIbmSchematicsAgentPrsBasic(t *testing.T) { + var conf *schematicsv1.AgentDataRecentPrsJob + agentID := fmt.Sprintf("tf_agent_id_%d", acctest.RandIntRange(10, 100)) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIbmSchematicsAgentPrsDestroy, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmSchematicsAgentPrsConfigBasic(agentID), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIbmSchematicsAgentPrsExists("ibm_schematics_agent_prs.schematics_agent_prs_instance", conf), + resource.TestCheckResourceAttr("ibm_schematics_agent_prs.schematics_agent_prs_instance", "agent_id", agentID), + ), + }, + }, + }) +} + +func TestAccIbmSchematicsAgentPrsAllArgs(t *testing.T) { + var conf *schematicsv1.AgentDataRecentPrsJob + agentID := fmt.Sprintf("tf_agent_id_%d", acctest.RandIntRange(10, 100)) + force := "false" + forceUpdate := "true" + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIbmSchematicsAgentPrsDestroy, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmSchematicsAgentPrsConfig(agentID, force), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIbmSchematicsAgentPrsExists("ibm_schematics_agent_prs.schematics_agent_prs_instance", conf), + resource.TestCheckResourceAttr("ibm_schematics_agent_prs.schematics_agent_prs_instance", "agent_id", agentID), + resource.TestCheckResourceAttr("ibm_schematics_agent_prs.schematics_agent_prs_instance", "force", force), + ), + }, + resource.TestStep{ + Config: testAccCheckIbmSchematicsAgentPrsConfig(agentID, forceUpdate), + Check: resource.ComposeAggregateTestCheckFunc( + resource.TestCheckResourceAttr("ibm_schematics_agent_prs.schematics_agent_prs_instance", "agent_id", agentID), + resource.TestCheckResourceAttr("ibm_schematics_agent_prs.schematics_agent_prs_instance", "force", forceUpdate), + ), + }, + resource.TestStep{ + ResourceName: "ibm_schematics_agent_prs.schematics_agent_prs_instance", + ImportState: true, + ImportStateVerify: true, + }, + }, + }) +} + +func testAccCheckIbmSchematicsAgentPrsConfigBasic(agentID string) string { + return fmt.Sprintf(` + resource "ibm_schematics_agent_prs" "schematics_agent_prs_instance" { + agent_id = "%s" + } + `, agentID) +} + +func testAccCheckIbmSchematicsAgentPrsConfig(agentID string, force string) string { + return fmt.Sprintf(` + + resource "ibm_schematics_agent_prs" "schematics_agent_prs_instance" { + agent_id = "%s" + force = %s + } + `, agentID, force) +} + +func testAccCheckIbmSchematicsAgentPrsExists(n string, obj *schematicsv1.AgentDataRecentPrsJob) resource.TestCheckFunc { + + return func(s *terraform.State) error { + rs, ok := s.RootModule().Resources[n] + if !ok { + return fmt.Errorf("Not found: %s", n) + } + + schematicsClient, err := acc.TestAccProvider.Meta().(conns.ClientSession).SchematicsV1() + if err != nil { + return err + } + + getAgentDataOptions := &schematicsv1.GetAgentDataOptions{ + XFeatureAgents: core.BoolPtr(true), + Profile: core.StringPtr("detailed"), + } + + parts, err := flex.SepIdParts(rs.Primary.ID, "/") + if err != nil { + return err + } + + getAgentDataOptions.SetAgentID(parts[0]) + + agentData, _, err := schematicsClient.GetAgentData(getAgentDataOptions) + if err != nil { + return err + } + + obj = agentData.RecentPrsJob + return nil + } +} + +func testAccCheckIbmSchematicsAgentPrsDestroy(s *terraform.State) error { + schematicsClient, err := acc.TestAccProvider.Meta().(conns.ClientSession).SchematicsV1() + if err != nil { + return err + } + for _, rs := range s.RootModule().Resources { + if rs.Type != "ibm_schematics_agent_prs" { + continue + } + + getAgentDataOptions := &schematicsv1.GetAgentDataOptions{ + XFeatureAgents: core.BoolPtr(true), + Profile: core.StringPtr("detailed"), + } + + parts, err := flex.SepIdParts(rs.Primary.ID, "/") + if err != nil { + return err + } + + getAgentDataOptions.SetAgentID(parts[0]) + + agent, response, err := schematicsClient.GetAgentData(getAgentDataOptions) + + if err == nil && agent.RecentPrsJob != nil { + // Agent PRS Job can never really truely be deleted + return nil + } else if response.StatusCode != 404 { + return fmt.Errorf("Error checking for schematics_agent (%s) has been destroyed: %s", parts[0], err) + } + } + + return nil +} diff --git a/ibm/service/schematics/resource_ibm_schematics_agent_test.go b/ibm/service/schematics/resource_ibm_schematics_agent_test.go new file mode 100644 index 0000000000..b4fcbcc098 --- /dev/null +++ b/ibm/service/schematics/resource_ibm_schematics_agent_test.go @@ -0,0 +1,251 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package schematics_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM/go-sdk-core/v5/core" + "github.com/IBM/schematics-go-sdk/schematicsv1" +) + +func TestAccIbmSchematicsAgentBasic(t *testing.T) { + var conf schematicsv1.AgentData + name := fmt.Sprintf("tf_name_%d", acctest.RandIntRange(10, 100)) + version := "1.0.0-beta2" + schematicsLocation := "us-south" + agentLocation := "eu-de" + nameUpdate := fmt.Sprintf("tf_name_%d", acctest.RandIntRange(10, 100)) + versionUpdate := "1.0.0-beta2" + schematicsLocationUpdate := "us-east" + agentLocationUpdate := "eu-gb" + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIbmSchematicsAgentDestroy, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmSchematicsAgentConfigBasic(name, version, schematicsLocation, agentLocation), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIbmSchematicsAgentExists("ibm_schematics_agent.schematics_agent_instance", conf), + resource.TestCheckResourceAttr("ibm_schematics_agent.schematics_agent_instance", "name", name), + resource.TestCheckResourceAttr("ibm_schematics_agent.schematics_agent_instance", "version", version), + resource.TestCheckResourceAttr("ibm_schematics_agent.schematics_agent_instance", "schematics_location", schematicsLocation), + resource.TestCheckResourceAttr("ibm_schematics_agent.schematics_agent_instance", "agent_location", agentLocation), + ), + }, + resource.TestStep{ + Config: testAccCheckIbmSchematicsAgentConfigBasic(nameUpdate, versionUpdate, schematicsLocationUpdate, agentLocationUpdate), + Check: resource.ComposeAggregateTestCheckFunc( + resource.TestCheckResourceAttr("ibm_schematics_agent.schematics_agent_instance", "name", nameUpdate), + resource.TestCheckResourceAttr("ibm_schematics_agent.schematics_agent_instance", "version", versionUpdate), + resource.TestCheckResourceAttr("ibm_schematics_agent.schematics_agent_instance", "schematics_location", schematicsLocationUpdate), + resource.TestCheckResourceAttr("ibm_schematics_agent.schematics_agent_instance", "agent_location", agentLocationUpdate), + ), + }, + }, + }) +} + +func TestAccIbmSchematicsAgentAllArgs(t *testing.T) { + var conf schematicsv1.AgentData + name := fmt.Sprintf("tf_name_%d", acctest.RandIntRange(10, 100)) + version := "1.0.0-beta2" + schematicsLocation := "us-south" + agentLocation := "eu-de" + nameUpdate := fmt.Sprintf("tf_name_%d", acctest.RandIntRange(10, 100)) + versionUpdate := "1.0.0-beta2" + schematicsLocationUpdate := "us-east" + agentLocationUpdate := "eu-gb" + description := fmt.Sprintf("tf_description_%d", acctest.RandIntRange(10, 100)) + descriptionUpdate := fmt.Sprintf("tf_description_%d", acctest.RandIntRange(10, 100)) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIbmSchematicsAgentDestroy, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmSchematicsAgentConfig(name, version, schematicsLocation, agentLocation, description), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIbmSchematicsAgentExists("ibm_schematics_agent.schematics_agent_instance", conf), + resource.TestCheckResourceAttr("ibm_schematics_agent.schematics_agent_instance", "name", name), + resource.TestCheckResourceAttr("ibm_schematics_agent.schematics_agent_instance", "version", version), + resource.TestCheckResourceAttr("ibm_schematics_agent.schematics_agent_instance", "schematics_location", schematicsLocation), + resource.TestCheckResourceAttr("ibm_schematics_agent.schematics_agent_instance", "agent_location", agentLocation), + resource.TestCheckResourceAttr("ibm_schematics_agent.schematics_agent_instance", "description", description), + ), + }, + resource.TestStep{ + Config: testAccCheckIbmSchematicsAgentConfig(nameUpdate, versionUpdate, schematicsLocationUpdate, agentLocationUpdate, descriptionUpdate), + Check: resource.ComposeAggregateTestCheckFunc( + resource.TestCheckResourceAttr("ibm_schematics_agent.schematics_agent_instance", "name", nameUpdate), + resource.TestCheckResourceAttr("ibm_schematics_agent.schematics_agent_instance", "version", versionUpdate), + resource.TestCheckResourceAttr("ibm_schematics_agent.schematics_agent_instance", "schematics_location", schematicsLocationUpdate), + resource.TestCheckResourceAttr("ibm_schematics_agent.schematics_agent_instance", "agent_location", agentLocationUpdate), + resource.TestCheckResourceAttr("ibm_schematics_agent.schematics_agent_instance", "description", descriptionUpdate), + ), + }, + resource.TestStep{ + ResourceName: "ibm_schematics_agent.schematics_agent_instance", + ImportState: true, + ImportStateVerify: true, + }, + }, + }) +} + +func testAccCheckIbmSchematicsAgentConfigBasic(name string, version string, schematicsLocation string, agentLocation string) string { + return fmt.Sprintf(` + + resource "ibm_schematics_agent" "schematics_agent_instance" { + name = "%s" + resource_group = "Default" + version = "%s" + schematics_location = "%s" + agent_location = "%s" + agent_infrastructure { + infra_type = "ibm_kubernetes" + cluster_id = "cluster_id" + cluster_resource_group = "cluster_resource_group" + cos_instance_name = "cos_instance_name" + cos_bucket_name = "cos_bucket_name" + cos_bucket_region = "cos_bucket_region" + } + } + `, name, version, schematicsLocation, agentLocation) +} + +func testAccCheckIbmSchematicsAgentConfig(name string, version string, schematicsLocation string, agentLocation string, description string) string { + return fmt.Sprintf(` + + resource "ibm_schematics_agent" "schematics_agent_instance" { + name = "%s" + resource_group = "default" + version = "%s" + schematics_location = "%s" + agent_location = "%s" + agent_infrastructure { + infra_type = "ibm_kubernetes" + cluster_id = "cluster_id" + cluster_resource_group = "cluster_resource_group" + cos_instance_name = "cos_instance_name" + cos_bucket_name = "cos_bucket_name" + cos_bucket_region = "cos_bucket_region" + } + description = "%s" + tags = "FIXME" + agent_metadata { + name = "purpose" + value = ["git", "terraform", "ansible"] + } + agent_inputs { + name = "name" + value = "value" + use_default = true + metadata { + type = "boolean" + aliases = [ "aliases" ] + description = "description" + cloud_data_type = "cloud_data_type" + default_value = "default_value" + link_status = "normal" + secure = true + immutable = true + hidden = true + required = true + options = [ "options" ] + min_value = 1 + max_value = 1 + min_length = 1 + max_length = 1 + matches = "matches" + position = 1 + group_by = "group_by" + source = "source" + } + link = "link" + } + user_state { + state = "enable" + set_by = "set_by" + set_at = "2021-01-31T09:44:12Z" + } + agent_kpi { + availability_indicator = "available" + lifecycle_indicator = "consistent" + percent_usage_indicator = "percent_usage_indicator" + application_indicators = [ null ] + infra_indicators = [ null ] + } + } + `, name, version, schematicsLocation, agentLocation, description) +} + +func testAccCheckIbmSchematicsAgentExists(n string, obj schematicsv1.AgentData) resource.TestCheckFunc { + + return func(s *terraform.State) error { + rs, ok := s.RootModule().Resources[n] + if !ok { + return fmt.Errorf("Not found: %s", n) + } + + schematicsClient, err := acc.TestAccProvider.Meta().(conns.ClientSession).SchematicsV1() + if err != nil { + return err + } + + getAgentDataOptions := &schematicsv1.GetAgentDataOptions{ + XFeatureAgents: core.BoolPtr(true), + } + + getAgentDataOptions.SetAgentID(rs.Primary.ID) + + agentData, _, err := schematicsClient.GetAgentData(getAgentDataOptions) + if err != nil { + return err + } + + obj = *agentData + return nil + } +} + +func testAccCheckIbmSchematicsAgentDestroy(s *terraform.State) error { + schematicsClient, err := acc.TestAccProvider.Meta().(conns.ClientSession).SchematicsV1() + if err != nil { + return err + } + for _, rs := range s.RootModule().Resources { + if rs.Type != "ibm_schematics_agent" { + continue + } + + getAgentDataOptions := &schematicsv1.GetAgentDataOptions{ + XFeatureAgents: core.BoolPtr(true), + } + + getAgentDataOptions.SetAgentID(rs.Primary.ID) + + // Try to find the key + _, response, err := schematicsClient.GetAgentData(getAgentDataOptions) + if err == nil { + return nil + // TODO: uncomment the following lines of code once the agent delete actually deletes agentdoc + // return fmt.Errorf("schematics_agent still exists: %s", rs.Primary.ID) + } else if response.StatusCode != 404 { + return fmt.Errorf("Error checking for schematics_agent (%s) has been destroyed: %s", rs.Primary.ID, err) + } + } + + return nil +} diff --git a/ibm/service/schematics/resource_ibm_schematics_policy.go b/ibm/service/schematics/resource_ibm_schematics_policy.go new file mode 100644 index 0000000000..66f2d6cea5 --- /dev/null +++ b/ibm/service/schematics/resource_ibm_schematics_policy.go @@ -0,0 +1,769 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package schematics + +import ( + "context" + "fmt" + "log" + + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/validate" + "github.com/IBM/go-sdk-core/v5/core" + "github.com/IBM/schematics-go-sdk/schematicsv1" +) + +func ResourceIbmSchematicsPolicy() *schema.Resource { + return &schema.Resource{ + CreateContext: resourceIbmSchematicsPolicyCreate, + ReadContext: resourceIbmSchematicsPolicyRead, + UpdateContext: resourceIbmSchematicsPolicyUpdate, + DeleteContext: resourceIbmSchematicsPolicyDelete, + Importer: &schema.ResourceImporter{}, + + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Required: true, + Description: "Name of Schematics customization policy.", + }, + "description": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "The description of Schematics customization policy.", + }, + "resource_group": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "The resource group name for the policy. By default, Policy will be created in `default` Resource Group.", + }, + "tags": &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Description: "Tags for the Schematics customization policy.", + Elem: &schema.Schema{Type: schema.TypeString}, + }, + "location": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics.", + }, + "state": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Computed: true, + Description: "User defined status of the Schematics object.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "state": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "User-defined states * `draft` Object can be modified; can be used by Jobs run by the author, during execution * `live` Object can be modified; can be used by Jobs during execution * `locked` Object cannot be modified; can be used by Jobs during execution * `disable` Object can be modified. cannot be used by Jobs during execution.", + }, + "set_by": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Name of the User who set the state of the Object.", + }, + "set_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "When the User who set the state of the Object.", + }, + }, + }, + }, + "kind": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + ValidateFunc: validate.InvokeValidator("ibm_schematics_policy", "kind"), + Description: "Policy kind or categories for managing and deriving policy decision * `agent_assignment_policy` Agent assignment policy for job execution.", + }, + "target": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Computed: true, + Description: "The objects for the Schematics policy.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "selector_kind": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "Types of schematics object selector.", + }, + "selector_ids": &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Computed: true, + Description: "Static selectors of schematics object ids (agent, workspace, action or blueprint) for the Schematics policy.", + Elem: &schema.Schema{Type: schema.TypeString}, + }, + "selector_scope": &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Computed: true, + Description: "Selectors to dynamically list of schematics object ids (agent, workspace, action or blueprint) for the Schematics policy.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "kind": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "Name of the Schematics automation resource.", + }, + "tags": &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Computed: true, + Description: "The tag based selector.", + Elem: &schema.Schema{Type: schema.TypeString}, + }, + "resource_groups": &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Computed: true, + Description: "The resource group based selector.", + Elem: &schema.Schema{Type: schema.TypeString}, + }, + "locations": &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Computed: true, + Description: "The location based selector.", + Elem: &schema.Schema{Type: schema.TypeString}, + }, + }, + }, + }, + }, + }, + }, + "parameter": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Computed: true, + Description: "The parameter to tune the Schematics policy.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "agent_assignment_policy_parameter": &schema.Schema{ + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Computed: true, + Description: "Parameters for the `agent_assignment_policy`.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "selector_kind": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "Types of schematics object selector.", + }, + "selector_ids": &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Computed: true, + Description: "The static selectors of schematics object ids (workspace, action or blueprint) for the Schematics policy.", + Elem: &schema.Schema{Type: schema.TypeString}, + }, + "selector_scope": &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Computed: true, + Description: "The selectors to dynamically list of schematics object ids (workspace, action or blueprint) for the Schematics policy.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "kind": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "Name of the Schematics automation resource.", + }, + "tags": &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Computed: true, + Description: "The tag based selector.", + Elem: &schema.Schema{Type: schema.TypeString}, + }, + "resource_groups": &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Computed: true, + Description: "The resource group based selector.", + Elem: &schema.Schema{Type: schema.TypeString}, + }, + "locations": &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Computed: true, + Description: "The location based selector.", + Elem: &schema.Schema{Type: schema.TypeString}, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + "scoped_resources": &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Description: "List of scoped Schematics resources targeted by the policy.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "kind": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "Name of the Schematics automation resource.", + }, + "id": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Description: "Schematics resource Id.", + }, + }, + }, + }, + "crn": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The policy CRN.", + }, + "account": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The Account id.", + }, + "created_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The policy creation time.", + }, + "created_by": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The user who created the policy.", + }, + "updated_at": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "The policy updation time.", + }, + }, + } +} + +func ResourceIbmSchematicsPolicyValidator() *validate.ResourceValidator { + validateSchema := make([]validate.ValidateSchema, 0) + validateSchema = append(validateSchema, + validate.ValidateSchema{ + Identifier: "kind", + ValidateFunctionIdentifier: validate.ValidateAllowedStringValue, + Type: validate.TypeString, + Optional: true, + AllowedValues: "agent_assignment_policy", + }, + ) + + resourceValidator := validate.ResourceValidator{ResourceName: "ibm_schematics_policy", Schema: validateSchema} + return &resourceValidator +} + +func resourceIbmSchematicsPolicyCreate(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + schematicsClient, err := meta.(conns.ClientSession).SchematicsV1() + if err != nil { + return diag.FromErr(err) + } + + createPolicyOptions := &schematicsv1.CreatePolicyOptions{} + + if _, ok := d.GetOk("name"); ok { + createPolicyOptions.SetName(d.Get("name").(string)) + } + if _, ok := d.GetOk("description"); ok { + createPolicyOptions.SetDescription(d.Get("description").(string)) + } + if _, ok := d.GetOk("resource_group"); ok { + createPolicyOptions.SetResourceGroup(d.Get("resource_group").(string)) + } + if _, ok := d.GetOk("tags"); ok { + createPolicyOptions.SetTags(d.Get("tags").([]string)) + } + if _, ok := d.GetOk("location"); ok { + createPolicyOptions.SetLocation(d.Get("location").(string)) + } + if _, ok := d.GetOk("state"); ok { + stateModel, err := resourceIbmSchematicsPolicyMapToUserState(d.Get("state.0").(map[string]interface{})) + if err != nil { + return diag.FromErr(err) + } + createPolicyOptions.SetState(stateModel) + } + if _, ok := d.GetOk("kind"); ok { + createPolicyOptions.SetKind(d.Get("kind").(string)) + } + if _, ok := d.GetOk("target"); ok { + targetModel, err := resourceIbmSchematicsPolicyMapToPolicyObjects(d.Get("target.0").(map[string]interface{})) + if err != nil { + return diag.FromErr(err) + } + createPolicyOptions.SetTarget(targetModel) + } + if _, ok := d.GetOk("parameter"); ok { + parameterModel, err := resourceIbmSchematicsPolicyMapToPolicyParameter(d.Get("parameter.0").(map[string]interface{})) + if err != nil { + return diag.FromErr(err) + } + createPolicyOptions.SetParameter(parameterModel) + } + if _, ok := d.GetOk("scoped_resources"); ok { + var scopedResources []schematicsv1.ScopedResource + for _, e := range d.Get("scoped_resources").([]interface{}) { + value := e.(map[string]interface{}) + scopedResourcesItem, err := resourceIbmSchematicsPolicyMapToScopedResource(value) + if err != nil { + return diag.FromErr(err) + } + scopedResources = append(scopedResources, *scopedResourcesItem) + } + createPolicyOptions.SetScopedResources(scopedResources) + } + + policy, response, err := schematicsClient.CreatePolicyWithContext(context, createPolicyOptions) + if err != nil { + log.Printf("[DEBUG] CreatePolicyWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("CreatePolicyWithContext failed %s\n%s", err, response)) + } + + d.SetId(*policy.ID) + + return resourceIbmSchematicsPolicyRead(context, d, meta) +} + +func resourceIbmSchematicsPolicyRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + schematicsClient, err := meta.(conns.ClientSession).SchematicsV1() + if err != nil { + return diag.FromErr(err) + } + + getPolicyOptions := &schematicsv1.GetPolicyOptions{} + + getPolicyOptions.SetPolicyID(d.Id()) + + policy, response, err := schematicsClient.GetPolicyWithContext(context, getPolicyOptions) + if err != nil { + if response != nil && response.StatusCode == 404 { + d.SetId("") + return nil + } + log.Printf("[DEBUG] GetPolicyWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("GetPolicyWithContext failed %s\n%s", err, response)) + } + + if err = d.Set("name", policy.Name); err != nil { + return diag.FromErr(fmt.Errorf("Error setting name: %s", err)) + } + if err = d.Set("description", policy.Description); err != nil { + return diag.FromErr(fmt.Errorf("Error setting description: %s", err)) + } + if err = d.Set("resource_group", policy.ResourceGroup); err != nil { + return diag.FromErr(fmt.Errorf("Error setting resource_group: %s", err)) + } + if policy.Tags != nil { + if err = d.Set("tags", policy.Tags); err != nil { + return diag.FromErr(fmt.Errorf("Error setting tags: %s", err)) + } + } + if err = d.Set("location", policy.Location); err != nil { + return diag.FromErr(fmt.Errorf("Error setting location: %s", err)) + } + if policy.State != nil { + stateMap, err := resourceIbmSchematicsPolicyUserStateToMap(policy.State) + if err != nil { + return diag.FromErr(err) + } + if err = d.Set("state", []map[string]interface{}{stateMap}); err != nil { + return diag.FromErr(fmt.Errorf("Error setting state: %s", err)) + } + } + if err = d.Set("kind", policy.Kind); err != nil { + return diag.FromErr(fmt.Errorf("Error setting kind: %s", err)) + } + if policy.Target != nil { + targetMap, err := resourceIbmSchematicsPolicyPolicyObjectsToMap(policy.Target) + if err != nil { + return diag.FromErr(err) + } + if err = d.Set("target", []map[string]interface{}{targetMap}); err != nil { + return diag.FromErr(fmt.Errorf("Error setting target: %s", err)) + } + } + if policy.Parameter != nil { + parameterMap, err := resourceIbmSchematicsPolicyPolicyParameterToMap(policy.Parameter) + if err != nil { + return diag.FromErr(err) + } + if err = d.Set("parameter", []map[string]interface{}{parameterMap}); err != nil { + return diag.FromErr(fmt.Errorf("Error setting parameter: %s", err)) + } + } + scopedResources := []map[string]interface{}{} + if policy.ScopedResources != nil { + for _, scopedResourcesItem := range policy.ScopedResources { + scopedResourcesItemMap, err := resourceIbmSchematicsPolicyScopedResourceToMap(&scopedResourcesItem) + if err != nil { + return diag.FromErr(err) + } + scopedResources = append(scopedResources, scopedResourcesItemMap) + } + } + if err = d.Set("scoped_resources", scopedResources); err != nil { + return diag.FromErr(fmt.Errorf("Error setting scoped_resources: %s", err)) + } + if err = d.Set("crn", policy.Crn); err != nil { + return diag.FromErr(fmt.Errorf("Error setting crn: %s", err)) + } + if err = d.Set("account", policy.Account); err != nil { + return diag.FromErr(fmt.Errorf("Error setting account: %s", err)) + } + if err = d.Set("created_at", flex.DateTimeToString(policy.CreatedAt)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting created_at: %s", err)) + } + if err = d.Set("created_by", policy.CreatedBy); err != nil { + return diag.FromErr(fmt.Errorf("Error setting created_by: %s", err)) + } + if err = d.Set("updated_at", flex.DateTimeToString(policy.UpdatedAt)); err != nil { + return diag.FromErr(fmt.Errorf("Error setting updated_at: %s", err)) + } + + return nil +} + +func resourceIbmSchematicsPolicyUpdate(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + schematicsClient, err := meta.(conns.ClientSession).SchematicsV1() + if err != nil { + return diag.FromErr(err) + } + + updatePolicyOptions := &schematicsv1.UpdatePolicyOptions{} + + updatePolicyOptions.SetPolicyID(d.Id()) + + hasChange := false + + if d.HasChange("name") { + updatePolicyOptions.SetName(d.Get("name").(string)) + hasChange = true + } + if d.HasChange("description") { + updatePolicyOptions.SetDescription(d.Get("description").(string)) + hasChange = true + } + if d.HasChange("resource_group") { + updatePolicyOptions.SetResourceGroup(d.Get("resource_group").(string)) + hasChange = true + } + if d.HasChange("tags") { + // TODO: handle Tags of type TypeList -- not primitive, not model + hasChange = true + } + if d.HasChange("location") { + updatePolicyOptions.SetLocation(d.Get("location").(string)) + hasChange = true + } + if d.HasChange("state") { + state, err := resourceIbmSchematicsPolicyMapToUserState(d.Get("state.0").(map[string]interface{})) + if err != nil { + return diag.FromErr(err) + } + updatePolicyOptions.SetState(state) + hasChange = true + } + if d.HasChange("kind") { + updatePolicyOptions.SetKind(d.Get("kind").(string)) + hasChange = true + } + if d.HasChange("target") { + target, err := resourceIbmSchematicsPolicyMapToPolicyObjects(d.Get("target.0").(map[string]interface{})) + if err != nil { + return diag.FromErr(err) + } + updatePolicyOptions.SetTarget(target) + hasChange = true + } + if d.HasChange("parameter") { + parameter, err := resourceIbmSchematicsPolicyMapToPolicyParameter(d.Get("parameter.0").(map[string]interface{})) + if err != nil { + return diag.FromErr(err) + } + updatePolicyOptions.SetParameter(parameter) + hasChange = true + } + if d.HasChange("scoped_resources") { + // TODO: handle ScopedResources of type TypeList -- not primitive, not model + hasChange = true + } + + if hasChange { + _, response, err := schematicsClient.UpdatePolicyWithContext(context, updatePolicyOptions) + if err != nil { + log.Printf("[DEBUG] UpdatePolicyWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("UpdatePolicyWithContext failed %s\n%s", err, response)) + } + } + + return resourceIbmSchematicsPolicyRead(context, d, meta) +} + +func resourceIbmSchematicsPolicyDelete(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + schematicsClient, err := meta.(conns.ClientSession).SchematicsV1() + if err != nil { + return diag.FromErr(err) + } + + deletePolicyOptions := &schematicsv1.DeletePolicyOptions{} + + deletePolicyOptions.SetPolicyID(d.Id()) + + response, err := schematicsClient.DeletePolicyWithContext(context, deletePolicyOptions) + if err != nil { + log.Printf("[DEBUG] DeletePolicyWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("DeletePolicyWithContext failed %s\n%s", err, response)) + } + + d.SetId("") + + return nil +} + +func resourceIbmSchematicsPolicyMapToUserState(modelMap map[string]interface{}) (*schematicsv1.UserState, error) { + model := &schematicsv1.UserState{} + if modelMap["state"] != nil && modelMap["state"].(string) != "" { + model.State = core.StringPtr(modelMap["state"].(string)) + } + if modelMap["set_by"] != nil && modelMap["set_by"].(string) != "" { + model.SetBy = core.StringPtr(modelMap["set_by"].(string)) + } + if modelMap["set_at"] != nil { + + } + return model, nil +} + +func resourceIbmSchematicsPolicyMapToPolicyObjects(modelMap map[string]interface{}) (*schematicsv1.PolicyObjects, error) { + model := &schematicsv1.PolicyObjects{} + if modelMap["selector_kind"] != nil && modelMap["selector_kind"].(string) != "" { + model.SelectorKind = core.StringPtr(modelMap["selector_kind"].(string)) + } + if modelMap["selector_ids"] != nil { + selectorIds := []string{} + for _, selectorIdsItem := range modelMap["selector_ids"].([]interface{}) { + selectorIds = append(selectorIds, selectorIdsItem.(string)) + } + model.SelectorIds = selectorIds + } + if modelMap["selector_scope"] != nil { + selectorScope := []schematicsv1.PolicyObjectSelector{} + for _, selectorScopeItem := range modelMap["selector_scope"].([]interface{}) { + selectorScopeItemModel, err := resourceIbmSchematicsPolicyMapToPolicyObjectSelector(selectorScopeItem.(map[string]interface{})) + if err != nil { + return model, err + } + selectorScope = append(selectorScope, *selectorScopeItemModel) + } + model.SelectorScope = selectorScope + } + return model, nil +} + +func resourceIbmSchematicsPolicyMapToPolicyObjectSelector(modelMap map[string]interface{}) (*schematicsv1.PolicyObjectSelector, error) { + model := &schematicsv1.PolicyObjectSelector{} + if modelMap["kind"] != nil && modelMap["kind"].(string) != "" { + model.Kind = core.StringPtr(modelMap["kind"].(string)) + } + if modelMap["tags"] != nil { + tags := []string{} + for _, tagsItem := range modelMap["tags"].([]interface{}) { + tags = append(tags, tagsItem.(string)) + } + model.Tags = tags + } + if modelMap["resource_groups"] != nil { + resourceGroups := []string{} + for _, resourceGroupsItem := range modelMap["resource_groups"].([]interface{}) { + resourceGroups = append(resourceGroups, resourceGroupsItem.(string)) + } + model.ResourceGroups = resourceGroups + } + if modelMap["locations"] != nil { + locations := []string{} + for _, locationsItem := range modelMap["locations"].([]interface{}) { + locations = append(locations, locationsItem.(string)) + } + model.Locations = locations + } + return model, nil +} + +func resourceIbmSchematicsPolicyMapToPolicyParameter(modelMap map[string]interface{}) (*schematicsv1.PolicyParameter, error) { + model := &schematicsv1.PolicyParameter{} + if modelMap["agent_assignment_policy_parameter"] != nil && len(modelMap["agent_assignment_policy_parameter"].([]interface{})) > 0 { + AgentAssignmentPolicyParameterModel, err := resourceIbmSchematicsPolicyMapToAgentAssignmentPolicyParameter(modelMap["agent_assignment_policy_parameter"].([]interface{})[0].(map[string]interface{})) + if err != nil { + return model, err + } + model.AgentAssignmentPolicyParameter = AgentAssignmentPolicyParameterModel + } + return model, nil +} + +func resourceIbmSchematicsPolicyMapToAgentAssignmentPolicyParameter(modelMap map[string]interface{}) (*schematicsv1.AgentAssignmentPolicyParameter, error) { + model := &schematicsv1.AgentAssignmentPolicyParameter{} + if modelMap["selector_kind"] != nil && modelMap["selector_kind"].(string) != "" { + model.SelectorKind = core.StringPtr(modelMap["selector_kind"].(string)) + } + if modelMap["selector_ids"] != nil { + selectorIds := []string{} + for _, selectorIdsItem := range modelMap["selector_ids"].([]interface{}) { + selectorIds = append(selectorIds, selectorIdsItem.(string)) + } + model.SelectorIds = selectorIds + } + if modelMap["selector_scope"] != nil { + selectorScope := []schematicsv1.PolicyObjectSelector{} + for _, selectorScopeItem := range modelMap["selector_scope"].([]interface{}) { + selectorScopeItemModel, err := resourceIbmSchematicsPolicyMapToPolicyObjectSelector(selectorScopeItem.(map[string]interface{})) + if err != nil { + return model, err + } + selectorScope = append(selectorScope, *selectorScopeItemModel) + } + model.SelectorScope = selectorScope + } + return model, nil +} + +func resourceIbmSchematicsPolicyMapToScopedResource(modelMap map[string]interface{}) (*schematicsv1.ScopedResource, error) { + model := &schematicsv1.ScopedResource{} + if modelMap["kind"] != nil && modelMap["kind"].(string) != "" { + model.Kind = core.StringPtr(modelMap["kind"].(string)) + } + if modelMap["id"] != nil && modelMap["id"].(string) != "" { + model.ID = core.StringPtr(modelMap["id"].(string)) + } + return model, nil +} + +func resourceIbmSchematicsPolicyUserStateToMap(model *schematicsv1.UserState) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.State != nil { + modelMap["state"] = model.State + } + if model.SetBy != nil { + modelMap["set_by"] = model.SetBy + } + if model.SetAt != nil { + modelMap["set_at"] = model.SetAt.String() + } + return modelMap, nil +} + +func resourceIbmSchematicsPolicyPolicyObjectsToMap(model *schematicsv1.PolicyObjects) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.SelectorKind != nil { + modelMap["selector_kind"] = model.SelectorKind + } + if model.SelectorIds != nil { + modelMap["selector_ids"] = model.SelectorIds + } + if model.SelectorScope != nil { + selectorScope := []map[string]interface{}{} + for _, selectorScopeItem := range model.SelectorScope { + selectorScopeItemMap, err := resourceIbmSchematicsPolicyPolicyObjectSelectorToMap(&selectorScopeItem) + if err != nil { + return modelMap, err + } + selectorScope = append(selectorScope, selectorScopeItemMap) + } + modelMap["selector_scope"] = selectorScope + } + return modelMap, nil +} + +func resourceIbmSchematicsPolicyPolicyObjectSelectorToMap(model *schematicsv1.PolicyObjectSelector) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.Kind != nil { + modelMap["kind"] = model.Kind + } + if model.Tags != nil { + modelMap["tags"] = model.Tags + } + if model.ResourceGroups != nil { + modelMap["resource_groups"] = model.ResourceGroups + } + if model.Locations != nil { + modelMap["locations"] = model.Locations + } + return modelMap, nil +} + +func resourceIbmSchematicsPolicyPolicyParameterToMap(model *schematicsv1.PolicyParameter) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.AgentAssignmentPolicyParameter != nil { + agentAssignmentPolicyParameterMap, err := resourceIbmSchematicsPolicyAgentAssignmentPolicyParameterToMap(model.AgentAssignmentPolicyParameter) + if err != nil { + return modelMap, err + } + modelMap["agent_assignment_policy_parameter"] = []map[string]interface{}{agentAssignmentPolicyParameterMap} + } + return modelMap, nil +} + +func resourceIbmSchematicsPolicyAgentAssignmentPolicyParameterToMap(model *schematicsv1.AgentAssignmentPolicyParameter) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.SelectorKind != nil { + modelMap["selector_kind"] = model.SelectorKind + } + if model.SelectorIds != nil { + modelMap["selector_ids"] = model.SelectorIds + } + if model.SelectorScope != nil { + selectorScope := []map[string]interface{}{} + for _, selectorScopeItem := range model.SelectorScope { + selectorScopeItemMap, err := resourceIbmSchematicsPolicyPolicyObjectSelectorToMap(&selectorScopeItem) + if err != nil { + return modelMap, err + } + selectorScope = append(selectorScope, selectorScopeItemMap) + } + modelMap["selector_scope"] = selectorScope + } + return modelMap, nil +} + +func resourceIbmSchematicsPolicyScopedResourceToMap(model *schematicsv1.ScopedResource) (map[string]interface{}, error) { + modelMap := make(map[string]interface{}) + if model.Kind != nil { + modelMap["kind"] = model.Kind + } + if model.ID != nil { + modelMap["id"] = model.ID + } + return modelMap, nil +} diff --git a/ibm/service/schematics/resource_ibm_schematics_policy_test.go b/ibm/service/schematics/resource_ibm_schematics_policy_test.go new file mode 100644 index 0000000000..dbae396bd5 --- /dev/null +++ b/ibm/service/schematics/resource_ibm_schematics_policy_test.go @@ -0,0 +1,196 @@ +// Copyright IBM Corp. 2023 All Rights Reserved. +// Licensed under the Mozilla Public License v2.0 + +package schematics_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + + acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" + "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" + "github.com/IBM/schematics-go-sdk/schematicsv1" +) + +func TestAccIbmSchematicsPolicyBasic(t *testing.T) { + var conf schematicsv1.Policy + name := fmt.Sprintf("tf_name_%d", acctest.RandIntRange(10, 100)) + kind := "agent_assignment_policy" + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIbmSchematicsPolicyDestroy, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmSchematicsPolicyConfigBasic(name, kind), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIbmSchematicsPolicyExists("ibm_schematics_policy.schematics_policy_instance", conf), + resource.TestCheckResourceAttr("ibm_schematics_policy.schematics_policy_instance", "name", name), + resource.TestCheckResourceAttr("ibm_schematics_policy.schematics_policy_instance", "kind", kind), + ), + }, + }, + }) +} + +func TestAccIbmSchematicsPolicyAllArgs(t *testing.T) { + var conf schematicsv1.Policy + name := fmt.Sprintf("tf_name_%d", acctest.RandIntRange(10, 100)) + description := fmt.Sprintf("tf_description_%d", acctest.RandIntRange(10, 100)) + resourceGroup := fmt.Sprintf("tf_resource_group_%d", acctest.RandIntRange(10, 100)) + location := "us-south" + kind := "agent_assignment_policy" + nameUpdate := fmt.Sprintf("tf_name_%d", acctest.RandIntRange(10, 100)) + descriptionUpdate := fmt.Sprintf("tf_description_%d", acctest.RandIntRange(10, 100)) + resourceGroupUpdate := fmt.Sprintf("tf_resource_group_%d", acctest.RandIntRange(10, 100)) + locationUpdate := "eu-de" + kindUpdate := "agent_assignment_policy" + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIbmSchematicsPolicyDestroy, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIbmSchematicsPolicyConfig(name, description, resourceGroup, location, kind), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIbmSchematicsPolicyExists("ibm_schematics_policy.schematics_policy_instance", conf), + resource.TestCheckResourceAttr("ibm_schematics_policy.schematics_policy_instance", "name", name), + resource.TestCheckResourceAttr("ibm_schematics_policy.schematics_policy_instance", "description", description), + resource.TestCheckResourceAttr("ibm_schematics_policy.schematics_policy_instance", "resource_group", resourceGroup), + resource.TestCheckResourceAttr("ibm_schematics_policy.schematics_policy_instance", "location", location), + resource.TestCheckResourceAttr("ibm_schematics_policy.schematics_policy_instance", "kind", kind), + ), + }, + resource.TestStep{ + Config: testAccCheckIbmSchematicsPolicyConfig(nameUpdate, descriptionUpdate, resourceGroupUpdate, locationUpdate, kindUpdate), + Check: resource.ComposeAggregateTestCheckFunc( + resource.TestCheckResourceAttr("ibm_schematics_policy.schematics_policy_instance", "name", nameUpdate), + resource.TestCheckResourceAttr("ibm_schematics_policy.schematics_policy_instance", "description", descriptionUpdate), + resource.TestCheckResourceAttr("ibm_schematics_policy.schematics_policy_instance", "resource_group", resourceGroupUpdate), + resource.TestCheckResourceAttr("ibm_schematics_policy.schematics_policy_instance", "location", locationUpdate), + resource.TestCheckResourceAttr("ibm_schematics_policy.schematics_policy_instance", "kind", kindUpdate), + ), + }, + resource.TestStep{ + ResourceName: "ibm_schematics_policy.schematics_policy_instance", + ImportState: true, + ImportStateVerify: true, + }, + }, + }) +} + +func testAccCheckIbmSchematicsPolicyConfigBasic(name string, kind string) string { + return fmt.Sprintf(` + + resource "ibm_schematics_policy" "schematics_policy_instance" { + name = "%s" + kind = "%s" + } + `, name, kind) +} + +func testAccCheckIbmSchematicsPolicyConfig(name string, description string, resourceGroup string, location string, kind string) string { + return fmt.Sprintf(` + + resource "ibm_schematics_policy" "schematics_policy_instance" { + name = "%s" + description = "%s" + resource_group = "%s" + tags = "FIXME" + location = "%s" + state { + state = "draft" + set_by = "set_by" + set_at = "2021-01-31T09:44:12Z" + } + kind = "%s" + target { + selector_kind = "ids" + selector_ids = [ "selector_ids" ] + selector_scope { + kind = "workspace" + tags = [ "tags" ] + resource_groups = [ "resource_groups" ] + locations = [ "us-south" ] + } + } + parameter { + agent_assignment_policy_parameter { + selector_kind = "ids" + selector_ids = [ "selector_ids" ] + selector_scope { + kind = "workspace" + tags = [ "tags" ] + resource_groups = [ "resource_groups" ] + locations = [ "us-south" ] + } + } + } + scoped_resources { + kind = "workspace" + id = "id" + } + } + `, name, description, resourceGroup, location, kind) +} + +func testAccCheckIbmSchematicsPolicyExists(n string, obj schematicsv1.Policy) resource.TestCheckFunc { + + return func(s *terraform.State) error { + rs, ok := s.RootModule().Resources[n] + if !ok { + return fmt.Errorf("Not found: %s", n) + } + + schematicsClient, err := acc.TestAccProvider.Meta().(conns.ClientSession).SchematicsV1() + if err != nil { + return err + } + + getPolicyOptions := &schematicsv1.GetPolicyOptions{} + + getPolicyOptions.SetPolicyID(rs.Primary.ID) + + policy, _, err := schematicsClient.GetPolicy(getPolicyOptions) + if err != nil { + return err + } + + obj = *policy + return nil + } +} + +func testAccCheckIbmSchematicsPolicyDestroy(s *terraform.State) error { + schematicsClient, err := acc.TestAccProvider.Meta().(conns.ClientSession).SchematicsV1() + if err != nil { + return err + } + for _, rs := range s.RootModule().Resources { + if rs.Type != "ibm_schematics_policy" { + continue + } + + getPolicyOptions := &schematicsv1.GetPolicyOptions{} + + getPolicyOptions.SetPolicyID(rs.Primary.ID) + + // Try to find the key + _, response, err := schematicsClient.GetPolicy(getPolicyOptions) + + if err == nil { + return fmt.Errorf("schematics_policy still exists: %s", rs.Primary.ID) + } else if response.StatusCode != 404 { + return fmt.Errorf("Error checking for schematics_policy (%s) has been destroyed: %s", rs.Primary.ID, err) + } + } + + return nil +} diff --git a/ibm/service/schematics/resource_ibm_schematics_workspace.go b/ibm/service/schematics/resource_ibm_schematics_workspace.go index b6309bf51d..f4c87066b6 100644 --- a/ibm/service/schematics/resource_ibm_schematics_workspace.go +++ b/ibm/service/schematics/resource_ibm_schematics_workspace.go @@ -226,6 +226,11 @@ func ResourceIBMSchematicsWorkspace() *schema.Resource { Description: "List of values metadata.", Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Name of the variable.", + }, "type": &schema.Schema{ Type: schema.TypeString, Computed: true, @@ -249,7 +254,7 @@ func ResourceIBMSchematicsWorkspace() *schema.Resource { Computed: true, Description: "Cloud data type of the variable. eg. resource_group_id, region, vpc_id.", }, - "default_value": &schema.Schema{ + "default": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "Default value for the variable only if the override value is not specified.", @@ -808,8 +813,8 @@ func resourceIBMSchematicsWorkspaceMapToSharedTargetData(sharedTargetDataMap map } if sharedTargetDataMap["entitlement_keys"] != nil { entitlementKeys := []map[string]interface{}{} - for _, entitlementKeysItem := range sharedTargetDataMap["entitlement_keys"].([]map[string]interface{}) { - entitlementKeys = append(entitlementKeys, entitlementKeysItem) + for _, entitlementKeysItem := range sharedTargetDataMap["entitlement_keys"].([]interface{}) { + entitlementKeys = append(entitlementKeys, entitlementKeysItem.(map[string]interface{})) } sharedTargetData.EntitlementKeys = entitlementKeys } @@ -837,8 +842,8 @@ func resourceIBMSchematicsWorkspaceMapToTemplateSourceDataRequest(templateSource if templateSourceDataRequestMap["env_values"] != nil { envValues := []map[string]interface{}{} - for _, envValuesItem := range templateSourceDataRequestMap["env_values"].([]map[string]interface{}) { - envValues = append(envValues, envValuesItem) + for _, envValuesItem := range templateSourceDataRequestMap["env_values"].([]interface{}) { + envValues = append(envValues, envValuesItem.(map[string]interface{})) } templateSourceDataRequest.EnvValues = envValues } @@ -862,8 +867,8 @@ func resourceIBMSchematicsWorkspaceMapToTemplateSourceDataRequest(templateSource } if templateSourceDataRequestMap["values_metadata"] != nil { valuesMetadata := []map[string]interface{}{} - for _, valuesMetadataItem := range templateSourceDataRequestMap["values_metadata"].([]map[string]interface{}) { - valuesMetadata = append(valuesMetadata, valuesMetadataItem) + for _, valuesMetadataItem := range templateSourceDataRequestMap["values_metadata"].([]interface{}) { + valuesMetadata = append(valuesMetadata, valuesMetadataItem.(map[string]interface{})) } templateSourceDataRequest.ValuesMetadata = valuesMetadata } diff --git a/ibm/service/vpc/data_source_ibm_is_subnet.go b/ibm/service/vpc/data_source_ibm_is_subnet.go index 6a2503e06a..92154b1759 100644 --- a/ibm/service/vpc/data_source_ibm_is_subnet.go +++ b/ibm/service/vpc/data_source_ibm_is_subnet.go @@ -87,8 +87,11 @@ func DataSourceIBMISSubnet() *schema.Resource { }, isSubnetVPC: { - Type: schema.TypeString, - Computed: true, + Type: schema.TypeString, + Optional: true, + Computed: true, + RequiredWith: []string{isSubnetName}, + ValidateFunc: validate.InvokeDataSourceValidator("ibm_is_subnet", "identifier"), }, isSubnetVPCName: { @@ -229,11 +232,14 @@ func subnetGetByNameOrID(d *schema.ResourceData, meta interface{}) error { start := "" allrecs := []vpcv1.Subnet{} getSubnetsListOptions := &vpcv1.ListSubnetsOptions{} - for { if start != "" { getSubnetsListOptions.Start = &start } + if vpcIdOk, ok := d.GetOk(isSubnetVPC); ok { + vpcIDOk := vpcIdOk.(string) + getSubnetsListOptions.VPCID = &vpcIDOk + } subnetsCollection, response, err := sess.ListSubnets(getSubnetsListOptions) if err != nil { return fmt.Errorf("[ERROR] Error Fetching subnets List %s\n%s", err, response) diff --git a/ibm/service/vpc/data_source_ibm_is_subnets.go b/ibm/service/vpc/data_source_ibm_is_subnets.go index 395a64bf39..09950f0026 100644 --- a/ibm/service/vpc/data_source_ibm_is_subnets.go +++ b/ibm/service/vpc/data_source_ibm_is_subnets.go @@ -17,6 +17,10 @@ const ( isSubnets = "subnets" isSubnetResourceGroupID = "resource_group" isSubnetRoutingTableName = "routing_table_name" + isSubnetResourceZone = "zone" + isSubnetResourceVpc = "vpc" + isSubnetResourceVpcCrn = "vpc_crn" + isSubnetResourceVpcName = "vpc_name" ) func DataSourceIBMISSubnets() *schema.Resource { @@ -24,6 +28,26 @@ func DataSourceIBMISSubnets() *schema.Resource { Read: dataSourceIBMISSubnetsRead, Schema: map[string]*schema.Schema{ + isSubnetResourceVpc: { + Type: schema.TypeString, + Description: "ID of the VPC", + Optional: true, + }, + isSubnetResourceVpcName: { + Type: schema.TypeString, + Description: "Name of the VPC", + Optional: true, + }, + isSubnetResourceVpcCrn: { + Type: schema.TypeString, + Description: "CRN of the VPC", + Optional: true, + }, + isSubnetResourceZone: { + Type: schema.TypeString, + Description: "Name of the Zone ", + Optional: true, + }, isSubnetResourceGroupID: { Type: schema.TypeString, Description: "Resource Group ID", @@ -177,18 +201,49 @@ func subnetList(d *schema.ResourceData, meta interface{}) error { resourceTableName = v.(string) } - options := &vpcv1.ListSubnetsOptions{} - if resourceGroup != "" { - options.SetResourceGroupID(resourceGroup) + var zone string + if v, ok := d.GetOk(isSubnetResourceZone); ok { + zone = v.(string) } - if routingTable != "" { - options.SetRoutingTableID(routingTable) + + var vpc string + if v, ok := d.GetOk(isSubnetResourceVpc); ok { + vpc = v.(string) + } + + var vpcName string + if v, ok := d.GetOk(isSubnetResourceVpcName); ok { + vpcName = v.(string) } - if resourceTableName != "" { - options.SetRoutingTableName(resourceTableName) + + var vpcCrn string + if v, ok := d.GetOk(isSubnetResourceVpcCrn); ok { + vpcCrn = v.(string) } for { + options := &vpcv1.ListSubnetsOptions{} + if resourceGroup != "" { + options.SetResourceGroupID(resourceGroup) + } + if routingTable != "" { + options.SetRoutingTableID(routingTable) + } + if resourceTableName != "" { + options.SetRoutingTableName(resourceTableName) + } + if zone != "" { + options.SetZoneName(zone) + } + if vpc != "" { + options.SetVPCID(vpc) + } + if vpcName != "" { + options.SetVPCName(vpcName) + } + if vpcCrn != "" { + options.SetVPCCRN(vpcCrn) + } if start != "" { options.Start = &start } diff --git a/ibm/service/vpc/data_source_ibm_is_virtual_network_interface.go b/ibm/service/vpc/data_source_ibm_is_virtual_network_interface.go index 8fa399c599..181428db5f 100644 --- a/ibm/service/vpc/data_source_ibm_is_virtual_network_interface.go +++ b/ibm/service/vpc/data_source_ibm_is_virtual_network_interface.go @@ -8,7 +8,7 @@ import ( "fmt" "log" - "github.com/IBM/vpc-beta-go-sdk/vpcbetav1" + "github.com/IBM/vpc-go-sdk/vpcv1" "github.com/hashicorp/terraform-plugin-sdk/v2/diag" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" @@ -339,16 +339,16 @@ func DataSourceIBMIsVirtualNetworkInterface() *schema.Resource { } func dataSourceIBMIsVirtualNetworkInterfaceRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - vpcbetaClient, err := meta.(conns.ClientSession).VpcV1BetaAPI() + vpcClient, err := meta.(conns.ClientSession).VpcV1API() if err != nil { return diag.FromErr(err) } - getVirtualNetworkInterfaceOptions := &vpcbetav1.GetVirtualNetworkInterfaceOptions{} + getVirtualNetworkInterfaceOptions := &vpcv1.GetVirtualNetworkInterfaceOptions{} getVirtualNetworkInterfaceOptions.SetID(d.Get("virtual_network_interface").(string)) - virtualNetworkInterface, response, err := vpcbetaClient.GetVirtualNetworkInterfaceWithContext(context, getVirtualNetworkInterfaceOptions) + virtualNetworkInterface, response, err := vpcClient.GetVirtualNetworkInterfaceWithContext(context, getVirtualNetworkInterfaceOptions) if err != nil { log.Printf("[DEBUG] GetVirtualNetworkInterfaceWithContext failed %s\n%s", err, response) return diag.FromErr(fmt.Errorf("GetVirtualNetworkInterfaceWithContext failed %s\n%s", err, response)) @@ -473,7 +473,7 @@ func dataSourceIBMIsVirtualNetworkInterfaceRead(context context.Context, d *sche return nil } -func dataSourceIBMIsVirtualNetworkInterfaceReservedIPReferenceToMap(model *vpcbetav1.ReservedIPReference) (map[string]interface{}, error) { +func dataSourceIBMIsVirtualNetworkInterfaceReservedIPReferenceToMap(model *vpcv1.ReservedIPReference) (map[string]interface{}, error) { modelMap := make(map[string]interface{}) if model.Address != nil { modelMap["address"] = *model.Address @@ -500,7 +500,7 @@ func dataSourceIBMIsVirtualNetworkInterfaceReservedIPReferenceToMap(model *vpcbe return modelMap, nil } -func dataSourceIBMIsVirtualNetworkInterfaceReservedIPReferenceDeletedToMap(model *vpcbetav1.ReservedIPReferenceDeleted) (map[string]interface{}, error) { +func dataSourceIBMIsVirtualNetworkInterfaceReservedIPReferenceDeletedToMap(model *vpcv1.ReservedIPReferenceDeleted) (map[string]interface{}, error) { modelMap := make(map[string]interface{}) if model.MoreInfo != nil { modelMap["more_info"] = *model.MoreInfo @@ -508,7 +508,7 @@ func dataSourceIBMIsVirtualNetworkInterfaceReservedIPReferenceDeletedToMap(model return modelMap, nil } -func dataSourceIBMIsVirtualNetworkInterfaceResourceGroupReferenceToMap(model *vpcbetav1.ResourceGroupReference) (map[string]interface{}, error) { +func dataSourceIBMIsVirtualNetworkInterfaceResourceGroupReferenceToMap(model *vpcv1.ResourceGroupReference) (map[string]interface{}, error) { modelMap := make(map[string]interface{}) if model.Href != nil { modelMap["href"] = *model.Href @@ -522,7 +522,7 @@ func dataSourceIBMIsVirtualNetworkInterfaceResourceGroupReferenceToMap(model *vp return modelMap, nil } -func dataSourceIBMIsVirtualNetworkInterfaceSecurityGroupReferenceToMap(model *vpcbetav1.SecurityGroupReference) (map[string]interface{}, error) { +func dataSourceIBMIsVirtualNetworkInterfaceSecurityGroupReferenceToMap(model *vpcv1.SecurityGroupReference) (map[string]interface{}, error) { modelMap := make(map[string]interface{}) if model.CRN != nil { modelMap["crn"] = *model.CRN @@ -546,7 +546,7 @@ func dataSourceIBMIsVirtualNetworkInterfaceSecurityGroupReferenceToMap(model *vp return modelMap, nil } -func dataSourceIBMIsVirtualNetworkInterfaceSecurityGroupReferenceDeletedToMap(model *vpcbetav1.SecurityGroupReferenceDeleted) (map[string]interface{}, error) { +func dataSourceIBMIsVirtualNetworkInterfaceSecurityGroupReferenceDeletedToMap(model *vpcv1.SecurityGroupReferenceDeleted) (map[string]interface{}, error) { modelMap := make(map[string]interface{}) if model.MoreInfo != nil { modelMap["more_info"] = *model.MoreInfo @@ -554,7 +554,7 @@ func dataSourceIBMIsVirtualNetworkInterfaceSecurityGroupReferenceDeletedToMap(mo return modelMap, nil } -func dataSourceIBMIsVirtualNetworkInterfaceSubnetReferenceToMap(model *vpcbetav1.SubnetReference) (map[string]interface{}, error) { +func dataSourceIBMIsVirtualNetworkInterfaceSubnetReferenceToMap(model *vpcv1.SubnetReference) (map[string]interface{}, error) { modelMap := make(map[string]interface{}) if model.CRN != nil { modelMap["crn"] = *model.CRN @@ -581,7 +581,7 @@ func dataSourceIBMIsVirtualNetworkInterfaceSubnetReferenceToMap(model *vpcbetav1 return modelMap, nil } -func dataSourceIBMIsVirtualNetworkInterfaceSubnetReferenceDeletedToMap(model *vpcbetav1.SubnetReferenceDeleted) (map[string]interface{}, error) { +func dataSourceIBMIsVirtualNetworkInterfaceSubnetReferenceDeletedToMap(model *vpcv1.SubnetReferenceDeleted) (map[string]interface{}, error) { modelMap := make(map[string]interface{}) if model.MoreInfo != nil { modelMap["more_info"] = *model.MoreInfo @@ -589,12 +589,12 @@ func dataSourceIBMIsVirtualNetworkInterfaceSubnetReferenceDeletedToMap(model *vp return modelMap, nil } -func dataSourceIBMIsVirtualNetworkInterfaceVirtualNetworkInterfaceTargetToMap(model vpcbetav1.VirtualNetworkInterfaceTargetIntf) (map[string]interface{}, error) { - if _, ok := model.(*vpcbetav1.VirtualNetworkInterfaceTargetShareMountTargetReference); ok { - return dataSourceIBMIsVirtualNetworkInterfaceVirtualNetworkInterfaceTargetShareMountTargetReferenceToMap(model.(*vpcbetav1.VirtualNetworkInterfaceTargetShareMountTargetReference)) - } else if _, ok := model.(*vpcbetav1.VirtualNetworkInterfaceTarget); ok { +func dataSourceIBMIsVirtualNetworkInterfaceVirtualNetworkInterfaceTargetToMap(model vpcv1.VirtualNetworkInterfaceTargetIntf) (map[string]interface{}, error) { + if _, ok := model.(*vpcv1.VirtualNetworkInterfaceTargetShareMountTargetReference); ok { + return dataSourceIBMIsVirtualNetworkInterfaceVirtualNetworkInterfaceTargetShareMountTargetReferenceToMap(model.(*vpcv1.VirtualNetworkInterfaceTargetShareMountTargetReference)) + } else if _, ok := model.(*vpcv1.VirtualNetworkInterfaceTarget); ok { modelMap := make(map[string]interface{}) - model := model.(*vpcbetav1.VirtualNetworkInterfaceTarget) + model := model.(*vpcv1.VirtualNetworkInterfaceTarget) if model.Deleted != nil { deletedMap, err := dataSourceIBMIsVirtualNetworkInterfaceShareMountTargetReferenceDeletedToMap(model.Deleted) if err != nil { @@ -616,11 +616,11 @@ func dataSourceIBMIsVirtualNetworkInterfaceVirtualNetworkInterfaceTargetToMap(mo } return modelMap, nil } else { - return nil, fmt.Errorf("Unrecognized vpcbetav1.VirtualNetworkInterfaceTargetIntf subtype encountered") + return nil, fmt.Errorf("Unrecognized vpcv1.VirtualNetworkInterfaceTargetIntf subtype encountered") } } -func dataSourceIBMIsVirtualNetworkInterfaceShareMountTargetReferenceDeletedToMap(model *vpcbetav1.ShareMountTargetReferenceDeleted) (map[string]interface{}, error) { +func dataSourceIBMIsVirtualNetworkInterfaceShareMountTargetReferenceDeletedToMap(model *vpcv1.ShareMountTargetReferenceDeleted) (map[string]interface{}, error) { modelMap := make(map[string]interface{}) if model.MoreInfo != nil { modelMap["more_info"] = *model.MoreInfo @@ -628,7 +628,7 @@ func dataSourceIBMIsVirtualNetworkInterfaceShareMountTargetReferenceDeletedToMap return modelMap, nil } -func dataSourceIBMIsVirtualNetworkInterfaceVirtualNetworkInterfaceTargetShareMountTargetReferenceToMap(model *vpcbetav1.VirtualNetworkInterfaceTargetShareMountTargetReference) (map[string]interface{}, error) { +func dataSourceIBMIsVirtualNetworkInterfaceVirtualNetworkInterfaceTargetShareMountTargetReferenceToMap(model *vpcv1.VirtualNetworkInterfaceTargetShareMountTargetReference) (map[string]interface{}, error) { modelMap := make(map[string]interface{}) if model.Deleted != nil { deletedMap, err := dataSourceIBMIsVirtualNetworkInterfaceShareMountTargetReferenceDeletedToMap(model.Deleted) @@ -652,7 +652,7 @@ func dataSourceIBMIsVirtualNetworkInterfaceVirtualNetworkInterfaceTargetShareMou return modelMap, nil } -func dataSourceIBMIsVirtualNetworkInterfaceVPCReferenceToMap(model *vpcbetav1.VPCReference) (map[string]interface{}, error) { +func dataSourceIBMIsVirtualNetworkInterfaceVPCReferenceToMap(model *vpcv1.VPCReference) (map[string]interface{}, error) { modelMap := make(map[string]interface{}) if model.CRN != nil { modelMap["crn"] = *model.CRN @@ -679,7 +679,7 @@ func dataSourceIBMIsVirtualNetworkInterfaceVPCReferenceToMap(model *vpcbetav1.VP return modelMap, nil } -func dataSourceIBMIsVirtualNetworkInterfaceVPCReferenceDeletedToMap(model *vpcbetav1.VPCReferenceDeleted) (map[string]interface{}, error) { +func dataSourceIBMIsVirtualNetworkInterfaceVPCReferenceDeletedToMap(model *vpcv1.VPCReferenceDeleted) (map[string]interface{}, error) { modelMap := make(map[string]interface{}) if model.MoreInfo != nil { modelMap["more_info"] = *model.MoreInfo @@ -687,7 +687,7 @@ func dataSourceIBMIsVirtualNetworkInterfaceVPCReferenceDeletedToMap(model *vpcbe return modelMap, nil } -func dataSourceIBMIsVirtualNetworkInterfaceZoneReferenceToMap(model *vpcbetav1.ZoneReference) (map[string]interface{}, error) { +func dataSourceIBMIsVirtualNetworkInterfaceZoneReferenceToMap(model *vpcv1.ZoneReference) (map[string]interface{}, error) { modelMap := make(map[string]interface{}) if model.Href != nil { modelMap["href"] = *model.Href diff --git a/ibm/service/vpc/data_source_ibm_is_virtual_network_interfaces.go b/ibm/service/vpc/data_source_ibm_is_virtual_network_interfaces.go index de054c2c45..8705e323cb 100644 --- a/ibm/service/vpc/data_source_ibm_is_virtual_network_interfaces.go +++ b/ibm/service/vpc/data_source_ibm_is_virtual_network_interfaces.go @@ -9,7 +9,7 @@ import ( "log" "time" - "github.com/IBM/vpc-beta-go-sdk/vpcbetav1" + "github.com/IBM/vpc-go-sdk/vpcv1" "github.com/hashicorp/terraform-plugin-sdk/v2/diag" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" @@ -344,40 +344,42 @@ func DataSourceIBMIsVirtualNetworkInterfaces() *schema.Resource { }, }, }, + "resource_group": { + Type: schema.TypeString, + Optional: true, + Description: "The unique identifier of the resource group these virtual network interfaces belong to", + }, }, } } func dataSourceIBMIsVirtualNetworkInterfacesRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - vpcbetaClient, err := meta.(conns.ClientSession).VpcV1BetaAPI() + vpcClient, err := meta.(conns.ClientSession).VpcV1API() if err != nil { return diag.FromErr(err) } - listVirtualNetworkInterfacesOptions := &vpcbetav1.ListVirtualNetworkInterfacesOptions{} - - vniCollection, response, err := vpcbetaClient.ListVirtualNetworkInterfacesWithContext(context, listVirtualNetworkInterfacesOptions) - //log.Printf(len(vniCollection.VirtualNetworkInterfaces)) + listVirtualNetworkInterfacesOptions := &vpcv1.ListVirtualNetworkInterfacesOptions{} + if resgroupintf, ok := d.GetOk("resource_group"); ok { + resGroup := resgroupintf.(string) + listVirtualNetworkInterfacesOptions.ResourceGroupID = &resGroup + } + var pager *vpcv1.VirtualNetworkInterfacesPager + pager, err = vpcClient.NewVirtualNetworkInterfacesPager(listVirtualNetworkInterfacesOptions) if err != nil { - log.Printf("[DEBUG] VirtualNetworkInterfacesPager.GetAll() failed %s\n%s", err, response) - return diag.FromErr(fmt.Errorf("VirtualNetworkInterfacesPager.GetAll() failed %s\n%s", err, response)) + return diag.FromErr(err) } - // var pager *vpcbetav1.VirtualNetworkInterfacesPager - // pager, err = vpcbetaClient.NewVirtualNetworkInterfacesPager(listVirtualNetworkInterfacesOptions) - // if err != nil { - // return diag.FromErr(err) - // } - // allItems, err := pager.GetAll() - // if err != nil { - // log.Printf("[DEBUG] VirtualNetworkInterfacesPager.GetAll() failed %s", err) - // return diag.FromErr(fmt.Errorf("VirtualNetworkInterfacesPager.GetAll() failed %s", err)) - // } + allItems, err := pager.GetAll() + if err != nil { + log.Printf("[DEBUG] VirtualNetworkInterfacesPager.GetAll() failed %s", err) + return diag.FromErr(fmt.Errorf("VirtualNetworkInterfacesPager.GetAll() failed %s", err)) + } d.SetId(dataSourceIBMIsVirtualNetworkInterfacesID(d)) mapSlice := []map[string]interface{}{} - for _, modelItem := range vniCollection.VirtualNetworkInterfaces { + for _, modelItem := range allItems { modelMap, err := dataSourceIBMIsVirtualNetworkInterfacesVirtualNetworkInterfaceToMap(&modelItem) if err != nil { return diag.FromErr(err) @@ -397,7 +399,7 @@ func dataSourceIBMIsVirtualNetworkInterfacesID(d *schema.ResourceData) string { return time.Now().UTC().String() } -func dataSourceIBMIsVirtualNetworkInterfacesVirtualNetworkInterfaceToMap(model *vpcbetav1.VirtualNetworkInterface) (map[string]interface{}, error) { +func dataSourceIBMIsVirtualNetworkInterfacesVirtualNetworkInterfaceToMap(model *vpcv1.VirtualNetworkInterface) (map[string]interface{}, error) { modelMap := make(map[string]interface{}) if model.AutoDelete != nil { modelMap["auto_delete"] = *model.AutoDelete diff --git a/ibm/service/vpc/resource_ibm_is_instance.go b/ibm/service/vpc/resource_ibm_is_instance.go index 4e0ea22921..2debbf2734 100644 --- a/ibm/service/vpc/resource_ibm_is_instance.go +++ b/ibm/service/vpc/resource_ibm_is_instance.go @@ -625,7 +625,7 @@ func ResourceIBMISInstance() *schema.Resource { ForceNew: true, Computed: true, RequiredWith: []string{isInstanceZone, isInstancePrimaryNetworkInterface, isInstanceProfile, isInstanceKeys, isInstanceVPC}, - AtLeastOneOf: []string{isInstanceImage, isInstanceSourceTemplate, "boot_volume.0.volume_id", "boot_volume.0.snapshot"}, + AtLeastOneOf: []string{isInstanceImage, isInstanceSourceTemplate, "boot_volume.0.volume_id", "boot_volume.0.snapshot", "catalog_offering.0.offering_crn", "catalog_offering.0.version_crn"}, ConflictsWith: []string{isInstanceImage, isInstanceSourceTemplate, "boot_volume.0.snapshot", "boot_volume.0.name", "boot_volume.0.encryption", "catalog_offering.0.offering_crn", "catalog_offering.0.version_crn"}, Description: "The unique identifier for this volume", }, diff --git a/ibm/service/vpc/resource_ibm_is_instance_test.go b/ibm/service/vpc/resource_ibm_is_instance_test.go index 5bac59cff7..6d0b0055b8 100644 --- a/ibm/service/vpc/resource_ibm_is_instance_test.go +++ b/ibm/service/vpc/resource_ibm_is_instance_test.go @@ -75,6 +75,48 @@ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCKVmnMOlHKcZK8tpt3MP1lqOLAcqcJzhsvJcjscgVE }, }) } +func TestAccIBMISInstance_enc_catalog(t *testing.T) { + var instance string + vpcname := fmt.Sprintf("tf-vpc-%d", acctest.RandIntRange(10, 100)) + name := fmt.Sprintf("tf-instnace-%d", acctest.RandIntRange(10, 100)) + subnetname := fmt.Sprintf("tf-subnet-%d", acctest.RandIntRange(10, 100)) + publicKey := strings.TrimSpace(` +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCKVmnMOlHKcZK8tpt3MP1lqOLAcqcJzhsvJcjscgVERRN7/9484SOBJ3HSKxxNG5JN8owAjy5f9yYwcUg+JaUVuytn5Pv3aeYROHGGg+5G346xaq3DAwX6Y5ykr2fvjObgncQBnuU5KHWCECO/4h8uWuwh/kfniXPVjFToc+gnkqA+3RKpAecZhFXwfalQ9mMuYGFxn+fwn8cYEApsJbsEmb0iJwPiZ5hjFC8wREuiTlhPHDgkBLOiycd20op2nXzDbHfCHInquEe/gYxEitALONxm0swBOwJZwlTDOB7C6y2dzlrtxr1L59m7pCkWI4EtTRLvleehBoj3u7jB4usR +`) + sshname := fmt.Sprintf("tf-ssh-%d", acctest.RandIntRange(10, 100)) + resourceName := fmt.Sprintf("tf-cosresource-%d", acctest.RandIntRange(10, 100)) + keyName := fmt.Sprintf("tf-key-%d", acctest.RandIntRange(10, 100)) + userData1 := "a" + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIBMISInstanceDestroy, + Steps: []resource.TestStep{ + { + Config: testAccCheckIBMISInstanceCatEncryptionConfig(vpcname, subnetname, sshname, publicKey, name, userData1, resourceName, keyName), + Check: resource.ComposeTestCheckFunc( + testAccCheckIBMISInstanceExists("ibm_is_instance.testacc_instance", instance), + resource.TestCheckResourceAttr( + "ibm_is_instance.testacc_instance", "name", name), + resource.TestCheckResourceAttr( + "ibm_is_instance.testacc_instance", "user_data", userData1), + resource.TestCheckResourceAttr( + "ibm_is_instance.testacc_instance", "zone", acc.ISZoneName), + resource.TestCheckResourceAttrSet( + "ibm_is_instance.testacc_instance", "vcpu.#"), + resource.TestCheckResourceAttrSet( + "ibm_is_instance.testacc_instance", "vcpu.0.manufacturer"), + resource.TestCheckResourceAttrSet( + "ibm_is_instance.testacc_instance", "boot_volume.0.encryption"), + resource.TestCheckResourceAttrSet( + "ibm_is_instance.testacc_instance", "catalog_offering.0.version_crn"), + ), + }, + }, + }) +} + func TestAccIBMISInstance_lifecycle(t *testing.T) { var instance string vpcname := fmt.Sprintf("tf-vpc-%d", acctest.RandIntRange(10, 100)) @@ -1048,6 +1090,60 @@ func testAccCheckIBMISInstanceConfig(vpcname, subnetname, sshname, publicKey, na } }`, vpcname, subnetname, acc.ISZoneName, acc.ISCIDR, sshname, publicKey, name, acc.IsImage, acc.InstanceProfileName, userData, acc.ISZoneName) } +func testAccCheckIBMISInstanceCatEncryptionConfig(vpcname, subnetname, sshname, publicKey, name, userData, resourceName, keyName string) string { + return fmt.Sprintf(` + resource "ibm_is_vpc" "testacc_vpc" { + name = "%s" + } + + resource "ibm_is_subnet" "testacc_subnet" { + name = "%s" + vpc = ibm_is_vpc.testacc_vpc.id + zone = "%s" + ipv4_cidr_block = "%s" + } + + resource "ibm_is_ssh_key" "testacc_sshkey" { + name = "%s" + public_key = "%s" + } + data ibm_is_images testacc_images { + catalog_managed = true + } + resource "ibm_resource_instance" "testacc_resource" { + name = "%s" + service = "kms" + plan = "tiered-pricing" + location = "%s" + } + resource "ibm_kms_key" "testacc_key" { + instance_id = "${ibm_resource_instance.testacc_resource.guid}" + key_name = "%s" + standard_key = false + force_delete = true + } + resource "ibm_is_instance" "testacc_instance" { + name = "%s" + catalog_offering { + version_crn = data.ibm_is_images.testacc_images.images.1.catalog_offering.0.version.0.crn + } + boot_volume { + encryption = ibm_kms_key.testacc_key.crn + } + profile = "%s" + primary_network_interface { + subnet = ibm_is_subnet.testacc_subnet.id + } + user_data = "%s" + vpc = ibm_is_vpc.testacc_vpc.id + zone = "%s" + keys = [ibm_is_ssh_key.testacc_sshkey.id] + network_interfaces { + subnet = ibm_is_subnet.testacc_subnet.id + name = "eth1" + } + }`, vpcname, subnetname, acc.ISZoneName, acc.ISCIDR, sshname, publicKey, resourceName, acc.RegionName, keyName, name, acc.InstanceProfileName, userData, acc.ISZoneName) +} func testAccCheckIBMISInstanceRipConfig(vpcname, subnetname, subnetripname, sshname, publicKey, name, userData string) string { return fmt.Sprintf(` diff --git a/ibm/service/vpc/resource_ibm_is_lb.go b/ibm/service/vpc/resource_ibm_is_lb.go index 66f6ebac1a..4e58d0483c 100644 --- a/ibm/service/vpc/resource_ibm_is_lb.go +++ b/ibm/service/vpc/resource_ibm_is_lb.go @@ -189,13 +189,12 @@ func ResourceIBMISLB() *schema.Resource { }, isLBSecurityGroups: { - Type: schema.TypeSet, - Computed: true, - Optional: true, - Elem: &schema.Schema{Type: schema.TypeString}, - Set: schema.HashString, - Description: "Load Balancer securitygroups list", - ConflictsWith: []string{isLBProfile}, + Type: schema.TypeSet, + Computed: true, + Optional: true, + Elem: &schema.Schema{Type: schema.TypeString}, + Set: schema.HashString, + Description: "Load Balancer securitygroups list", }, isLBSecurityGroupsSupported: { diff --git a/ibm/service/vpc/resource_ibm_is_lb_test.go b/ibm/service/vpc/resource_ibm_is_lb_test.go index 01d9a0919e..4dcb832567 100644 --- a/ibm/service/vpc/resource_ibm_is_lb_test.go +++ b/ibm/service/vpc/resource_ibm_is_lb_test.go @@ -330,6 +330,50 @@ func TestAccIBMISLB_basic_network(t *testing.T) { }, }) } +func TestAccIBMISLB_basic_network_security_group(t *testing.T) { + var lb string + vpcname := fmt.Sprintf("tflb-vpc-%d", acctest.RandIntRange(10, 100)) + subnetname := fmt.Sprintf("tflb-subnet-name-%d", acctest.RandIntRange(10, 100)) + nlbName := fmt.Sprintf("tfnlbcreate%d", acctest.RandIntRange(10, 100)) + nlbName1 := fmt.Sprintf("tfnlbupdate%d", acctest.RandIntRange(10, 100)) + securityGroup := fmt.Sprintf("tflbsecuritygroup%d", acctest.RandIntRange(10, 100)) + securityGroup2 := fmt.Sprintf("tflbsecuritygroup2%d", acctest.RandIntRange(10, 100)) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIBMISLBDestroy, + Steps: []resource.TestStep{ + { + Config: testAccCheckIBMISLBNetworkSgConfig(vpcname, subnetname, acc.ISZoneName, acc.ISCIDR, nlbName, securityGroup), + Check: resource.ComposeTestCheckFunc( + testAccCheckIBMISLBExists("ibm_is_lb.testacc_NLB", lb), + resource.TestCheckResourceAttr( + "ibm_is_lb.testacc_NLB", "name", nlbName), + resource.TestCheckResourceAttrSet( + "ibm_is_lb.testacc_NLB", "hostname"), + resource.TestCheckResourceAttrSet( + "ibm_is_lb.testacc_NLB", "security_groups.#"), + resource.TestCheckResourceAttr( + "ibm_is_lb.testacc_NLB", "security_groups.#", "1"), + ), + }, + + { + Config: testAccCheckIBMISLBNetworkSgUpdateConfig(vpcname, subnetname, acc.ISZoneName, acc.ISCIDR, nlbName1, securityGroup, securityGroup2), + Check: resource.ComposeTestCheckFunc( + testAccCheckIBMISLBExists("ibm_is_lb.testacc_NLB", lb), + resource.TestCheckResourceAttr( + "ibm_is_lb.testacc_NLB", "name", nlbName1), + resource.TestCheckResourceAttrSet( + "ibm_is_lb.testacc_NLB", "security_groups.#"), + resource.TestCheckResourceAttr( + "ibm_is_lb.testacc_NLB", "security_groups.#", "2"), + ), + }, + }, + }) +} func TestAccIBMISLB_basic_network_vnf(t *testing.T) { var lb string @@ -582,6 +626,56 @@ func testAccCheckIBMISLBNetworkConfig(vpcname, subnetname, zone, cidr, nlbName s profile = "network-fixed" }`, vpcname, subnetname, zone, cidr, nlbName) +} +func testAccCheckIBMISLBNetworkSgConfig(vpcname, subnetname, zone, cidr, nlbName, securityGroup string) string { + return fmt.Sprintf(` + resource "ibm_is_vpc" "testacc_vpc" { + name = "%s" + } + resource "ibm_is_subnet" "testacc_subnet" { + name = "%s" + vpc = ibm_is_vpc.testacc_vpc.id + zone = "%s" + ipv4_cidr_block = "%s" + } + resource "ibm_is_security_group" "testacc_security_group" { + name = "%s" + vpc = ibm_is_vpc.testacc_vpc.id + } + resource "ibm_is_lb" "testacc_NLB" { + name = "%s" + subnets = [ibm_is_subnet.testacc_subnet.id] + security_groups = [ibm_is_security_group.testacc_security_group.id] + profile = "network-fixed" + }`, vpcname, subnetname, zone, cidr, securityGroup, nlbName) + +} +func testAccCheckIBMISLBNetworkSgUpdateConfig(vpcname, subnetname, zone, cidr, nlbName, securityGroup, securityGroup2 string) string { + return fmt.Sprintf(` + resource "ibm_is_vpc" "testacc_vpc" { + name = "%s" + } + resource "ibm_is_subnet" "testacc_subnet" { + name = "%s" + vpc = ibm_is_vpc.testacc_vpc.id + zone = "%s" + ipv4_cidr_block = "%s" + } + resource "ibm_is_security_group" "testacc_security_group" { + name = "%s" + vpc = ibm_is_vpc.testacc_vpc.id + } + resource "ibm_is_security_group" "testacc_security_group2" { + name = "%s" + vpc = ibm_is_vpc.testacc_vpc.id + } + resource "ibm_is_lb" "testacc_NLB" { + name = "%s" + subnets = [ibm_is_subnet.testacc_subnet.id] + security_groups = [ibm_is_security_group.testacc_security_group.id, ibm_is_security_group.testacc_security_group2.id] + profile = "network-fixed" + }`, vpcname, subnetname, zone, cidr, securityGroup, securityGroup2, nlbName) + } func testAccCheckIBMISLBNetworkRouteModeConfig(vpcname, subnetname, zone, cidr, nlbName string, routeMode bool) string { diff --git a/ibm/service/vpc/resource_ibm_is_security_group_target.go b/ibm/service/vpc/resource_ibm_is_security_group_target.go index 857ebccbf9..43f6a5754c 100644 --- a/ibm/service/vpc/resource_ibm_is_security_group_target.go +++ b/ibm/service/vpc/resource_ibm_is_security_group_target.go @@ -12,7 +12,6 @@ import ( "github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns" "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" "github.com/IBM-Cloud/terraform-provider-ibm/ibm/validate" - "github.com/IBM/vpc-beta-go-sdk/vpcbetav1" "github.com/IBM/vpc-go-sdk/vpcv1" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" @@ -127,7 +126,7 @@ func resourceIBMISSecurityGroupTargetCreate(d *schema.ResourceData, meta interfa return errsgt } } else if crn != nil && *crn != "" && strings.Contains(*crn, "virtual_network_interfaces") { - vpcClient, err := meta.(conns.ClientSession).VpcV1BetaAPI() + vpcClient, err := meta.(conns.ClientSession).VpcV1API() if err != nil { return err } @@ -338,7 +337,7 @@ func isLBSgTargetRefreshFunc(sess *vpcv1.VpcV1, lbId string) resource.StateRefre } } -func isWaitForVNISgTargetCreateAvailable(sess *vpcbetav1.VpcbetaV1, vniId string, timeout time.Duration) (interface{}, error) { +func isWaitForVNISgTargetCreateAvailable(sess *vpcv1.VpcV1, vniId string, timeout time.Duration) (interface{}, error) { log.Printf("Waiting for virtual network interface (%s) to be available.", vniId) stateConf := &resource.StateChangeConf{ @@ -353,10 +352,10 @@ func isWaitForVNISgTargetCreateAvailable(sess *vpcbetav1.VpcbetaV1, vniId string return stateConf.WaitForState() } -func isVNISgTargetRefreshFunc(vpcClient *vpcbetav1.VpcbetaV1, vniId string) resource.StateRefreshFunc { +func isVNISgTargetRefreshFunc(vpcClient *vpcv1.VpcV1, vniId string) resource.StateRefreshFunc { return func() (interface{}, string, error) { - getVNIOptions := &vpcbetav1.GetVirtualNetworkInterfaceOptions{ + getVNIOptions := &vpcv1.GetVirtualNetworkInterfaceOptions{ ID: &vniId, } vni, response, err := vpcClient.GetVirtualNetworkInterface(getVNIOptions) diff --git a/ibm/service/vpc/resource_ibm_is_vpn_gateway.go b/ibm/service/vpc/resource_ibm_is_vpn_gateway.go index d2d25a5e20..96a617ff0f 100644 --- a/ibm/service/vpc/resource_ibm_is_vpn_gateway.go +++ b/ibm/service/vpc/resource_ibm_is_vpn_gateway.go @@ -566,8 +566,8 @@ func vpngwGet(d *schema.ResourceData, meta interface{}, id string) error { d.Set(flex.ResourceCRN, *vpnGateway.CRN) d.Set(isVPNGatewayCRN, *vpnGateway.CRN) if vpnGateway.ResourceGroup != nil { - d.Set(flex.ResourceGroupName, *vpnGateway.ResourceGroup.Name) - d.Set(isVPNGatewayResourceGroup, *vpnGateway.ResourceGroup.ID) + d.Set(flex.ResourceGroupName, vpnGateway.ResourceGroup.Name) + d.Set(isVPNGatewayResourceGroup, vpnGateway.ResourceGroup.ID) } d.Set(isVPNGatewayMode, *vpnGateway.Mode) if vpnGateway.Members != nil { diff --git a/metadata/provider_metadata.json b/metadata/provider_metadata.json index 3493ca9b88..35b141da83 100644 --- a/metadata/provider_metadata.json +++ b/metadata/provider_metadata.json @@ -142,12 +142,6 @@ } ], "ibm_app": [ - { - "name": "instances", - "type": "TypeInt", - "description": "The number of instances", - "computed": true - }, { "name": "buildpack", "type": "TypeString", @@ -161,9 +155,9 @@ "computed": true }, { - "name": "service_instance_guid", + "name": "route_guid", "type": "TypeSet", - "description": "Define the service instance guids that should be bound to this application.", + "description": "Define the route guids which should be bound to the application.", "computed": true, "elem": { "type": "TypeString" @@ -176,42 +170,21 @@ "computed": true }, { - "name": "memory", + "name": "instances", "type": "TypeInt", - "description": "The amount of memory each instance should have. In megabytes.", + "description": "The number of instances", "computed": true }, { - "name": "route_guid", - "type": "TypeSet", - "description": "Define the route guids which should be bound to the application.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "package_state", + "name": "health_check_http_endpoint", "type": "TypeString", - "description": "The state of the application package whether staged, pending etc", - "computed": true - }, - { - "name": "disk_quota", - "type": "TypeInt", - "description": "The maximum amount of disk available to an instance of an app. In megabytes.", + "description": "Endpoint called to determine if the app is healthy.", "computed": true }, { - "name": "space_guid", + "name": "health_check_type", "type": "TypeString", - "description": "Define space guid to which app belongs", - "required": true - }, - { - "name": "health_check_timeout", - "type": "TypeInt", - "description": "Timeout in seconds for health checking of an staged app when starting up.", + "description": "Type of health check to perform.", "computed": true }, { @@ -221,52 +194,58 @@ "required": true }, { - "name": "health_check_type", + "name": "space_guid", "type": "TypeString", - "description": "Type of health check to perform.", - "computed": true + "description": "Define space guid to which app belongs", + "required": true }, { - "name": "health_check_http_endpoint", - "type": "TypeString", - "description": "Endpoint called to determine if the app is healthy.", + "name": "memory", + "type": "TypeInt", + "description": "The amount of memory each instance should have. In megabytes.", "computed": true - } - ], - "ibm_app_config_collection": [ + }, { - "name": "name", - "type": "TypeString", - "description": "Collection name.", + "name": "disk_quota", + "type": "TypeInt", + "description": "The maximum amount of disk available to an instance of an app. In megabytes.", "computed": true }, { - "name": "include", - "type": "TypeList", - "description": "Include feature, property details in the response.", - "optional": true, + "name": "service_instance_guid", + "type": "TypeSet", + "description": "Define the service instance guids that should be bound to this application.", + "computed": true, "elem": { "type": "TypeString" } }, { - "name": "updated_time", + "name": "package_state", "type": "TypeString", - "description": "Last modified time of the collection data.", + "description": "The state of the application package whether staged, pending etc", "computed": true }, { - "name": "href", - "type": "TypeString", - "description": "Collection URL.", + "name": "health_check_timeout", + "type": "TypeInt", + "description": "Timeout in seconds for health checking of an staged app when starting up.", "computed": true - }, + } + ], + "ibm_app_config_collection": [ { "name": "collection_id", "type": "TypeString", "description": "Collection Id of the collection.", "required": true }, + { + "name": "guid", + "type": "TypeString", + "description": "GUID of the App Configuration service. Get it from the service instance credentials section of the dashboard.", + "required": true + }, { "name": "created_time", "type": "TypeString", @@ -274,30 +253,16 @@ "computed": true }, { - "name": "features", - "type": "TypeList", - "description": "List of Features associated with the collection.", - "computed": true, - "elem": { - "feature_id": { - "name": "feature_id", - "type": "TypeString", - "description": "feature id.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Name of the Feature.", - "computed": true - } - } + "name": "updated_time", + "type": "TypeString", + "description": "Last modified time of the collection data.", + "computed": true }, { - "name": "expand", - "type": "TypeBool", - "description": "If set to true, returns expanded view of the resource details.", - "optional": true + "name": "properties_count", + "type": "TypeInt", + "description": "Number of properties associated with the collection.", + "computed": true }, { "name": "properties", @@ -320,10 +285,33 @@ } }, { - "name": "guid", - "type": "TypeString", - "description": "GUID of the App Configuration service. Get it from the service instance credentials section of the dashboard.", - "required": true + "name": "features", + "type": "TypeList", + "description": "List of Features associated with the collection.", + "computed": true, + "elem": { + "feature_id": { + "name": "feature_id", + "type": "TypeString", + "description": "feature id.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Name of the Feature.", + "computed": true + } + } + }, + { + "name": "include", + "type": "TypeList", + "description": "Include feature, property details in the response.", + "optional": true, + "elem": { + "type": "TypeString" + } }, { "name": "description", @@ -338,6 +326,12 @@ "cloud_data_type": "tags", "computed": true }, + { + "name": "href", + "type": "TypeString", + "description": "Collection URL.", + "computed": true + }, { "name": "features_count", "type": "TypeInt", @@ -345,13 +339,25 @@ "computed": true }, { - "name": "properties_count", - "type": "TypeInt", - "description": "Number of properties associated with the collection.", + "name": "name", + "type": "TypeString", + "description": "Collection name.", "computed": true + }, + { + "name": "expand", + "type": "TypeBool", + "description": "If set to true, returns expanded view of the resource details.", + "optional": true } ], "ibm_app_config_collections": [ + { + "name": "expand", + "type": "TypeBool", + "description": "If set to true, returns expanded view of the resource details.", + "optional": true + }, { "name": "collections", "type": "TypeList", @@ -486,27 +492,9 @@ "elem": { "type": "TypeString" } - }, - { - "name": "expand", - "type": "TypeBool", - "description": "If set to true, returns expanded view of the resource details.", - "optional": true } ], "ibm_app_config_environment": [ - { - "name": "href", - "type": "TypeString", - "description": "Environment URL.", - "computed": true - }, - { - "name": "environment_id", - "type": "TypeString", - "description": "Environment Id.", - "required": true - }, { "name": "name", "type": "TypeString", @@ -514,15 +502,10 @@ "computed": true }, { - "name": "description", - "type": "TypeString", - "description": "Environment description.", - "computed": true - }, - { - "name": "updated_time", + "name": "tags", "type": "TypeString", - "description": "Last modified time of the environment data.", + "description": "Tags associated with the environment.", + "cloud_data_type": "tags", "computed": true }, { @@ -545,55 +528,49 @@ "optional": true }, { - "name": "tags", + "name": "color_code", "type": "TypeString", - "description": "Tags associated with the environment.", - "cloud_data_type": "tags", + "description": "Color code to distinguish the environment. The Hex code for the color. For example `#FF0000` for `red`.", "computed": true }, { - "name": "color_code", + "name": "updated_time", "type": "TypeString", - "description": "Color code to distinguish the environment. The Hex code for the color. For example `#FF0000` for `red`.", + "description": "Last modified time of the environment data.", "computed": true - } - ], - "ibm_app_config_environments": [ - { - "name": "first", - "type": "TypeList", - "description": "URL to navigate to the first page of records.", - "computed": true, - "elem": { - "href": { - "name": "href", - "type": "TypeString", - "description": "URL of the response.", - "computed": true - } - } }, { - "name": "previous", - "type": "TypeList", - "description": "URL to navigate to the previous list of records.", - "computed": true, - "elem": { - "href": { - "name": "href", - "type": "TypeString", - "description": "URL of the response.", - "computed": true - } - } + "name": "href", + "type": "TypeString", + "description": "Environment URL.", + "computed": true }, { - "name": "guid", + "name": "environment_id", "type": "TypeString", - "description": "GUID of the App Configuration service. Get it from the service instance credentials section of the dashboard.", - "immutable": true, + "description": "Environment Id.", "required": true }, + { + "name": "description", + "type": "TypeString", + "description": "Environment description.", + "computed": true + } + ], + "ibm_app_config_environments": [ + { + "name": "expand", + "type": "TypeBool", + "description": "If set to `true`, returns expanded view of the resource details.", + "optional": true + }, + { + "name": "limit", + "type": "TypeInt", + "description": "The number of records to retrieve. By default, the list operation return the first 10 records. To retrieve different set of records, use `limit` with `offset` to page through the available records.", + "optional": true + }, { "name": "offset", "type": "TypeInt", @@ -657,15 +634,23 @@ } }, { - "name": "total_count", - "type": "TypeInt", - "description": "Total number of records.", - "computed": true + "name": "guid", + "type": "TypeString", + "description": "GUID of the App Configuration service. Get it from the service instance credentials section of the dashboard.", + "immutable": true, + "required": true }, { - "name": "next", + "name": "tags", + "type": "TypeString", + "description": "filter the resources to be returned based on the associated tags. Returns resources associated with any of the specified tags.", + "cloud_data_type": "tags", + "optional": true + }, + { + "name": "first", "type": "TypeList", - "description": "URL to navigate to the next list of records.", + "description": "URL to navigate to the first page of records.", "computed": true, "elem": { "href": { @@ -677,28 +662,43 @@ } }, { - "name": "tags", - "type": "TypeString", - "description": "filter the resources to be returned based on the associated tags. Returns resources associated with any of the specified tags.", - "cloud_data_type": "tags", - "optional": true + "name": "previous", + "type": "TypeList", + "description": "URL to navigate to the previous list of records.", + "computed": true, + "elem": { + "href": { + "name": "href", + "type": "TypeString", + "description": "URL of the response.", + "computed": true + } + } }, { - "name": "expand", - "type": "TypeBool", - "description": "If set to `true`, returns expanded view of the resource details.", - "optional": true + "name": "last", + "type": "TypeList", + "description": "URL to navigate to the last page of records.", + "computed": true, + "elem": { + "href": { + "name": "href", + "type": "TypeString", + "description": "URL of the response.", + "computed": true + } + } }, { - "name": "limit", + "name": "total_count", "type": "TypeInt", - "description": "The number of records to retrieve. By default, the list operation return the first 10 records. To retrieve different set of records, use `limit` with `offset` to page through the available records.", - "optional": true + "description": "Total number of records.", + "computed": true }, { - "name": "last", + "name": "next", "type": "TypeList", - "description": "URL to navigate to the last page of records.", + "description": "URL to navigate to the next list of records.", "computed": true, "elem": { "href": { @@ -712,15 +712,9 @@ ], "ibm_app_config_feature": [ { - "name": "feature_id", - "type": "TypeString", - "description": "Feature Id.", - "required": true - }, - { - "name": "description", + "name": "disabled_value", "type": "TypeString", - "description": "Feature description.", + "description": "Value of the feature when it is disabled. The value can be Boolean, String or a Numeric value as per the `type` attribute.", "computed": true }, { @@ -731,41 +725,27 @@ "computed": true }, { - "name": "collections", - "type": "TypeList", - "description": "List of collection id representing the collections that are associated with the specified feature flag.", - "computed": true, - "elem": { - "collection_id": { - "name": "collection_id", - "type": "TypeString", - "description": "Collection id.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Name of the collection.", - "computed": true - } - } + "name": "segment_exists", + "type": "TypeBool", + "description": "Denotes if the targeting rules are specified for the feature flag.", + "computed": true }, { - "name": "href", + "name": "description", "type": "TypeString", - "description": "Feature flag URL.", + "description": "Feature description.", "computed": true }, { - "name": "guid", + "name": "includes", "type": "TypeString", - "description": "GUID of the App Configuration service. Get it from the service instance credentials section of the dashboard.", - "required": true + "description": "Include the associated collections in the response.", + "optional": true }, { - "name": "enabled", - "type": "TypeBool", - "description": "The state of the feature flag.", + "name": "enabled_value", + "type": "TypeString", + "description": "Value of the feature when it is enabled. The value can be Boolean, String or a Numeric value as per the `type` attribute.", "computed": true }, { @@ -812,11 +792,37 @@ } }, { - "name": "type", + "name": "collections", + "type": "TypeList", + "description": "List of collection id representing the collections that are associated with the specified feature flag.", + "computed": true, + "elem": { + "collection_id": { + "name": "collection_id", + "type": "TypeString", + "description": "Collection id.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Name of the collection.", + "computed": true + } + } + }, + { + "name": "updated_time", "type": "TypeString", - "description": "Type of the feature (BOOLEAN, STRING, NUMERIC).", + "description": "Last modified time of the feature flag data.", "computed": true }, + { + "name": "environment_id", + "type": "TypeString", + "description": "Environment Id.", + "required": true + }, { "name": "name", "type": "TypeString", @@ -824,15 +830,21 @@ "computed": true }, { - "name": "disabled_value", + "name": "feature_id", "type": "TypeString", - "description": "Value of the feature when it is disabled. The value can be Boolean, String or a Numeric value as per the `type` attribute.", + "description": "Feature Id.", + "required": true + }, + { + "name": "type", + "type": "TypeString", + "description": "Type of the feature (BOOLEAN, STRING, NUMERIC).", "computed": true }, { - "name": "segment_exists", + "name": "enabled", "type": "TypeBool", - "description": "Denotes if the targeting rules are specified for the feature flag.", + "description": "The state of the feature flag.", "computed": true }, { @@ -841,18 +853,6 @@ "description": "Rollout percentage of the feature.", "computed": true }, - { - "name": "environment_id", - "type": "TypeString", - "description": "Environment Id.", - "required": true - }, - { - "name": "enabled_value", - "type": "TypeString", - "description": "Value of the feature when it is enabled. The value can be Boolean, String or a Numeric value as per the `type` attribute.", - "computed": true - }, { "name": "created_time", "type": "TypeString", @@ -860,31 +860,27 @@ "computed": true }, { - "name": "updated_time", + "name": "href", "type": "TypeString", - "description": "Last modified time of the feature flag data.", + "description": "Feature flag URL.", "computed": true }, { - "name": "includes", + "name": "guid", "type": "TypeString", - "description": "Include the associated collections in the response.", - "optional": true + "description": "GUID of the App Configuration service. Get it from the service instance credentials section of the dashboard.", + "required": true } ], "ibm_app_config_features": [ { - "name": "sort", - "type": "TypeString", - "description": "Sort the feature details based on the specified attribute.", - "optional": true - }, - { - "name": "tags", - "type": "TypeString", - "description": "Filter the resources to be returned based on the associated tags. Specify the parameter as a list of comma separated tags. Returns resources associated with any of the specified tags.", - "cloud_data_type": "tags", - "optional": true + "name": "collections", + "type": "TypeList", + "description": "Filter features by a list of comma separated collections.", + "optional": true, + "elem": { + "type": "TypeString" + } }, { "name": "segments", @@ -901,6 +897,32 @@ "description": "If set to `true`, returns expanded view of the resource details.", "optional": true }, + { + "name": "limit", + "type": "TypeInt", + "description": "The number of records to retrieve. By default, the list operation return the first 10 records. To retrieve different set of records, use `limit` with `offset` to page through the available records.", + "optional": true + }, + { + "name": "total_count", + "type": "TypeInt", + "description": "Number of records returned in the current response.", + "computed": true + }, + { + "name": "next", + "type": "TypeList", + "description": "URL to navigate to the next list of records.", + "computed": true, + "elem": { + "href": { + "name": "href", + "type": "TypeString", + "description": "URL of the response.", + "computed": true + } + } + }, { "name": "previous", "type": "TypeList", @@ -916,33 +938,28 @@ } }, { - "name": "guid", + "name": "environment_id", "type": "TypeString", - "description": "GUID of the App Configuration service. Get it from the service instance credentials section of the dashboard.", + "description": "Environment Id.", "required": true }, { - "name": "collections", - "type": "TypeList", - "description": "Filter features by a list of comma separated collections.", - "optional": true, - "elem": { - "type": "TypeString" - } + "name": "tags", + "type": "TypeString", + "description": "Filter the resources to be returned based on the associated tags. Specify the parameter as a list of comma separated tags. Returns resources associated with any of the specified tags.", + "cloud_data_type": "tags", + "optional": true }, { - "name": "includes", - "type": "TypeList", - "description": "Include the associated collections or targeting rules details in the response.", - "optional": true, - "elem": { - "type": "TypeString" - } + "name": "offset", + "type": "TypeInt", + "description": "The number of records to skip. By specifying `offset`, you retrieve a subset of items that starts with the `offset` value. Use `offset` with `limit` to page through the available records.", + "optional": true }, { - "name": "next", + "name": "first", "type": "TypeList", - "description": "URL to navigate to the next list of records.", + "description": "URL to navigate to the first page of records.", "computed": true, "elem": { "href": { @@ -968,43 +985,26 @@ } }, { - "name": "environment_id", + "name": "guid", "type": "TypeString", - "description": "Environment Id.", + "description": "GUID of the App Configuration service. Get it from the service instance credentials section of the dashboard.", "required": true }, { - "name": "offset", - "type": "TypeInt", - "description": "The number of records to skip. By specifying `offset`, you retrieve a subset of items that starts with the `offset` value. Use `offset` with `limit` to page through the available records.", + "name": "sort", + "type": "TypeString", + "description": "Sort the feature details based on the specified attribute.", "optional": true }, { - "name": "total_count", - "type": "TypeInt", - "description": "Number of records returned in the current response.", - "computed": true - }, - { - "name": "first", + "name": "includes", "type": "TypeList", - "description": "URL to navigate to the first page of records.", - "computed": true, + "description": "Include the associated collections or targeting rules details in the response.", + "optional": true, "elem": { - "href": { - "name": "href", - "type": "TypeString", - "description": "URL of the response.", - "computed": true - } + "type": "TypeString" } }, - { - "name": "limit", - "type": "TypeInt", - "description": "The number of records to retrieve. By default, the list operation return the first 10 records. To retrieve different set of records, use `limit` with `offset` to page through the available records.", - "optional": true - }, { "name": "features", "type": "TypeList", @@ -1156,13 +1156,6 @@ } ], "ibm_app_config_properties": [ - { - "name": "tags", - "type": "TypeString", - "description": "Filter the resources to be returned based on the associated tags. Specify the parameter as a list of comma separated tags. Returns resources associated with any of the specified tags.", - "cloud_data_type": "tags", - "optional": true - }, { "name": "collections", "type": "TypeList", @@ -1172,15 +1165,6 @@ "type": "TypeString" } }, - { - "name": "segments", - "type": "TypeList", - "description": "Filter features by a list of comma separated segments.", - "optional": true, - "elem": { - "type": "TypeString" - } - }, { "name": "expand", "type": "TypeBool", @@ -1196,6 +1180,25 @@ "type": "TypeString" } }, + { + "name": "guid", + "type": "TypeString", + "description": "GUID of the App Configuration service. Get it from the service instance credentials section of the dashboard.", + "required": true + }, + { + "name": "sort", + "type": "TypeString", + "description": "Sort the feature details based on the specified attribute.", + "optional": true + }, + { + "name": "tags", + "type": "TypeString", + "description": "Filter the resources to be returned based on the associated tags. Specify the parameter as a list of comma separated tags. Returns resources associated with any of the specified tags.", + "cloud_data_type": "tags", + "optional": true + }, { "name": "offset", "type": "TypeInt", @@ -1328,10 +1331,10 @@ } }, { - "name": "guid", - "type": "TypeString", - "description": "GUID of the App Configuration service. Get it from the service instance credentials section of the dashboard.", - "required": true + "name": "total_count", + "type": "TypeInt", + "description": "Number of records returned in the current response.", + "computed": true }, { "name": "environment_id", @@ -1340,30 +1343,27 @@ "required": true }, { - "name": "sort", - "type": "TypeString", - "description": "Sort the feature details based on the specified attribute.", - "optional": true + "name": "segments", + "type": "TypeList", + "description": "Filter features by a list of comma separated segments.", + "optional": true, + "elem": { + "type": "TypeString" + } }, { "name": "limit", "type": "TypeInt", "description": "The number of records to retrieve. By default, the list operation return the first 10 records. To retrieve different set of records, use `limit` with `offset` to page through the available records.", "optional": true - }, - { - "name": "total_count", - "type": "TypeInt", - "description": "Number of records returned in the current response.", - "computed": true } ], "ibm_app_config_property": [ { - "name": "name", + "name": "property_id", "type": "TypeString", - "description": "Property name.", - "computed": true + "description": "Property Id.", + "required": true }, { "name": "segment_exists", @@ -1371,6 +1371,68 @@ "description": "Denotes if the targeting rules are specified for the property.", "computed": true }, + { + "name": "created_time", + "type": "TypeString", + "description": "Creation time of the property.", + "computed": true + }, + { + "name": "guid", + "type": "TypeString", + "description": "GUID of the App Configuration service. Get it from the service instance credentials section of the dashboard.", + "required": true + }, + { + "name": "description", + "type": "TypeString", + "description": "Property description.", + "computed": true + }, + { + "name": "updated_time", + "type": "TypeString", + "description": "Last modified time of the property data.", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Property name.", + "computed": true + }, + { + "name": "type", + "type": "TypeString", + "description": "Type of the Property (BOOLEAN, STRING, NUMERIC).", + "computed": true + }, + { + "name": "collections", + "type": "TypeList", + "description": "List of collection id representing the collections that are associated with the specified property.", + "computed": true, + "elem": { + "collection_id": { + "name": "collection_id", + "type": "TypeString", + "description": "Collection id.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Name of the collection.", + "computed": true + } + } + }, + { + "name": "environment_id", + "type": "TypeString", + "description": "Environment Id.", + "required": true + }, { "name": "include", "type": "TypeString", @@ -1378,9 +1440,16 @@ "optional": true }, { - "name": "description", + "name": "value", "type": "TypeString", - "description": "Property description.", + "description": "Value of the Property. The value can be Boolean, String or a Numeric value as per the `type` attribute.", + "computed": true + }, + { + "name": "tags", + "type": "TypeString", + "description": "Tags associated with the property.", + "cloud_data_type": "tags", "computed": true }, { @@ -1421,88 +1490,90 @@ } }, { - "name": "created_time", + "name": "href", "type": "TypeString", - "description": "Creation time of the property.", + "description": "Property URL.", "computed": true + } + ], + "ibm_app_config_segment": [ + { + "name": "guid", + "type": "TypeString", + "description": "GUID of the App Configuration service. Get it from the service instance credentials section of the dashboard.", + "required": true }, { - "name": "updated_time", + "name": "name", "type": "TypeString", - "description": "Last modified time of the property data.", + "description": "Segment name.", "computed": true }, { - "name": "guid", + "name": "tags", "type": "TypeString", - "description": "GUID of the App Configuration service. Get it from the service instance credentials section of the dashboard.", - "required": true + "description": "Tags associated with the segment.", + "cloud_data_type": "tags", + "computed": true }, { - "name": "property_id", + "name": "created_time", "type": "TypeString", - "description": "Property Id.", - "required": true + "description": "Creation time of the segment.", + "computed": true }, { - "name": "value", + "name": "href", "type": "TypeString", - "description": "Value of the Property. The value can be Boolean, String or a Numeric value as per the `type` attribute.", + "description": "Segment flag URL.", "computed": true }, { - "name": "collections", + "name": "features", "type": "TypeList", - "description": "List of collection id representing the collections that are associated with the specified property.", + "description": "List of Features associated with the segment.", "computed": true, "elem": { - "collection_id": { - "name": "collection_id", + "feature_id": { + "name": "feature_id", "type": "TypeString", - "description": "Collection id.", + "description": "feature id.", "computed": true }, "name": { "name": "name", "type": "TypeString", - "description": "Name of the collection.", + "description": "Name of the Feature.", "computed": true } } }, { - "name": "href", - "type": "TypeString", - "description": "Property URL.", - "computed": true + "name": "properties", + "type": "TypeList", + "description": "List of Features associated with the segment.", + "computed": true, + "elem": { + "name": { + "name": "name", + "type": "TypeString", + "description": "Name of the Property.", + "computed": true + }, + "property_id": { + "name": "property_id", + "type": "TypeString", + "description": "property id.", + "computed": true + } + } }, { - "name": "environment_id", + "name": "segment_id", "type": "TypeString", - "description": "Environment Id.", + "description": "Segment id.", "required": true }, - { - "name": "type", - "type": "TypeString", - "description": "Type of the Property (BOOLEAN, STRING, NUMERIC).", - "computed": true - }, - { - "name": "tags", - "type": "TypeString", - "description": "Tags associated with the property.", - "cloud_data_type": "tags", - "computed": true - } - ], - "ibm_app_config_segment": [ - { - "name": "name", - "type": "TypeString", - "description": "Segment name.", - "computed": true - }, { "name": "description", "type": "TypeString", @@ -1518,37 +1589,12 @@ "type": "TypeString" } }, - { - "name": "created_time", - "type": "TypeString", - "description": "Creation time of the segment.", - "computed": true - }, - { - "name": "guid", - "type": "TypeString", - "description": "GUID of the App Configuration service. Get it from the service instance credentials section of the dashboard.", - "required": true - }, - { - "name": "tags", - "type": "TypeString", - "description": "Tags associated with the segment.", - "cloud_data_type": "tags", - "computed": true - }, { "name": "updated_time", "type": "TypeString", "description": "Last modified time of the segment data.", "computed": true }, - { - "name": "href", - "type": "TypeString", - "description": "Segment flag URL.", - "computed": true - }, { "name": "rules", "type": "TypeList", @@ -1577,55 +1623,28 @@ } } } - }, + } + ], + "ibm_app_config_segments": [ { - "name": "features", - "type": "TypeList", - "description": "List of Features associated with the segment.", - "computed": true, - "elem": { - "feature_id": { - "name": "feature_id", - "type": "TypeString", - "description": "feature id.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Name of the Feature.", - "computed": true - } - } + "name": "guid", + "type": "TypeString", + "description": "GUID of the App Configuration service. Get it from the service instance credentials section of the dashboard.", + "required": true }, { - "name": "properties", - "type": "TypeList", - "description": "List of Features associated with the segment.", - "computed": true, - "elem": { - "name": { - "name": "name", - "type": "TypeString", - "description": "Name of the Property.", - "computed": true - }, - "property_id": { - "name": "property_id", - "type": "TypeString", - "description": "property id.", - "computed": true - } - } + "name": "tags", + "type": "TypeString", + "description": "Filter the resources to be returned based on the associated tags.", + "cloud_data_type": "tags", + "optional": true }, { - "name": "segment_id", + "name": "sort", "type": "TypeString", - "description": "Segment id.", - "required": true - } - ], - "ibm_app_config_segments": [ + "description": "Sort the segment details based on the specified attribute.", + "optional": true + }, { "name": "include", "type": "TypeString", @@ -1638,6 +1657,12 @@ "description": "If set to `true`, returns expanded view of the resource details.", "optional": true }, + { + "name": "limit", + "type": "TypeInt", + "description": "The number of records to retrieve. By default, the list operation return the first 10 records. To retrieve different set of records, use `limit` with `offset` to page through the available records.", + "optional": true + }, { "name": "total_count", "type": "TypeInt", @@ -1768,65 +1793,14 @@ "computed": true } } - }, - { - "name": "tags", - "type": "TypeString", - "description": "Filter the resources to be returned based on the associated tags.", - "cloud_data_type": "tags", - "optional": true - }, - { - "name": "sort", - "type": "TypeString", - "description": "Sort the segment details based on the specified attribute.", - "optional": true - }, - { - "name": "guid", - "type": "TypeString", - "description": "GUID of the App Configuration service. Get it from the service instance credentials section of the dashboard.", - "required": true - }, - { - "name": "limit", - "type": "TypeInt", - "description": "The number of records to retrieve. By default, the list operation return the first 10 records. To retrieve different set of records, use `limit` with `offset` to page through the available records.", - "optional": true } ], "ibm_app_config_snapshot": [ { - "name": "last_sync_time", + "name": "guid", "type": "TypeString", - "description": "Latest time when the snapshot was synced to git.", - "computed": true - }, - { - "name": "environment", - "type": "TypeList", - "description": "Environment object", - "computed": true, - "elem": { - "color_code": { - "name": "color_code", - "type": "TypeString", - "description": "Environment color code.", - "computed": true - }, - "environment_id": { - "name": "environment_id", - "type": "TypeString", - "description": "Environment id.", - "computed": true - }, - "environment_name": { - "name": "environment_name", - "type": "TypeString", - "description": "Environment name.", - "computed": true - } - } + "description": "GUID of the App Configuration service. Get it from the service instance credentials section of the dashboard.", + "required": true }, { "name": "git_config_id", @@ -1840,18 +1814,6 @@ "description": "Git file path, this is a path where your configuration file will be written.", "computed": true }, - { - "name": "created_time", - "type": "TypeString", - "description": "Creation time of the git config.", - "computed": true - }, - { - "name": "git_branch", - "type": "TypeString", - "description": "Branch name to which you need to write or update the configuration.", - "computed": true - }, { "name": "updated_time", "type": "TypeString", @@ -1884,12 +1846,6 @@ } } }, - { - "name": "guid", - "type": "TypeString", - "description": "GUID of the App Configuration service. Get it from the service instance credentials section of the dashboard.", - "required": true - }, { "name": "git_config_name", "type": "TypeString", @@ -1901,6 +1857,50 @@ "type": "TypeString", "description": "Git url which will be used to connect to the github account.", "computed": true + }, + { + "name": "git_branch", + "type": "TypeString", + "description": "Branch name to which you need to write or update the configuration.", + "computed": true + }, + { + "name": "created_time", + "type": "TypeString", + "description": "Creation time of the git config.", + "computed": true + }, + { + "name": "last_sync_time", + "type": "TypeString", + "description": "Latest time when the snapshot was synced to git.", + "computed": true + }, + { + "name": "environment", + "type": "TypeList", + "description": "Environment object", + "computed": true, + "elem": { + "color_code": { + "name": "color_code", + "type": "TypeString", + "description": "Environment color code.", + "computed": true + }, + "environment_id": { + "name": "environment_id", + "type": "TypeString", + "description": "Environment id.", + "computed": true + }, + "environment_name": { + "name": "environment_name", + "type": "TypeString", + "description": "Environment name.", + "computed": true + } + } } ], "ibm_app_config_snapshots": [ @@ -2066,6 +2066,18 @@ } ], "ibm_app_route": [ + { + "name": "path", + "type": "TypeString", + "description": "The path of the route", + "optional": true + }, + { + "name": "port", + "type": "TypeString", + "description": "The port of the route", + "optional": true + }, { "name": "space_guid", "type": "TypeString", @@ -2083,18 +2095,6 @@ "type": "TypeString", "description": "The host of the route", "optional": true - }, - { - "name": "path", - "type": "TypeString", - "description": "The path of the route", - "optional": true - }, - { - "name": "port", - "type": "TypeString", - "description": "The port of the route", - "optional": true } ], "ibm_appid_action_url": [ @@ -2118,6 +2118,45 @@ } ], "ibm_appid_apm": [ + { + "name": "lockout_policy", + "type": "TypeList", + "computed": true, + "elem": { + "enabled": { + "name": "enabled", + "type": "TypeBool", + "computed": true + }, + "lockout_time_sec": { + "name": "lockout_time_sec", + "type": "TypeInt", + "computed": true + }, + "num_of_attempts": { + "name": "num_of_attempts", + "type": "TypeInt", + "computed": true + } + } + }, + { + "name": "min_password_change_interval", + "type": "TypeList", + "computed": true, + "elem": { + "enabled": { + "name": "enabled", + "type": "TypeBool", + "computed": true + }, + "min_hours_to_change_password": { + "name": "min_hours_to_change_password", + "type": "TypeInt", + "computed": true + } + } + }, { "name": "tenant_id", "type": "TypeString", @@ -2168,45 +2207,6 @@ "computed": true } } - }, - { - "name": "lockout_policy", - "type": "TypeList", - "computed": true, - "elem": { - "enabled": { - "name": "enabled", - "type": "TypeBool", - "computed": true - }, - "lockout_time_sec": { - "name": "lockout_time_sec", - "type": "TypeInt", - "computed": true - }, - "num_of_attempts": { - "name": "num_of_attempts", - "type": "TypeInt", - "computed": true - } - } - }, - { - "name": "min_password_change_interval", - "type": "TypeList", - "computed": true, - "elem": { - "enabled": { - "name": "enabled", - "type": "TypeBool", - "computed": true - }, - "min_hours_to_change_password": { - "name": "min_hours_to_change_password", - "type": "TypeInt", - "computed": true - } - } } ], "ibm_appid_application": [ @@ -2294,6 +2294,15 @@ } ], "ibm_appid_application_scopes": [ + { + "name": "scopes", + "type": "TypeList", + "description": "A `scope` is a runtime action in your application that you register with IBM Cloud App ID to create an access permission", + "computed": true, + "elem": { + "type": "TypeString" + } + }, { "name": "tenant_id", "type": "TypeString", @@ -2305,15 +2314,6 @@ "type": "TypeString", "description": "The `client_id` is a public identifier for applications", "required": true - }, - { - "name": "scopes", - "type": "TypeList", - "description": "A `scope` is a runtime action in your application that you register with IBM Cloud App ID to create an access permission", - "computed": true, - "elem": { - "type": "TypeString" - } } ], "ibm_appid_applications": [ @@ -2388,18 +2388,6 @@ } ], "ibm_appid_cloud_directory_template": [ - { - "name": "subject", - "type": "TypeString", - "description": "The subject of the email", - "computed": true - }, - { - "name": "html_body", - "type": "TypeString", - "description": "The HTML body of the email", - "computed": true - }, { "name": "base64_encoded_html_body", "type": "TypeString", @@ -2430,27 +2418,21 @@ "description": "Preferred language for resource. Format as described at RFC5646. According to the configured languages codes returned from the `GET /management/v4/{tenantId}/config/ui/languages API`.", "default_value": "en", "optional": true - } - ], - "ibm_appid_cloud_directory_user": [ + }, { "name": "subject", "type": "TypeString", - "description": "The user's identifier ('subject' in identity token)", + "description": "The subject of the email", "computed": true }, { - "name": "user_name", + "name": "html_body", "type": "TypeString", - "description": "Optional username", + "description": "The HTML body of the email", "computed": true - }, - { - "name": "tenant_id", - "type": "TypeString", - "description": "The AppID instance GUID", - "required": true - }, + } + ], + "ibm_appid_cloud_directory_user": [ { "name": "active", "type": "TypeBool", @@ -2458,9 +2440,15 @@ "computed": true }, { - "name": "display_name", + "name": "locked_until", + "type": "TypeInt", + "description": "Integer (epoch time in milliseconds), determines till when the user account will be locked", + "computed": true + }, + { + "name": "user_name", "type": "TypeString", - "description": "Cloud Directory user display name", + "description": "Optional username", "computed": true }, { @@ -2489,6 +2477,30 @@ } } }, + { + "name": "tenant_id", + "type": "TypeString", + "description": "The AppID instance GUID", + "required": true + }, + { + "name": "user_id", + "type": "TypeString", + "description": "Cloud Directory user ID", + "required": true + }, + { + "name": "subject", + "type": "TypeString", + "description": "The user's identifier ('subject' in identity token)", + "computed": true + }, + { + "name": "display_name", + "type": "TypeString", + "description": "Cloud Directory user display name", + "computed": true + }, { "name": "meta", "type": "TypeList", @@ -2508,21 +2520,24 @@ "computed": true } } + } + ], + "ibm_appid_idp_cloud_directory": [ + { + "name": "reset_password_enabled", + "type": "TypeBool", + "computed": true }, { - "name": "locked_until", - "type": "TypeInt", - "description": "Integer (epoch time in milliseconds), determines till when the user account will be locked", + "name": "identity_confirm_access_mode", + "type": "TypeString", "computed": true }, { - "name": "user_id", + "name": "identity_field", "type": "TypeString", - "description": "Cloud Directory user ID", - "required": true - } - ], - "ibm_appid_idp_cloud_directory": [ + "computed": true + }, { "name": "tenant_id", "type": "TypeString", @@ -2534,12 +2549,6 @@ "type": "TypeBool", "computed": true }, - { - "name": "self_service_enabled", - "type": "TypeBool", - "description": "Allow users to manage their account from your app", - "computed": true - }, { "name": "signup_enabled", "type": "TypeBool", @@ -2547,8 +2556,17 @@ "computed": true }, { - "name": "reset_password_enabled", + "name": "identity_confirm_methods", + "type": "TypeList", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "self_service_enabled", "type": "TypeBool", + "description": "Allow users to manage their account from your app", "computed": true }, { @@ -2560,27 +2578,15 @@ "name": "reset_password_notification_enabled", "type": "TypeBool", "computed": true - }, - { - "name": "identity_confirm_access_mode", - "type": "TypeString", - "computed": true - }, - { - "name": "identity_confirm_methods", - "type": "TypeList", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "identity_field", - "type": "TypeString", - "computed": true } ], "ibm_appid_idp_custom": [ + { + "name": "tenant_id", + "type": "TypeString", + "description": "The AppID instance GUID", + "required": true + }, { "name": "is_active", "type": "TypeBool", @@ -2591,21 +2597,9 @@ "type": "TypeString", "description": "This is the public key used to validate your signed JWT. It is required to be a PEM in the RS256 or greater format.", "computed": true - }, - { - "name": "tenant_id", - "type": "TypeString", - "description": "The AppID instance GUID", - "required": true } ], "ibm_appid_idp_facebook": [ - { - "name": "redirect_url", - "type": "TypeString", - "description": "Paste the URI into the Valid OAuth redirect URIs field in the Facebook Login section of the Facebook Developers Portal", - "computed": true - }, { "name": "tenant_id", "type": "TypeString", @@ -2638,6 +2632,12 @@ "computed": true } } + }, + { + "name": "redirect_url", + "type": "TypeString", + "description": "Paste the URI into the Valid OAuth redirect URIs field in the Facebook Login section of the Facebook Developers Portal", + "computed": true } ], "ibm_appid_idp_google": [ @@ -2681,6 +2681,18 @@ } ], "ibm_appid_idp_saml": [ + { + "name": "tenant_id", + "type": "TypeString", + "description": "The AppID instance GUID", + "required": true + }, + { + "name": "is_active", + "type": "TypeBool", + "description": "SAML IDP activation", + "computed": true + }, { "name": "config", "type": "TypeList", @@ -2755,18 +2767,6 @@ "computed": true } } - }, - { - "name": "tenant_id", - "type": "TypeString", - "description": "The AppID instance GUID", - "required": true - }, - { - "name": "is_active", - "type": "TypeBool", - "description": "SAML IDP activation", - "computed": true } ], "ibm_appid_idp_saml_metadata": [ @@ -2858,6 +2858,12 @@ } ], "ibm_appid_password_regex": [ + { + "name": "regex", + "type": "TypeString", + "description": "The escaped regex expression rule for acceptable password", + "computed": true + }, { "name": "tenant_id", "type": "TypeString", @@ -2875,12 +2881,6 @@ "type": "TypeString", "description": "Custom error message", "computed": true - }, - { - "name": "regex", - "type": "TypeString", - "description": "The escaped regex expression rule for acceptable password", - "computed": true } ], "ibm_appid_redirect_urls": [ @@ -3001,16 +3001,16 @@ } ], "ibm_appid_theme_color": [ - { - "name": "header_color", - "type": "TypeString", - "computed": true - }, { "name": "tenant_id", "type": "TypeString", "description": "The AppID instance GUID", "required": true + }, + { + "name": "header_color", + "type": "TypeString", + "computed": true } ], "ibm_appid_theme_text": [ @@ -3032,6 +3032,28 @@ } ], "ibm_appid_token_config": [ + { + "name": "refresh_token_expires_in", + "type": "TypeInt", + "description": "The length of time for which refresh tokens are valid in seconds", + "computed": true + }, + { + "name": "anonymous_token_expires_in", + "type": "TypeInt", + "description": "The length of time for which an anonymous token is valid in seconds", + "computed": true + }, + { + "name": "anonymous_access_enabled", + "type": "TypeBool", + "computed": true + }, + { + "name": "refresh_token_enabled", + "type": "TypeBool", + "computed": true + }, { "name": "access_token_claim", "type": "TypeSet", @@ -3092,28 +3114,6 @@ "type": "TypeInt", "description": "The length of time for which access tokens are valid in seconds", "computed": true - }, - { - "name": "refresh_token_expires_in", - "type": "TypeInt", - "description": "The length of time for which refresh tokens are valid in seconds", - "computed": true - }, - { - "name": "anonymous_token_expires_in", - "type": "TypeInt", - "description": "The length of time for which an anonymous token is valid in seconds", - "computed": true - }, - { - "name": "anonymous_access_enabled", - "type": "TypeBool", - "computed": true - }, - { - "name": "refresh_token_enabled", - "type": "TypeBool", - "computed": true } ], "ibm_appid_user_roles": [ @@ -3256,12 +3256,6 @@ } ], "ibm_atracker_targets": [ - { - "name": "name", - "type": "TypeString", - "description": "The name of the target resource.", - "optional": true - }, { "name": "targets", "type": "TypeList", @@ -3494,72 +3488,197 @@ } } } + }, + { + "name": "name", + "type": "TypeString", + "description": "The name of the target resource.", + "optional": true } ], - "ibm_cbr_rule": [ + "ibm_billing_snapshot_list": [ { - "name": "rule_id", - "type": "TypeString", - "description": "The ID of a rule.", - "required": true + "name": "date_to", + "type": "TypeInt", + "description": "Timestamp in milliseconds for which billing report snapshot is requested.", + "optional": true }, { - "name": "crn", - "type": "TypeString", - "description": "The rule CRN.", - "cloud_data_type": "crn", + "name": "snapshotcount", + "type": "TypeInt", + "description": "Number of total snapshots.", "computed": true }, { - "name": "contexts", + "name": "snapshots", "type": "TypeList", - "description": "The contexts this rule applies to.", "computed": true, "elem": { - "attributes": { - "name": "attributes", + "account_id": { + "name": "account_id", + "type": "TypeString", + "description": "Account ID for which billing report snapshot is configured.", + "computed": true + }, + "account_type": { + "name": "account_type", + "type": "TypeString", + "description": "Type of account. Possible values are [enterprise, account].", + "computed": true + }, + "billing_period": { + "name": "billing_period", "type": "TypeList", - "description": "The attributes.", + "description": "Period of billing in snapshot.", "computed": true, "elem": { - "name": { - "name": "name", + "end": { + "name": "end", "type": "TypeString", - "description": "The attribute name.", + "description": "Date and time of end of billing in the respective snapshot.", "computed": true }, - "value": { - "name": "value", + "start": { + "name": "start", "type": "TypeString", - "description": "The attribute value.", + "description": "Date and time of start of billing in the respective snapshot.", "computed": true } } + }, + "bucket": { + "name": "bucket", + "type": "TypeString", + "description": "The name of the COS bucket to store the snapshot of the billing reports.", + "computed": true + }, + "charset": { + "name": "charset", + "type": "TypeString", + "description": "Character encoding used.", + "computed": true + }, + "compression": { + "name": "compression", + "type": "TypeString", + "description": "Compression format of the snapshot report.", + "computed": true + }, + "content_type": { + "name": "content_type", + "type": "TypeString", + "description": "Type of content stored in snapshot report.", + "computed": true + }, + "created_on": { + "name": "created_on", + "type": "TypeString", + "description": "Date and time of creation of snapshot.", + "computed": true + }, + "expected_processed_at": { + "name": "expected_processed_at", + "type": "TypeInt", + "description": "Timestamp of snapshot processed.", + "computed": true + }, + "files": { + "name": "files", + "type": "TypeList", + "description": "List of location of reports.", + "computed": true, + "elem": { + "account_id": { + "name": "account_id", + "type": "TypeString", + "description": "Account ID for which billing report is captured.", + "computed": true + }, + "location": { + "name": "location", + "type": "TypeString", + "description": "Absolute path of the billing report in the COS instance.", + "computed": true + }, + "report_types": { + "name": "report_types", + "type": "TypeString", + "description": "The type of billing report stored. Possible values are [account_summary, enterprise_summary, account_resource_instance_usage].", + "computed": true + } + } + }, + "month": { + "name": "month", + "type": "TypeString", + "description": "Month of captured snapshot.", + "computed": true + }, + "processed_at": { + "name": "processed_at", + "type": "TypeInt", + "description": "Timestamp at which snapshot is captured.", + "computed": true + }, + "report_types": { + "name": "report_types", + "type": "TypeList", + "description": "List of report types configured for the snapshot.", + "computed": true, + "elem": { + "type": { + "name": "type", + "type": "TypeString", + "description": "The type of billing report of the snapshot. Possible values are [account_summary, enterprise_summary, account_resource_instance_usage].", + "computed": true + }, + "version": { + "name": "version", + "type": "TypeString", + "description": "Version of the snapshot.", + "computed": true + } + } + }, + "snapshot_id": { + "name": "snapshot_id", + "type": "TypeString", + "description": "Id of the snapshot captured.", + "computed": true + }, + "state": { + "name": "state", + "type": "TypeString", + "description": "Status of the billing snapshot configuration. Possible values are [enabled, disabled].", + "computed": true + }, + "version": { + "name": "version", + "type": "TypeString", + "description": "Version of the snapshot.", + "computed": true } } }, { - "name": "enforcement_mode", - "type": "TypeString", - "description": "The rule enforcement mode: * `enabled` - The restrictions are enforced and reported. This is the default. * `disabled` - The restrictions are disabled. Nothing is enforced or reported. * `report` - The restrictions are evaluated and reported, but not enforced.", - "computed": true - }, - { - "name": "href", + "name": "month", "type": "TypeString", - "description": "The href link to the resource.", - "computed": true + "description": "The month for which billing report snapshot is requested. Format is yyyy-mm.", + "required": true }, { - "name": "created_at", - "type": "TypeString", - "description": "The time the resource was created.", - "computed": true - }, + "name": "date_from", + "type": "TypeInt", + "description": "Timestamp in milliseconds for which billing report snapshot is requested.", + "optional": true + } + ], + "ibm_cbr_rule": [ { - "name": "last_modified_at", + "name": "crn", "type": "TypeString", - "description": "The last time the resource was modified.", + "description": "The rule CRN.", + "cloud_data_type": "crn", "computed": true }, { @@ -3628,6 +3747,58 @@ } } }, + { + "name": "href", + "type": "TypeString", + "description": "The href link to the resource.", + "computed": true + }, + { + "name": "last_modified_at", + "type": "TypeString", + "description": "The last time the resource was modified.", + "computed": true + }, + { + "name": "last_modified_by_id", + "type": "TypeString", + "description": "IAM ID of the user or service which modified the resource.", + "computed": true + }, + { + "name": "rule_id", + "type": "TypeString", + "description": "The ID of a rule.", + "required": true + }, + { + "name": "contexts", + "type": "TypeList", + "description": "The contexts this rule applies to.", + "computed": true, + "elem": { + "attributes": { + "name": "attributes", + "type": "TypeList", + "description": "The attributes.", + "computed": true, + "elem": { + "name": { + "name": "name", + "type": "TypeString", + "description": "The attribute name.", + "computed": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "The attribute value.", + "computed": true + } + } + } + } + }, { "name": "operations", "type": "TypeList", @@ -3650,29 +3821,35 @@ } }, { - "name": "created_by_id", + "name": "enforcement_mode", "type": "TypeString", - "description": "IAM ID of the user or service which created the resource.", + "description": "The rule enforcement mode: * `enabled` - The restrictions are enforced and reported. This is the default. * `disabled` - The restrictions are disabled. Nothing is enforced or reported. * `report` - The restrictions are evaluated and reported, but not enforced.", "computed": true }, { - "name": "last_modified_by_id", + "name": "created_at", "type": "TypeString", - "description": "IAM ID of the user or service which modified the resource.", + "description": "The time the resource was created.", + "computed": true + }, + { + "name": "created_by_id", + "type": "TypeString", + "description": "IAM ID of the user or service which created the resource.", "computed": true } ], "ibm_cbr_zone": [ { - "name": "zone_id", + "name": "last_modified_at", "type": "TypeString", - "description": "The ID of a zone.", - "required": true + "description": "The last time the resource was modified.", + "computed": true }, { - "name": "address_count", - "type": "TypeInt", - "description": "The number of addresses in the zone.", + "name": "account_id", + "type": "TypeString", + "description": "The id of the account owning this zone.", "computed": true }, { @@ -3733,43 +3910,12 @@ } } }, - { - "name": "href", - "type": "TypeString", - "description": "The href link to the resource.", - "computed": true - }, { "name": "created_at", "type": "TypeString", "description": "The time the resource was created.", "computed": true }, - { - "name": "created_by_id", - "type": "TypeString", - "description": "IAM ID of the user or service which created the resource.", - "computed": true - }, - { - "name": "crn", - "type": "TypeString", - "description": "The zone CRN.", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "name", - "type": "TypeString", - "description": "The name of the zone.", - "computed": true - }, - { - "name": "account_id", - "type": "TypeString", - "description": "The id of the account owning this zone.", - "computed": true - }, { "name": "description", "type": "TypeString", @@ -3797,9 +3943,22 @@ } }, { - "name": "last_modified_at", + "name": "last_modified_by_id", "type": "TypeString", - "description": "The last time the resource was modified.", + "description": "IAM ID of the user or service which modified the resource.", + "computed": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "The zone CRN.", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "address_count", + "type": "TypeInt", + "description": "The number of addresses in the zone.", "computed": true }, { @@ -3809,25 +3968,31 @@ "computed": true }, { - "name": "last_modified_by_id", + "name": "created_by_id", "type": "TypeString", - "description": "IAM ID of the user or service which modified the resource.", + "description": "IAM ID of the user or service which created the resource.", "computed": true - } - ], - "ibm_cd_tekton_pipeline": [ + }, { - "name": "enable_partial_cloning", - "type": "TypeBool", - "description": "Flag whether to enable partial cloning for this pipeline. When partial clone is enabled, only the files contained within the paths specified in definition repositories are read and cloned, this means that symbolic links might not work. If omitted, this feature is disabled by default.", - "computed": true + "name": "zone_id", + "type": "TypeString", + "description": "The ID of a zone.", + "required": true }, { - "name": "enabled", - "type": "TypeBool", - "description": "Flag whether this pipeline is enabled.", + "name": "name", + "type": "TypeString", + "description": "The name of the zone.", "computed": true }, + { + "name": "href", + "type": "TypeString", + "description": "The href link to the resource.", + "computed": true + } + ], + "ibm_cd_tekton_pipeline": [ { "name": "resource_group", "type": "TypeList", @@ -3843,6 +4008,26 @@ } } }, + { + "name": "toolchain", + "type": "TypeList", + "description": "Toolchain object containing references to the parent toolchain.", + "computed": true, + "elem": { + "crn": { + "name": "crn", + "type": "TypeString", + "description": "The CRN for the toolchain that contains the Tekton pipeline.", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "UUID.", + "computed": true + } + } + }, { "name": "definitions", "type": "TypeList", @@ -3971,7 +4156,31 @@ } }, { - "name": "created_at", + "name": "build_number", + "type": "TypeInt", + "description": "The latest pipeline run build number. If this property is absent, the pipeline hasn't had any pipeline runs.", + "computed": true + }, + { + "name": "next_build_number", + "type": "TypeInt", + "description": "The build number that will be used for the next pipeline run.", + "computed": true + }, + { + "name": "enabled", + "type": "TypeBool", + "description": "Flag whether this pipeline is enabled.", + "computed": true + }, + { + "name": "status", + "type": "TypeString", + "description": "Pipeline status.", + "computed": true + }, + { + "name": "updated_at", "type": "TypeString", "description": "Standard RFC 3339 Date Time String.", "computed": true @@ -4245,12 +4454,6 @@ } } }, - { - "name": "status", - "type": "TypeString", - "description": "Pipeline status.", - "computed": true - }, { "name": "worker", "type": "TypeList", @@ -4278,15 +4481,9 @@ } }, { - "name": "next_build_number", - "type": "TypeInt", - "description": "The build number that will be used for the next pipeline run.", - "computed": true - }, - { - "name": "enable_notifications", - "type": "TypeBool", - "description": "Flag whether to enable notifications for this pipeline. When enabled, pipeline run events will be published on all slack integration specified channels in the parent toolchain. If omitted, this feature is disabled by default.", + "name": "runs_url", + "type": "TypeString", + "description": "URL for this pipeline showing the list of pipeline runs.", "computed": true }, { @@ -4295,32 +4492,6 @@ "description": "ID of current instance.", "required": true }, - { - "name": "toolchain", - "type": "TypeList", - "description": "Toolchain object containing references to the parent toolchain.", - "computed": true, - "elem": { - "crn": { - "name": "crn", - "type": "TypeString", - "description": "The CRN for the toolchain that contains the Tekton pipeline.", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "UUID.", - "computed": true - } - } - }, - { - "name": "build_number", - "type": "TypeInt", - "description": "The latest pipeline run build number. If this property is absent, the pipeline hasn't had any pipeline runs.", - "computed": true - }, { "name": "name", "type": "TypeString", @@ -4328,31 +4499,31 @@ "computed": true }, { - "name": "updated_at", + "name": "created_at", "type": "TypeString", "description": "Standard RFC 3339 Date Time String.", "computed": true }, { - "name": "runs_url", + "name": "href", "type": "TypeString", - "description": "URL for this pipeline showing the list of pipeline runs.", + "description": "API URL for interacting with the pipeline.", "computed": true }, { - "name": "href", - "type": "TypeString", - "description": "API URL for interacting with the pipeline.", + "name": "enable_notifications", + "type": "TypeBool", + "description": "Flag whether to enable notifications for this pipeline. When enabled, pipeline run events will be published on all slack integration specified channels in the parent toolchain. If omitted, this feature is disabled by default.", + "computed": true + }, + { + "name": "enable_partial_cloning", + "type": "TypeBool", + "description": "Flag whether to enable partial cloning for this pipeline. When partial clone is enabled, only the files contained within the paths specified in definition repositories are read and cloned, this means that symbolic links might not work. If omitted, this feature is disabled by default.", "computed": true } ], "ibm_cd_tekton_pipeline_definition": [ - { - "name": "pipeline_id", - "type": "TypeString", - "description": "The Tekton pipeline ID.", - "required": true - }, { "name": "definition_id", "type": "TypeString", @@ -4424,15 +4595,15 @@ "type": "TypeString", "description": "API URL for interacting with the definition.", "computed": true - } - ], - "ibm_cd_tekton_pipeline_property": [ + }, { "name": "pipeline_id", "type": "TypeString", "description": "The Tekton pipeline ID.", "required": true - }, + } + ], + "ibm_cd_tekton_pipeline_property": [ { "name": "property_name", "type": "TypeString", @@ -4477,21 +4648,135 @@ "type": "TypeString", "description": "A dot notation path for `integration` type properties only, that selects a value from the tool integration. If left blank the full tool integration data will be used.", "computed": true + }, + { + "name": "pipeline_id", + "type": "TypeString", + "description": "The Tekton pipeline ID.", + "required": true } ], "ibm_cd_tekton_pipeline_trigger": [ { - "name": "trigger_id", + "name": "worker", + "type": "TypeList", + "description": "Details of the worker used to run the trigger.", + "computed": true, + "elem": { + "id": { + "name": "id", + "type": "TypeString", + "description": "ID of the worker.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Name of the worker. Computed based on the worker ID.", + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "Type of the worker. Computed based on the worker ID.", + "computed": true + } + } + }, + { + "name": "enabled", + "type": "TypeBool", + "description": "Flag whether the trigger is enabled.", + "computed": true + }, + { + "name": "timezone", "type": "TypeString", - "description": "The trigger ID.", - "required": true + "description": "Only used for timer triggers. Specify the timezone used for this timer trigger, which will ensure the cron activates this trigger relative to the specified timezone. If no timezone is specified, the default timezone used is UTC. Valid timezones are those listed in the IANA timezone database, https://www.iana.org/time-zones.", + "computed": true }, { - "name": "type", + "name": "event_listener", "type": "TypeString", - "description": "Trigger type.", + "description": "Event listener name. The name of the event listener to which the trigger is associated. The event listeners are defined in the definition repositories of the Tekton pipeline.", "computed": true }, + { + "name": "tags", + "type": "TypeList", + "description": "Optional trigger tags array.", + "cloud_data_type": "tags", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "source", + "type": "TypeList", + "description": "Source repository for a Git trigger. Only required for Git triggers. The referenced repository URL must match the URL of a repository tool integration in the parent toolchain. Obtain the list of integrations from the toolchain API https://cloud.ibm.com/apidocs/toolchain#list-tools.", + "computed": true, + "elem": { + "properties": { + "name": "properties", + "type": "TypeList", + "description": "Properties of the source, which define the URL of the repository and a branch or pattern.", + "computed": true, + "elem": { + "blind_connection": { + "name": "blind_connection", + "type": "TypeBool", + "description": "True if the repository server is not addressable on the public internet. IBM Cloud will not be able to validate the connection details you provide.", + "computed": true + }, + "branch": { + "name": "branch", + "type": "TypeString", + "description": "Name of a branch from the repo. One of branch or pattern must be specified, but only one or the other.", + "computed": true + }, + "hook_id": { + "name": "hook_id", + "type": "TypeString", + "description": "ID of the webhook from the repo. Computed upon creation of the trigger.", + "computed": true + }, + "pattern": { + "name": "pattern", + "type": "TypeString", + "description": "The pattern of Git branch or tag to which to listen. You can specify a glob pattern such as '!test' or '*master' to match against multiple tags/branches in the repository. The glob pattern used must conform to Bash 4.3 specifications, see bash documentation for more info: https://www.gnu.org/software/bash/manual/bash.html#Pattern-Matching. One of branch or pattern must be specified, but only one or the other.", + "computed": true + }, + "tool": { + "name": "tool", + "type": "TypeList", + "description": "Reference to the repository tool in the parent toolchain.", + "computed": true, + "elem": { + "id": { + "name": "id", + "type": "TypeString", + "description": "ID of the repository tool instance in the parent toolchain.", + "computed": true + } + } + }, + "url": { + "name": "url", + "type": "TypeString", + "description": "URL of the repository to which the trigger is listening.", + "computed": true + } + } + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "The only supported source type is \"git\", indicating that the source is a git repository.", + "computed": true + } + } + }, { "name": "secret", "type": "TypeList", @@ -4536,12 +4821,63 @@ "description": "Webhook URL that can be used to trigger pipeline runs.", "computed": true }, + { + "name": "type", + "type": "TypeString", + "description": "Trigger type.", + "computed": true + }, + { + "name": "favorite", + "type": "TypeBool", + "description": "Mark the trigger as a favorite.", + "computed": true + }, { "name": "href", "type": "TypeString", "description": "API URL for interacting with the trigger. Only included when fetching the list of pipeline triggers.", "computed": true }, + { + "name": "max_concurrent_runs", + "type": "TypeInt", + "description": "Defines the maximum number of concurrent runs for this trigger. If omitted then the concurrency limit is disabled for this trigger.", + "computed": true + }, + { + "name": "cron", + "type": "TypeString", + "description": "Only needed for timer triggers. Cron expression that indicates when this trigger will activate. Maximum frequency is every 5 minutes. The string is based on UNIX crontab syntax: minute, hour, day of month, month, day of week. Example: 0 *_/2 * * * - every 2 hours.", + "computed": true + }, + { + "name": "pipeline_id", + "type": "TypeString", + "description": "The Tekton pipeline ID.", + "required": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Trigger name.", + "computed": true + }, + { + "name": "events", + "type": "TypeList", + "description": "Only needed for Git triggers. List of events to which a Git trigger listens. Choose one or more from: 'push', 'pull_request' and 'pull_request_closed'. For SCM repositories that use 'merge request' events, such events map to the equivalent 'pull request' events.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "trigger_id", + "type": "TypeString", + "description": "The trigger ID.", + "required": true + }, { "name": "properties", "type": "TypeList", @@ -4588,173 +4924,32 @@ "computed": true } } - }, - { - "name": "name", - "type": "TypeString", - "description": "Trigger name.", - "computed": true - }, + } + ], + "ibm_cd_tekton_pipeline_trigger_property": [ { - "name": "event_listener", + "name": "trigger_id", "type": "TypeString", - "description": "Event listener name. The name of the event listener to which the trigger is associated. The event listeners are defined in the definition repositories of the Tekton pipeline.", - "computed": true - }, - { - "name": "tags", - "type": "TypeList", - "description": "Optional trigger tags array.", - "cloud_data_type": "tags", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "enabled", - "type": "TypeBool", - "description": "Flag whether the trigger is enabled.", - "computed": true + "description": "The trigger ID.", + "required": true }, { - "name": "cron", + "name": "name", "type": "TypeString", - "description": "Only needed for timer triggers. Cron expression that indicates when this trigger will activate. Maximum frequency is every 5 minutes. The string is based on UNIX crontab syntax: minute, hour, day of month, month, day of week. Example: 0 *_/2 * * * - every 2 hours.", + "description": "Property name.", "computed": true }, { - "name": "pipeline_id", + "name": "path", "type": "TypeString", - "description": "The Tekton pipeline ID.", - "required": true - }, - { - "name": "worker", - "type": "TypeList", - "description": "Details of the worker used to run the trigger.", - "computed": true, - "elem": { - "id": { - "name": "id", - "type": "TypeString", - "description": "ID of the worker.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Name of the worker. Computed based on the worker ID.", - "computed": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "Type of the worker. Computed based on the worker ID.", - "computed": true - } - } - }, - { - "name": "max_concurrent_runs", - "type": "TypeInt", - "description": "Defines the maximum number of concurrent runs for this trigger. If omitted then the concurrency limit is disabled for this trigger.", - "computed": true - }, - { - "name": "favorite", - "type": "TypeBool", - "description": "Mark the trigger as a favorite.", + "description": "A dot notation path for `integration` type properties only, that selects a value from the tool integration. If left blank the full tool integration data will be used.", "computed": true }, { - "name": "source", - "type": "TypeList", - "description": "Source repository for a Git trigger. Only required for Git triggers. The referenced repository URL must match the URL of a repository tool integration in the parent toolchain. Obtain the list of integrations from the toolchain API https://cloud.ibm.com/apidocs/toolchain#list-tools.", - "computed": true, - "elem": { - "properties": { - "name": "properties", - "type": "TypeList", - "description": "Properties of the source, which define the URL of the repository and a branch or pattern.", - "computed": true, - "elem": { - "blind_connection": { - "name": "blind_connection", - "type": "TypeBool", - "description": "True if the repository server is not addressable on the public internet. IBM Cloud will not be able to validate the connection details you provide.", - "computed": true - }, - "branch": { - "name": "branch", - "type": "TypeString", - "description": "Name of a branch from the repo. One of branch or pattern must be specified, but only one or the other.", - "computed": true - }, - "hook_id": { - "name": "hook_id", - "type": "TypeString", - "description": "ID of the webhook from the repo. Computed upon creation of the trigger.", - "computed": true - }, - "pattern": { - "name": "pattern", - "type": "TypeString", - "description": "The pattern of Git branch or tag to which to listen. You can specify a glob pattern such as '!test' or '*master' to match against multiple tags/branches in the repository. The glob pattern used must conform to Bash 4.3 specifications, see bash documentation for more info: https://www.gnu.org/software/bash/manual/bash.html#Pattern-Matching. One of branch or pattern must be specified, but only one or the other.", - "computed": true - }, - "tool": { - "name": "tool", - "type": "TypeList", - "description": "Reference to the repository tool in the parent toolchain.", - "computed": true, - "elem": { - "id": { - "name": "id", - "type": "TypeString", - "description": "ID of the repository tool instance in the parent toolchain.", - "computed": true - } - } - }, - "url": { - "name": "url", - "type": "TypeString", - "description": "URL of the repository to which the trigger is listening.", - "computed": true - } - } - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "The only supported source type is \"git\", indicating that the source is a git repository.", - "computed": true - } - } - }, - { - "name": "events", - "type": "TypeList", - "description": "Only needed for Git triggers. List of events to which a Git trigger listens. Choose one or more from: 'push', 'pull_request' and 'pull_request_closed'. For SCM repositories that use 'merge request' events, such events map to the equivalent 'pull request' events.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "timezone", + "name": "href", "type": "TypeString", - "description": "Only used for timer triggers. Specify the timezone used for this timer trigger, which will ensure the cron activates this trigger relative to the specified timezone. If no timezone is specified, the default timezone used is UTC. Valid timezones are those listed in the IANA timezone database, https://www.iana.org/time-zones.", + "description": "API URL for interacting with the trigger property.", "computed": true - } - ], - "ibm_cd_tekton_pipeline_trigger_property": [ - { - "name": "property_name", - "type": "TypeString", - "description": "The property name.", - "required": true }, { "name": "enum", @@ -4765,12 +4960,6 @@ "type": "TypeString" } }, - { - "name": "path", - "type": "TypeString", - "description": "A dot notation path for `integration` type properties only, that selects a value from the tool integration. If left blank the full tool integration data will be used.", - "computed": true - }, { "name": "type", "type": "TypeString", @@ -4784,72 +4973,37 @@ "required": true }, { - "name": "trigger_id", + "name": "property_name", "type": "TypeString", - "description": "The trigger ID.", + "description": "The property name.", "required": true }, - { - "name": "name", - "type": "TypeString", - "description": "Property name.", - "computed": true - }, { "name": "value", "type": "TypeString", "description": "Property value. Any string value is valid.", "computed": true - }, - { - "name": "href", - "type": "TypeString", - "description": "API URL for interacting with the trigger property.", - "computed": true } ], "ibm_cd_toolchain": [ { - "name": "name", - "type": "TypeString", - "description": "Toolchain name.", - "computed": true - }, - { - "name": "resource_group_id", + "name": "updated_at", "type": "TypeString", - "description": "Resource group where the toolchain is located.", - "cloud_data_type": "resource_group", + "description": "Latest toolchain update timestamp.", "computed": true }, { - "name": "href", + "name": "toolchain_id", "type": "TypeString", - "description": "URI that can be used to retrieve toolchain.", - "computed": true + "description": "ID of the toolchain.", + "required": true }, { - "name": "created_at", + "name": "name", "type": "TypeString", - "description": "Toolchain creation timestamp.", + "description": "Toolchain name.", "computed": true }, - { - "name": "tags", - "type": "TypeSet", - "description": "Toolchain tags.", - "cloud_data_type": "tags", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "toolchain_id", - "type": "TypeString", - "description": "ID of the toolchain.", - "required": true - }, { "name": "account_id", "type": "TypeString", @@ -4863,6 +5017,13 @@ "cloud_data_type": "region", "computed": true }, + { + "name": "resource_group_id", + "type": "TypeString", + "description": "Resource group where the toolchain is located.", + "cloud_data_type": "resource_group", + "computed": true + }, { "name": "crn", "type": "TypeString", @@ -4877,64 +5038,41 @@ "computed": true }, { - "name": "updated_at", - "type": "TypeString", - "description": "Latest toolchain update timestamp.", - "computed": true - }, - { - "name": "created_by", - "type": "TypeString", - "description": "Identity that created the toolchain.", - "computed": true + "name": "tags", + "type": "TypeSet", + "description": "Toolchain tags.", + "cloud_data_type": "tags", + "computed": true, + "elem": { + "type": "TypeString" + } }, { "name": "description", "type": "TypeString", "description": "Describes the toolchain.", "computed": true - } - ], - "ibm_cd_toolchain_tool_appconfig": [ - { - "name": "resource_group_id", - "type": "TypeString", - "description": "Resource group where the tool is located.", - "cloud_data_type": "resource_group", - "computed": true }, { "name": "href", "type": "TypeString", - "description": "URI representing the tool.", + "description": "URI that can be used to retrieve toolchain.", "computed": true }, { - "name": "referent", - "type": "TypeList", - "description": "Information on URIs to access this resource through the UI or API.", - "computed": true, - "elem": { - "api_href": { - "name": "api_href", - "type": "TypeString", - "description": "URI representing this resource through an API.", - "computed": true - }, - "ui_href": { - "name": "ui_href", - "type": "TypeString", - "description": "URI representing this resource through the UI.", - "computed": true - } - } + "name": "created_at", + "type": "TypeString", + "description": "Toolchain creation timestamp.", + "computed": true }, { - "name": "toolchain_id", + "name": "created_by", "type": "TypeString", - "description": "ID of the toolchain.", - "required": true - }, + "description": "Identity that created the toolchain.", + "computed": true + } + ], + "ibm_cd_toolchain_tool_appconfig": [ { "name": "tool_id", "type": "TypeString", @@ -4942,10 +5080,10 @@ "required": true }, { - "name": "crn", + "name": "resource_group_id", "type": "TypeString", - "description": "Tool CRN.", - "cloud_data_type": "crn", + "description": "Resource group where the tool is located.", + "cloud_data_type": "resource_group", "computed": true }, { @@ -5010,6 +5148,45 @@ } } }, + { + "name": "toolchain_id", + "type": "TypeString", + "description": "ID of the toolchain.", + "required": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "Tool CRN.", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "href", + "type": "TypeString", + "description": "URI representing the tool.", + "computed": true + }, + { + "name": "referent", + "type": "TypeList", + "description": "Information on URIs to access this resource through the UI or API.", + "computed": true, + "elem": { + "api_href": { + "name": "api_href", + "type": "TypeString", + "description": "URI representing this resource through an API.", + "computed": true + }, + "ui_href": { + "name": "ui_href", + "type": "TypeString", + "description": "URI representing this resource through the UI.", + "computed": true + } + } + }, { "name": "state", "type": "TypeString", @@ -5019,11 +5196,62 @@ ], "ibm_cd_toolchain_tool_artifactory": [ { - "name": "tool_id", + "name": "href", "type": "TypeString", - "description": "ID of the tool bound to the toolchain.", + "description": "URI representing the tool.", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Name of the tool.", + "computed": true + }, + { + "name": "state", + "type": "TypeString", + "description": "Current configuration state of the tool.", + "computed": true + }, + { + "name": "toolchain_id", + "type": "TypeString", + "description": "ID of the toolchain.", "required": true }, + { + "name": "resource_group_id", + "type": "TypeString", + "description": "Resource group where the tool is located.", + "cloud_data_type": "resource_group", + "computed": true + }, + { + "name": "toolchain_crn", + "type": "TypeString", + "description": "CRN of toolchain which the tool is bound to.", + "computed": true + }, + { + "name": "referent", + "type": "TypeList", + "description": "Information on URIs to access this resource through the UI or API.", + "computed": true, + "elem": { + "api_href": { + "name": "api_href", + "type": "TypeString", + "description": "URI representing this resource through an API.", + "computed": true + }, + "ui_href": { + "name": "ui_href", + "type": "TypeString", + "description": "URI representing this resource through the UI.", + "computed": true + } + } + }, { "name": "updated_at", "type": "TypeString", @@ -5100,15 +5328,38 @@ } }, { - "name": "toolchain_crn", + "name": "tool_id", "type": "TypeString", - "description": "CRN of toolchain which the tool is bound to.", + "description": "ID of the tool bound to the toolchain.", + "required": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "Tool CRN.", + "cloud_data_type": "crn", "computed": true + } + ], + "ibm_cd_toolchain_tool_bitbucketgit": [ + { + "name": "toolchain_id", + "type": "TypeString", + "description": "ID of the toolchain.", + "required": true }, { - "name": "href", + "name": "resource_group_id", "type": "TypeString", - "description": "URI representing the tool.", + "description": "Resource group where the tool is located.", + "cloud_data_type": "resource_group", + "computed": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "Tool CRN.", + "cloud_data_type": "crn", "computed": true }, { @@ -5138,46 +5389,23 @@ "computed": true }, { - "name": "state", + "name": "updated_at", "type": "TypeString", - "description": "Current configuration state of the tool.", + "description": "Latest tool update timestamp.", "computed": true }, { - "name": "toolchain_id", - "type": "TypeString", - "description": "ID of the toolchain.", - "required": true - }, - { - "name": "resource_group_id", + "name": "state", "type": "TypeString", - "description": "Resource group where the tool is located.", - "cloud_data_type": "resource_group", + "description": "Current configuration state of the tool.", "computed": true }, - { - "name": "crn", - "type": "TypeString", - "description": "Tool CRN.", - "cloud_data_type": "crn", - "computed": true - } - ], - "ibm_cd_toolchain_tool_bitbucketgit": [ { "name": "tool_id", "type": "TypeString", "description": "ID of the tool bound to the toolchain.", "required": true }, - { - "name": "crn", - "type": "TypeString", - "description": "Tool CRN.", - "cloud_data_type": "crn", - "computed": true - }, { "name": "toolchain_crn", "type": "TypeString", @@ -5185,9 +5413,9 @@ "computed": true }, { - "name": "updated_at", + "name": "href", "type": "TypeString", - "description": "Latest tool update timestamp.", + "description": "URI representing the tool.", "computed": true }, { @@ -5281,136 +5509,15 @@ "computed": true } } - }, - { - "name": "state", - "type": "TypeString", - "description": "Current configuration state of the tool.", - "computed": true - }, - { - "name": "toolchain_id", - "type": "TypeString", - "description": "ID of the toolchain.", - "required": true - }, - { - "name": "resource_group_id", - "type": "TypeString", - "description": "Resource group where the tool is located.", - "cloud_data_type": "resource_group", - "computed": true - }, - { - "name": "href", - "type": "TypeString", - "description": "URI representing the tool.", - "computed": true - }, - { - "name": "referent", - "type": "TypeList", - "description": "Information on URIs to access this resource through the UI or API.", - "computed": true, - "elem": { - "api_href": { - "name": "api_href", - "type": "TypeString", - "description": "URI representing this resource through an API.", - "computed": true - }, - "ui_href": { - "name": "ui_href", - "type": "TypeString", - "description": "URI representing this resource through the UI.", - "computed": true - } - } - }, - { - "name": "name", - "type": "TypeString", - "description": "Name of the tool.", - "computed": true } ], "ibm_cd_toolchain_tool_custom": [ - { - "name": "crn", - "type": "TypeString", - "description": "Tool CRN.", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "toolchain_crn", - "type": "TypeString", - "description": "CRN of toolchain which the tool is bound to.", - "computed": true - }, - { - "name": "referent", - "type": "TypeList", - "description": "Information on URIs to access this resource through the UI or API.", - "computed": true, - "elem": { - "api_href": { - "name": "api_href", - "type": "TypeString", - "description": "URI representing this resource through an API.", - "computed": true - }, - "ui_href": { - "name": "ui_href", - "type": "TypeString", - "description": "URI representing this resource through the UI.", - "computed": true - } - } - }, - { - "name": "state", - "type": "TypeString", - "description": "Current configuration state of the tool.", - "computed": true - }, - { - "name": "toolchain_id", - "type": "TypeString", - "description": "ID of the toolchain.", - "required": true - }, - { - "name": "tool_id", - "type": "TypeString", - "description": "ID of the tool bound to the toolchain.", - "required": true - }, - { - "name": "resource_group_id", - "type": "TypeString", - "description": "Resource group where the tool is located.", - "cloud_data_type": "resource_group", - "computed": true - }, { "name": "href", "type": "TypeString", "description": "URI representing the tool.", "computed": true }, - { - "name": "name", - "type": "TypeString", - "description": "Name of the tool.", - "computed": true - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Latest tool update timestamp.", - "computed": true - }, { "name": "parameters", "type": "TypeList", @@ -5466,9 +5573,14 @@ "computed": true } } - } - ], - "ibm_cd_toolchain_tool_devopsinsights": [ + }, + { + "name": "crn", + "type": "TypeString", + "description": "Tool CRN.", + "cloud_data_type": "crn", + "computed": true + }, { "name": "tool_id", "type": "TypeString", @@ -5476,10 +5588,10 @@ "required": true }, { - "name": "crn", + "name": "resource_group_id", "type": "TypeString", - "description": "Tool CRN.", - "cloud_data_type": "crn", + "description": "Resource group where the tool is located.", + "cloud_data_type": "resource_group", "computed": true }, { @@ -5514,6 +5626,12 @@ "description": "Name of the tool.", "computed": true }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Latest tool update timestamp.", + "computed": true + }, { "name": "state", "type": "TypeString", @@ -5525,28 +5643,9 @@ "type": "TypeString", "description": "ID of the toolchain.", "required": true - }, - { - "name": "href", - "type": "TypeString", - "description": "URI representing the tool.", - "computed": true - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Latest tool update timestamp.", - "computed": true - }, - { - "name": "resource_group_id", - "type": "TypeString", - "description": "Resource group where the tool is located.", - "cloud_data_type": "resource_group", - "computed": true } ], - "ibm_cd_toolchain_tool_eventnotifications": [ + "ibm_cd_toolchain_tool_devopsinsights": [ { "name": "referent", "type": "TypeList", @@ -5573,6 +5672,12 @@ "description": "Name of the tool.", "computed": true }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Latest tool update timestamp.", + "computed": true + }, { "name": "crn", "type": "TypeString", @@ -5581,10 +5686,10 @@ "computed": true }, { - "name": "tool_id", + "name": "href", "type": "TypeString", - "description": "ID of the tool bound to the toolchain.", - "required": true + "description": "URI representing the tool.", + "computed": true }, { "name": "resource_group_id", @@ -5600,15 +5705,35 @@ "computed": true }, { - "name": "href", + "name": "state", "type": "TypeString", - "description": "URI representing the tool.", + "description": "Current configuration state of the tool.", "computed": true }, { - "name": "updated_at", + "name": "toolchain_id", "type": "TypeString", - "description": "Latest tool update timestamp.", + "description": "ID of the toolchain.", + "required": true + }, + { + "name": "tool_id", + "type": "TypeString", + "description": "ID of the tool bound to the toolchain.", + "required": true + } + ], + "ibm_cd_toolchain_tool_eventnotifications": [ + { + "name": "toolchain_id", + "type": "TypeString", + "description": "ID of the toolchain.", + "required": true + }, + { + "name": "toolchain_crn", + "type": "TypeString", + "description": "CRN of toolchain which the tool is bound to.", "computed": true }, { @@ -5638,10 +5763,62 @@ "computed": true }, { - "name": "toolchain_id", + "name": "tool_id", "type": "TypeString", - "description": "ID of the toolchain.", + "description": "ID of the tool bound to the toolchain.", "required": true + }, + { + "name": "resource_group_id", + "type": "TypeString", + "description": "Resource group where the tool is located.", + "cloud_data_type": "resource_group", + "computed": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "Tool CRN.", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "href", + "type": "TypeString", + "description": "URI representing the tool.", + "computed": true + }, + { + "name": "referent", + "type": "TypeList", + "description": "Information on URIs to access this resource through the UI or API.", + "computed": true, + "elem": { + "api_href": { + "name": "api_href", + "type": "TypeString", + "description": "URI representing this resource through an API.", + "computed": true + }, + "ui_href": { + "name": "ui_href", + "type": "TypeString", + "description": "URI representing this resource through the UI.", + "computed": true + } + } + }, + { + "name": "name", + "type": "TypeString", + "description": "Name of the tool.", + "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Latest tool update timestamp.", + "computed": true } ], "ibm_cd_toolchain_tool_githubconsolidated": [ @@ -5665,12 +5842,62 @@ } } }, + { + "name": "state", + "type": "TypeString", + "description": "Current configuration state of the tool.", + "computed": true + }, + { + "name": "toolchain_crn", + "type": "TypeString", + "description": "CRN of toolchain which the tool is bound to.", + "computed": true + }, + { + "name": "href", + "type": "TypeString", + "description": "URI representing the tool.", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Name of the tool.", + "computed": true + }, { "name": "updated_at", "type": "TypeString", "description": "Latest tool update timestamp.", "computed": true }, + { + "name": "toolchain_id", + "type": "TypeString", + "description": "ID of the toolchain.", + "required": true + }, + { + "name": "tool_id", + "type": "TypeString", + "description": "ID of the tool bound to the toolchain.", + "required": true + }, + { + "name": "resource_group_id", + "type": "TypeString", + "description": "Resource group where the tool is located.", + "cloud_data_type": "resource_group", + "computed": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "Tool CRN.", + "cloud_data_type": "crn", + "computed": true + }, { "name": "parameters", "type": "TypeList", @@ -5799,69 +6026,20 @@ "computed": true } } - }, - { - "name": "tool_id", - "type": "TypeString", - "description": "ID of the tool bound to the toolchain.", - "required": true - }, - { - "name": "toolchain_crn", - "type": "TypeString", - "description": "CRN of toolchain which the tool is bound to.", - "computed": true - }, - { - "name": "href", - "type": "TypeString", - "description": "URI representing the tool.", - "computed": true - }, - { - "name": "name", - "type": "TypeString", - "description": "Name of the tool.", - "computed": true - }, - { - "name": "state", - "type": "TypeString", - "description": "Current configuration state of the tool.", - "computed": true - }, - { - "name": "toolchain_id", - "type": "TypeString", - "description": "ID of the toolchain.", - "required": true - }, - { - "name": "resource_group_id", - "type": "TypeString", - "description": "Resource group where the tool is located.", - "cloud_data_type": "resource_group", - "computed": true - }, - { - "name": "crn", - "type": "TypeString", - "description": "Tool CRN.", - "cloud_data_type": "crn", - "computed": true } ], "ibm_cd_toolchain_tool_gitlab": [ { - "name": "href", + "name": "crn", "type": "TypeString", - "description": "URI representing the tool.", + "description": "Tool CRN.", + "cloud_data_type": "crn", "computed": true }, { - "name": "name", + "name": "updated_at", "type": "TypeString", - "description": "Name of the tool.", + "description": "Latest tool update timestamp.", "computed": true }, { @@ -5871,29 +6049,9 @@ "computed": true }, { - "name": "tool_id", - "type": "TypeString", - "description": "ID of the tool bound to the toolchain.", - "required": true - }, - { - "name": "resource_group_id", - "type": "TypeString", - "description": "Resource group where the tool is located.", - "cloud_data_type": "resource_group", - "computed": true - }, - { - "name": "crn", - "type": "TypeString", - "description": "Tool CRN.", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "toolchain_crn", + "name": "href", "type": "TypeString", - "description": "CRN of toolchain which the tool is bound to.", + "description": "URI representing the tool.", "computed": true }, { @@ -5917,9 +6075,9 @@ } }, { - "name": "updated_at", + "name": "name", "type": "TypeString", - "description": "Latest tool update timestamp.", + "description": "Name of the tool.", "computed": true }, { @@ -6050,47 +6208,28 @@ "type": "TypeString", "description": "ID of the toolchain.", "required": true - } - ], - "ibm_cd_toolchain_tool_hashicorpvault": [ + }, { - "name": "toolchain_id", + "name": "tool_id", "type": "TypeString", - "description": "ID of the toolchain.", + "description": "ID of the tool bound to the toolchain.", "required": true }, { - "name": "href", + "name": "resource_group_id", "type": "TypeString", - "description": "URI representing the tool.", + "description": "Resource group where the tool is located.", + "cloud_data_type": "resource_group", "computed": true }, { - "name": "referent", - "type": "TypeList", - "description": "Information on URIs to access this resource through the UI or API.", - "computed": true, - "elem": { - "api_href": { - "name": "api_href", - "type": "TypeString", - "description": "URI representing this resource through an API.", - "computed": true - }, - "ui_href": { - "name": "ui_href", - "type": "TypeString", - "description": "URI representing this resource through the UI.", - "computed": true - } - } - }, - { - "name": "name", + "name": "toolchain_crn", "type": "TypeString", - "description": "Name of the tool.", + "description": "CRN of toolchain which the tool is bound to.", "computed": true - }, + } + ], + "ibm_cd_toolchain_tool_hashicorpvault": [ { "name": "parameters", "type": "TypeList", @@ -6181,6 +6320,36 @@ "description": "Current configuration state of the tool.", "computed": true }, + { + "name": "toolchain_id", + "type": "TypeString", + "description": "ID of the toolchain.", + "required": true + }, + { + "name": "toolchain_crn", + "type": "TypeString", + "description": "CRN of toolchain which the tool is bound to.", + "computed": true + }, + { + "name": "href", + "type": "TypeString", + "description": "URI representing the tool.", + "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Latest tool update timestamp.", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Name of the tool.", + "computed": true + }, { "name": "tool_id", "type": "TypeString", @@ -6201,20 +6370,6 @@ "cloud_data_type": "crn", "computed": true }, - { - "name": "toolchain_crn", - "type": "TypeString", - "description": "CRN of toolchain which the tool is bound to.", - "computed": true - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Latest tool update timestamp.", - "computed": true - } - ], - "ibm_cd_toolchain_tool_hostedgit": [ { "name": "referent", "type": "TypeList", @@ -6234,6 +6389,34 @@ "computed": true } } + } + ], + "ibm_cd_toolchain_tool_hostedgit": [ + { + "name": "toolchain_id", + "type": "TypeString", + "description": "ID of the toolchain.", + "required": true + }, + { + "name": "tool_id", + "type": "TypeString", + "description": "ID of the tool bound to the toolchain.", + "required": true + }, + { + "name": "resource_group_id", + "type": "TypeString", + "description": "Resource group where the tool is located.", + "cloud_data_type": "resource_group", + "computed": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "Tool CRN.", + "cloud_data_type": "crn", + "computed": true }, { "name": "name", @@ -6353,10 +6536,9 @@ "computed": true }, { - "name": "resource_group_id", + "name": "toolchain_crn", "type": "TypeString", - "description": "Resource group where the tool is located.", - "cloud_data_type": "resource_group", + "description": "CRN of toolchain which the tool is bound to.", "computed": true }, { @@ -6366,35 +6548,30 @@ "computed": true }, { - "name": "crn", - "type": "TypeString", - "description": "Tool CRN.", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "toolchain_crn", - "type": "TypeString", - "description": "CRN of toolchain which the tool is bound to.", - "computed": true + "name": "referent", + "type": "TypeList", + "description": "Information on URIs to access this resource through the UI or API.", + "computed": true, + "elem": { + "api_href": { + "name": "api_href", + "type": "TypeString", + "description": "URI representing this resource through an API.", + "computed": true + }, + "ui_href": { + "name": "ui_href", + "type": "TypeString", + "description": "URI representing this resource through the UI.", + "computed": true + } + } }, { "name": "updated_at", "type": "TypeString", "description": "Latest tool update timestamp.", "computed": true - }, - { - "name": "toolchain_id", - "type": "TypeString", - "description": "ID of the toolchain.", - "required": true - }, - { - "name": "tool_id", - "type": "TypeString", - "description": "ID of the tool bound to the toolchain.", - "required": true } ], "ibm_cd_toolchain_tool_jenkins": [ @@ -6431,9 +6608,9 @@ } }, { - "name": "name", + "name": "updated_at", "type": "TypeString", - "description": "Name of the tool.", + "description": "Latest tool update timestamp.", "computed": true }, { @@ -6442,6 +6619,12 @@ "description": "Current configuration state of the tool.", "computed": true }, + { + "name": "toolchain_id", + "type": "TypeString", + "description": "ID of the toolchain.", + "required": true + }, { "name": "tool_id", "type": "TypeString", @@ -6463,15 +6646,9 @@ "computed": true }, { - "name": "toolchain_id", - "type": "TypeString", - "description": "ID of the toolchain.", - "required": true - }, - { - "name": "updated_at", + "name": "name", "type": "TypeString", - "description": "Latest tool update timestamp.", + "description": "Name of the tool.", "computed": true }, { @@ -6517,18 +6694,50 @@ ], "ibm_cd_toolchain_tool_jira": [ { - "name": "tool_id", + "name": "name", "type": "TypeString", - "description": "ID of the tool bound to the toolchain.", - "required": true + "description": "Name of the tool.", + "computed": true }, { - "name": "crn", + "name": "resource_group_id", "type": "TypeString", - "description": "Tool CRN.", - "cloud_data_type": "crn", + "description": "Resource group where the tool is located.", + "cloud_data_type": "resource_group", + "computed": true + }, + { + "name": "toolchain_crn", + "type": "TypeString", + "description": "CRN of toolchain which the tool is bound to.", "computed": true }, + { + "name": "href", + "type": "TypeString", + "description": "URI representing the tool.", + "computed": true + }, + { + "name": "referent", + "type": "TypeList", + "description": "Information on URIs to access this resource through the UI or API.", + "computed": true, + "elem": { + "api_href": { + "name": "api_href", + "type": "TypeString", + "description": "URI representing this resource through an API.", + "computed": true + }, + "ui_href": { + "name": "ui_href", + "type": "TypeString", + "description": "URI representing this resource through the UI.", + "computed": true + } + } + }, { "name": "updated_at", "type": "TypeString", @@ -6587,22 +6796,32 @@ "required": true }, { - "name": "resource_group_id", + "name": "tool_id", "type": "TypeString", - "description": "Resource group where the tool is located.", - "cloud_data_type": "resource_group", - "computed": true + "description": "ID of the tool bound to the toolchain.", + "required": true }, { - "name": "toolchain_crn", + "name": "crn", "type": "TypeString", - "description": "CRN of toolchain which the tool is bound to.", + "description": "Tool CRN.", + "cloud_data_type": "crn", + "computed": true + } + ], + "ibm_cd_toolchain_tool_keyprotect": [ + { + "name": "resource_group_id", + "type": "TypeString", + "description": "Resource group where the tool is located.", + "cloud_data_type": "resource_group", "computed": true }, { - "name": "href", + "name": "crn", "type": "TypeString", - "description": "URI representing the tool.", + "description": "Tool CRN.", + "cloud_data_type": "crn", "computed": true }, { @@ -6626,13 +6845,17 @@ } }, { - "name": "name", + "name": "updated_at", "type": "TypeString", - "description": "Name of the tool.", + "description": "Latest tool update timestamp.", "computed": true - } - ], - "ibm_cd_toolchain_tool_keyprotect": [ + }, + { + "name": "state", + "type": "TypeString", + "description": "Current configuration state of the tool.", + "computed": true + }, { "name": "toolchain_id", "type": "TypeString", @@ -6640,42 +6863,27 @@ "required": true }, { - "name": "crn", + "name": "tool_id", "type": "TypeString", - "description": "Tool CRN.", - "cloud_data_type": "crn", - "computed": true + "description": "ID of the tool bound to the toolchain.", + "required": true }, { - "name": "referent", - "type": "TypeList", - "description": "Information on URIs to access this resource through the UI or API.", - "computed": true, - "elem": { - "api_href": { - "name": "api_href", - "type": "TypeString", - "description": "URI representing this resource through an API.", - "computed": true - }, - "ui_href": { - "name": "ui_href", - "type": "TypeString", - "description": "URI representing this resource through the UI.", - "computed": true - } - } + "name": "toolchain_crn", + "type": "TypeString", + "description": "CRN of toolchain which the tool is bound to.", + "computed": true }, { - "name": "name", + "name": "href", "type": "TypeString", - "description": "Name of the tool.", + "description": "URI representing the tool.", "computed": true }, { - "name": "updated_at", + "name": "name", "type": "TypeString", - "description": "Latest tool update timestamp.", + "description": "Name of the tool.", "computed": true }, { @@ -6709,40 +6917,29 @@ "computed": true } } - }, - { - "name": "tool_id", - "type": "TypeString", - "description": "ID of the tool bound to the toolchain.", - "required": true - }, - { - "name": "resource_group_id", - "type": "TypeString", - "description": "Resource group where the tool is located.", - "cloud_data_type": "resource_group", - "computed": true - }, - { - "name": "toolchain_crn", - "type": "TypeString", - "description": "CRN of toolchain which the tool is bound to.", - "computed": true - }, - { - "name": "href", - "type": "TypeString", - "description": "URI representing the tool.", - "computed": true - }, - { - "name": "state", - "type": "TypeString", - "description": "Current configuration state of the tool.", - "computed": true } ], "ibm_cd_toolchain_tool_nexus": [ + { + "name": "referent", + "type": "TypeList", + "description": "Information on URIs to access this resource through the UI or API.", + "computed": true, + "elem": { + "api_href": { + "name": "api_href", + "type": "TypeString", + "description": "URI representing this resource through an API.", + "computed": true + }, + "ui_href": { + "name": "ui_href", + "type": "TypeString", + "description": "URI representing this resource through the UI.", + "computed": true + } + } + }, { "name": "parameters", "type": "TypeList", @@ -6800,12 +6997,6 @@ } } }, - { - "name": "state", - "type": "TypeString", - "description": "Current configuration state of the tool.", - "computed": true - }, { "name": "toolchain_id", "type": "TypeString", @@ -6813,16 +7004,16 @@ "required": true }, { - "name": "tool_id", + "name": "crn", "type": "TypeString", - "description": "ID of the tool bound to the toolchain.", - "required": true + "description": "Tool CRN.", + "cloud_data_type": "crn", + "computed": true }, { - "name": "resource_group_id", + "name": "toolchain_crn", "type": "TypeString", - "description": "Resource group where the tool is located.", - "cloud_data_type": "resource_group", + "description": "CRN of toolchain which the tool is bound to.", "computed": true }, { @@ -6832,43 +7023,29 @@ "computed": true }, { - "name": "name", + "name": "state", "type": "TypeString", - "description": "Name of the tool.", + "description": "Current configuration state of the tool.", "computed": true }, { - "name": "crn", + "name": "tool_id", "type": "TypeString", - "description": "Tool CRN.", - "cloud_data_type": "crn", - "computed": true + "description": "ID of the tool bound to the toolchain.", + "required": true }, { - "name": "toolchain_crn", + "name": "resource_group_id", "type": "TypeString", - "description": "CRN of toolchain which the tool is bound to.", + "description": "Resource group where the tool is located.", + "cloud_data_type": "resource_group", "computed": true }, { - "name": "referent", - "type": "TypeList", - "description": "Information on URIs to access this resource through the UI or API.", - "computed": true, - "elem": { - "api_href": { - "name": "api_href", - "type": "TypeString", - "description": "URI representing this resource through an API.", - "computed": true - }, - "ui_href": { - "name": "ui_href", - "type": "TypeString", - "description": "URI representing this resource through the UI.", - "computed": true - } - } + "name": "name", + "type": "TypeString", + "description": "Name of the tool.", + "computed": true }, { "name": "updated_at", @@ -6879,16 +7056,17 @@ ], "ibm_cd_toolchain_tool_pagerduty": [ { - "name": "toolchain_id", + "name": "tool_id", "type": "TypeString", - "description": "ID of the toolchain.", + "description": "ID of the tool bound to the toolchain.", "required": true }, { - "name": "tool_id", + "name": "resource_group_id", "type": "TypeString", - "description": "ID of the tool bound to the toolchain.", - "required": true + "description": "Resource group where the tool is located.", + "cloud_data_type": "resource_group", + "computed": true }, { "name": "href", @@ -6897,18 +7075,50 @@ "computed": true }, { - "name": "name", + "name": "updated_at", "type": "TypeString", - "description": "Name of the tool.", + "description": "Latest tool update timestamp.", "computed": true }, { - "name": "resource_group_id", + "name": "parameters", + "type": "TypeList", + "description": "Unique key-value pairs representing parameters to be used to create the tool. A list of parameters for each tool integration can be found in the \u003ca href=\"https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-integrations\"\u003eConfiguring tool integrations page\u003c/a\u003e.", + "computed": true, + "elem": { + "service_id": { + "name": "service_id", + "type": "TypeString", + "description": "The service ID of the PagerDuty service.", + "computed": true + }, + "service_key": { + "name": "service_key", + "type": "TypeString", + "description": "The PagerDuty service integration key. You can find or create this key in the Integrations section of the PagerDuty service page. You can use a toolchain secret reference for this parameter. For more information, see [Protecting your sensitive data in Continuous Delivery](https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-cd_data_security#cd_secure_credentials).", + "secure": true, + "computed": true + }, + "service_url": { + "name": "service_url", + "type": "TypeString", + "description": "The URL of the PagerDuty service to post alerts to.", + "computed": true + } + } + }, + { + "name": "state", "type": "TypeString", - "description": "Resource group where the tool is located.", - "cloud_data_type": "resource_group", + "description": "Current configuration state of the tool.", "computed": true }, + { + "name": "toolchain_id", + "type": "TypeString", + "description": "ID of the toolchain.", + "required": true + }, { "name": "crn", "type": "TypeString", @@ -6943,46 +7153,45 @@ } }, { - "name": "updated_at", + "name": "name", "type": "TypeString", - "description": "Latest tool update timestamp.", + "description": "Name of the tool.", "computed": true - }, + } + ], + "ibm_cd_toolchain_tool_pipeline": [ { - "name": "parameters", + "name": "referent", "type": "TypeList", - "description": "Unique key-value pairs representing parameters to be used to create the tool. A list of parameters for each tool integration can be found in the \u003ca href=\"https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-integrations\"\u003eConfiguring tool integrations page\u003c/a\u003e.", + "description": "Information on URIs to access this resource through the UI or API.", "computed": true, "elem": { - "service_id": { - "name": "service_id", - "type": "TypeString", - "description": "The service ID of the PagerDuty service.", - "computed": true - }, - "service_key": { - "name": "service_key", + "api_href": { + "name": "api_href", "type": "TypeString", - "description": "The PagerDuty service integration key. You can find or create this key in the Integrations section of the PagerDuty service page. You can use a toolchain secret reference for this parameter. For more information, see [Protecting your sensitive data in Continuous Delivery](https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-cd_data_security#cd_secure_credentials).", - "secure": true, + "description": "URI representing this resource through an API.", "computed": true }, - "service_url": { - "name": "service_url", + "ui_href": { + "name": "ui_href", "type": "TypeString", - "description": "The URL of the PagerDuty service to post alerts to.", + "description": "URI representing this resource through the UI.", "computed": true } } }, { - "name": "state", + "name": "name", "type": "TypeString", - "description": "Current configuration state of the tool.", + "description": "Name of the tool.", "computed": true - } - ], - "ibm_cd_toolchain_tool_pipeline": [ + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Latest tool update timestamp.", + "computed": true + }, { "name": "tool_id", "type": "TypeString", @@ -6990,27 +7199,29 @@ "required": true }, { - "name": "toolchain_crn", + "name": "resource_group_id", "type": "TypeString", - "description": "CRN of toolchain which the tool is bound to.", + "description": "Resource group where the tool is located.", + "cloud_data_type": "resource_group", "computed": true }, { - "name": "href", + "name": "crn", "type": "TypeString", - "description": "URI representing the tool.", + "description": "Tool CRN.", + "cloud_data_type": "crn", "computed": true }, { - "name": "name", + "name": "toolchain_crn", "type": "TypeString", - "description": "Name of the tool.", + "description": "CRN of toolchain which the tool is bound to.", "computed": true }, { - "name": "updated_at", + "name": "href", "type": "TypeString", - "description": "Latest tool update timestamp.", + "description": "URI representing the tool.", "computed": true }, { @@ -7038,6 +7249,14 @@ "type": "TypeString", "description": "ID of the toolchain.", "required": true + } + ], + "ibm_cd_toolchain_tool_privateworker": [ + { + "name": "updated_at", + "type": "TypeString", + "description": "Latest tool update timestamp.", + "computed": true }, { "name": "resource_group_id", @@ -7053,6 +7272,12 @@ "cloud_data_type": "crn", "computed": true }, + { + "name": "href", + "type": "TypeString", + "description": "URI representing the tool.", + "computed": true + }, { "name": "referent", "type": "TypeList", @@ -7072,9 +7297,31 @@ "computed": true } } - } - ], - "ibm_cd_toolchain_tool_privateworker": [ + }, + { + "name": "name", + "type": "TypeString", + "description": "Name of the tool.", + "computed": true + }, + { + "name": "toolchain_id", + "type": "TypeString", + "description": "ID of the toolchain.", + "required": true + }, + { + "name": "tool_id", + "type": "TypeString", + "description": "ID of the tool bound to the toolchain.", + "required": true + }, + { + "name": "toolchain_crn", + "type": "TypeString", + "description": "CRN of toolchain which the tool is bound to.", + "computed": true + }, { "name": "parameters", "type": "TypeList", @@ -7107,21 +7354,9 @@ "type": "TypeString", "description": "Current configuration state of the tool.", "computed": true - }, - { - "name": "resource_group_id", - "type": "TypeString", - "description": "Resource group where the tool is located.", - "cloud_data_type": "resource_group", - "computed": true - }, - { - "name": "crn", - "type": "TypeString", - "description": "Tool CRN.", - "cloud_data_type": "crn", - "computed": true - }, + } + ], + "ibm_cd_toolchain_tool_saucelabs": [ { "name": "href", "type": "TypeString", @@ -7129,29 +7364,15 @@ "computed": true }, { - "name": "referent", - "type": "TypeList", - "description": "Information on URIs to access this resource through the UI or API.", - "computed": true, - "elem": { - "api_href": { - "name": "api_href", - "type": "TypeString", - "description": "URI representing this resource through an API.", - "computed": true - }, - "ui_href": { - "name": "ui_href", - "type": "TypeString", - "description": "URI representing this resource through the UI.", - "computed": true - } - } + "name": "name", + "type": "TypeString", + "description": "Name of the tool.", + "computed": true }, { - "name": "updated_at", + "name": "state", "type": "TypeString", - "description": "Latest tool update timestamp.", + "description": "Current configuration state of the tool.", "computed": true }, { @@ -7161,25 +7382,12 @@ "required": true }, { - "name": "tool_id", - "type": "TypeString", - "description": "ID of the tool bound to the toolchain.", - "required": true - }, - { - "name": "toolchain_crn", + "name": "resource_group_id", "type": "TypeString", - "description": "CRN of toolchain which the tool is bound to.", + "description": "Resource group where the tool is located.", + "cloud_data_type": "resource_group", "computed": true }, - { - "name": "name", - "type": "TypeString", - "description": "Name of the tool.", - "computed": true - } - ], - "ibm_cd_toolchain_tool_saucelabs": [ { "name": "crn", "type": "TypeString", @@ -7213,6 +7421,12 @@ } } }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Latest tool update timestamp.", + "computed": true + }, { "name": "parameters", "type": "TypeList", @@ -7239,20 +7453,9 @@ "type": "TypeString", "description": "ID of the tool bound to the toolchain.", "required": true - }, - { - "name": "resource_group_id", - "type": "TypeString", - "description": "Resource group where the tool is located.", - "cloud_data_type": "resource_group", - "computed": true - }, - { - "name": "href", - "type": "TypeString", - "description": "URI representing the tool.", - "computed": true - }, + } + ], + "ibm_cd_toolchain_tool_secretsmanager": [ { "name": "name", "type": "TypeString", @@ -7260,35 +7463,29 @@ "computed": true }, { - "name": "updated_at", - "type": "TypeString", - "description": "Latest tool update timestamp.", - "computed": true - }, - { - "name": "state", + "name": "toolchain_id", "type": "TypeString", - "description": "Current configuration state of the tool.", - "computed": true + "description": "ID of the toolchain.", + "required": true }, { - "name": "toolchain_id", + "name": "tool_id", "type": "TypeString", - "description": "ID of the toolchain.", + "description": "ID of the tool bound to the toolchain.", "required": true - } - ], - "ibm_cd_toolchain_tool_secretsmanager": [ + }, { - "name": "name", + "name": "resource_group_id", "type": "TypeString", - "description": "Name of the tool.", + "description": "Resource group where the tool is located.", + "cloud_data_type": "resource_group", "computed": true }, { - "name": "updated_at", + "name": "crn", "type": "TypeString", - "description": "Latest tool update timestamp.", + "description": "Tool CRN.", + "cloud_data_type": "crn", "computed": true }, { @@ -7324,10 +7521,9 @@ } }, { - "name": "crn", + "name": "updated_at", "type": "TypeString", - "description": "Tool CRN.", - "cloud_data_type": "crn", + "description": "Latest tool update timestamp.", "computed": true }, { @@ -7379,28 +7575,15 @@ "type": "TypeString", "description": "Current configuration state of the tool.", "computed": true - }, + } + ], + "ibm_cd_toolchain_tool_securitycompliance": [ { "name": "toolchain_id", "type": "TypeString", "description": "ID of the toolchain.", "required": true }, - { - "name": "tool_id", - "type": "TypeString", - "description": "ID of the tool bound to the toolchain.", - "required": true - }, - { - "name": "resource_group_id", - "type": "TypeString", - "description": "Resource group where the tool is located.", - "cloud_data_type": "resource_group", - "computed": true - } - ], - "ibm_cd_toolchain_tool_securitycompliance": [ { "name": "referent", "type": "TypeList", @@ -7421,6 +7604,18 @@ } } }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Latest tool update timestamp.", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Name of the tool.", + "computed": true + }, { "name": "parameters", "type": "TypeList", @@ -7514,9 +7709,9 @@ } }, { - "name": "href", + "name": "state", "type": "TypeString", - "description": "URI representing the tool.", + "description": "Current configuration state of the tool.", "computed": true }, { @@ -7546,44 +7741,25 @@ "computed": true }, { - "name": "name", - "type": "TypeString", - "description": "Name of the tool.", - "computed": true - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Latest tool update timestamp.", - "computed": true - }, - { - "name": "state", + "name": "href", "type": "TypeString", - "description": "Current configuration state of the tool.", + "description": "URI representing the tool.", "computed": true - }, + } + ], + "ibm_cd_toolchain_tool_slack": [ { "name": "toolchain_id", "type": "TypeString", "description": "ID of the toolchain.", "required": true - } - ], - "ibm_cd_toolchain_tool_slack": [ + }, { "name": "tool_id", "type": "TypeString", "description": "ID of the tool bound to the toolchain.", "required": true }, - { - "name": "crn", - "type": "TypeString", - "description": "Tool CRN.", - "cloud_data_type": "crn", - "computed": true - }, { "name": "referent", "type": "TypeList", @@ -7604,6 +7780,12 @@ } } }, + { + "name": "name", + "type": "TypeString", + "description": "Name of the tool.", + "computed": true + }, { "name": "parameters", "type": "TypeList", @@ -7667,12 +7849,6 @@ "description": "Current configuration state of the tool.", "computed": true }, - { - "name": "toolchain_id", - "type": "TypeString", - "description": "ID of the toolchain.", - "required": true - }, { "name": "resource_group_id", "type": "TypeString", @@ -7681,21 +7857,22 @@ "computed": true }, { - "name": "toolchain_crn", + "name": "crn", "type": "TypeString", - "description": "CRN of toolchain which the tool is bound to.", + "description": "Tool CRN.", + "cloud_data_type": "crn", "computed": true }, { - "name": "href", + "name": "toolchain_crn", "type": "TypeString", - "description": "URI representing the tool.", + "description": "CRN of toolchain which the tool is bound to.", "computed": true }, { - "name": "name", + "name": "href", "type": "TypeString", - "description": "Name of the tool.", + "description": "URI representing the tool.", "computed": true }, { @@ -7707,17 +7884,11 @@ ], "ibm_cd_toolchain_tool_sonarqube": [ { - "name": "name", + "name": "href", "type": "TypeString", - "description": "Name of the tool.", + "description": "URI representing the tool.", "computed": true }, - { - "name": "tool_id", - "type": "TypeString", - "description": "ID of the tool bound to the toolchain.", - "required": true - }, { "name": "referent", "type": "TypeList", @@ -7738,31 +7909,6 @@ } } }, - { - "name": "crn", - "type": "TypeString", - "description": "Tool CRN.", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "toolchain_crn", - "type": "TypeString", - "description": "CRN of toolchain which the tool is bound to.", - "computed": true - }, - { - "name": "href", - "type": "TypeString", - "description": "URI representing the tool.", - "computed": true - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Latest tool update timestamp.", - "computed": true - }, { "name": "parameters", "type": "TypeList", @@ -7814,6 +7960,37 @@ "description": "ID of the toolchain.", "required": true }, + { + "name": "crn", + "type": "TypeString", + "description": "Tool CRN.", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "toolchain_crn", + "type": "TypeString", + "description": "CRN of toolchain which the tool is bound to.", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Name of the tool.", + "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Latest tool update timestamp.", + "computed": true + }, + { + "name": "tool_id", + "type": "TypeString", + "description": "ID of the tool bound to the toolchain.", + "required": true + }, { "name": "resource_group_id", "type": "TypeString", @@ -7919,15 +8096,15 @@ ], "ibm_cis": [ { - "name": "plan", + "name": "resource_name", "type": "TypeString", - "description": "The plan type of the cis instance", + "description": "The name of the resource", "computed": true }, { - "name": "status", + "name": "resource_crn", "type": "TypeString", - "description": "The resource instance status", + "description": "The crn of the resource", "computed": true }, { @@ -7937,10 +8114,11 @@ "computed": true }, { - "name": "resource_group_name", + "name": "resource_group_id", "type": "TypeString", - "description": "The resource group name in which resource is provisioned", - "computed": true + "description": "The id of the resource group in which the cis instance is present", + "cloud_data_type": "resource_group", + "optional": true }, { "name": "service", @@ -7949,15 +8127,15 @@ "computed": true }, { - "name": "resource_name", + "name": "plan", "type": "TypeString", - "description": "The name of the resource", + "description": "The plan type of the cis instance", "computed": true }, { - "name": "resource_crn", + "name": "status", "type": "TypeString", - "description": "The crn of the resource", + "description": "The resource instance status", "computed": true }, { @@ -7972,13 +8150,6 @@ "description": "Resource instance name for example, my cis instance", "required": true }, - { - "name": "resource_group_id", - "type": "TypeString", - "description": "The id of the resource group in which the cis instance is present", - "cloud_data_type": "resource_group", - "optional": true - }, { "name": "guid", "type": "TypeString", @@ -7991,6 +8162,12 @@ "description": "The location or the environment in which cis instance exists", "cloud_data_type": "region", "computed": true + }, + { + "name": "resource_group_name", + "type": "TypeString", + "description": "The resource group name in which resource is provisioned", + "computed": true } ], "ibm_cis_alerts": [ @@ -8125,6 +8302,12 @@ } ], "ibm_cis_bot_managements": [ + { + "name": "fight_mode", + "type": "TypeString", + "description": "Fight Mode", + "computed": true + }, { "name": "session_score", "type": "TypeString", @@ -8164,12 +8347,6 @@ "type": "TypeString", "description": "Associated CIS domain", "required": true - }, - { - "name": "fight_mode", - "type": "TypeString", - "description": "Fight Mode", - "computed": true } ], "ibm_cis_cache_settings": [ @@ -8536,6 +8713,16 @@ } ], "ibm_cis_custom_pages": [ + { + "name": "cis_id", + "type": "TypeString", + "description": "CIS instance crn", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:internet-svcs" + ] + }, { "name": "domain_id", "type": "TypeString", @@ -8598,19 +8785,31 @@ "computed": true } } - }, + } + ], + "ibm_cis_dns_records": [ { "name": "cis_id", "type": "TypeString", - "description": "CIS instance crn", + "description": "DNS Zone CRN", "cloud_data_type": "resource_instance", "required": true, "cloud_data_range": [ "service:internet-svcs" ] - } - ], - "ibm_cis_dns_records": [ + }, + { + "name": "domain_id", + "type": "TypeString", + "description": "Zone Id", + "required": true + }, + { + "name": "file", + "type": "TypeString", + "description": "file to be exported", + "optional": true + }, { "name": "cis_dns_records", "type": "TypeList", @@ -8696,39 +8895,11 @@ "computed": true } } - }, - { - "name": "cis_id", - "type": "TypeString", - "description": "DNS Zone CRN", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:internet-svcs" - ] - }, - { - "name": "domain_id", - "type": "TypeString", - "description": "Zone Id", - "required": true - }, - { - "name": "file", - "type": "TypeString", - "description": "file to be exported", - "optional": true } ], "ibm_cis_domain": [ { - "name": "type", - "type": "TypeString", - "description": "CISzone - Domain Type", - "computed": true - }, - { - "name": "name_servers", + "name": "original_name_servers", "type": "TypeList", "computed": true, "elem": { @@ -8740,31 +8911,12 @@ "type": "TypeString", "computed": true }, - { - "name": "status", - "type": "TypeString", - "computed": true - }, - { - "name": "original_name_servers", - "type": "TypeList", - "computed": true, - "elem": { - "type": "TypeString" - } - }, { "name": "verification_key", "type": "TypeString", "optional": true, "computed": true }, - { - "name": "cname_suffix", - "type": "TypeString", - "optional": true, - "computed": true - }, { "name": "cis_id", "type": "TypeString", @@ -8785,6 +8937,31 @@ "name": "paused", "type": "TypeBool", "computed": true + }, + { + "name": "status", + "type": "TypeString", + "computed": true + }, + { + "name": "name_servers", + "type": "TypeList", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "type", + "type": "TypeString", + "description": "CISzone - Domain Type", + "computed": true + }, + { + "name": "cname_suffix", + "type": "TypeString", + "optional": true, + "computed": true } ], "ibm_cis_edge_functions_actions": [ @@ -8873,6 +9050,16 @@ } ], "ibm_cis_edge_functions_triggers": [ + { + "name": "cis_id", + "type": "TypeString", + "description": "CIS Intance CRN", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:internet-svcs" + ] + }, { "name": "domain_id", "type": "TypeString", @@ -8916,16 +9103,6 @@ "computed": true } } - }, - { - "name": "cis_id", - "type": "TypeString", - "description": "CIS Intance CRN", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:internet-svcs" - ] } ], "ibm_cis_filters": [ @@ -8979,67 +9156,6 @@ } ], "ibm_cis_firewall": [ - { - "name": "ua_rule", - "type": "TypeList", - "description": "User Agent Rule Data", - "computed": true, - "elem": { - "configuration": { - "name": "configuration", - "type": "TypeList", - "computed": true, - "elem": { - "target": { - "name": "target", - "type": "TypeString", - "description": "Target type", - "computed": true - }, - "value": { - "name": "value", - "type": "TypeString", - "description": "Target value", - "computed": true - } - } - }, - "description": { - "name": "description", - "type": "TypeString", - "description": "description", - "computed": true - }, - "mode": { - "name": "mode", - "type": "TypeString", - "description": "user agent rule mode", - "computed": true - }, - "paused": { - "name": "paused", - "type": "TypeBool", - "description": "Rule whether paused or not", - "computed": true - }, - "ua_rule_id": { - "name": "ua_rule_id", - "type": "TypeString", - "description": "firewall identifier", - "computed": true - } - } - }, - { - "name": "cis_id", - "type": "TypeString", - "description": "CIS instance crn", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:internet-svcs" - ] - }, { "name": "domain_id", "type": "TypeString", @@ -9156,6 +9272,67 @@ "computed": true } } + }, + { + "name": "ua_rule", + "type": "TypeList", + "description": "User Agent Rule Data", + "computed": true, + "elem": { + "configuration": { + "name": "configuration", + "type": "TypeList", + "computed": true, + "elem": { + "target": { + "name": "target", + "type": "TypeString", + "description": "Target type", + "computed": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "Target value", + "computed": true + } + } + }, + "description": { + "name": "description", + "type": "TypeString", + "description": "description", + "computed": true + }, + "mode": { + "name": "mode", + "type": "TypeString", + "description": "user agent rule mode", + "computed": true + }, + "paused": { + "name": "paused", + "type": "TypeBool", + "description": "Rule whether paused or not", + "computed": true + }, + "ua_rule_id": { + "name": "ua_rule_id", + "type": "TypeString", + "description": "firewall identifier", + "computed": true + } + } + }, + { + "name": "cis_id", + "type": "TypeString", + "description": "CIS instance crn", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:internet-svcs" + ] } ], "ibm_cis_firewall_rules": [ @@ -9588,72 +9765,6 @@ } ], "ibm_cis_mtls_apps": [ - { - "name": "mtls_access_app_policies", - "type": "TypeList", - "description": "Access Policies Information", - "computed": true, - "elem": { - "policy_created_at": { - "name": "policy_created_at", - "type": "TypeString", - "description": "Application Created At", - "computed": true - }, - "policy_decision": { - "name": "policy_decision", - "type": "TypeString", - "description": "Policy Decision", - "computed": true - }, - "policy_id": { - "name": "policy_id", - "type": "TypeString", - "description": "Policy ID", - "computed": true - }, - "policy_name": { - "name": "policy_name", - "type": "TypeString", - "description": "Policy name", - "computed": true - }, - "policy_precedence": { - "name": "policy_precedence", - "type": "TypeInt", - "description": "Policy Precedence", - "computed": true - }, - "policy_uid": { - "name": "policy_uid", - "type": "TypeString", - "description": "Policy UID", - "computed": true - }, - "policy_updated_at": { - "name": "policy_updated_at", - "type": "TypeString", - "description": "Application Updated At", - "computed": true - } - } - }, - { - "name": "cis_id", - "type": "TypeString", - "description": "CIS instance crn", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:internet-svcs" - ] - }, - { - "name": "domain_id", - "type": "TypeString", - "description": "Associated CIS domain", - "required": true - }, { "name": "mtls_access_apps", "type": "TypeList", @@ -9730,6 +9841,72 @@ "computed": true } } + }, + { + "name": "mtls_access_app_policies", + "type": "TypeList", + "description": "Access Policies Information", + "computed": true, + "elem": { + "policy_created_at": { + "name": "policy_created_at", + "type": "TypeString", + "description": "Application Created At", + "computed": true + }, + "policy_decision": { + "name": "policy_decision", + "type": "TypeString", + "description": "Policy Decision", + "computed": true + }, + "policy_id": { + "name": "policy_id", + "type": "TypeString", + "description": "Policy ID", + "computed": true + }, + "policy_name": { + "name": "policy_name", + "type": "TypeString", + "description": "Policy name", + "computed": true + }, + "policy_precedence": { + "name": "policy_precedence", + "type": "TypeInt", + "description": "Policy Precedence", + "computed": true + }, + "policy_uid": { + "name": "policy_uid", + "type": "TypeString", + "description": "Policy UID", + "computed": true + }, + "policy_updated_at": { + "name": "policy_updated_at", + "type": "TypeString", + "description": "Application Updated At", + "computed": true + } + } + }, + { + "name": "cis_id", + "type": "TypeString", + "description": "CIS instance crn", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:internet-svcs" + ] + }, + { + "name": "domain_id", + "type": "TypeString", + "description": "Associated CIS domain", + "required": true } ], "ibm_cis_mtlss": [ @@ -9804,29 +9981,6 @@ } ], "ibm_cis_origin_auths": [ - { - "name": "cis_id", - "type": "TypeString", - "description": "CIS instance crn", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:internet-svcs" - ] - }, - { - "name": "domain_id", - "type": "TypeString", - "description": "Associated CIS domain", - "required": true - }, - { - "name": "hostname", - "type": "TypeString", - "description": "Associated CIS host name", - "default_value": "no_host", - "optional": true - }, { "name": "request_type", "type": "TypeString", @@ -9896,6 +10050,29 @@ "computed": true } } + }, + { + "name": "cis_id", + "type": "TypeString", + "description": "CIS instance crn", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:internet-svcs" + ] + }, + { + "name": "domain_id", + "type": "TypeString", + "description": "Associated CIS domain", + "required": true + }, + { + "name": "hostname", + "type": "TypeString", + "description": "Associated CIS host name", + "default_value": "no_host", + "optional": true } ], "ibm_cis_origin_pools": [ @@ -10037,22 +10214,6 @@ } ], "ibm_cis_page_rules": [ - { - "name": "cis_id", - "type": "TypeString", - "description": "DNS Zone CRN", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:internet-svcs" - ] - }, - { - "name": "domain_id", - "type": "TypeString", - "description": "DNS Zone ID", - "required": true - }, { "name": "cis_page_rules", "type": "TypeList", @@ -10167,9 +10328,41 @@ } } } + }, + { + "name": "cis_id", + "type": "TypeString", + "description": "DNS Zone CRN", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:internet-svcs" + ] + }, + { + "name": "domain_id", + "type": "TypeString", + "description": "DNS Zone ID", + "required": true } ], "ibm_cis_range_apps": [ + { + "name": "cis_id", + "type": "TypeString", + "description": "CIS Intance CRN", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:internet-svcs" + ] + }, + { + "name": "domain_id", + "type": "TypeString", + "description": "CIS Domain ID", + "required": true + }, { "name": "range_apps", "type": "TypeList", @@ -10264,22 +10457,6 @@ "computed": true } } - }, - { - "name": "cis_id", - "type": "TypeString", - "description": "CIS Intance CRN", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:internet-svcs" - ] - }, - { - "name": "domain_id", - "type": "TypeString", - "description": "CIS Domain ID", - "required": true } ], "ibm_cis_rate_limit": [ @@ -10544,6 +10721,22 @@ } ], "ibm_cis_waf_packages": [ + { + "name": "cis_id", + "type": "TypeString", + "description": "DNS Zone CRN", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:internet-svcs" + ] + }, + { + "name": "domain_id", + "type": "TypeString", + "description": "CIS domain id", + "required": true + }, { "name": "waf_packages", "type": "TypeList", @@ -10581,22 +10774,6 @@ "computed": true } } - }, - { - "name": "cis_id", - "type": "TypeString", - "description": "DNS Zone CRN", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:internet-svcs" - ] - }, - { - "name": "domain_id", - "type": "TypeString", - "description": "CIS domain id", - "required": true } ], "ibm_cis_waf_rules": [ @@ -10697,6 +10874,16 @@ } ], "ibm_cis_webhooks": [ + { + "name": "cis_id", + "type": "TypeString", + "description": "CIS instance crn", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:internet-svcs" + ] + }, { "name": "cis_webhooks", "type": "TypeList", @@ -10728,41 +10915,25 @@ "computed": true } } - }, - { - "name": "cis_id", - "type": "TypeString", - "description": "CIS instance crn", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:internet-svcs" - ] } ], "ibm_cloud_shell_account_settings": [ { - "name": "account_id", - "type": "TypeString", - "description": "The account ID in which the account settings belong to.", - "required": true - }, - { - "name": "created_at", + "name": "updated_at", "type": "TypeInt", - "description": "Creation timestamp in Unix epoch time.", + "description": "Timestamp of last update in Unix epoch time.", "computed": true }, { - "name": "default_enable_new_features", - "type": "TypeBool", - "description": "You can choose which Cloud Shell features are available in the account and whether any new features are enabled as they become available. The feature settings apply only to the enabled Cloud Shell locations.", + "name": "updated_by", + "type": "TypeString", + "description": "IAM ID of last updater.", "computed": true }, { - "name": "default_enable_new_regions", + "name": "default_enable_new_features", "type": "TypeBool", - "description": "Set whether Cloud Shell is enabled in a specific location for the account. The location determines where user and session data are stored. By default, users are routed to the nearest available location.", + "description": "You can choose which Cloud Shell features are available in the account and whether any new features are enabled as they become available. The feature settings apply only to the enabled Cloud Shell locations.", "computed": true }, { @@ -10772,21 +10943,21 @@ "computed": true }, { - "name": "updated_by", - "type": "TypeString", - "description": "IAM ID of last updater.", + "name": "created_at", + "type": "TypeInt", + "description": "Creation timestamp in Unix epoch time.", "computed": true }, { - "name": "rev", + "name": "created_by", "type": "TypeString", - "description": "Unique revision number for the settings object.", + "description": "IAM ID of creator.", "computed": true }, { - "name": "created_by", - "type": "TypeString", - "description": "IAM ID of creator.", + "name": "default_enable_new_regions", + "type": "TypeBool", + "description": "Set whether Cloud Shell is enabled in a specific location for the account. The location determines where user and session data are stored. By default, users are routed to the nearest available location.", "computed": true }, { @@ -10836,73 +11007,77 @@ "computed": true }, { - "name": "updated_at", - "type": "TypeInt", - "description": "Timestamp of last update in Unix epoch time.", - "computed": true - } - ], - "ibm_cloudant": [ - { - "name": "resource_name", + "name": "account_id", "type": "TypeString", - "description": "The name of the resource", - "computed": true + "description": "The account ID in which the account settings belong to.", + "required": true }, { - "name": "location", + "name": "rev", "type": "TypeString", - "description": "The location or the environment in which instance exists", - "cloud_data_type": "region", - "optional": true, + "description": "Unique revision number for the settings object.", "computed": true + } + ], + "ibm_cloudant": [ + { + "name": "tags", + "type": "TypeSet", + "description": "Tags of Resource Instance", + "cloud_data_type": "tags", + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "plan", + "name": "guid", "type": "TypeString", - "description": "The plan type of the instance", + "description": "Guid of resource instance", "computed": true }, { - "name": "version", + "name": "resource_group_name", "type": "TypeString", - "description": "Vendor version.", + "description": "The resource group name in which resource is provisioned", "computed": true }, { - "name": "status", + "name": "resource_controller_url", "type": "TypeString", - "description": "The resource instance status", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about the resource", "computed": true }, { - "name": "resource_group_name", - "type": "TypeString", - "description": "The resource group name in which resource is provisioned", + "name": "enable_cors", + "type": "TypeBool", + "description": "Boolean value to turn CORS on and off.", "computed": true }, { - "name": "guid", + "name": "name", "type": "TypeString", - "description": "Guid of resource instance", - "computed": true + "description": "Resource instance name for example, myobjectstorage", + "required": true }, { - "name": "resource_crn", + "name": "resource_group_id", "type": "TypeString", - "description": "The crn of the resource", + "description": "The id of the resource group in which the instance is present", + "cloud_data_type": "resource_group", + "optional": true, "computed": true }, { - "name": "resource_status", + "name": "plan", "type": "TypeString", - "description": "The status of the resource", + "description": "The plan type of the instance", "computed": true }, { - "name": "resource_controller_url", + "name": "version", "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about the resource", + "description": "Vendor version.", "computed": true }, { @@ -10912,16 +11087,27 @@ "computed": true }, { - "name": "capacity", - "type": "TypeInt", - "description": "A number of blocks of throughput units. A block consists of 100 reads/sec, 50 writes/sec, and 5 global queries/sec of provisioned throughput capacity.", + "name": "throughput", + "type": "TypeMap", + "description": "Schema for detailed information about throughput capacity with breakdown by specific throughput requests classes.", + "computed": true, + "elem": { + "type": "TypeInt" + } + }, + { + "name": "location", + "type": "TypeString", + "description": "The location or the environment in which instance exists", + "cloud_data_type": "region", + "optional": true, "computed": true }, { - "name": "name", + "name": "status", "type": "TypeString", - "description": "Resource instance name for example, myobjectstorage", - "required": true + "description": "The resource instance status", + "computed": true }, { "name": "crn", @@ -10930,6 +11116,21 @@ "cloud_data_type": "crn", "computed": true }, + { + "name": "extensions", + "type": "TypeMap", + "description": "The extended metadata as a map associated with the resource instance.", + "computed": true + }, + { + "name": "features_flags", + "type": "TypeList", + "description": "List of feature flags.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, { "name": "cors_config", "type": "TypeList", @@ -10954,19 +11155,27 @@ } }, { - "name": "tags", - "type": "TypeSet", - "description": "Tags of Resource Instance", - "cloud_data_type": "tags", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "service", + "type": "TypeString", + "description": "The service type of the instance", + "computed": true }, { - "name": "extensions", - "type": "TypeMap", - "description": "The extended metadata as a map associated with the resource instance.", + "name": "resource_name", + "type": "TypeString", + "description": "The name of the resource", + "computed": true + }, + { + "name": "resource_crn", + "type": "TypeString", + "description": "The crn of the resource", + "computed": true + }, + { + "name": "resource_status", + "type": "TypeString", + "description": "The status of the resource", "computed": true }, { @@ -10979,45 +11188,57 @@ } }, { - "name": "features_flags", - "type": "TypeList", - "description": "List of feature flags.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, + "name": "capacity", + "type": "TypeInt", + "description": "A number of blocks of throughput units. A block consists of 100 reads/sec, 50 writes/sec, and 5 global queries/sec of provisioned throughput capacity.", + "computed": true + } + ], + "ibm_cloudant_database": [ { - "name": "throughput", - "type": "TypeMap", - "description": "Schema for detailed information about throughput capacity with breakdown by specific throughput requests classes.", + "name": "cluster", + "type": "TypeList", + "description": "Database cluster information.", "computed": true, "elem": { - "type": "TypeInt" + "read_quorum": { + "name": "read_quorum", + "type": "TypeInt", + "description": "Read quorum. The number of consistent copies of a document that need to be read before a successful reply.", + "computed": true + }, + "replicas": { + "name": "replicas", + "type": "TypeInt", + "description": "The number of replicas of a database in a cluster.", + "computed": true + }, + "shards": { + "name": "shards", + "type": "TypeInt", + "description": "The number of shards in a database. Each shard is a partition of the hash value range.", + "computed": true + }, + "write_quorum": { + "name": "write_quorum", + "type": "TypeInt", + "description": "Write quorum. The number of copies of a document that need to be written before a successful reply.", + "computed": true + } } }, { - "name": "enable_cors", - "type": "TypeBool", - "description": "Boolean value to turn CORS on and off.", + "name": "doc_count", + "type": "TypeInt", + "description": "A count of the documents in the specified database.", "computed": true }, { - "name": "resource_group_id", + "name": "uuid", "type": "TypeString", - "description": "The id of the resource group in which the instance is present", - "cloud_data_type": "resource_group", - "optional": true, + "description": "The UUID of the database.", "computed": true }, - { - "name": "service", - "type": "TypeString", - "description": "The service type of the instance", - "computed": true - } - ], - "ibm_cloudant_database": [ { "name": "instance_crn", "type": "TypeString", @@ -11025,9 +11246,9 @@ "required": true }, { - "name": "disk_format_version", - "type": "TypeInt", - "description": "The version of the physical format used for the data when it is stored on disk.", + "name": "compacted_seq", + "type": "TypeString", + "description": "An opaque string that describes the compaction state of the database.", "computed": true }, { @@ -11045,21 +11266,27 @@ } }, { - "name": "compact_running", - "type": "TypeBool", - "description": "True if the database compaction routine is operating on this database.", + "name": "committed_update_seq", + "type": "TypeString", + "description": "An opaque string that describes the committed state of the database.", "computed": true }, { - "name": "compacted_seq", + "name": "update_seq", "type": "TypeString", - "description": "An opaque string that describes the compaction state of the database.", + "description": "An opaque string that describes the state of the database. Do not rely on this string for counting the number of updates.", "computed": true }, { - "name": "doc_count", + "name": "compact_running", + "type": "TypeBool", + "description": "True if the database compaction routine is operating on this database.", + "computed": true + }, + { + "name": "disk_format_version", "type": "TypeInt", - "description": "A count of the documents in the specified database.", + "description": "The version of the physical format used for the data when it is stored on disk.", "computed": true }, { @@ -11069,15 +11296,9 @@ "computed": true }, { - "name": "db", - "type": "TypeString", - "description": "Path parameter to specify the database name.", - "required": true - }, - { - "name": "committed_update_seq", + "name": "engine", "type": "TypeString", - "description": "An opaque string that describes the committed state of the database.", + "description": "The engine used for the database.", "computed": true }, { @@ -11107,57 +11328,19 @@ } }, { - "name": "cluster", - "type": "TypeList", - "description": "Database cluster information.", - "computed": true, - "elem": { - "read_quorum": { - "name": "read_quorum", - "type": "TypeInt", - "description": "Read quorum. The number of consistent copies of a document that need to be read before a successful reply.", - "computed": true - }, - "replicas": { - "name": "replicas", - "type": "TypeInt", - "description": "The number of replicas of a database in a cluster.", - "computed": true - }, - "shards": { - "name": "shards", - "type": "TypeInt", - "description": "The number of shards in a database. Each shard is a partition of the hash value range.", - "computed": true - }, - "write_quorum": { - "name": "write_quorum", - "type": "TypeInt", - "description": "Write quorum. The number of copies of a document that need to be written before a successful reply.", - "computed": true - } - } - }, - { - "name": "engine", + "name": "db", "type": "TypeString", - "description": "The engine used for the database.", - "computed": true - }, + "description": "Path parameter to specify the database name.", + "required": true + } + ], + "ibm_cm_catalog": [ { - "name": "update_seq", + "name": "short_description", "type": "TypeString", - "description": "An opaque string that describes the state of the database. Do not rely on this string for counting the number of updates.", + "description": "Description in the requested language.", "computed": true }, - { - "name": "uuid", - "type": "TypeString", - "description": "The UUID of the database.", - "computed": true - } - ], - "ibm_cm_catalog": [ { "name": "features", "type": "TypeList", @@ -11196,18 +11379,6 @@ } } }, - { - "name": "created", - "type": "TypeString", - "description": "The date-time this catalog was created.", - "computed": true - }, - { - "name": "updated", - "type": "TypeString", - "description": "The date-time this catalog was last updated.", - "computed": true - }, { "name": "resource_group_id", "type": "TypeString", @@ -11215,133 +11386,6 @@ "cloud_data_type": "resource_group", "computed": true }, - { - "name": "rev", - "type": "TypeString", - "description": "Cloudant revision.", - "computed": true - }, - { - "name": "short_description", - "type": "TypeString", - "description": "Description in the requested language.", - "computed": true - }, - { - "name": "catalog_banner_url", - "type": "TypeString", - "description": "URL for a banner image for this catalog.", - "computed": true - }, - { - "name": "tags", - "type": "TypeList", - "description": "List of tags associated with this catalog.", - "cloud_data_type": "tags", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "crn", - "type": "TypeString", - "description": "CRN associated with the catalog.", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "offerings_url", - "type": "TypeString", - "description": "URL path to offerings.", - "computed": true - }, - { - "name": "owning_account", - "type": "TypeString", - "description": "Account that owns catalog.", - "computed": true - }, - { - "name": "target_account_contexts", - "type": "TypeList", - "description": "List of target accounts contexts on this catalog.", - "computed": true, - "elem": { - "api_key": { - "name": "api_key", - "type": "TypeString", - "description": "API key of the target account.", - "secure": true, - "computed": true - }, - "label": { - "name": "label", - "type": "TypeString", - "description": "Label for this target account context.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Unique identifier/name for this target account context.", - "computed": true - }, - "project_id": { - "name": "project_id", - "type": "TypeString", - "description": "Project ID.", - "computed": true - }, - "trusted_profile": { - "name": "trusted_profile", - "type": "TypeList", - "description": "Trusted profile information.", - "computed": true, - "elem": { - "catalog_crn": { - "name": "catalog_crn", - "type": "TypeString", - "description": "CRN of this catalog.", - "computed": true - }, - "catalog_name": { - "name": "catalog_name", - "type": "TypeString", - "description": "Name of this catalog.", - "computed": true - }, - "target_service_id": { - "name": "target_service_id", - "type": "TypeString", - "description": "Target service ID.", - "computed": true - }, - "trusted_profile_id": { - "name": "trusted_profile_id", - "type": "TypeString", - "description": "Trusted profile ID.", - "computed": true - } - } - } - } - }, - { - "name": "label_i18n", - "type": "TypeMap", - "description": "A map of translated strings, by language code.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "catalog_icon_url", - "type": "TypeString", - "description": "URL for an icon associated with this catalog.", - "computed": true - }, { "name": "syndication_settings", "type": "TypeList", @@ -11506,9 +11550,18 @@ } }, { - "name": "metadata", + "name": "label_i18n", "type": "TypeMap", - "description": "Catalog specific metadata.", + "description": "A map of translated strings, by language code.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "short_description_i18n", + "type": "TypeMap", + "description": "A map of translated strings, by language code.", "computed": true, "elem": { "type": "TypeString" @@ -11520,6 +11573,13 @@ "description": "The url for this specific catalog.", "computed": true }, + { + "name": "crn", + "type": "TypeString", + "description": "CRN associated with the catalog.", + "cloud_data_type": "crn", + "computed": true + }, { "name": "disabled", "type": "TypeBool", @@ -11527,19 +11587,46 @@ "computed": true }, { - "name": "label", + "name": "updated", "type": "TypeString", - "description": "Display Name in the requested language.", + "description": "The date-time this catalog was last updated.", "computed": true }, { - "name": "short_description_i18n", - "type": "TypeMap", - "description": "A map of translated strings, by language code.", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "owning_account", + "type": "TypeString", + "description": "Account that owns catalog.", + "computed": true + }, + { + "name": "catalog_identifier", + "type": "TypeString", + "description": "Catalog identifier.", + "required": true + }, + { + "name": "id", + "type": "TypeString", + "description": "Unique ID.", + "computed": true + }, + { + "name": "rev", + "type": "TypeString", + "description": "Cloudant revision.", + "computed": true + }, + { + "name": "catalog_icon_url", + "type": "TypeString", + "description": "URL for an icon associated with this catalog.", + "computed": true + }, + { + "name": "offerings_url", + "type": "TypeString", + "description": "URL path to offerings.", + "computed": true }, { "name": "catalog_filters", @@ -11607,239 +11694,183 @@ } }, { - "name": "kind", - "type": "TypeString", - "description": "Kind of catalog. Supported kinds are offering and vpe.", - "computed": true - }, - { - "name": "catalog_identifier", - "type": "TypeString", - "description": "Catalog identifier.", - "required": true - }, - { - "name": "id", - "type": "TypeString", - "description": "Unique ID.", - "computed": true - } - ], - "ibm_cm_object": [ - { - "name": "object_id", - "type": "TypeString", - "description": "Object identifier.", - "required": true - }, - { - "name": "parent_id", - "type": "TypeString", - "description": "The parent for this specific object.", - "computed": true - }, - { - "name": "publish", - "type": "TypeList", - "description": "Publish information.", + "name": "metadata", + "type": "TypeMap", + "description": "Catalog specific metadata.", "computed": true, "elem": { - "ibm_approved": { - "name": "ibm_approved", - "type": "TypeBool", - "description": "Indicates if this offering has been approved for use by all IBMers.", - "computed": true - }, - "permit_ibm_public_publish": { - "name": "permit_ibm_public_publish", - "type": "TypeBool", - "description": "Is it permitted to request publishing to IBM or Public.", - "computed": true - }, - "portal_approval_record": { - "name": "portal_approval_record", - "type": "TypeString", - "description": "The portal's approval record ID.", - "computed": true - }, - "portal_url": { - "name": "portal_url", - "type": "TypeString", - "description": "The portal UI URL.", - "computed": true - }, - "public_approved": { - "name": "public_approved", - "type": "TypeBool", - "description": "Indicates if this offering has been approved for use by all IBM Cloud users.", - "computed": true - } + "type": "TypeString" } }, { - "name": "state", + "name": "target_account_contexts", "type": "TypeList", - "description": "Offering state.", + "description": "List of target accounts contexts on this catalog.", "computed": true, "elem": { - "current": { - "name": "current", + "api_key": { + "name": "api_key", "type": "TypeString", - "description": "one of: new, validated, account-published, ibm-published, public-published.", + "description": "API key of the target account.", + "secure": true, "computed": true }, - "current_entered": { - "name": "current_entered", + "label": { + "name": "label", "type": "TypeString", - "description": "Date and time of current request.", + "description": "Label for this target account context.", "computed": true }, - "pending": { - "name": "pending", + "name": { + "name": "name", "type": "TypeString", - "description": "one of: new, validated, account-published, ibm-published, public-published.", + "description": "Unique identifier/name for this target account context.", "computed": true }, - "pending_requested": { - "name": "pending_requested", + "project_id": { + "name": "project_id", "type": "TypeString", - "description": "Date and time of pending request.", + "description": "Project ID.", "computed": true }, - "previous": { - "name": "previous", - "type": "TypeString", - "description": "one of: new, validated, account-published, ibm-published, public-published.", - "computed": true + "trusted_profile": { + "name": "trusted_profile", + "type": "TypeList", + "description": "Trusted profile information.", + "computed": true, + "elem": { + "catalog_crn": { + "name": "catalog_crn", + "type": "TypeString", + "description": "CRN of this catalog.", + "computed": true + }, + "catalog_name": { + "name": "catalog_name", + "type": "TypeString", + "description": "Name of this catalog.", + "computed": true + }, + "target_service_id": { + "name": "target_service_id", + "type": "TypeString", + "description": "Target service ID.", + "computed": true + }, + "trusted_profile_id": { + "name": "trusted_profile_id", + "type": "TypeString", + "description": "Trusted profile ID.", + "computed": true + } + } } } }, { - "name": "catalog_name", - "type": "TypeString", - "description": "The name of the catalog.", - "computed": true - }, - { - "name": "catalog_object_id", - "type": "TypeString", - "description": "unique id.", - "computed": true - }, - { - "name": "rev", + "name": "label", "type": "TypeString", - "description": "Cloudant revision.", + "description": "Display Name in the requested language.", "computed": true }, { - "name": "url", + "name": "catalog_banner_url", "type": "TypeString", - "description": "The url for this specific object.", + "description": "URL for a banner image for this catalog.", "computed": true }, { - "name": "label_i18n", - "type": "TypeMap", - "description": "A map of translated strings, by language code.", + "name": "tags", + "type": "TypeList", + "description": "List of tags associated with this catalog.", + "cloud_data_type": "tags", "computed": true, "elem": { "type": "TypeString" } }, { - "name": "short_description", + "name": "created", "type": "TypeString", - "description": "Short description in the requested language.", + "description": "The date-time this catalog was created.", "computed": true }, { "name": "kind", "type": "TypeString", - "description": "Kind of object.", + "description": "Kind of catalog. Supported kinds are offering and vpe.", + "computed": true + } + ], + "ibm_cm_object": [ + { + "name": "updated", + "type": "TypeString", + "description": "The date and time this catalog was last updated.", "computed": true }, { - "name": "catalog_id", + "name": "object_id", "type": "TypeString", - "description": "Catalog identifier.", + "description": "Object identifier.", "required": true }, { - "name": "label", + "name": "rev", "type": "TypeString", - "description": "Display name in the requested language.", + "description": "Cloudant revision.", "computed": true }, { - "name": "created", + "name": "crn", "type": "TypeString", - "description": "The date and time this catalog was created.", + "description": "The crn for this specific object.", + "cloud_data_type": "crn", "computed": true }, { - "name": "updated", + "name": "url", "type": "TypeString", - "description": "The date and time this catalog was last updated.", + "description": "The url for this specific object.", "computed": true }, { - "name": "short_description_i18n", - "type": "TypeMap", - "description": "A map of translated strings, by language code.", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "parent_id", + "type": "TypeString", + "description": "The parent for this specific object.", + "computed": true }, { - "name": "name", + "name": "created", "type": "TypeString", - "description": "The programmatic name of this object.", + "description": "The date and time this catalog was created.", "computed": true }, { - "name": "crn", + "name": "catalog_id", "type": "TypeString", - "description": "The crn for this specific object.", - "cloud_data_type": "crn", - "computed": true + "description": "Catalog identifier.", + "required": true }, { - "name": "tags", - "type": "TypeList", - "description": "List of tags associated with this catalog.", - "cloud_data_type": "tags", + "name": "label_i18n", + "type": "TypeMap", + "description": "A map of translated strings, by language code.", "computed": true, "elem": { "type": "TypeString" } }, { - "name": "data", - "type": "TypeString", - "description": "Stringified map of data values for this object.", - "computed": true - } - ], - "ibm_cm_offering": [ - { - "name": "portal_ui_url", + "name": "label", "type": "TypeString", - "description": "The portal UI URL.", + "description": "Display name in the requested language.", "computed": true }, { - "name": "catalog_id", - "type": "TypeString", - "description": "Catalog identifier.", - "immutable": true, - "required": true - }, - { - "name": "offering_docs_url", + "name": "name", "type": "TypeString", - "description": "URL for an additional docs with this offering.", + "description": "The programmatic name of this object.", "computed": true }, { @@ -11849,7 +11880,7 @@ "computed": true }, { - "name": "long_description_i18n", + "name": "short_description_i18n", "type": "TypeMap", "description": "A map of translated strings, by language code.", "computed": true, @@ -11858,143 +11889,155 @@ } }, { - "name": "pc_managed", - "type": "TypeBool", - "description": "Offering is managed by Partner Center.", - "computed": true - }, - { - "name": "share_with_all", - "type": "TypeBool", - "description": "Denotes public availability of an Offering - if share_enabled is true.", - "computed": true - }, - { - "name": "publish_public_crn", - "type": "TypeString", - "description": "The crn of the public catalog entry of this offering.", - "computed": true - }, - { - "name": "deprecate_pending", + "name": "publish", "type": "TypeList", - "description": "Deprecation information for an Offering.", + "description": "Publish information.", "computed": true, "elem": { - "deprecate_date": { - "name": "deprecate_date", - "type": "TypeString", - "description": "Date of deprecation.", + "ibm_approved": { + "name": "ibm_approved", + "type": "TypeBool", + "description": "Indicates if this offering has been approved for use by all IBMers.", "computed": true }, - "deprecate_state": { - "name": "deprecate_state", + "permit_ibm_public_publish": { + "name": "permit_ibm_public_publish", + "type": "TypeBool", + "description": "Is it permitted to request publishing to IBM or Public.", + "computed": true + }, + "portal_approval_record": { + "name": "portal_approval_record", "type": "TypeString", - "description": "Deprecation state.", + "description": "The portal's approval record ID.", "computed": true }, - "description": { - "name": "description", + "portal_url": { + "name": "portal_url", "type": "TypeString", + "description": "The portal UI URL.", + "computed": true + }, + "public_approved": { + "name": "public_approved", + "type": "TypeBool", + "description": "Indicates if this offering has been approved for use by all IBM Cloud users.", "computed": true } } }, { - "name": "offering_identifier", - "type": "TypeString", - "description": "Computed Offering ID.", - "computed": true - }, - { - "name": "url", + "name": "catalog_name", "type": "TypeString", - "description": "The url for this specific offering.", + "description": "The name of the catalog.", "computed": true }, { - "name": "crn", + "name": "catalog_object_id", "type": "TypeString", - "description": "The crn for this specific offering.", - "cloud_data_type": "crn", + "description": "unique id.", "computed": true }, { - "name": "label", - "type": "TypeString", - "description": "Display Name in the requested language.", - "computed": true + "name": "tags", + "type": "TypeList", + "description": "List of tags associated with this catalog.", + "cloud_data_type": "tags", + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "updated", + "name": "kind", "type": "TypeString", - "description": "The date and time this catalog was last updated.", + "description": "Kind of object.", "computed": true }, { - "name": "features", + "name": "state", "type": "TypeList", - "description": "list of features associated with this offering.", + "description": "Offering state.", "computed": true, "elem": { - "description": { - "name": "description", + "current": { + "name": "current", "type": "TypeString", - "description": "Feature description.", + "description": "one of: new, validated, account-published, ibm-published, public-published.", "computed": true }, - "description_i18n": { - "name": "description_i18n", - "type": "TypeMap", - "description": "A map of translated strings, by language code.", - "computed": true, - "elem": { - "type": "TypeString" - } + "current_entered": { + "name": "current_entered", + "type": "TypeString", + "description": "Date and time of current request.", + "computed": true }, - "title": { - "name": "title", + "pending": { + "name": "pending", "type": "TypeString", - "description": "Heading.", + "description": "one of: new, validated, account-published, ibm-published, public-published.", "computed": true }, - "title_i18n": { - "name": "title_i18n", - "type": "TypeMap", - "description": "A map of translated strings, by language code.", - "computed": true, - "elem": { - "type": "TypeString" - } + "pending_requested": { + "name": "pending_requested", + "type": "TypeString", + "description": "Date and time of pending request.", + "computed": true + }, + "previous": { + "name": "previous", + "type": "TypeString", + "description": "one of: new, validated, account-published, ibm-published, public-published.", + "computed": true } } }, { - "name": "image_pull_keys", + "name": "data", + "type": "TypeString", + "description": "Stringified map of data values for this object.", + "computed": true + } + ], + "ibm_cm_offering": [ + { + "name": "rating", "type": "TypeList", - "description": "Image pull keys for this offering.", + "description": "Repository info for offerings.", "computed": true, "elem": { - "description": { - "name": "description", - "type": "TypeString", - "description": "Key description.", + "four_star_count": { + "name": "four_star_count", + "type": "TypeInt", + "description": "Four start rating.", "computed": true }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Key name.", + "one_star_count": { + "name": "one_star_count", + "type": "TypeInt", + "description": "One start rating.", "computed": true }, - "value": { - "name": "value", - "type": "TypeString", - "description": "Key value.", + "three_star_count": { + "name": "three_star_count", + "type": "TypeInt", + "description": "Three start rating.", + "computed": true + }, + "two_star_count": { + "name": "two_star_count", + "type": "TypeInt", + "description": "Two start rating.", "computed": true } } }, + { + "name": "created", + "type": "TypeString", + "description": "The date and time this catalog was created.", + "computed": true + }, { "name": "media", "type": "TypeList", @@ -12063,100 +12106,170 @@ } }, { - "name": "short_description_i18n", - "type": "TypeMap", - "description": "A map of translated strings, by language code.", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "product_kind", + "type": "TypeString", + "description": "The product kind. Valid values are module, solution, or empty string.", + "computed": true }, { - "name": "metadata", - "type": "TypeMap", - "description": "Map of metadata values for this offering.", + "name": "permit_request_ibm_public_publish", + "type": "TypeBool", + "description": "Is it permitted to request publishing to IBM or Public.", "computed": true, - "elem": { - "type": "TypeString" - } + "deprecated": "This argument is deprecated" }, { - "name": "repo_info", - "type": "TypeList", - "description": "Repository info for offerings.", + "name": "public_publish_approved", + "type": "TypeBool", + "description": "Indicates if this offering has been approved for use by all IBM Cloud users.", "computed": true, - "elem": { - "token": { - "name": "token", - "type": "TypeString", - "description": "Token for private repos.", - "computed": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "Public or enterprise GitHub.", - "computed": true - } - } + "deprecated": "This argument is deprecated" }, { - "name": "rev", + "name": "publish_public_crn", "type": "TypeString", - "description": "Cloudant revision.", + "description": "The crn of the public catalog entry of this offering.", "computed": true }, { - "name": "offering_icon_url", + "name": "portal_ui_url", "type": "TypeString", - "description": "URL for an icon associated with this offering.", + "description": "The portal UI URL.", "computed": true }, { - "name": "publish_approved", + "name": "crn", + "type": "TypeString", + "description": "The crn for this specific offering.", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The programmatic name of this offering.", + "computed": true + }, + { + "name": "offering_support_url", + "type": "TypeString", + "description": "[deprecated] - Use offering.support instead. URL to be displayed in the Consumption UI for getting support on this offering.", + "computed": true + }, + { + "name": "share_with_all", "type": "TypeBool", - "description": "Offering has been approved to publish to permitted to IBM or Public Catalog.", + "description": "Denotes public availability of an Offering - if share_enabled is true.", "computed": true }, { - "name": "share_with_access_list", - "type": "TypeList", - "description": "A list of account IDs to add to this offering's access list.", + "name": "offering_identifier", + "type": "TypeString", + "description": "Computed Offering ID.", + "computed": true + }, + { + "name": "metadata", + "type": "TypeMap", + "description": "Map of metadata values for this offering.", "computed": true, "elem": { "type": "TypeString" } }, { - "name": "public_publish_approved", + "name": "hidden", "type": "TypeBool", - "description": "Indicates if this offering has been approved for use by all IBM Cloud users.", + "description": "Determine if this offering should be displayed in the Consumption UI.", + "computed": true + }, + { + "name": "provider_info", + "type": "TypeList", + "description": "Information on the provider for this offering, or omitted if no provider information is given.", "computed": true, - "deprecated": "This argument is deprecated" + "elem": { + "id": { + "name": "id", + "type": "TypeString", + "description": "The id of this provider.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The name of this provider.", + "computed": true + } + } }, { - "name": "support", + "name": "badges", "type": "TypeList", - "description": "Offering Support information.", + "description": "A list of badges for this offering.", "computed": true, "elem": { - "locations": { - "name": "locations", + "authority": { + "name": "authority", + "type": "TypeString", + "description": "Authority for the current badge.", + "computed": true + }, + "constraints": { + "name": "constraints", "type": "TypeList", - "description": "A list of country codes indicating where support is provided.", + "description": "An optional set of constraints indicating which versions in an Offering have this particular badge.", + "computed": true, + "elem": { + "rule": { + "name": "rule", + "type": "TypeString", + "description": "Rule for the current constraint.", + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "Type of the current constraint.", + "computed": true + } + } + }, + "description": { + "name": "description", + "type": "TypeString", + "description": "Description of the current badge.", + "computed": true + }, + "description_i18n": { + "name": "description_i18n", + "type": "TypeMap", + "description": "A map of translated strings, by language code.", "computed": true, "elem": { "type": "TypeString" } }, - "process": { - "name": "process", + "icon": { + "name": "icon", "type": "TypeString", - "description": "Support process as provided by an ISV.", + "description": "Icon for the current badge.", "computed": true }, - "process_i18n": { - "name": "process_i18n", + "id": { + "name": "id", + "type": "TypeString", + "description": "ID of the current badge.", + "computed": true + }, + "label": { + "name": "label", + "type": "TypeString", + "description": "Display name for the current badge.", + "computed": true + }, + "label_i18n": { + "name": "label_i18n", "type": "TypeMap", "description": "A map of translated strings, by language code.", "computed": true, @@ -12164,276 +12277,10 @@ "type": "TypeString" } }, - "support_details": { - "name": "support_details", + "learn_more_links": { + "name": "learn_more_links", "type": "TypeList", - "description": "A list of support options (e.g. email, phone, slack, other).", - "computed": true, - "elem": { - "availability": { - "name": "availability", - "type": "TypeList", - "description": "Times when support is available.", - "computed": true, - "elem": { - "always_available": { - "name": "always_available", - "type": "TypeBool", - "description": "Is this support always available.", - "computed": true - }, - "times": { - "name": "times", - "type": "TypeList", - "description": "A list of support times.", - "computed": true, - "elem": { - "day": { - "name": "day", - "type": "TypeInt", - "description": "The day of the week, represented as an integer.", - "computed": true - }, - "end_time": { - "name": "end_time", - "type": "TypeString", - "description": "HOURS:MINUTES:SECONDS using 24 hour time (e.g. 8:15:00).", - "computed": true - }, - "start_time": { - "name": "start_time", - "type": "TypeString", - "description": "HOURS:MINUTES:SECONDS using 24 hour time (e.g. 8:15:00).", - "computed": true - } - } - }, - "timezone": { - "name": "timezone", - "type": "TypeString", - "description": "Timezone (e.g. America/New_York).", - "computed": true - } - } - }, - "contact": { - "name": "contact", - "type": "TypeString", - "description": "Contact for the current support detail.", - "computed": true - }, - "response_wait_time": { - "name": "response_wait_time", - "type": "TypeList", - "description": "Time descriptor.", - "computed": true, - "elem": { - "type": { - "name": "type", - "type": "TypeString", - "description": "Valid values are hour or day.", - "computed": true - }, - "value": { - "name": "value", - "type": "TypeInt", - "description": "Amount of time to wait in unit 'type'.", - "computed": true - } - } - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "Type of the current support detail.", - "computed": true - } - } - }, - "support_escalation": { - "name": "support_escalation", - "type": "TypeList", - "description": "Support escalation policy.", - "computed": true, - "elem": { - "contact": { - "name": "contact", - "type": "TypeString", - "description": "Escalation contact.", - "computed": true - }, - "escalation_wait_time": { - "name": "escalation_wait_time", - "type": "TypeList", - "description": "Time descriptor.", - "computed": true, - "elem": { - "type": { - "name": "type", - "type": "TypeString", - "description": "Valid values are hour or day.", - "computed": true - }, - "value": { - "name": "value", - "type": "TypeInt", - "description": "Amount of time to wait in unit 'type'.", - "computed": true - } - } - }, - "response_wait_time": { - "name": "response_wait_time", - "type": "TypeList", - "description": "Time descriptor.", - "computed": true, - "elem": { - "type": { - "name": "type", - "type": "TypeString", - "description": "Valid values are hour or day.", - "computed": true - }, - "value": { - "name": "value", - "type": "TypeInt", - "description": "Amount of time to wait in unit 'type'.", - "computed": true - } - } - } - } - }, - "support_type": { - "name": "support_type", - "type": "TypeString", - "description": "Support type for this product.", - "computed": true - }, - "url": { - "name": "url", - "type": "TypeString", - "description": "URL to be displayed in the Consumption UI for getting support on this offering.", - "computed": true - } - } - }, - { - "name": "product_kind", - "type": "TypeString", - "description": "The product kind. Valid values are module, solution, or empty string.", - "computed": true - }, - { - "name": "offering_support_url", - "type": "TypeString", - "description": "[deprecated] - Use offering.support instead. URL to be displayed in the Consumption UI for getting support on this offering.", - "computed": true - }, - { - "name": "created", - "type": "TypeString", - "description": "The date and time this catalog was created.", - "computed": true - }, - { - "name": "provider_info", - "type": "TypeList", - "description": "Information on the provider for this offering, or omitted if no provider information is given.", - "computed": true, - "elem": { - "id": { - "name": "id", - "type": "TypeString", - "description": "The id of this provider.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The name of this provider.", - "computed": true - } - } - }, - { - "name": "badges", - "type": "TypeList", - "description": "A list of badges for this offering.", - "computed": true, - "elem": { - "authority": { - "name": "authority", - "type": "TypeString", - "description": "Authority for the current badge.", - "computed": true - }, - "constraints": { - "name": "constraints", - "type": "TypeList", - "description": "An optional set of constraints indicating which versions in an Offering have this particular badge.", - "computed": true, - "elem": { - "rule": { - "name": "rule", - "type": "TypeString", - "description": "Rule for the current constraint.", - "computed": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "Type of the current constraint.", - "computed": true - } - } - }, - "description": { - "name": "description", - "type": "TypeString", - "description": "Description of the current badge.", - "computed": true - }, - "description_i18n": { - "name": "description_i18n", - "type": "TypeMap", - "description": "A map of translated strings, by language code.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - "icon": { - "name": "icon", - "type": "TypeString", - "description": "Icon for the current badge.", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "ID of the current badge.", - "computed": true - }, - "label": { - "name": "label", - "type": "TypeString", - "description": "Display name for the current badge.", - "computed": true - }, - "label_i18n": { - "name": "label_i18n", - "type": "TypeMap", - "description": "A map of translated strings, by language code.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - "learn_more_links": { - "name": "learn_more_links", - "type": "TypeList", - "description": "Learn more links for a badge.", + "description": "Learn more links for a badge.", "computed": true, "elem": { "first_party": { @@ -12459,51 +12306,11 @@ } }, { - "name": "long_description", - "type": "TypeString", - "description": "Long description in the requested language.", - "computed": true - }, - { - "name": "share_with_ibm", - "type": "TypeBool", - "description": "Denotes IBM employee availability of an Offering - if share_enabled is true.", - "computed": true - }, - { - "name": "catalog_name", - "type": "TypeString", - "description": "The name of the catalog.", - "computed": true - }, - { - "name": "hidden", - "type": "TypeBool", - "description": "Determine if this offering should be displayed in the Consumption UI.", - "computed": true - }, - { - "name": "portal_approval_record", + "name": "url", "type": "TypeString", - "description": "The portal's approval record ID.", + "description": "The url for this specific offering.", "computed": true }, - { - "name": "offering_id", - "type": "TypeString", - "description": "Offering identifier.", - "immutable": true, - "required": true - }, - { - "name": "label_i18n", - "type": "TypeMap", - "description": "A map of translated strings, by language code.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, { "name": "tags", "type": "TypeList", @@ -12515,9 +12322,9 @@ } }, { - "name": "keywords", - "type": "TypeList", - "description": "List of keywords associated with offering, typically used to search for it.", + "name": "long_description_i18n", + "type": "TypeMap", + "description": "A map of translated strings, by language code.", "computed": true, "elem": { "type": "TypeString" @@ -14563,63 +14370,231 @@ } }, { - "name": "permit_request_ibm_public_publish", - "type": "TypeBool", - "description": "Is it permitted to request publishing to IBM or Public.", - "computed": true, - "deprecated": "This argument is deprecated" + "name": "rev", + "type": "TypeString", + "description": "Cloudant revision.", + "computed": true }, { - "name": "ibm_publish_approved", - "type": "TypeBool", - "description": "Indicates if this offering has been approved for use by all IBMers.", - "computed": true, - "deprecated": "This argument is deprecated" + "name": "catalog_name", + "type": "TypeString", + "description": "The name of the catalog.", + "computed": true }, { - "name": "name", + "name": "disclaimer", "type": "TypeString", - "description": "The programmatic name of this offering.", + "description": "A disclaimer for this offering.", "computed": true }, { - "name": "rating", + "name": "support", "type": "TypeList", - "description": "Repository info for offerings.", + "description": "Offering Support information.", "computed": true, "elem": { - "four_star_count": { - "name": "four_star_count", - "type": "TypeInt", - "description": "Four start rating.", - "computed": true + "locations": { + "name": "locations", + "type": "TypeList", + "description": "A list of country codes indicating where support is provided.", + "computed": true, + "elem": { + "type": "TypeString" + } }, - "one_star_count": { - "name": "one_star_count", - "type": "TypeInt", - "description": "One start rating.", + "process": { + "name": "process", + "type": "TypeString", + "description": "Support process as provided by an ISV.", "computed": true }, - "three_star_count": { - "name": "three_star_count", - "type": "TypeInt", - "description": "Three start rating.", + "process_i18n": { + "name": "process_i18n", + "type": "TypeMap", + "description": "A map of translated strings, by language code.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "support_details": { + "name": "support_details", + "type": "TypeList", + "description": "A list of support options (e.g. email, phone, slack, other).", + "computed": true, + "elem": { + "availability": { + "name": "availability", + "type": "TypeList", + "description": "Times when support is available.", + "computed": true, + "elem": { + "always_available": { + "name": "always_available", + "type": "TypeBool", + "description": "Is this support always available.", + "computed": true + }, + "times": { + "name": "times", + "type": "TypeList", + "description": "A list of support times.", + "computed": true, + "elem": { + "day": { + "name": "day", + "type": "TypeInt", + "description": "The day of the week, represented as an integer.", + "computed": true + }, + "end_time": { + "name": "end_time", + "type": "TypeString", + "description": "HOURS:MINUTES:SECONDS using 24 hour time (e.g. 8:15:00).", + "computed": true + }, + "start_time": { + "name": "start_time", + "type": "TypeString", + "description": "HOURS:MINUTES:SECONDS using 24 hour time (e.g. 8:15:00).", + "computed": true + } + } + }, + "timezone": { + "name": "timezone", + "type": "TypeString", + "description": "Timezone (e.g. America/New_York).", + "computed": true + } + } + }, + "contact": { + "name": "contact", + "type": "TypeString", + "description": "Contact for the current support detail.", + "computed": true + }, + "response_wait_time": { + "name": "response_wait_time", + "type": "TypeList", + "description": "Time descriptor.", + "computed": true, + "elem": { + "type": { + "name": "type", + "type": "TypeString", + "description": "Valid values are hour or day.", + "computed": true + }, + "value": { + "name": "value", + "type": "TypeInt", + "description": "Amount of time to wait in unit 'type'.", + "computed": true + } + } + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "Type of the current support detail.", + "computed": true + } + } + }, + "support_escalation": { + "name": "support_escalation", + "type": "TypeList", + "description": "Support escalation policy.", + "computed": true, + "elem": { + "contact": { + "name": "contact", + "type": "TypeString", + "description": "Escalation contact.", + "computed": true + }, + "escalation_wait_time": { + "name": "escalation_wait_time", + "type": "TypeList", + "description": "Time descriptor.", + "computed": true, + "elem": { + "type": { + "name": "type", + "type": "TypeString", + "description": "Valid values are hour or day.", + "computed": true + }, + "value": { + "name": "value", + "type": "TypeInt", + "description": "Amount of time to wait in unit 'type'.", + "computed": true + } + } + }, + "response_wait_time": { + "name": "response_wait_time", + "type": "TypeList", + "description": "Time descriptor.", + "computed": true, + "elem": { + "type": { + "name": "type", + "type": "TypeString", + "description": "Valid values are hour or day.", + "computed": true + }, + "value": { + "name": "value", + "type": "TypeInt", + "description": "Amount of time to wait in unit 'type'.", + "computed": true + } + } + } + } + }, + "support_type": { + "name": "support_type", + "type": "TypeString", + "description": "Support type for this product.", "computed": true }, - "two_star_count": { - "name": "two_star_count", - "type": "TypeInt", - "description": "Two start rating.", + "url": { + "name": "url", + "type": "TypeString", + "description": "URL to be displayed in the Consumption UI for getting support on this offering.", "computed": true } } }, { - "name": "share_enabled", - "type": "TypeBool", - "description": "Denotes sharing including access list availability of an Offering is enabled.", + "name": "label", + "type": "TypeString", + "description": "Display Name in the requested language.", "computed": true }, + { + "name": "label_i18n", + "type": "TypeMap", + "description": "A map of translated strings, by language code.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "share_with_access_list", + "type": "TypeList", + "description": "A list of account IDs to add to this offering's access list.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, { "name": "public_original_crn", "type": "TypeString", @@ -14627,53 +14602,239 @@ "computed": true }, { - "name": "disclaimer", + "name": "features", + "type": "TypeList", + "description": "list of features associated with this offering.", + "computed": true, + "elem": { + "description": { + "name": "description", + "type": "TypeString", + "description": "Feature description.", + "computed": true + }, + "description_i18n": { + "name": "description_i18n", + "type": "TypeMap", + "description": "A map of translated strings, by language code.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "title": { + "name": "title", + "type": "TypeString", + "description": "Heading.", + "computed": true + }, + "title_i18n": { + "name": "title_i18n", + "type": "TypeMap", + "description": "A map of translated strings, by language code.", + "computed": true, + "elem": { + "type": "TypeString" + } + } + } + }, + { + "name": "share_with_ibm", + "type": "TypeBool", + "description": "Denotes IBM employee availability of an Offering - if share_enabled is true.", + "computed": true + }, + { + "name": "updated", "type": "TypeString", - "description": "A disclaimer for this offering.", + "description": "The date and time this catalog was last updated.", "computed": true - } - ], - "ibm_cm_offering_instance": [ + }, { - "name": "cluster_namespaces", + "name": "short_description", + "type": "TypeString", + "description": "Short description in the requested language.", + "computed": true + }, + { + "name": "short_description_i18n", + "type": "TypeMap", + "description": "A map of translated strings, by language code.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "long_description", + "type": "TypeString", + "description": "Long description in the requested language.", + "computed": true + }, + { + "name": "image_pull_keys", "type": "TypeList", - "description": "List of target namespaces to install into.", + "description": "Image pull keys for this offering.", + "computed": true, + "elem": { + "description": { + "name": "description", + "type": "TypeString", + "description": "Key description.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Key name.", + "computed": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "Key value.", + "computed": true + } + } + }, + { + "name": "catalog_id", + "type": "TypeString", + "description": "Catalog identifier.", + "immutable": true, + "required": true + }, + { + "name": "keywords", + "type": "TypeList", + "description": "List of keywords associated with offering, typically used to search for it.", "computed": true, "elem": { "type": "TypeString" } }, { - "name": "schematics_workspace_id", + "name": "publish_approved", + "type": "TypeBool", + "description": "Offering has been approved to publish to permitted to IBM or Public Catalog.", + "computed": true + }, + { + "name": "share_enabled", + "type": "TypeBool", + "description": "Denotes sharing including access list availability of an Offering is enabled.", + "computed": true + }, + { + "name": "ibm_publish_approved", + "type": "TypeBool", + "description": "Indicates if this offering has been approved for use by all IBMers.", + "computed": true, + "deprecated": "This argument is deprecated" + }, + { + "name": "repo_info", + "type": "TypeList", + "description": "Repository info for offerings.", + "computed": true, + "elem": { + "token": { + "name": "token", + "type": "TypeString", + "description": "Token for private repos.", + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "Public or enterprise GitHub.", + "computed": true + } + } + }, + { + "name": "portal_approval_record", "type": "TypeString", - "description": "id of the schematics workspace, for offerings installed through schematics", + "description": "The portal's approval record ID.", "computed": true }, { - "name": "instance_identifier", + "name": "deprecate_pending", + "type": "TypeList", + "description": "Deprecation information for an Offering.", + "computed": true, + "elem": { + "deprecate_date": { + "name": "deprecate_date", + "type": "TypeString", + "description": "Date of deprecation.", + "computed": true + }, + "deprecate_state": { + "name": "deprecate_state", + "type": "TypeString", + "description": "Deprecation state.", + "computed": true + }, + "description": { + "name": "description", + "type": "TypeString", + "computed": true + } + } + }, + { + "name": "offering_id", "type": "TypeString", - "description": "ID for this instance", + "description": "Offering identifier.", + "immutable": true, "required": true }, { - "name": "crn", + "name": "offering_icon_url", "type": "TypeString", - "description": "platform CRN for this instance.", - "cloud_data_type": "crn", + "description": "URL for an icon associated with this offering.", + "computed": true + }, + { + "name": "offering_docs_url", + "type": "TypeString", + "description": "URL for an additional docs with this offering.", "computed": true }, + { + "name": "pc_managed", + "type": "TypeBool", + "description": "Offering is managed by Partner Center.", + "computed": true + } + ], + "ibm_cm_offering_instance": [ { "name": "channel", "type": "TypeString", "description": "channel to target for the operator subscription. Required for operator bundles", "computed": true }, + { + "name": "instance_identifier", + "type": "TypeString", + "description": "ID for this instance", + "required": true + }, { "name": "catalog_id", "type": "TypeString", "description": "Catalog ID this instance was created from.", "computed": true }, + { + "name": "offering_id", + "type": "TypeString", + "description": "Offering ID this instance was created from.", + "computed": true + }, { "name": "cluster_all_namespaces", "type": "TypeBool", @@ -14681,33 +14842,33 @@ "computed": true }, { - "name": "version", + "name": "schematics_workspace_id", "type": "TypeString", - "description": "The version this instance was installed from (not version id).", + "description": "id of the schematics workspace, for offerings installed through schematics", "computed": true }, { - "name": "cluster_id", + "name": "url", "type": "TypeString", - "description": "Cluster ID.", + "description": "url reference to this object.", "computed": true }, { - "name": "label", + "name": "_rev", "type": "TypeString", - "description": "the label for this instance.", + "description": "Cloudant Revision for this instance", "computed": true }, { - "name": "offering_id", + "name": "label", "type": "TypeString", - "description": "Offering ID this instance was created from.", + "description": "the label for this instance.", "computed": true }, { - "name": "kind_format", + "name": "version", "type": "TypeString", - "description": "the format this instance has (helm, operator, ova...).", + "description": "The version this instance was installed from (not version id).", "computed": true }, { @@ -14717,11 +14878,13 @@ "computed": true }, { - "name": "resource_group_id", - "type": "TypeString", - "description": "id of the resource group", - "cloud_data_type": "resource_group", - "computed": true + "name": "cluster_namespaces", + "type": "TypeList", + "description": "List of target namespaces to install into.", + "computed": true, + "elem": { + "type": "TypeString" + } }, { "name": "install_plan", @@ -14730,15 +14893,29 @@ "computed": true }, { - "name": "url", + "name": "crn", "type": "TypeString", - "description": "url reference to this object.", + "description": "platform CRN for this instance.", + "cloud_data_type": "crn", "computed": true }, { - "name": "_rev", + "name": "kind_format", "type": "TypeString", - "description": "Cloudant Revision for this instance", + "description": "the format this instance has (helm, operator, ova...).", + "computed": true + }, + { + "name": "cluster_id", + "type": "TypeString", + "description": "Cluster ID.", + "computed": true + }, + { + "name": "resource_group_id", + "type": "TypeString", + "description": "id of the resource group", + "cloud_data_type": "resource_group", "computed": true } ], @@ -14758,11 +14935,244 @@ ], "ibm_cm_version": [ { - "name": "kind_id", + "name": "flavor", + "type": "TypeList", + "description": "Version Flavor Information. Only supported for Product kind Solution.", + "computed": true, + "elem": { + "index": { + "name": "index", + "type": "TypeInt", + "description": "Order that this flavor should appear when listed for a single version.", + "computed": true + }, + "label": { + "name": "label", + "type": "TypeString", + "description": "Label for this flavor.", + "computed": true + }, + "label_i18n": { + "name": "label_i18n", + "type": "TypeMap", + "description": "A map of translated strings, by language code.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Programmatic name for this flavor.", + "computed": true + } + } + }, + { + "name": "outputs", + "type": "TypeList", + "description": "List of output values for this version.", + "computed": true, + "elem": { + "description": { + "name": "description", + "type": "TypeString", + "description": "Output description.", + "computed": true + }, + "key": { + "name": "key", + "type": "TypeString", + "description": "Output key.", + "computed": true + } + } + }, + { + "name": "state", + "type": "TypeList", + "description": "Offering state.", + "computed": true, + "elem": { + "current": { + "name": "current", + "type": "TypeString", + "description": "one of: new, validated, account-published, ibm-published, public-published.", + "computed": true + }, + "current_entered": { + "name": "current_entered", + "type": "TypeString", + "description": "Date and time of current request.", + "computed": true + }, + "pending": { + "name": "pending", + "type": "TypeString", + "description": "one of: new, validated, account-published, ibm-published, public-published.", + "computed": true + }, + "pending_requested": { + "name": "pending_requested", + "type": "TypeString", + "description": "Date and time of pending request.", + "computed": true + }, + "previous": { + "name": "previous", + "type": "TypeString", + "description": "one of: new, validated, account-published, ibm-published, public-published.", + "computed": true + } + } + }, + { + "name": "created", "type": "TypeString", - "description": "Kind ID.", + "description": "The date and time this version was created.", "computed": true }, + { + "name": "configuration", + "type": "TypeList", + "description": "List of user solicited overrides.", + "computed": true, + "elem": { + "custom_config": { + "name": "custom_config", + "type": "TypeList", + "description": "Render type.", + "computed": true, + "elem": { + "associations": { + "name": "associations", + "type": "TypeList", + "description": "List of parameters that are associated with this configuration.", + "computed": true, + "elem": { + "parameters": { + "name": "parameters", + "type": "TypeList", + "description": "Parameters for this association.", + "computed": true, + "elem": { + "name": { + "name": "name", + "type": "TypeString", + "description": "Name of this parameter.", + "computed": true + }, + "options_refresh": { + "name": "options_refresh", + "type": "TypeBool", + "description": "Refresh options.", + "computed": true + } + } + } + } + }, + "config_constraints": { + "name": "config_constraints", + "type": "TypeMap", + "description": "Map of constraint parameters that will be passed to the custom widget.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "grouping": { + "name": "grouping", + "type": "TypeString", + "description": "Determines where this configuration type is rendered (3 sections today - Target, Resource, and Deployment).", + "computed": true + }, + "grouping_index": { + "name": "grouping_index", + "type": "TypeInt", + "description": "Determines the order that this configuration item shows in that particular grouping.", + "computed": true + }, + "original_grouping": { + "name": "original_grouping", + "type": "TypeString", + "description": "Original grouping type for this configuration (3 types - Target, Resource, and Deployment).", + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "ID of the widget type.", + "computed": true + } + } + }, + "default_value": { + "name": "default_value", + "type": "TypeString", + "description": "The default value as a JSON encoded string. To use a secret when the type is password, specify a JSON encoded value of $ref:#/components/schemas/SecretInstance, prefixed with `cmsm_v1:`.", + "computed": true + }, + "description": { + "name": "description", + "type": "TypeString", + "description": "Key description.", + "computed": true + }, + "display_name": { + "name": "display_name", + "type": "TypeString", + "description": "Display name for configuration type.", + "computed": true + }, + "hidden": { + "name": "hidden", + "type": "TypeBool", + "description": "Hide values.", + "computed": true + }, + "key": { + "name": "key", + "type": "TypeString", + "description": "Configuration key.", + "computed": true + }, + "options": { + "name": "options", + "type": "TypeList", + "description": "List of options of type.", + "computed": true, + "elem": { + "type": "TypeMap" + } + }, + "required": { + "name": "required", + "type": "TypeBool", + "description": "Is key required to install.", + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "Value type (string, boolean, int).", + "computed": true + }, + "type_metadata": { + "name": "type_metadata", + "type": "TypeString", + "description": "The original type, as found in the source being onboarded.", + "computed": true + }, + "value_constraint": { + "name": "value_constraint", + "type": "TypeString", + "description": "Constraint associated with value, e.g., for string type - regx:[a-z].", + "computed": true + } + } + }, { "name": "iam_permissions", "type": "TypeList", @@ -14816,53 +15226,25 @@ } }, { - "name": "long_description_i18n", - "type": "TypeMap", - "description": "A map of translated strings, by language code.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "version_loc_id", - "type": "TypeString", - "description": "A dotted value of `catalogID`.`versionID`.", - "required": true - }, - { - "name": "crn", - "type": "TypeString", - "description": "Version's CRN.", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "version", - "type": "TypeString", - "description": "Version of content type.", - "computed": true - }, - { - "name": "flavor", + "name": "pre_install", "type": "TypeList", - "description": "Version Flavor Information. Only supported for Product kind Solution.", + "description": "Optional pre-install instructions.", "computed": true, "elem": { - "index": { - "name": "index", - "type": "TypeInt", - "description": "Order that this flavor should appear when listed for a single version.", + "delete_script": { + "name": "delete_script", + "type": "TypeString", + "description": "Optional script that if run will remove the installed version.", "computed": true }, - "label": { - "name": "label", + "instructions": { + "name": "instructions", "type": "TypeString", - "description": "Label for this flavor.", + "description": "Instruction on step and by whom (role) that are needed to take place to prepare the target for installing this version.", "computed": true }, - "label_i18n": { - "name": "label_i18n", + "instructions_i18n": { + "name": "instructions_i18n", "type": "TypeMap", "description": "A map of translated strings, by language code.", "computed": true, @@ -14870,46 +15252,22 @@ "type": "TypeString" } }, - "name": { - "name": "name", + "scope": { + "name": "scope", "type": "TypeString", - "description": "Programmatic name for this flavor.", + "description": "Optional value indicating if this script is scoped to a namespace or the entire cluster.", "computed": true - } - } - }, - { - "name": "catalog_id", - "type": "TypeString", - "description": "Catalog ID.", - "computed": true - }, - { - "name": "tags", - "type": "TypeList", - "description": "List of tags associated with this catalog.", - "cloud_data_type": "tags", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "outputs", - "type": "TypeList", - "description": "List of output values for this version.", - "computed": true, - "elem": { - "description": { - "name": "description", + }, + "script": { + "name": "script", "type": "TypeString", - "description": "Output description.", + "description": "Optional script that needs to be run post any pre-condition script.", "computed": true }, - "key": { - "name": "key", + "script_permission": { + "name": "script_permission", "type": "TypeString", - "description": "Output key.", + "description": "Optional iam permissions that are required on the target cluster to run this script.", "computed": true } } @@ -14952,6 +15310,463 @@ } } }, + { + "name": "whitelisted_accounts", + "type": "TypeList", + "description": "Whitelisted accounts for version.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "deprecated", + "type": "TypeBool", + "description": "read only field, indicating if this version is deprecated.", + "computed": true + }, + { + "name": "version_loc_id", + "type": "TypeString", + "description": "A dotted value of `catalogID`.`versionID`.", + "required": true + }, + { + "name": "rev", + "type": "TypeString", + "description": "Cloudant revision.", + "computed": true + }, + { + "name": "version", + "type": "TypeString", + "description": "Version of content type.", + "computed": true + }, + { + "name": "offering_id", + "type": "TypeString", + "description": "Offering ID.", + "computed": true + }, + { + "name": "kind_id", + "type": "TypeString", + "description": "Kind ID.", + "computed": true + }, + { + "name": "repo_url", + "type": "TypeString", + "description": "Content's repo URL.", + "computed": true + }, + { + "name": "single_instance", + "type": "TypeBool", + "description": "Denotes if single instance can be deployed to a given cluster.", + "computed": true + }, + { + "name": "long_description_i18n", + "type": "TypeMap", + "description": "A map of translated strings, by language code.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "tgz_url", + "type": "TypeString", + "description": "File used to on-board this version.", + "computed": true + }, + { + "name": "metadata", + "type": "TypeList", + "description": "Generic data to be included with content being onboarded. Required for virtual server image for VPC.", + "computed": true, + "elem": { + "end_deploy_time": { + "name": "end_deploy_time", + "type": "TypeString", + "description": "The time validation ended.", + "computed": true + }, + "est_deploy_time": { + "name": "est_deploy_time", + "type": "TypeFloat", + "description": "The estimated time validation takes.", + "computed": true + }, + "example_name": { + "name": "example_name", + "type": "TypeString", + "description": "Working directory of source files.", + "computed": true + }, + "file": { + "name": "file", + "type": "TypeList", + "description": "Details for the stored image file. Required for virtual server image for VPC.", + "computed": true, + "elem": { + "size": { + "name": "size", + "type": "TypeInt", + "description": "Size of the stored image file rounded up to the next gigabyte. Required for virtual server image for VPC.", + "computed": true + } + } + }, + "images": { + "name": "images", + "type": "TypeList", + "description": "Image operating system. Required for virtual server image for VPC.", + "computed": true, + "elem": { + "id": { + "name": "id", + "type": "TypeString", + "description": "Programmatic ID of virtual server image. Required for virtual server image for VPC.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Programmatic name of virtual server image. Required for virtual server image for VPC.", + "computed": true + }, + "region": { + "name": "region", + "type": "TypeString", + "description": "Region the virtual server image is available in. Required for virtual server image for VPC.", + "computed": true + } + } + }, + "minimum_provisioned_size": { + "name": "minimum_provisioned_size", + "type": "TypeInt", + "description": "Minimum size (in gigabytes) of a volume onto which this image may be provisioned. Required for virtual server image for VPC.", + "computed": true + }, + "modules": { + "name": "modules", + "type": "TypeList", + "description": "Terraform modules.", + "computed": true, + "elem": { + "name": { + "name": "name", + "type": "TypeString", + "description": "Name of the module.", + "computed": true + }, + "offering_reference": { + "name": "offering_reference", + "type": "TypeList", + "description": "Terraform modules.", + "computed": true, + "elem": { + "catalog_id": { + "name": "catalog_id", + "type": "TypeString", + "description": "Catalog ID of the module reference.", + "computed": true + }, + "flavor": { + "name": "flavor", + "type": "TypeString", + "description": "Flavor of the module.", + "computed": true + }, + "flavors": { + "name": "flavors", + "type": "TypeList", + "description": "Flavors of the module.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "ID of the offering module.", + "computed": true + }, + "kind": { + "name": "kind", + "type": "TypeString", + "description": "Kind of the offeringmodule.", + "computed": true + }, + "metadata": { + "name": "metadata", + "type": "TypeString", + "description": "Metadata of the module.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Name of the offering module.", + "computed": true + }, + "version": { + "name": "version", + "type": "TypeString", + "description": "Version of the offering module.", + "computed": true + } + } + }, + "source": { + "name": "source", + "type": "TypeString", + "description": "Source of the module.", + "computed": true + } + } + }, + "operating_system": { + "name": "operating_system", + "type": "TypeList", + "description": "Operating system included in this image. Required for virtual server image for VPC.", + "computed": true, + "elem": { + "architecture": { + "name": "architecture", + "type": "TypeString", + "description": "Operating system architecture. Required for virtual server image for VPC.", + "computed": true + }, + "dedicated_host_only": { + "name": "dedicated_host_only", + "type": "TypeBool", + "description": "Images with this operating system can only be used on dedicated hosts or dedicated host groups. Required for virtual server image for VPC.", + "computed": true + }, + "display_name": { + "name": "display_name", + "type": "TypeString", + "description": "Unique, display-friendly name for the operating system. Required for virtual server image for VPC.", + "computed": true + }, + "family": { + "name": "family", + "type": "TypeString", + "description": "Software family for this operating system. Required for virtual server image for VPC.", + "computed": true + }, + "href": { + "name": "href", + "type": "TypeString", + "description": "URL for this operating system. Required for virtual server image for VPC.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Globally unique name for this operating system Required for virtual server image for VPC.", + "computed": true + }, + "vendor": { + "name": "vendor", + "type": "TypeString", + "description": "Vendor of the operating system. Required for virtual server image for VPC.", + "computed": true + }, + "version": { + "name": "version", + "type": "TypeString", + "description": "Major release version of this operating system. Required for virtual server image for VPC.", + "computed": true + } + } + }, + "source_url": { + "name": "source_url", + "type": "TypeString", + "description": "Version source URL.", + "computed": true + }, + "start_deploy_time": { + "name": "start_deploy_time", + "type": "TypeString", + "description": "The time validation started.", + "computed": true + }, + "terraform_version": { + "name": "terraform_version", + "type": "TypeString", + "description": "Terraform version.", + "computed": true + }, + "usage": { + "name": "usage", + "type": "TypeString", + "description": "Usage text for the version.", + "computed": true + }, + "usage_template": { + "name": "usage_template", + "type": "TypeString", + "description": "Usage text for the version.", + "computed": true + }, + "validated_terraform_version": { + "name": "validated_terraform_version", + "type": "TypeString", + "description": "Version name.", + "computed": true + }, + "version_name": { + "name": "version_name", + "type": "TypeString", + "description": "Version name.", + "computed": true + }, + "vsi_vpc": { + "name": "vsi_vpc", + "type": "TypeList", + "description": "VSI VPC version information", + "computed": true, + "elem": { + "file": { + "name": "file", + "type": "TypeList", + "description": "Details for the stored image file. Required for virtual server image for VPC.", + "computed": true, + "elem": { + "size": { + "name": "size", + "type": "TypeInt", + "description": "Size of the stored image file rounded up to the next gigabyte. Required for virtual server image for VPC.", + "computed": true + } + } + }, + "images": { + "name": "images", + "type": "TypeList", + "description": "Image operating system. Required for virtual server image for VPC.", + "computed": true, + "elem": { + "id": { + "name": "id", + "type": "TypeString", + "description": "Programmatic ID of virtual server image. Required for virtual server image for VPC.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Programmatic name of virtual server image. Required for virtual server image for VPC.", + "computed": true + }, + "region": { + "name": "region", + "type": "TypeString", + "description": "Region the virtual server image is available in. Required for virtual server image for VPC.", + "computed": true + } + } + }, + "minimum_provisioned_size": { + "name": "minimum_provisioned_size", + "type": "TypeInt", + "description": "Minimum size (in gigabytes) of a volume onto which this image may be provisioned. Required for virtual server image for VPC.", + "computed": true + }, + "operating_system": { + "name": "operating_system", + "type": "TypeList", + "description": "Operating system included in this image. Required for virtual server image for VPC.", + "computed": true, + "elem": { + "architecture": { + "name": "architecture", + "type": "TypeString", + "description": "Operating system architecture. Required for virtual server image for VPC.", + "computed": true + }, + "dedicated_host_only": { + "name": "dedicated_host_only", + "type": "TypeBool", + "description": "Images with this operating system can only be used on dedicated hosts or dedicated host groups. Required for virtual server image for VPC.", + "computed": true + }, + "display_name": { + "name": "display_name", + "type": "TypeString", + "description": "Unique, display-friendly name for the operating system. Required for virtual server image for VPC.", + "computed": true + }, + "family": { + "name": "family", + "type": "TypeString", + "description": "Software family for this operating system. Required for virtual server image for VPC.", + "computed": true + }, + "href": { + "name": "href", + "type": "TypeString", + "description": "URL for this operating system. Required for virtual server image for VPC.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Globally unique name for this operating system Required for virtual server image for VPC.", + "computed": true + }, + "vendor": { + "name": "vendor", + "type": "TypeString", + "description": "Vendor of the operating system. Required for virtual server image for VPC.", + "computed": true + }, + "version": { + "name": "version", + "type": "TypeString", + "description": "Major release version of this operating system. Required for virtual server image for VPC.", + "computed": true + } + } + } + } + }, + "working_directory": { + "name": "working_directory", + "type": "TypeString", + "description": "Working directory of source files.", + "computed": true + } + } + }, + { + "name": "required_resources", + "type": "TypeList", + "description": "Resource requirments for installation.", + "computed": true, + "elem": { + "type": { + "name": "type", + "type": "TypeString", + "description": "Type of requirement.", + "computed": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "mem, disk, cores, and nodes can be parsed as an int. targetVersion will be a semver range value.", + "computed": true + } + } + }, { "name": "solution_info", "type": "TypeList", @@ -15585,805 +16400,128 @@ "name": "id", "type": "TypeString", "description": "Optional - Offering ID - not required if name is set.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Optional - Programmatic Offering name.", - "computed": true - }, - "version": { - "name": "version", - "type": "TypeString", - "description": "Required - Semver value or range.", - "computed": true - } - } - }, - "features": { - "name": "features", - "type": "TypeList", - "description": "Features - titles only.", - "computed": true, - "elem": { - "description": { - "name": "description", - "type": "TypeString", - "description": "Feature description.", - "computed": true - }, - "description_i18n": { - "name": "description_i18n", - "type": "TypeMap", - "description": "A map of translated strings, by language code.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - "title": { - "name": "title", - "type": "TypeString", - "description": "Heading.", - "computed": true - }, - "title_i18n": { - "name": "title_i18n", - "type": "TypeMap", - "description": "A map of translated strings, by language code.", - "computed": true, - "elem": { - "type": "TypeString" - } - } - } - } - } - }, - { - "name": "created", - "type": "TypeString", - "description": "The date and time this version was created.", - "computed": true - }, - { - "name": "pre_install", - "type": "TypeList", - "description": "Optional pre-install instructions.", - "computed": true, - "elem": { - "delete_script": { - "name": "delete_script", - "type": "TypeString", - "description": "Optional script that if run will remove the installed version.", - "computed": true - }, - "instructions": { - "name": "instructions", - "type": "TypeString", - "description": "Instruction on step and by whom (role) that are needed to take place to prepare the target for installing this version.", - "computed": true - }, - "instructions_i18n": { - "name": "instructions_i18n", - "type": "TypeMap", - "description": "A map of translated strings, by language code.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - "scope": { - "name": "scope", - "type": "TypeString", - "description": "Optional value indicating if this script is scoped to a namespace or the entire cluster.", - "computed": true - }, - "script": { - "name": "script", - "type": "TypeString", - "description": "Optional script that needs to be run post any pre-condition script.", - "computed": true - }, - "script_permission": { - "name": "script_permission", - "type": "TypeString", - "description": "Optional iam permissions that are required on the target cluster to run this script.", - "computed": true - } - } - }, - { - "name": "version_locator", - "type": "TypeString", - "description": "A dotted value of `catalogID`.`versionID`.", - "computed": true - }, - { - "name": "is_consumable", - "type": "TypeBool", - "description": "Is the version able to be shared.", - "computed": true - }, - { - "name": "offering_id", - "type": "TypeString", - "description": "Offering ID.", - "computed": true - }, - { - "name": "install", - "type": "TypeList", - "description": "Script information.", - "computed": true, - "elem": { - "delete_script": { - "name": "delete_script", - "type": "TypeString", - "description": "Optional script that if run will remove the installed version.", - "computed": true - }, - "instructions": { - "name": "instructions", - "type": "TypeString", - "description": "Instruction on step and by whom (role) that are needed to take place to prepare the target for installing this version.", - "computed": true - }, - "instructions_i18n": { - "name": "instructions_i18n", - "type": "TypeMap", - "description": "A map of translated strings, by language code.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - "scope": { - "name": "scope", - "type": "TypeString", - "description": "Optional value indicating if this script is scoped to a namespace or the entire cluster.", - "computed": true - }, - "script": { - "name": "script", - "type": "TypeString", - "description": "Optional script that needs to be run post any pre-condition script.", - "computed": true - }, - "script_permission": { - "name": "script_permission", - "type": "TypeString", - "description": "Optional iam permissions that are required on the target cluster to run this script.", - "computed": true - } - } - }, - { - "name": "long_description", - "type": "TypeString", - "description": "Long description for version.", - "computed": true - }, - { - "name": "rev", - "type": "TypeString", - "description": "Cloudant revision.", - "computed": true - }, - { - "name": "metadata", - "type": "TypeList", - "description": "Generic data to be included with content being onboarded. Required for virtual server image for VPC.", - "computed": true, - "elem": { - "end_deploy_time": { - "name": "end_deploy_time", - "type": "TypeString", - "description": "The time validation ended.", - "computed": true - }, - "est_deploy_time": { - "name": "est_deploy_time", - "type": "TypeFloat", - "description": "The estimated time validation takes.", - "computed": true - }, - "example_name": { - "name": "example_name", - "type": "TypeString", - "description": "Working directory of source files.", - "computed": true - }, - "file": { - "name": "file", - "type": "TypeList", - "description": "Details for the stored image file. Required for virtual server image for VPC.", - "computed": true, - "elem": { - "size": { - "name": "size", - "type": "TypeInt", - "description": "Size of the stored image file rounded up to the next gigabyte. Required for virtual server image for VPC.", - "computed": true - } - } - }, - "images": { - "name": "images", - "type": "TypeList", - "description": "Image operating system. Required for virtual server image for VPC.", - "computed": true, - "elem": { - "id": { - "name": "id", - "type": "TypeString", - "description": "Programmatic ID of virtual server image. Required for virtual server image for VPC.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Programmatic name of virtual server image. Required for virtual server image for VPC.", - "computed": true - }, - "region": { - "name": "region", - "type": "TypeString", - "description": "Region the virtual server image is available in. Required for virtual server image for VPC.", - "computed": true - } - } - }, - "minimum_provisioned_size": { - "name": "minimum_provisioned_size", - "type": "TypeInt", - "description": "Minimum size (in gigabytes) of a volume onto which this image may be provisioned. Required for virtual server image for VPC.", - "computed": true - }, - "modules": { - "name": "modules", - "type": "TypeList", - "description": "Terraform modules.", - "computed": true, - "elem": { - "name": { - "name": "name", - "type": "TypeString", - "description": "Name of the module.", - "computed": true - }, - "offering_reference": { - "name": "offering_reference", - "type": "TypeList", - "description": "Terraform modules.", - "computed": true, - "elem": { - "catalog_id": { - "name": "catalog_id", - "type": "TypeString", - "description": "Catalog ID of the module reference.", - "computed": true - }, - "flavor": { - "name": "flavor", - "type": "TypeString", - "description": "Flavor of the module.", - "computed": true - }, - "flavors": { - "name": "flavors", - "type": "TypeList", - "description": "Flavors of the module.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "ID of the offering module.", - "computed": true - }, - "kind": { - "name": "kind", - "type": "TypeString", - "description": "Kind of the offeringmodule.", - "computed": true - }, - "metadata": { - "name": "metadata", - "type": "TypeString", - "description": "Metadata of the module.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Name of the offering module.", - "computed": true - }, - "version": { - "name": "version", - "type": "TypeString", - "description": "Version of the offering module.", - "computed": true - } - } - }, - "source": { - "name": "source", - "type": "TypeString", - "description": "Source of the module.", - "computed": true - } - } - }, - "operating_system": { - "name": "operating_system", - "type": "TypeList", - "description": "Operating system included in this image. Required for virtual server image for VPC.", - "computed": true, - "elem": { - "architecture": { - "name": "architecture", - "type": "TypeString", - "description": "Operating system architecture. Required for virtual server image for VPC.", - "computed": true - }, - "dedicated_host_only": { - "name": "dedicated_host_only", - "type": "TypeBool", - "description": "Images with this operating system can only be used on dedicated hosts or dedicated host groups. Required for virtual server image for VPC.", - "computed": true - }, - "display_name": { - "name": "display_name", - "type": "TypeString", - "description": "Unique, display-friendly name for the operating system. Required for virtual server image for VPC.", - "computed": true - }, - "family": { - "name": "family", - "type": "TypeString", - "description": "Software family for this operating system. Required for virtual server image for VPC.", - "computed": true - }, - "href": { - "name": "href", - "type": "TypeString", - "description": "URL for this operating system. Required for virtual server image for VPC.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Globally unique name for this operating system Required for virtual server image for VPC.", - "computed": true - }, - "vendor": { - "name": "vendor", - "type": "TypeString", - "description": "Vendor of the operating system. Required for virtual server image for VPC.", - "computed": true - }, - "version": { - "name": "version", - "type": "TypeString", - "description": "Major release version of this operating system. Required for virtual server image for VPC.", - "computed": true - } - } - }, - "source_url": { - "name": "source_url", - "type": "TypeString", - "description": "Version source URL.", - "computed": true - }, - "start_deploy_time": { - "name": "start_deploy_time", - "type": "TypeString", - "description": "The time validation started.", - "computed": true - }, - "terraform_version": { - "name": "terraform_version", - "type": "TypeString", - "description": "Terraform version.", - "computed": true - }, - "usage": { - "name": "usage", - "type": "TypeString", - "description": "Usage text for the version.", - "computed": true - }, - "usage_template": { - "name": "usage_template", - "type": "TypeString", - "description": "Usage text for the version.", - "computed": true - }, - "validated_terraform_version": { - "name": "validated_terraform_version", - "type": "TypeString", - "description": "Version name.", - "computed": true - }, - "version_name": { - "name": "version_name", - "type": "TypeString", - "description": "Version name.", - "computed": true - }, - "vsi_vpc": { - "name": "vsi_vpc", - "type": "TypeList", - "description": "VSI VPC version information", - "computed": true, - "elem": { - "file": { - "name": "file", - "type": "TypeList", - "description": "Details for the stored image file. Required for virtual server image for VPC.", - "computed": true, - "elem": { - "size": { - "name": "size", - "type": "TypeInt", - "description": "Size of the stored image file rounded up to the next gigabyte. Required for virtual server image for VPC.", - "computed": true - } - } - }, - "images": { - "name": "images", - "type": "TypeList", - "description": "Image operating system. Required for virtual server image for VPC.", - "computed": true, - "elem": { - "id": { - "name": "id", - "type": "TypeString", - "description": "Programmatic ID of virtual server image. Required for virtual server image for VPC.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Programmatic name of virtual server image. Required for virtual server image for VPC.", - "computed": true - }, - "region": { - "name": "region", - "type": "TypeString", - "description": "Region the virtual server image is available in. Required for virtual server image for VPC.", - "computed": true - } - } - }, - "minimum_provisioned_size": { - "name": "minimum_provisioned_size", - "type": "TypeInt", - "description": "Minimum size (in gigabytes) of a volume onto which this image may be provisioned. Required for virtual server image for VPC.", - "computed": true - }, - "operating_system": { - "name": "operating_system", - "type": "TypeList", - "description": "Operating system included in this image. Required for virtual server image for VPC.", - "computed": true, - "elem": { - "architecture": { - "name": "architecture", - "type": "TypeString", - "description": "Operating system architecture. Required for virtual server image for VPC.", - "computed": true - }, - "dedicated_host_only": { - "name": "dedicated_host_only", - "type": "TypeBool", - "description": "Images with this operating system can only be used on dedicated hosts or dedicated host groups. Required for virtual server image for VPC.", - "computed": true - }, - "display_name": { - "name": "display_name", - "type": "TypeString", - "description": "Unique, display-friendly name for the operating system. Required for virtual server image for VPC.", - "computed": true - }, - "family": { - "name": "family", - "type": "TypeString", - "description": "Software family for this operating system. Required for virtual server image for VPC.", - "computed": true - }, - "href": { - "name": "href", - "type": "TypeString", - "description": "URL for this operating system. Required for virtual server image for VPC.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Globally unique name for this operating system Required for virtual server image for VPC.", - "computed": true - }, - "vendor": { - "name": "vendor", - "type": "TypeString", - "description": "Vendor of the operating system. Required for virtual server image for VPC.", - "computed": true - }, - "version": { - "name": "version", - "type": "TypeString", - "description": "Major release version of this operating system. Required for virtual server image for VPC.", - "computed": true - } - } + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Optional - Programmatic Offering name.", + "computed": true + }, + "version": { + "name": "version", + "type": "TypeString", + "description": "Required - Semver value or range.", + "computed": true } } }, - "working_directory": { - "name": "working_directory", - "type": "TypeString", - "description": "Working directory of source files.", - "computed": true - } - } - }, - { - "name": "single_instance", - "type": "TypeBool", - "description": "Denotes if single instance can be deployed to a given cluster.", - "computed": true - }, - { - "name": "entitlement", - "type": "TypeList", - "description": "Entitlement license info.", - "computed": true, - "elem": { - "image_repo_name": { - "name": "image_repo_name", - "type": "TypeString", - "description": "Image repository name.", - "computed": true - }, - "part_numbers": { - "name": "part_numbers", + "features": { + "name": "features", "type": "TypeList", - "description": "list of license entitlement part numbers, eg. D1YGZLL,D1ZXILL.", + "description": "Features - titles only.", "computed": true, "elem": { - "type": "TypeString" + "description": { + "name": "description", + "type": "TypeString", + "description": "Feature description.", + "computed": true + }, + "description_i18n": { + "name": "description_i18n", + "type": "TypeMap", + "description": "A map of translated strings, by language code.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "title": { + "name": "title", + "type": "TypeString", + "description": "Heading.", + "computed": true + }, + "title_i18n": { + "name": "title_i18n", + "type": "TypeMap", + "description": "A map of translated strings, by language code.", + "computed": true, + "elem": { + "type": "TypeString" + } + } } - }, - "product_id": { - "name": "product_id", - "type": "TypeString", - "description": "Product ID.", - "computed": true - }, - "provider_id": { - "name": "provider_id", - "type": "TypeString", - "description": "Provider ID.", - "computed": true - }, - "provider_name": { - "name": "provider_name", - "type": "TypeString", - "description": "Provider name.", - "computed": true } } }, { - "name": "image_manifest_url", - "type": "TypeString", - "description": "If set, denotes a url to a YAML file with list of container images used by this version.", - "computed": true - }, - { - "name": "deprecated", - "type": "TypeBool", - "description": "read only field, indicating if this version is deprecated.", - "computed": true - }, - { - "name": "whitelisted_accounts", - "type": "TypeList", - "description": "Whitelisted accounts for version.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "sha", + "name": "version_id", "type": "TypeString", - "description": "hash of the content.", + "description": "Unique ID.", "computed": true }, { - "name": "tgz_url", + "name": "crn", "type": "TypeString", - "description": "File used to on-board this version.", + "description": "Version's CRN.", + "cloud_data_type": "crn", "computed": true }, { - "name": "version_id", + "name": "catalog_id", "type": "TypeString", - "description": "Unique ID.", + "description": "Catalog ID.", "computed": true }, { - "name": "repo_url", + "name": "package_version", "type": "TypeString", - "description": "Content's repo URL.", + "description": "Version of the package used to create this version.", "computed": true }, { - "name": "source_url", + "name": "image_pull_key_name", "type": "TypeString", - "description": "Content's source URL (e.g git repo).", + "description": "ID of the image pull key to use from Offering.ImagePullKeys.", "computed": true }, { - "name": "configuration", + "name": "deprecate_pending", "type": "TypeList", - "description": "List of user solicited overrides.", + "description": "Deprecation information for an Offering.", "computed": true, "elem": { - "custom_config": { - "name": "custom_config", - "type": "TypeList", - "description": "Render type.", - "computed": true, - "elem": { - "associations": { - "name": "associations", - "type": "TypeList", - "description": "List of parameters that are associated with this configuration.", - "computed": true, - "elem": { - "parameters": { - "name": "parameters", - "type": "TypeList", - "description": "Parameters for this association.", - "computed": true, - "elem": { - "name": { - "name": "name", - "type": "TypeString", - "description": "Name of this parameter.", - "computed": true - }, - "options_refresh": { - "name": "options_refresh", - "type": "TypeBool", - "description": "Refresh options.", - "computed": true - } - } - } - } - }, - "config_constraints": { - "name": "config_constraints", - "type": "TypeMap", - "description": "Map of constraint parameters that will be passed to the custom widget.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - "grouping": { - "name": "grouping", - "type": "TypeString", - "description": "Determines where this configuration type is rendered (3 sections today - Target, Resource, and Deployment).", - "computed": true - }, - "grouping_index": { - "name": "grouping_index", - "type": "TypeInt", - "description": "Determines the order that this configuration item shows in that particular grouping.", - "computed": true - }, - "original_grouping": { - "name": "original_grouping", - "type": "TypeString", - "description": "Original grouping type for this configuration (3 types - Target, Resource, and Deployment).", - "computed": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "ID of the widget type.", - "computed": true - } - } - }, - "default_value": { - "name": "default_value", - "type": "TypeString", - "description": "The default value as a JSON encoded string. To use a secret when the type is password, specify a JSON encoded value of $ref:#/components/schemas/SecretInstance, prefixed with `cmsm_v1:`.", - "computed": true - }, - "description": { - "name": "description", - "type": "TypeString", - "description": "Key description.", - "computed": true - }, - "display_name": { - "name": "display_name", - "type": "TypeString", - "description": "Display name for configuration type.", - "computed": true - }, - "hidden": { - "name": "hidden", - "type": "TypeBool", - "description": "Hide values.", - "computed": true - }, - "key": { - "name": "key", - "type": "TypeString", - "description": "Configuration key.", - "computed": true - }, - "options": { - "name": "options", - "type": "TypeList", - "description": "List of options of type.", - "computed": true, - "elem": { - "type": "TypeMap" - } - }, - "required": { - "name": "required", - "type": "TypeBool", - "description": "Is key required to install.", - "computed": true - }, - "type": { - "name": "type", + "deprecate_date": { + "name": "deprecate_date", "type": "TypeString", - "description": "Value type (string, boolean, int).", + "description": "Date of deprecation.", "computed": true }, - "type_metadata": { - "name": "type_metadata", + "deprecate_state": { + "name": "deprecate_state", "type": "TypeString", - "description": "The original type, as found in the source being onboarded.", + "description": "Deprecation state.", "computed": true }, - "value_constraint": { - "name": "value_constraint", + "description": { + "name": "description", "type": "TypeString", - "description": "Constraint associated with value, e.g., for string type - regx:[a-z].", "computed": true } } }, { - "name": "package_version", - "type": "TypeString", - "description": "Version of the package used to create this version.", + "name": "is_consumable", + "type": "TypeBool", + "description": "Is the version able to be shared.", "computed": true }, { - "name": "image_pull_key_name", + "name": "sha", "type": "TypeString", - "description": "ID of the image pull key to use from Offering.ImagePullKeys.", + "description": "hash of the content.", "computed": true }, { @@ -16440,108 +16578,144 @@ } }, { - "name": "required_resources", + "name": "install", "type": "TypeList", - "description": "Resource requirments for installation.", + "description": "Script information.", "computed": true, "elem": { - "type": { - "name": "type", + "delete_script": { + "name": "delete_script", "type": "TypeString", - "description": "Type of requirement.", + "description": "Optional script that if run will remove the installed version.", "computed": true }, - "value": { - "name": "value", - "type": "TypeString", - "description": "mem, disk, cores, and nodes can be parsed as an int. targetVersion will be a semver range value.", - "computed": true - } - } - }, - { - "name": "state", - "type": "TypeList", - "description": "Offering state.", - "computed": true, - "elem": { - "current": { - "name": "current", + "instructions": { + "name": "instructions", "type": "TypeString", - "description": "one of: new, validated, account-published, ibm-published, public-published.", + "description": "Instruction on step and by whom (role) that are needed to take place to prepare the target for installing this version.", "computed": true }, - "current_entered": { - "name": "current_entered", - "type": "TypeString", - "description": "Date and time of current request.", - "computed": true + "instructions_i18n": { + "name": "instructions_i18n", + "type": "TypeMap", + "description": "A map of translated strings, by language code.", + "computed": true, + "elem": { + "type": "TypeString" + } }, - "pending": { - "name": "pending", + "scope": { + "name": "scope", "type": "TypeString", - "description": "one of: new, validated, account-published, ibm-published, public-published.", + "description": "Optional value indicating if this script is scoped to a namespace or the entire cluster.", "computed": true }, - "pending_requested": { - "name": "pending_requested", + "script": { + "name": "script", "type": "TypeString", - "description": "Date and time of pending request.", + "description": "Optional script that needs to be run post any pre-condition script.", "computed": true }, - "previous": { - "name": "previous", + "script_permission": { + "name": "script_permission", "type": "TypeString", - "description": "one of: new, validated, account-published, ibm-published, public-published.", + "description": "Optional iam permissions that are required on the target cluster to run this script.", "computed": true } } }, { - "name": "deprecate_pending", + "name": "image_manifest_url", + "type": "TypeString", + "description": "If set, denotes a url to a YAML file with list of container images used by this version.", + "computed": true + }, + { + "name": "long_description", + "type": "TypeString", + "description": "Long description for version.", + "computed": true + }, + { + "name": "tags", "type": "TypeList", - "description": "Deprecation information for an Offering.", + "description": "List of tags associated with this catalog.", + "cloud_data_type": "tags", "computed": true, "elem": { - "deprecate_date": { - "name": "deprecate_date", + "type": "TypeString" + } + }, + { + "name": "source_url", + "type": "TypeString", + "description": "Content's source URL (e.g git repo).", + "computed": true + }, + { + "name": "entitlement", + "type": "TypeList", + "description": "Entitlement license info.", + "computed": true, + "elem": { + "image_repo_name": { + "name": "image_repo_name", "type": "TypeString", - "description": "Date of deprecation.", + "description": "Image repository name.", "computed": true }, - "deprecate_state": { - "name": "deprecate_state", + "part_numbers": { + "name": "part_numbers", + "type": "TypeList", + "description": "list of license entitlement part numbers, eg. D1YGZLL,D1ZXILL.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "product_id": { + "name": "product_id", "type": "TypeString", - "description": "Deprecation state.", + "description": "Product ID.", "computed": true }, - "description": { - "name": "description", + "provider_id": { + "name": "provider_id", + "type": "TypeString", + "description": "Provider ID.", + "computed": true + }, + "provider_name": { + "name": "provider_name", "type": "TypeString", + "description": "Provider name.", "computed": true } } - } - ], - "ibm_code_engine_app": [ - { - "name": "endpoint", - "type": "TypeString", - "description": "Optional URL to invoke app. Depending on visibility this is accessible publicly or in the private network only. Empty in case 'managed_domain_mappings' is set to 'local'.", - "computed": true }, { - "name": "entity_tag", + "name": "version_locator", "type": "TypeString", - "description": "The version of the app instance, which is used to achieve optimistic locking.", + "description": "A dotted value of `catalogID`.`versionID`.", "computed": true - }, + } + ], + "ibm_code_engine_app": [ { - "name": "scale_concurrency", + "name": "run_as_user", "type": "TypeInt", - "description": "Optional maximum number of requests that can be processed concurrently per instance.", + "description": "Optional user ID (UID) to run the app (e.g., `1001`).", "computed": true }, + { + "name": "run_commands", + "type": "TypeList", + "description": "Optional commands for the app that are passed to start the container. If not specified an empty string array will be applied and the command specified by the container image, will be used to start the container.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, { "name": "scale_min_instances", "type": "TypeInt", @@ -16549,48 +16723,34 @@ "computed": true }, { - "name": "endpoint_internal", + "name": "app_id", "type": "TypeString", - "description": "URL to app that is only visible within the project.", + "description": "The identifier of the resource.", "computed": true }, { - "name": "run_as_user", - "type": "TypeInt", - "description": "Optional user ID (UID) to run the app (e.g., `1001`).", + "name": "image_secret", + "type": "TypeString", + "description": "Optional name of the image registry access secret. The image registry access secret is used to authenticate with a private registry when you download the container image. If the image reference points to a registry that requires authentication, the app will be created but cannot reach the ready status, until this property is provided, too.", "computed": true }, { - "name": "scale_max_instances", + "name": "project_id", + "type": "TypeString", + "description": "The ID of the project.", + "required": true + }, + { + "name": "scale_request_timeout", "type": "TypeInt", - "description": "Optional maximum number of instances for this app. If you set this value to `0`, this property does not set a upper scaling limit. However, the app scaling is still limited by the project quota for instances. See [Limits and quotas for Code Engine](https://cloud.ibm.com/docs/codeengine?topic=codeengine-limits).", + "description": "Optional amount of time in seconds that is allowed for a running app to respond to a request.", "computed": true }, { - "name": "status_details", - "type": "TypeList", - "description": "The detailed status of the application.", - "computed": true, - "elem": { - "latest_created_revision": { - "name": "latest_created_revision", - "type": "TypeString", - "description": "Latest app revision that has been created.", - "computed": true - }, - "latest_ready_revision": { - "name": "latest_ready_revision", - "type": "TypeString", - "description": "Latest app revision that reached a ready state.", - "computed": true - }, - "reason": { - "name": "reason", - "type": "TypeString", - "description": "Optional information to provide more context in case of a 'failed' or 'warning' status.", - "computed": true - } - } + "name": "image_reference", + "type": "TypeString", + "description": "The name of the image that is used for this app. The format is `REGISTRY/NAMESPACE/REPOSITORY:TAG` where `REGISTRY` and `TAG` are optional. If `REGISTRY` is not specified, the default is `docker.io`. If `TAG` is not specified, the default is `latest`. If the image reference points to a registry that requires authentication, make sure to also specify the property `image_secret`.", + "computed": true }, { "name": "run_env_variables", @@ -16637,45 +16797,15 @@ } }, { - "name": "run_service_account", - "type": "TypeString", - "description": "Optional name of the service account. For built-in service accounts, you can use the shortened names `manager` , `none`, `reader`, and `writer`.", - "computed": true - }, - { - "name": "scale_cpu_limit", - "type": "TypeString", - "description": "Optional number of CPU set for the instance of the app. For valid values see [Supported memory and CPU combinations](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo).", - "computed": true - }, - { - "name": "scale_ephemeral_storage_limit", - "type": "TypeString", - "description": "Optional amount of ephemeral storage to set for the instance of the app. The amount specified as ephemeral storage, must not exceed the amount of `scale_memory_limit`. The units for specifying ephemeral storage are Megabyte (M) or Gigabyte (G), whereas G and M are the shorthand expressions for GB and MB. For more information see [Units of measurement](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo#unit-measurements).", - "computed": true - }, - { - "name": "scale_memory_limit", - "type": "TypeString", - "description": "Optional amount of memory set for the instance of the app. For valid values see [Supported memory and CPU combinations](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo). The units for specifying memory are Megabyte (M) or Gigabyte (G), whereas G and M are the shorthand expressions for GB and MB. For more information see [Units of measurement](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo#unit-measurements).", - "computed": true - }, - { - "name": "app_id", - "type": "TypeString", - "description": "The identifier of the resource.", - "computed": true - }, - { - "name": "image_reference", + "name": "name", "type": "TypeString", - "description": "The name of the image that is used for this app. The format is `REGISTRY/NAMESPACE/REPOSITORY:TAG` where `REGISTRY` and `TAG` are optional. If `REGISTRY` is not specified, the default is `docker.io`. If `TAG` is not specified, the default is `latest`. If the image reference points to a registry that requires authentication, make sure to also specify the property `image_secret`.", - "computed": true + "description": "The name of your application.", + "required": true }, { - "name": "managed_domain_mappings", - "type": "TypeString", - "description": "Optional value controlling which of the system managed domain mappings will be setup for the application. Valid values are 'local_public', 'local_private' and 'local'. Visibility can only be 'local_private' if the project supports application private visibility.", + "name": "image_port", + "type": "TypeInt", + "description": "Optional port the app listens on. While the app will always be exposed via port `443` for end users, this port is used to connect to the port that is exposed by the container image.", "computed": true }, { @@ -16711,9 +16841,30 @@ } }, { - "name": "scale_initial_instances", + "name": "scale_concurrency", "type": "TypeInt", - "description": "Optional initial number of instances that are created upon app creation or app update.", + "description": "Optional maximum number of requests that can be processed concurrently per instance.", + "computed": true + }, + { + "name": "endpoint_internal", + "type": "TypeString", + "description": "URL to app that is only visible within the project.", + "computed": true + }, + { + "name": "run_arguments", + "type": "TypeList", + "description": "Optional arguments for the app that are passed to start the container. If not specified an empty string array will be applied and the arguments specified by the container image, will be used to start the container.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "scale_memory_limit", + "type": "TypeString", + "description": "Optional amount of memory set for the instance of the app. For valid values see [Supported memory and CPU combinations](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo). The units for specifying memory are Megabyte (M) or Gigabyte (G), whereas G and M are the shorthand expressions for GB and MB. For more information see [Units of measurement](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo#unit-measurements).", "computed": true }, { @@ -16723,38 +16874,61 @@ "computed": true }, { - "name": "status", + "name": "scale_cpu_limit", "type": "TypeString", - "description": "The current status of the app.", + "description": "Optional number of CPU set for the instance of the app. For valid values see [Supported memory and CPU combinations](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo).", "computed": true }, { - "name": "href", + "name": "managed_domain_mappings", "type": "TypeString", - "description": "When you provision a new app, a URL is created identifying the location of the instance.", + "description": "Optional value controlling which of the system managed domain mappings will be setup for the application. Valid values are 'local_public', 'local_private' and 'local'. Visibility can only be 'local_private' if the project supports application private visibility.", "computed": true }, { - "name": "image_secret", + "name": "scale_initial_instances", + "type": "TypeInt", + "description": "Optional initial number of instances that are created upon app creation or app update.", + "computed": true + }, + { + "name": "run_service_account", "type": "TypeString", - "description": "Optional name of the image registry access secret. The image registry access secret is used to authenticate with a private registry when you download the container image. If the image reference points to a registry that requires authentication, the app will be created but cannot reach the ready status, until this property is provided, too.", + "description": "Optional name of the service account. For built-in service accounts, you can use the shortened names `manager` , `none`, `reader`, and `writer`.", "computed": true }, { - "name": "run_commands", + "name": "scale_max_instances", + "type": "TypeInt", + "description": "Optional maximum number of instances for this app. If you set this value to `0`, this property does not set a upper scaling limit. However, the app scaling is still limited by the project quota for instances. See [Limits and quotas for Code Engine](https://cloud.ibm.com/docs/codeengine?topic=codeengine-limits).", + "computed": true + }, + { + "name": "status_details", "type": "TypeList", - "description": "Optional commands for the app that are passed to start the container. If not specified an empty string array will be applied and the command specified by the container image, will be used to start the container.", + "description": "The detailed status of the application.", "computed": true, "elem": { - "type": "TypeString" + "latest_created_revision": { + "name": "latest_created_revision", + "type": "TypeString", + "description": "Latest app revision that has been created.", + "computed": true + }, + "latest_ready_revision": { + "name": "latest_ready_revision", + "type": "TypeString", + "description": "Latest app revision that reached a ready state.", + "computed": true + }, + "reason": { + "name": "reason", + "type": "TypeString", + "description": "Optional information to provide more context in case of a 'failed' or 'warning' status.", + "computed": true + } } }, - { - "name": "project_id", - "type": "TypeString", - "description": "The ID of the project.", - "required": true - }, { "name": "created_at", "type": "TypeString", @@ -16762,9 +16936,9 @@ "computed": true }, { - "name": "image_port", - "type": "TypeInt", - "description": "Optional port the app listens on. While the app will always be exposed via port `443` for end users, this port is used to connect to the port that is exposed by the container image.", + "name": "entity_tag", + "type": "TypeString", + "description": "The version of the app instance, which is used to achieve optimistic locking.", "computed": true }, { @@ -16774,52 +16948,31 @@ "computed": true }, { - "name": "run_arguments", - "type": "TypeList", - "description": "Optional arguments for the app that are passed to start the container. If not specified an empty string array will be applied and the arguments specified by the container image, will be used to start the container.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "name", + "name": "scale_ephemeral_storage_limit", "type": "TypeString", - "description": "The name of your application.", - "required": true - }, - { - "name": "scale_request_timeout", - "type": "TypeInt", - "description": "Optional amount of time in seconds that is allowed for a running app to respond to a request.", + "description": "Optional amount of ephemeral storage to set for the instance of the app. The amount specified as ephemeral storage, must not exceed the amount of `scale_memory_limit`. The units for specifying ephemeral storage are Megabyte (M) or Gigabyte (G), whereas G and M are the shorthand expressions for GB and MB. For more information see [Units of measurement](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo#unit-measurements).", "computed": true - } - ], - "ibm_code_engine_binding": [ - { - "name": "binding_id", - "type": "TypeString", - "description": "The ID of the binding.", - "required": true }, { - "name": "prefix", + "name": "status", "type": "TypeString", - "description": "The value that is set as prefix in the component that is bound.", + "description": "The current status of the app.", "computed": true }, { - "name": "resource_type", + "name": "endpoint", "type": "TypeString", - "description": "The type of the binding.", + "description": "Optional URL to invoke app. Depending on visibility this is accessible publicly or in the private network only. Empty in case 'managed_domain_mappings' is set to 'local'.", "computed": true }, { - "name": "secret_name", + "name": "href", "type": "TypeString", - "description": "The service access secret that is bound to a component.", + "description": "When you provision a new app, a URL is created identifying the location of the instance.", "computed": true - }, + } + ], + "ibm_code_engine_binding": [ { "name": "status", "type": "TypeString", @@ -16857,31 +17010,55 @@ "type": "TypeString", "description": "When you provision a new binding, a URL is created identifying the location of the instance.", "computed": true + }, + { + "name": "binding_id", + "type": "TypeString", + "description": "The ID of the binding.", + "required": true + }, + { + "name": "prefix", + "type": "TypeString", + "description": "The value that is set as prefix in the component that is bound.", + "computed": true + }, + { + "name": "resource_type", + "type": "TypeString", + "description": "The type of the binding.", + "computed": true + }, + { + "name": "secret_name", + "type": "TypeString", + "description": "The service access secret that is bound to a component.", + "computed": true } ], "ibm_code_engine_build": [ { - "name": "project_id", + "name": "source_url", "type": "TypeString", - "description": "The ID of the project.", - "required": true + "description": "The URL of the code repository. This field is required if the `source_type` is `git`. If the `source_type` value is `local`, this field must be omitted. If the repository is publicly available you can provide a 'https' URL like `https://github.com/IBM/CodeEngine`. If the repository requires authentication, you need to provide a 'ssh' URL like `git@github.com:IBM/CodeEngine.git` along with a `source_secret` that points to a secret of format `ssh_auth`.", + "computed": true }, { - "name": "name", + "name": "source_context_dir", "type": "TypeString", - "description": "The name of your build.", - "required": true + "description": "Option directory in the repository that contains the buildpacks file or the Dockerfile.", + "computed": true }, { - "name": "resource_type", + "name": "source_revision", "type": "TypeString", - "description": "The type of the build.", + "description": "Commit, tag, or branch in the source repository to pull. This field is optional if the `source_type` is `git` and uses the HEAD of default branch if not specified. If the `source_type` value is `local`, this field must be omitted.", "computed": true }, { - "name": "source_type", + "name": "status", "type": "TypeString", - "description": "Specifies the type of source to determine if your build source is in a repository or based on local source code.* local - For builds from local source code.* git - For builds from git version controlled source code.", + "description": "The current status of the build.", "computed": true }, { @@ -16899,15 +17076,9 @@ } }, { - "name": "strategy_type", + "name": "strategy_size", "type": "TypeString", - "description": "The strategy to use for building the image.", - "computed": true - }, - { - "name": "timeout", - "type": "TypeInt", - "description": "The maximum amount of time, in seconds, that can pass before the build must succeed or fail.", + "description": "Optional size for the build, which determines the amount of resources used. Build sizes are `small`, `medium`, `large`, `xlarge`.", "computed": true }, { @@ -16917,27 +17088,27 @@ "computed": true }, { - "name": "output_secret", + "name": "build_id", "type": "TypeString", - "description": "The secret that is required to access the image registry. Make sure that the secret is granted with push permissions towards the specified container registry namespace.", + "description": "The identifier of the resource.", "computed": true }, { - "name": "source_secret", + "name": "resource_type", "type": "TypeString", - "description": "Name of the secret that is used access the repository source. This field is optional if the `source_type` is `git`. Additionally, if the `source_url` points to a repository that requires authentication, the build will be created but cannot access any source code, until this property is provided, too. If the `source_type` value is `local`, this field must be omitted.", + "description": "The type of the build.", "computed": true }, { - "name": "status", + "name": "source_secret", "type": "TypeString", - "description": "The current status of the build.", + "description": "Name of the secret that is used access the repository source. This field is optional if the `source_type` is `git`. Additionally, if the `source_url` points to a repository that requires authentication, the build will be created but cannot access any source code, until this property is provided, too. If the `source_type` value is `local`, this field must be omitted.", "computed": true }, { - "name": "strategy_size", + "name": "source_type", "type": "TypeString", - "description": "Optional size for the build, which determines the amount of resources used. Build sizes are `small`, `medium`, `large`, `xlarge`.", + "description": "Specifies the type of source to determine if your build source is in a repository or based on local source code.* local - For builds from local source code.* git - For builds from git version controlled source code.", "computed": true }, { @@ -16947,49 +17118,73 @@ "computed": true }, { - "name": "entity_tag", - "type": "TypeString", - "description": "The version of the build instance, which is used to achieve optimistic locking.", + "name": "timeout", + "type": "TypeInt", + "description": "The maximum amount of time, in seconds, that can pass before the build must succeed or fail.", "computed": true }, { - "name": "build_id", + "name": "project_id", "type": "TypeString", - "description": "The identifier of the resource.", - "computed": true + "description": "The ID of the project.", + "required": true }, { - "name": "source_context_dir", + "name": "output_secret", "type": "TypeString", - "description": "Option directory in the repository that contains the buildpacks file or the Dockerfile.", + "description": "The secret that is required to access the image registry. Make sure that the secret is granted with push permissions towards the specified container registry namespace.", "computed": true }, { - "name": "source_revision", + "name": "href", "type": "TypeString", - "description": "Commit, tag, or branch in the source repository to pull. This field is optional if the `source_type` is `git` and uses the HEAD of default branch if not specified. If the `source_type` value is `local`, this field must be omitted.", + "description": "When you provision a new build, a URL is created identifying the location of the instance.", "computed": true }, { - "name": "source_url", + "name": "output_image", "type": "TypeString", - "description": "The URL of the code repository. This field is required if the `source_type` is `git`. If the `source_type` value is `local`, this field must be omitted. If the repository is publicly available you can provide a 'https' URL like `https://github.com/IBM/CodeEngine`. If the repository requires authentication, you need to provide a 'ssh' URL like `git@github.com:IBM/CodeEngine.git` along with a `source_secret` that points to a secret of format `ssh_auth`.", + "description": "The name of the image.", "computed": true }, { - "name": "href", + "name": "strategy_type", "type": "TypeString", - "description": "When you provision a new build, a URL is created identifying the location of the instance.", + "description": "The strategy to use for building the image.", "computed": true }, { - "name": "output_image", + "name": "name", "type": "TypeString", - "description": "The name of the image.", + "description": "The name of your build.", + "required": true + }, + { + "name": "entity_tag", + "type": "TypeString", + "description": "The version of the build instance, which is used to achieve optimistic locking.", "computed": true } ], "ibm_code_engine_config_map": [ + { + "name": "project_id", + "type": "TypeString", + "description": "The ID of the project.", + "required": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The name of your configmap.", + "required": true + }, + { + "name": "created_at", + "type": "TypeString", + "description": "The timestamp when the resource was created.", + "computed": true + }, { "name": "data", "type": "TypeMap", @@ -17022,49 +17217,25 @@ "type": "TypeString", "description": "The type of the config map.", "computed": true - }, - { - "name": "project_id", - "type": "TypeString", - "description": "The ID of the project.", - "required": true - }, - { - "name": "name", - "type": "TypeString", - "description": "The name of your configmap.", - "required": true - }, - { - "name": "created_at", - "type": "TypeString", - "description": "The timestamp when the resource was created.", - "computed": true } ], "ibm_code_engine_job": [ { - "name": "scale_max_execution_time", - "type": "TypeInt", - "description": "The maximum execution time in seconds for runs of the job. This property can only be specified if `run_mode` is `task`.", - "computed": true - }, - { - "name": "entity_tag", + "name": "job_id", "type": "TypeString", - "description": "The version of the job instance, which is used to achieve optimistic locking.", + "description": "The identifier of the resource.", "computed": true }, { - "name": "resource_type", + "name": "image_secret", "type": "TypeString", - "description": "The type of the job.", + "description": "The name of the image registry access secret. The image registry access secret is used to authenticate with a private registry when you download the container image. If the image reference points to a registry that requires authentication, the job / job runs will be created but submitted job runs will fail, until this property is provided, too. This property must not be set on a job run, which references a job template.", "computed": true }, { - "name": "run_arguments", + "name": "run_commands", "type": "TypeList", - "description": "Set arguments for the job that are passed to start job run containers. If not specified an empty string array will be applied and the arguments specified by the container image, will be used to start the container.", + "description": "Set commands for the job that are passed to start job run containers. If not specified an empty string array will be applied and the command specified by the container image, will be used to start the container.", "computed": true, "elem": { "type": "TypeString" @@ -17115,23 +17286,38 @@ } }, { - "name": "name", + "name": "created_at", "type": "TypeString", - "description": "The name of your job.", - "required": true + "description": "The timestamp when the resource was created.", + "computed": true }, { - "name": "image_secret", + "name": "scale_cpu_limit", "type": "TypeString", - "description": "The name of the image registry access secret. The image registry access secret is used to authenticate with a private registry when you download the container image. If the image reference points to a registry that requires authentication, the job / job runs will be created but submitted job runs will fail, until this property is provided, too. This property must not be set on a job run, which references a job template.", + "description": "Optional amount of CPU set for the instance of the job. For valid values see [Supported memory and CPU combinations](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo).", "computed": true }, { - "name": "run_as_user", - "type": "TypeInt", - "description": "The user ID (UID) to run the job (e.g., 1001).", + "name": "href", + "type": "TypeString", + "description": "When you provision a new job, a URL is created identifying the location of the instance.", + "computed": true + }, + { + "name": "image_reference", + "type": "TypeString", + "description": "The name of the image that is used for this job. The format is `REGISTRY/NAMESPACE/REPOSITORY:TAG` where `REGISTRY` and `TAG` are optional. If `REGISTRY` is not specified, the default is `docker.io`. If `TAG` is not specified, the default is `latest`. If the image reference points to a registry that requires authentication, make sure to also specify the property `image_secret`.", "computed": true }, + { + "name": "run_arguments", + "type": "TypeList", + "description": "Set arguments for the job that are passed to start job run containers. If not specified an empty string array will be applied and the arguments specified by the container image, will be used to start the container.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, { "name": "run_env_variables", "type": "TypeList", @@ -17177,111 +17363,102 @@ } }, { - "name": "scale_retry_limit", - "type": "TypeInt", - "description": "The number of times to rerun an instance of the job before the job is marked as failed. This property can only be specified if `run_mode` is `task`.", - "computed": true - }, - { - "name": "scale_memory_limit", + "name": "scale_array_spec", "type": "TypeString", - "description": "Optional amount of memory set for the instance of the job. For valid values see [Supported memory and CPU combinations](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo). The units for specifying memory are Megabyte (M) or Gigabyte (G), whereas G and M are the shorthand expressions for GB and MB. For more information see [Units of measurement](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo#unit-measurements).", + "description": "Define a custom set of array indices as comma-separated list containing single values and hyphen-separated ranges like `5,12-14,23,27`. Each instance can pick up its array index via environment variable `JOB_INDEX`. The number of unique array indices specified here determines the number of job instances to run.", "computed": true }, { - "name": "project_id", + "name": "scale_ephemeral_storage_limit", "type": "TypeString", - "description": "The ID of the project.", - "required": true + "description": "Optional amount of ephemeral storage to set for the instance of the job. The amount specified as ephemeral storage, must not exceed the amount of `scale_memory_limit`. The units for specifying ephemeral storage are Megabyte (M) or Gigabyte (G), whereas G and M are the shorthand expressions for GB and MB. For more information see [Units of measurement](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo#unit-measurements).", + "computed": true }, { - "name": "job_id", + "name": "scale_memory_limit", "type": "TypeString", - "description": "The identifier of the resource.", + "description": "Optional amount of memory set for the instance of the job. For valid values see [Supported memory and CPU combinations](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo). The units for specifying memory are Megabyte (M) or Gigabyte (G), whereas G and M are the shorthand expressions for GB and MB. For more information see [Units of measurement](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo#unit-measurements).", "computed": true }, { - "name": "image_reference", - "type": "TypeString", - "description": "The name of the image that is used for this job. The format is `REGISTRY/NAMESPACE/REPOSITORY:TAG` where `REGISTRY` and `TAG` are optional. If `REGISTRY` is not specified, the default is `docker.io`. If `TAG` is not specified, the default is `latest`. If the image reference points to a registry that requires authentication, make sure to also specify the property `image_secret`.", + "name": "scale_retry_limit", + "type": "TypeInt", + "description": "The number of times to rerun an instance of the job before the job is marked as failed. This property can only be specified if `run_mode` is `task`.", "computed": true }, { - "name": "scale_array_spec", + "name": "project_id", "type": "TypeString", - "description": "Define a custom set of array indices as comma-separated list containing single values and hyphen-separated ranges like `5,12-14,23,27`. Each instance can pick up its array index via environment variable `JOB_INDEX`. The number of unique array indices specified here determines the number of job instances to run.", - "computed": true + "description": "The ID of the project.", + "required": true }, { - "name": "scale_cpu_limit", + "name": "name", "type": "TypeString", - "description": "Optional amount of CPU set for the instance of the job. For valid values see [Supported memory and CPU combinations](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo).", - "computed": true + "description": "The name of your job.", + "required": true }, { - "name": "scale_ephemeral_storage_limit", + "name": "entity_tag", "type": "TypeString", - "description": "Optional amount of ephemeral storage to set for the instance of the job. The amount specified as ephemeral storage, must not exceed the amount of `scale_memory_limit`. The units for specifying ephemeral storage are Megabyte (M) or Gigabyte (G), whereas G and M are the shorthand expressions for GB and MB. For more information see [Units of measurement](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo#unit-measurements).", + "description": "The version of the job instance, which is used to achieve optimistic locking.", "computed": true }, { - "name": "created_at", + "name": "resource_type", "type": "TypeString", - "description": "The timestamp when the resource was created.", + "description": "The type of the job.", "computed": true }, { - "name": "href", - "type": "TypeString", - "description": "When you provision a new job, a URL is created identifying the location of the instance.", + "name": "run_as_user", + "type": "TypeInt", + "description": "The user ID (UID) to run the job (e.g., 1001).", "computed": true }, { - "name": "run_commands", - "type": "TypeList", - "description": "Set commands for the job that are passed to start job run containers. If not specified an empty string array will be applied and the command specified by the container image, will be used to start the container.", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "scale_max_execution_time", + "type": "TypeInt", + "description": "The maximum execution time in seconds for runs of the job. This property can only be specified if `run_mode` is `task`.", + "computed": true } ], "ibm_code_engine_project": [ { - "name": "href", + "name": "region", "type": "TypeString", - "description": "When you provision a new resource, a URL is created identifying the location of the instance.", + "description": "The region for your project deployment. Possible values: 'au-syd', 'br-sao', 'ca-tor', 'eu-de', 'eu-gb', 'jp-osa', 'jp-tok', 'us-east', 'us-south'.", + "cloud_data_type": "region", "computed": true }, { - "name": "name", + "name": "project_id", "type": "TypeString", - "description": "The name of the project.", - "computed": true + "description": "The ID of the project.", + "required": true }, { - "name": "region", + "name": "account_id", "type": "TypeString", - "description": "The region for your project deployment. Possible values: 'au-syd', 'br-sao', 'ca-tor', 'eu-de', 'eu-gb', 'jp-osa', 'jp-tok', 'us-east', 'us-south'.", - "cloud_data_type": "region", + "description": "An alphanumeric value identifying the account ID.", "computed": true }, { - "name": "resource_type", + "name": "created_at", "type": "TypeString", - "description": "The type of the project.", + "description": "The timestamp when the project was created.", "computed": true }, { - "name": "created_at", + "name": "href", "type": "TypeString", - "description": "The timestamp when the project was created.", + "description": "When you provision a new resource, a URL is created identifying the location of the instance.", "computed": true }, { - "name": "account_id", + "name": "name", "type": "TypeString", - "description": "An alphanumeric value identifying the account ID.", + "description": "The name of the project.", "computed": true }, { @@ -17299,19 +17476,43 @@ "computed": true }, { - "name": "status", + "name": "resource_type", "type": "TypeString", - "description": "The current state of the project. For example, if the project is created and ready to get used, it will return active.", + "description": "The type of the project.", "computed": true }, { - "name": "project_id", + "name": "status", "type": "TypeString", - "description": "The ID of the project.", - "required": true + "description": "The current state of the project. For example, if the project is created and ready to get used, it will return active.", + "computed": true } ], "ibm_code_engine_secret": [ + { + "name": "name", + "type": "TypeString", + "description": "The name of your secret.", + "required": true + }, + { + "name": "created_at", + "type": "TypeString", + "description": "The timestamp when the resource was created.", + "computed": true + }, + { + "name": "format", + "type": "TypeString", + "description": "Specify the format of the secret.", + "computed": true + }, + { + "name": "resource_type", + "type": "TypeString", + "description": "The type of the secret.", + "computed": true + }, { "name": "secret_id", "type": "TypeString", @@ -17392,12 +17593,6 @@ "description": "The ID of the project.", "required": true }, - { - "name": "name", - "type": "TypeString", - "description": "The name of your secret.", - "required": true - }, { "name": "data", "type": "TypeMap", @@ -17413,62 +17608,14 @@ "description": "The version of the secret instance, which is used to achieve optimistic locking.", "computed": true }, - { - "name": "created_at", - "type": "TypeString", - "description": "The timestamp when the resource was created.", - "computed": true - }, - { - "name": "format", - "type": "TypeString", - "description": "Specify the format of the secret.", - "computed": true - }, { "name": "href", "type": "TypeString", "description": "When you provision a new secret, a URL is created identifying the location of the instance.", "computed": true - }, - { - "name": "resource_type", - "type": "TypeString", - "description": "The type of the secret.", - "computed": true } ], "ibm_compute_bare_metal": [ - { - "name": "private_network_only", - "type": "TypeBool", - "description": "Specifies whether the server only has access to the private network.", - "computed": true - }, - { - "name": "unbonded_network", - "type": "TypeBool", - "description": "When the value is `true`, two physical network interfaces are provided without a bonding configuration.", - "computed": true - }, - { - "name": "os_reference_code", - "type": "TypeString", - "computed": true - }, - { - "name": "ipv6_enabled", - "type": "TypeBool", - "description": "Indicates whether the public IPv6 address enabled or not", - "computed": true - }, - { - "name": "most_recent", - "type": "TypeBool", - "description": "If true and multiple entries are found, the most recently created bare metal is used. If false, an error is returned", - "default_value": false, - "optional": true - }, { "name": "hostname", "type": "TypeString", @@ -17477,81 +17624,80 @@ "computed": true }, { - "name": "public_bandwidth", - "type": "TypeInt", - "description": "The amount of public network traffic, allowed per month.", + "name": "private_ipv4_address", + "type": "TypeString", + "description": "The private IPv4 address of the bare metal server.", "computed": true }, { - "name": "redundant_network", - "type": "TypeBool", - "description": "When the value is `true`, two physical network interfaces are provided with a bonding configuration.", + "name": "datacenter", + "type": "TypeString", + "description": "Datacenter in which the bare metal is deployed", "computed": true }, { - "name": "secondary_ip_addresses", - "type": "TypeList", - "description": "The public secondary IPv4 addresses of the bare metal server.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "hourly_billing", - "type": "TypeBool", - "description": "The billing type of the server.", + "name": "os_reference_code", + "type": "TypeString", "computed": true }, { - "name": "memory", - "type": "TypeInt", - "description": "The amount of memory in gigabytes, for the server.", + "name": "global_identifier", + "type": "TypeString", + "description": "The unique global identifier of the bare metal server", + "optional": true, "computed": true }, { - "name": "public_ipv4_address_id", + "name": "network_speed", "type": "TypeInt", + "description": "The connection speed, expressed in Mbps, for the server network components.", "computed": true }, { - "name": "user_metadata", + "name": "public_ipv4_address", "type": "TypeString", - "description": "Arbitrary data available to the computing server.", + "description": "The public IPv4 address of the bare metal server.", "computed": true }, { - "name": "notes", - "type": "TypeString", - "description": "Notes associated with the server.", + "name": "public_ipv4_address_id", + "type": "TypeInt", "computed": true }, { - "name": "redundant_power_supply", - "type": "TypeBool", - "description": "When the value is `true`, it indicates additional power supply is provided.", + "name": "private_vlan_id", + "type": "TypeInt", + "description": "The private VLAN used for the private network interface of the server.", "computed": true }, { - "name": "ipv6_address", + "name": "user_metadata", "type": "TypeString", - "description": "The public IPv6 address of the bare metal server", + "description": "Arbitrary data available to the computing server.", "computed": true }, { - "name": "ipv6_address_id", + "name": "memory", "type": "TypeInt", + "description": "The amount of memory in gigabytes, for the server.", "computed": true }, { - "name": "public_ipv4_address", - "type": "TypeString", - "description": "The public IPv4 address of the bare metal server.", + "name": "unbonded_network", + "type": "TypeBool", + "description": "When the value is `true`, two physical network interfaces are provided without a bonding configuration.", "computed": true }, { - "name": "private_ipv4_address_id", + "name": "secondary_ip_count", + "type": "TypeInt", + "description": "The number of secondary IPv4 addresses of the bare metal server.", + "computed": true + }, + { + "name": "public_vlan_id", "type": "TypeInt", + "description": "The public VLAN used for the public network interface of the server.", "computed": true }, { @@ -17565,42 +17711,52 @@ } }, { - "name": "block_storage_ids", - "type": "TypeSet", - "description": "Block storage to which this computing server have access.", - "computed": true, - "elem": { - "type": "TypeInt" - } + "name": "ipv6_enabled", + "type": "TypeBool", + "description": "Indicates whether the public IPv6 address enabled or not", + "computed": true }, { - "name": "secondary_ip_count", - "type": "TypeInt", - "description": "The number of secondary IPv4 addresses of the bare metal server.", + "name": "ipv6_address", + "type": "TypeString", + "description": "The public IPv6 address of the bare metal server", "computed": true }, { - "name": "private_ipv4_address", + "name": "most_recent", + "type": "TypeBool", + "description": "If true and multiple entries are found, the most recently created bare metal is used. If false, an error is returned", + "default_value": false, + "optional": true + }, + { + "name": "domain", "type": "TypeString", - "description": "The private IPv4 address of the bare metal server.", + "description": "The domain of the bare metal server", + "optional": true, "computed": true }, { - "name": "private_vlan_id", + "name": "private_ipv4_address_id", "type": "TypeInt", - "description": "The private VLAN used for the private network interface of the server.", "computed": true }, { - "name": "public_vlan_id", - "type": "TypeInt", - "description": "The public VLAN used for the public network interface of the server.", + "name": "hourly_billing", + "type": "TypeBool", + "description": "The billing type of the server.", "computed": true }, { - "name": "public_subnet", - "type": "TypeInt", - "description": "The public subnet used for the public network interface of the server.", + "name": "private_network_only", + "type": "TypeBool", + "description": "Specifies whether the server only has access to the private network.", + "computed": true + }, + { + "name": "redundant_network", + "type": "TypeBool", + "description": "When the value is `true`, two physical network interfaces are provided with a bonding configuration.", "computed": true }, { @@ -17613,36 +17769,57 @@ } }, { - "name": "domain", - "type": "TypeString", - "description": "The domain of the bare metal server", - "optional": true, + "name": "ipv6_address_id", + "type": "TypeInt", "computed": true }, { - "name": "datacenter", - "type": "TypeString", - "description": "Datacenter in which the bare metal is deployed", + "name": "private_subnet", + "type": "TypeInt", + "description": "The private subnet used for the private network interface of the server.", "computed": true }, { - "name": "private_subnet", + "name": "secondary_ip_addresses", + "type": "TypeList", + "description": "The public secondary IPv4 addresses of the bare metal server.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "public_bandwidth", "type": "TypeInt", - "description": "The private subnet used for the private network interface of the server.", + "description": "The amount of public network traffic, allowed per month.", "computed": true }, { - "name": "global_identifier", + "name": "public_subnet", + "type": "TypeInt", + "description": "The public subnet used for the public network interface of the server.", + "computed": true + }, + { + "name": "notes", "type": "TypeString", - "description": "The unique global identifier of the bare metal server", - "optional": true, + "description": "Notes associated with the server.", "computed": true }, { - "name": "network_speed", - "type": "TypeInt", - "description": "The connection speed, expressed in Mbps, for the server network components.", + "name": "redundant_power_supply", + "type": "TypeBool", + "description": "When the value is `true`, it indicates additional power supply is provided.", "computed": true + }, + { + "name": "block_storage_ids", + "type": "TypeSet", + "description": "Block storage to which this computing server have access.", + "computed": true, + "elem": { + "type": "TypeInt" + } } ], "ibm_compute_image_template": [ @@ -17704,31 +17881,6 @@ } ], "ibm_compute_reserved_capacity": [ - { - "name": "name", - "type": "TypeString", - "description": "Name of reserved instance", - "required": true - }, - { - "name": "most_recent", - "type": "TypeBool", - "description": "If true and multiple entries are found, the most recently created reserved capacity is used. If false, an error is returned", - "default_value": false, - "optional": true - }, - { - "name": "datacenter", - "type": "TypeString", - "description": "Dataceneter name", - "computed": true - }, - { - "name": "pod", - "type": "TypeString", - "description": "Pod name", - "computed": true - }, { "name": "instances", "type": "TypeInt", @@ -17762,21 +17914,34 @@ "computed": true } } - } - ], - "ibm_compute_ssh_key": [ + }, { - "name": "label", + "name": "name", "type": "TypeString", - "description": "The label associated with the ssh key", + "description": "Name of reserved instance", "required": true }, { - "name": "public_key", + "name": "most_recent", + "type": "TypeBool", + "description": "If true and multiple entries are found, the most recently created reserved capacity is used. If false, an error is returned", + "default_value": false, + "optional": true + }, + { + "name": "datacenter", "type": "TypeString", - "description": "The public ssh key", + "description": "Dataceneter name", "computed": true }, + { + "name": "pod", + "type": "TypeString", + "description": "Pod name", + "computed": true + } + ], + "ibm_compute_ssh_key": [ { "name": "fingerprint", "type": "TypeString", @@ -17795,15 +17960,21 @@ "description": "If true and multiple entries are found, the most recently created key is used. If false, an error is returned", "default_value": false, "optional": true - } - ], - "ibm_compute_vm_instance": [ + }, { - "name": "datacenter", + "name": "label", "type": "TypeString", - "description": "Datacenter in which the virtual guest is deployed", - "computed": true + "description": "The label associated with the ssh key", + "required": true }, + { + "name": "public_key", + "type": "TypeString", + "description": "The public ssh key", + "computed": true + } + ], + "ibm_compute_vm_instance": [ { "name": "private_subnet_id", "type": "TypeInt", @@ -17815,46 +17986,48 @@ "computed": true }, { - "name": "public_ipv6_subnet_id", + "name": "last_known_power_state", "type": "TypeString", + "description": "The last known power state of a virtual guest in the event the guest is turned off outside of IMS or has gone offline.", "computed": true }, { - "name": "hostname", - "type": "TypeString", - "description": "The hostname of the virtual guest", - "required": true - }, - { - "name": "status", + "name": "power_state", "type": "TypeString", - "description": "The VSI status", + "description": "The current power state of a virtual guest.", "computed": true }, { - "name": "public_interface_id", + "name": "ip_address_id_private", "type": "TypeInt", "computed": true }, { - "name": "public_subnet_id", - "type": "TypeInt", + "name": "ipv6_address", + "type": "TypeString", "computed": true }, { - "name": "ip_address_id", - "type": "TypeInt", - "computed": true + "name": "domain", + "type": "TypeString", + "description": "The domain of the virtual guest", + "required": true }, { - "name": "secondary_ip_count", + "name": "most_recent", + "type": "TypeBool", + "description": "If true and multiple entries are found, the most recently created virtual guest is used. If false, an error is returned", + "default_value": false, + "optional": true + }, + { + "name": "private_interface_id", "type": "TypeInt", "computed": true }, { - "name": "last_known_power_state", - "type": "TypeString", - "description": "The last known power state of a virtual guest in the event the guest is turned off outside of IMS or has gone offline.", + "name": "public_subnet_id", + "type": "TypeInt", "computed": true }, { @@ -17863,8 +18036,8 @@ "computed": true }, { - "name": "ipv4_address_private", - "type": "TypeString", + "name": "ip_address_id", + "type": "TypeInt", "computed": true }, { @@ -17873,24 +18046,10 @@ "computed": true }, { - "name": "secondary_ip_addresses", - "type": "TypeList", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "ipv6_address", - "type": "TypeString", + "name": "secondary_ip_count", + "type": "TypeInt", "computed": true }, - { - "name": "domain", - "type": "TypeString", - "description": "The domain of the virtual guest", - "required": true - }, { "name": "cores", "type": "TypeInt", @@ -17898,47 +18057,48 @@ "computed": true }, { - "name": "private_interface_id", + "name": "public_interface_id", "type": "TypeInt", "computed": true }, { - "name": "power_state", + "name": "status", "type": "TypeString", - "description": "The current power state of a virtual guest.", + "description": "The VSI status", "computed": true }, { - "name": "most_recent", - "type": "TypeBool", - "description": "If true and multiple entries are found, the most recently created virtual guest is used. If false, an error is returned", - "default_value": false, - "optional": true + "name": "ipv4_address_private", + "type": "TypeString", + "computed": true }, { - "name": "ip_address_id_private", - "type": "TypeInt", + "name": "public_ipv6_subnet_id", + "type": "TypeString", "computed": true - } - ], - "ibm_container_addons": [ + }, { - "name": "cluster", + "name": "secondary_ip_addresses", + "type": "TypeList", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "hostname", "type": "TypeString", - "description": "Cluster Name or ID", - "cloud_data_type": "cluster", - "required": true, - "cloud_data_range": [ - "resolved_to:id" - ] + "description": "The hostname of the virtual guest", + "required": true }, { - "name": "resource_group_id", + "name": "datacenter", "type": "TypeString", - "description": "ID of the resource group.", - "cloud_data_type": "resource_group", + "description": "Datacenter in which the virtual guest is deployed", "computed": true - }, + } + ], + "ibm_container_addons": [ { "name": "addons", "type": "TypeList", @@ -18015,9 +18175,44 @@ "computed": true } } + }, + { + "name": "cluster", + "type": "TypeString", + "description": "Cluster Name or ID", + "cloud_data_type": "cluster", + "required": true, + "cloud_data_range": [ + "resolved_to:id" + ] + }, + { + "name": "resource_group_id", + "type": "TypeString", + "description": "ID of the resource group.", + "cloud_data_type": "resource_group", + "computed": true } ], "ibm_container_alb": [ + { + "name": "user_ip", + "type": "TypeString", + "description": "IP assigned by the user", + "computed": true + }, + { + "name": "enable", + "type": "TypeBool", + "description": "set to true if ALB needs to be enabled", + "computed": true + }, + { + "name": "disable_deployment", + "type": "TypeBool", + "description": "Set to true if ALB needs to be disabled", + "computed": true + }, { "name": "name", "type": "TypeString", @@ -18047,27 +18242,28 @@ "type": "TypeString", "description": "Cluster id", "computed": true - }, + } + ], + "ibm_container_alb_cert": [ { - "name": "user_ip", + "name": "cluster_crn", "type": "TypeString", - "description": "IP assigned by the user", - "computed": true + "description": "cluster CRN", + "computed": true, + "deprecated": "This field is depricated and is not available in v2 version of ingress api" }, { - "name": "enable", - "type": "TypeBool", - "description": "set to true if ALB needs to be enabled", + "name": "cloud_cert_instance_id", + "type": "TypeString", + "description": "cloud cert instance ID", "computed": true }, { - "name": "disable_deployment", - "type": "TypeBool", - "description": "Set to true if ALB needs to be disabled", - "computed": true - } - ], - "ibm_container_alb_cert": [ + "name": "secret_name", + "type": "TypeString", + "description": "Secret name", + "required": true + }, { "name": "namespace", "type": "TypeString", @@ -18082,16 +18278,23 @@ "computed": true }, { - "name": "cloud_cert_instance_id", + "name": "expires_on", "type": "TypeString", - "description": "cloud cert instance ID", + "description": "Certificate expaire on date", "computed": true }, { - "name": "secret_name", + "name": "issuer_name", "type": "TypeString", - "description": "Secret name", - "required": true + "description": "certificate issuer name", + "computed": true, + "deprecated": "This field is depricated and is not available in v2 version of ingress api" + }, + { + "name": "cert_crn", + "type": "TypeString", + "description": "Certificate CRN id", + "computed": true }, { "name": "cluster_id", @@ -18114,32 +18317,6 @@ "type": "TypeString", "description": "Domain name", "computed": true - }, - { - "name": "expires_on", - "type": "TypeString", - "description": "Certificate expaire on date", - "computed": true - }, - { - "name": "issuer_name", - "type": "TypeString", - "description": "certificate issuer name", - "computed": true, - "deprecated": "This field is depricated and is not available in v2 version of ingress api" - }, - { - "name": "cluster_crn", - "type": "TypeString", - "description": "cluster CRN", - "computed": true, - "deprecated": "This field is depricated and is not available in v2 version of ingress api" - }, - { - "name": "cert_crn", - "type": "TypeString", - "description": "Certificate CRN id", - "computed": true } ], "ibm_container_bind_service": [ @@ -18182,57 +18359,17 @@ ], "ibm_container_cluster": [ { - "name": "vlans", - "type": "TypeList", - "computed": true, - "elem": { - "id": { - "name": "id", - "type": "TypeString", - "computed": true - }, - "subnets": { - "name": "subnets", - "type": "TypeList", - "computed": true, - "elem": { - "cidr": { - "name": "cidr", - "type": "TypeString", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "computed": true - }, - "ips": { - "name": "ips", - "type": "TypeList", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - "is_byoip": { - "name": "is_byoip", - "type": "TypeBool", - "computed": true - }, - "is_public": { - "name": "is_public", - "type": "TypeBool", - "computed": true - } - } - } - } + "name": "cluster_name_id", + "type": "TypeString", + "description": "Name or id of the cluster", + "optional": true, + "deprecated": "use name instead" }, { - "name": "alb_type", - "type": "TypeString", - "default_value": "all", - "optional": true + "name": "worker_count", + "type": "TypeInt", + "description": "Number of workers", + "computed": true }, { "name": "albs", @@ -18287,16 +18424,16 @@ } }, { - "name": "list_bounded_services", - "type": "TypeBool", - "description": "If set to false bounded services won't be listed.", - "default_value": true, - "optional": true + "name": "ingress_hostname", + "type": "TypeString", + "computed": true }, { - "name": "resource_controller_url", + "name": "resource_group_id", "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this cluster", + "description": "ID of the resource group.", + "cloud_data_type": "resource_group", + "optional": true, "computed": true }, { @@ -18309,20 +18446,45 @@ "resolved_to:id" ] }, + { + "name": "alb_type", + "type": "TypeString", + "default_value": "all", + "optional": true + }, { "name": "private_service_endpoint", "type": "TypeBool", "computed": true }, + { + "name": "resource_controller_url", + "type": "TypeString", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this cluster", + "computed": true + }, { "name": "public_service_endpoint_url", "type": "TypeString", "computed": true }, { - "name": "api_key_owner_name", + "name": "server_url", "type": "TypeString", - "description": "Name of the key owner", + "computed": true + }, + { + "name": "list_bounded_services", + "type": "TypeBool", + "description": "If set to false bounded services won't be listed.", + "default_value": true, + "optional": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "CRN of resource instance", + "cloud_data_type": "crn", "computed": true }, { @@ -18331,6 +18493,86 @@ "description": "True if image security enforcement is enabled", "computed": true }, + { + "name": "resource_status", + "type": "TypeString", + "description": "The status of the resource", + "computed": true + }, + { + "name": "is_trusted", + "type": "TypeBool", + "computed": true + }, + { + "name": "worker_pools", + "type": "TypeList", + "computed": true, + "elem": { + "hardware": { + "name": "hardware", + "type": "TypeString", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "computed": true + }, + "labels": { + "name": "labels", + "type": "TypeMap", + "computed": true + }, + "machine_type": { + "name": "machine_type", + "type": "TypeString", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "computed": true + }, + "size_per_zone": { + "name": "size_per_zone", + "type": "TypeInt", + "computed": true + }, + "state": { + "name": "state", + "type": "TypeString", + "computed": true + }, + "zones": { + "name": "zones", + "type": "TypeList", + "computed": true, + "elem": { + "private_vlan": { + "name": "private_vlan", + "type": "TypeString", + "computed": true + }, + "public_vlan": { + "name": "public_vlan", + "type": "TypeString", + "computed": true + }, + "worker_count": { + "name": "worker_count", + "type": "TypeInt", + "computed": true + }, + "zone": { + "name": "zone", + "type": "TypeString", + "computed": true + } + } + } + } + }, { "name": "bounded_services", "type": "TypeSet", @@ -18358,23 +18600,6 @@ } } }, - { - "name": "ingress_hostname", - "type": "TypeString", - "computed": true - }, - { - "name": "api_key_id", - "type": "TypeString", - "description": "ID of APIkey", - "computed": true - }, - { - "name": "resource_status", - "type": "TypeString", - "description": "The status of the resource", - "computed": true - }, { "name": "ingress_secret", "type": "TypeString", @@ -18382,12 +18607,18 @@ "computed": true }, { - "name": "account_guid", + "name": "org_guid", "type": "TypeString", - "description": "The bluemix account guid this cluster belongs to", + "description": "The bluemix organization guid this cluster belongs to", "optional": true, "deprecated": "This field is deprecated" }, + { + "name": "resource_group_name", + "type": "TypeString", + "description": "The resource group name in which resource is provisioned", + "computed": true + }, { "name": "region", "type": "TypeString", @@ -18398,22 +18629,26 @@ "deprecated": "This field is deprecated" }, { - "name": "resource_group_id", + "name": "api_key_owner_name", "type": "TypeString", - "description": "ID of the resource group.", - "cloud_data_type": "resource_group", - "optional": true, + "description": "Name of the key owner", "computed": true }, { - "name": "crn", + "name": "api_key_owner_email", "type": "TypeString", - "description": "CRN of resource instance", - "cloud_data_type": "crn", + "description": "email id of the key owner", "computed": true }, { - "name": "server_url", + "name": "account_guid", + "type": "TypeString", + "description": "The bluemix account guid this cluster belongs to", + "optional": true, + "deprecated": "This field is deprecated" + }, + { + "name": "private_service_endpoint_url", "type": "TypeString", "computed": true }, @@ -18424,9 +18659,9 @@ "computed": true }, { - "name": "resource_group_name", + "name": "resource_crn", "type": "TypeString", - "description": "The resource group name in which resource is provisioned", + "description": "The crn of the resource", "computed": true }, { @@ -18438,110 +18673,52 @@ } }, { - "name": "is_trusted", - "type": "TypeBool", - "computed": true - }, - { - "name": "public_service_endpoint", - "type": "TypeBool", - "computed": true - }, - { - "name": "resource_crn", - "type": "TypeString", - "description": "The crn of the resource", - "computed": true - }, - { - "name": "cluster_name_id", - "type": "TypeString", - "description": "Name or id of the cluster", - "optional": true, - "deprecated": "use name instead" - }, - { - "name": "worker_count", - "type": "TypeInt", - "description": "Number of workers", - "computed": true - }, - { - "name": "worker_pools", + "name": "vlans", "type": "TypeList", "computed": true, "elem": { - "hardware": { - "name": "hardware", - "type": "TypeString", - "computed": true - }, "id": { "name": "id", "type": "TypeString", "computed": true }, - "labels": { - "name": "labels", - "type": "TypeMap", - "computed": true - }, - "machine_type": { - "name": "machine_type", - "type": "TypeString", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "computed": true - }, - "size_per_zone": { - "name": "size_per_zone", - "type": "TypeInt", - "computed": true - }, - "state": { - "name": "state", - "type": "TypeString", - "computed": true - }, - "zones": { - "name": "zones", + "subnets": { + "name": "subnets", "type": "TypeList", "computed": true, "elem": { - "private_vlan": { - "name": "private_vlan", + "cidr": { + "name": "cidr", "type": "TypeString", "computed": true }, - "public_vlan": { - "name": "public_vlan", + "id": { + "name": "id", "type": "TypeString", "computed": true }, - "worker_count": { - "name": "worker_count", - "type": "TypeInt", + "ips": { + "name": "ips", + "type": "TypeList", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "is_byoip": { + "name": "is_byoip", + "type": "TypeBool", "computed": true }, - "zone": { - "name": "zone", - "type": "TypeString", + "is_public": { + "name": "is_public", + "type": "TypeBool", "computed": true } } } } }, - { - "name": "org_guid", - "type": "TypeString", - "description": "The bluemix organization guid this cluster belongs to", - "optional": true, - "deprecated": "This field is deprecated" - }, { "name": "space_guid", "type": "TypeString", @@ -18550,41 +18727,57 @@ "deprecated": "This field is deprecated" }, { - "name": "private_service_endpoint_url", - "type": "TypeString", + "name": "public_service_endpoint", + "type": "TypeBool", "computed": true }, { - "name": "api_key_owner_email", + "name": "api_key_id", "type": "TypeString", - "description": "email id of the key owner", + "description": "ID of APIkey", "computed": true } ], "ibm_container_cluster_config": [ { - "name": "config_file_path", + "name": "region", "type": "TypeString", - "description": "The absolute path to the kubernetes config yml file", - "computed": true + "description": "The cluster region", + "cloud_data_type": "region", + "optional": true, + "deprecated": "This field is deprecated" }, { - "name": "admin_certificate", + "name": "resource_group_id", "type": "TypeString", - "secure": true, - "computed": true + "description": "ID of the resource group.", + "cloud_data_type": "resource_group", + "optional": true }, { - "name": "space_guid", + "name": "config_dir", "type": "TypeString", - "description": "The bluemix space guid this cluster belongs to", + "description": "The directory where the cluster config to be downloaded. Default is home directory", "optional": true, - "deprecated": "This field is deprecated" + "computed": true }, { - "name": "account_guid", + "name": "download", + "type": "TypeBool", + "description": "If set to false will not download the config, otherwise they are downloaded each time but onto the same path for a given cluster name/id", + "default_value": true, + "optional": true + }, + { + "name": "admin_key", "type": "TypeString", - "description": "The bluemix account guid this cluster belongs to", + "secure": true, + "computed": true + }, + { + "name": "org_guid", + "type": "TypeString", + "description": "The bluemix organization guid this cluster belongs to", "optional": true, "deprecated": "This field is deprecated" }, @@ -18596,10 +18789,27 @@ "optional": true }, { - "name": "region", + "name": "config_file_path", "type": "TypeString", - "description": "The cluster region", - "cloud_data_type": "region", + "description": "The absolute path to the kubernetes config yml file", + "computed": true + }, + { + "name": "admin_certificate", + "type": "TypeString", + "secure": true, + "computed": true + }, + { + "name": "ca_certificate", + "type": "TypeString", + "secure": true, + "computed": true + }, + { + "name": "space_guid", + "type": "TypeString", + "description": "The bluemix space guid this cluster belongs to", "optional": true, "deprecated": "This field is deprecated" }, @@ -18610,11 +18820,6 @@ "default_value": false, "optional": true }, - { - "name": "host", - "type": "TypeString", - "computed": true - }, { "name": "endpoint_type", "type": "TypeString", @@ -18628,15 +18833,14 @@ "computed": true }, { - "name": "token", + "name": "host", "type": "TypeString", - "secure": true, "computed": true }, { - "name": "org_guid", + "name": "account_guid", "type": "TypeString", - "description": "The bluemix organization guid this cluster belongs to", + "description": "The bluemix account guid this cluster belongs to", "optional": true, "deprecated": "This field is deprecated" }, @@ -18651,34 +18855,7 @@ ] }, { - "name": "download", - "type": "TypeBool", - "description": "If set to false will not download the config, otherwise they are downloaded each time but onto the same path for a given cluster name/id", - "default_value": true, - "optional": true - }, - { - "name": "ca_certificate", - "type": "TypeString", - "secure": true, - "computed": true - }, - { - "name": "resource_group_id", - "type": "TypeString", - "description": "ID of the resource group.", - "cloud_data_type": "resource_group", - "optional": true - }, - { - "name": "config_dir", - "type": "TypeString", - "description": "The directory where the cluster config to be downloaded. Default is home directory", - "optional": true, - "computed": true - }, - { - "name": "admin_key", + "name": "token", "type": "TypeString", "secure": true, "computed": true @@ -18686,19 +18863,18 @@ ], "ibm_container_cluster_versions": [ { - "name": "account_guid", + "name": "org_guid", "type": "TypeString", - "description": "The bluemix account guid this cluster belongs to", + "description": "The bluemix organization guid this cluster belongs to", "optional": true, "deprecated": "This field is deprecated" }, { - "name": "region", + "name": "resource_group_id", "type": "TypeString", - "description": "The cluster region", - "cloud_data_type": "region", - "optional": true, - "deprecated": "This field is deprecated" + "description": "ID of the resource group.", + "cloud_data_type": "resource_group", + "optional": true }, { "name": "valid_kube_versions", @@ -18709,15 +18885,6 @@ "type": "TypeString" } }, - { - "name": "valid_openshift_versions", - "type": "TypeList", - "description": "List of supported openshift-versions", - "computed": true, - "elem": { - "type": "TypeString" - } - }, { "name": "default_openshift_version", "type": "TypeString", @@ -18731,35 +18898,45 @@ "computed": true }, { - "name": "org_guid", + "name": "space_guid", "type": "TypeString", - "description": "The bluemix organization guid this cluster belongs to", + "description": "The bluemix space guid this cluster belongs to", "optional": true, "deprecated": "This field is deprecated" }, { - "name": "space_guid", + "name": "account_guid", "type": "TypeString", - "description": "The bluemix space guid this cluster belongs to", + "description": "The bluemix account guid this cluster belongs to", "optional": true, "deprecated": "This field is deprecated" }, { - "name": "resource_group_id", + "name": "region", "type": "TypeString", - "description": "ID of the resource group.", - "cloud_data_type": "resource_group", - "optional": true + "description": "The cluster region", + "cloud_data_type": "region", + "optional": true, + "deprecated": "This field is deprecated" + }, + { + "name": "valid_openshift_versions", + "type": "TypeList", + "description": "List of supported openshift-versions", + "computed": true, + "elem": { + "type": "TypeString" + } } ], "ibm_container_cluster_worker": [ { - "name": "public_vlan", + "name": "private_ip", "type": "TypeString", "computed": true }, { - "name": "private_ip", + "name": "public_ip", "type": "TypeString", "computed": true }, @@ -18778,38 +18955,20 @@ "cloud_data_type": "resource_group", "optional": true }, - { - "name": "worker_id", - "type": "TypeString", - "description": "ID of the worker", - "required": true - }, - { - "name": "state", - "type": "TypeString", - "description": "State of the worker", - "computed": true - }, - { - "name": "status", - "type": "TypeString", - "description": "Status of the worker", - "computed": true - }, { "name": "private_vlan", "type": "TypeString", "computed": true }, { - "name": "resource_controller_url", + "name": "public_vlan", "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this cluster", "computed": true }, { - "name": "public_ip", + "name": "status", "type": "TypeString", + "description": "Status of the worker", "computed": true }, { @@ -18832,6 +18991,24 @@ "description": "The bluemix account guid this cluster belongs to", "optional": true, "deprecated": "This field is deprecated" + }, + { + "name": "resource_controller_url", + "type": "TypeString", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this cluster", + "computed": true + }, + { + "name": "worker_id", + "type": "TypeString", + "description": "ID of the worker", + "required": true + }, + { + "name": "state", + "type": "TypeString", + "description": "State of the worker", + "computed": true } ], "ibm_container_dedicated_host": [ @@ -18974,6 +19151,19 @@ } ], "ibm_container_dedicated_host_flavor": [ + { + "name": "region", + "type": "TypeString", + "description": "The region of the dedicated host flavor", + "cloud_data_type": "region", + "computed": true + }, + { + "name": "deprecated", + "type": "TypeBool", + "description": "Describes if the dedicated host flavor is deprecated", + "computed": true + }, { "name": "max_vcpus", "type": "TypeInt", @@ -19021,19 +19211,6 @@ "type": "TypeString", "description": "The class of the dedicated host flavor", "computed": true - }, - { - "name": "region", - "type": "TypeString", - "description": "The region of the dedicated host flavor", - "cloud_data_type": "region", - "computed": true - }, - { - "name": "deprecated", - "type": "TypeBool", - "description": "Describes if the dedicated host flavor is deprecated", - "computed": true } ], "ibm_container_dedicated_host_flavors": [ @@ -19106,12 +19283,6 @@ } ], "ibm_container_dedicated_host_pool": [ - { - "name": "state", - "type": "TypeString", - "description": "The state of the dedicated host pool", - "computed": true - }, { "name": "zones", "type": "TypeList", @@ -19194,25 +19365,15 @@ "type": "TypeInt", "description": "The count of the hosts under the dedicated host pool", "computed": true - } - ], - "ibm_container_ingress_instance": [ - { - "name": "cluster", - "type": "TypeString", - "description": "Cluster ID", - "cloud_data_type": "cluster", - "required": true, - "cloud_data_range": [ - "resolved_to:id" - ] }, { - "name": "secret_group_id", + "name": "state", "type": "TypeString", - "description": "Secret group for the instance registration", + "description": "The state of the dedicated host pool", "computed": true - }, + } + ], + "ibm_container_ingress_instance": [ { "name": "status", "type": "TypeString", @@ -19226,11 +19387,21 @@ "computed": true }, { - "name": "instance_crn", - "type": "TypeString", - "description": "Instance CRN id", + "name": "user_managed", + "type": "TypeBool", + "description": "If the instance was created by the user", "computed": true }, + { + "name": "cluster", + "type": "TypeString", + "description": "Cluster ID", + "cloud_data_type": "cluster", + "required": true, + "cloud_data_range": [ + "resolved_to:id" + ] + }, { "name": "instance_name", "type": "TypeString", @@ -19250,13 +19421,25 @@ "computed": true }, { - "name": "user_managed", - "type": "TypeBool", - "description": "If the instance was created by the user", + "name": "instance_crn", + "type": "TypeString", + "description": "Instance CRN id", + "computed": true + }, + { + "name": "secret_group_id", + "type": "TypeString", + "description": "Secret group for the instance registration", "computed": true } ], "ibm_container_ingress_secret_opaque": [ + { + "name": "secret_name", + "type": "TypeString", + "description": "Secret name", + "required": true + }, { "name": "secret_namespace", "type": "TypeString", @@ -19328,41 +19511,19 @@ "cloud_data_range": [ "resolved_to:id" ] - }, - { - "name": "secret_name", - "type": "TypeString", - "description": "Secret name", - "required": true } ], "ibm_container_ingress_secret_tls": [ { - "name": "cluster", - "type": "TypeString", - "description": "Cluster ID or name", - "cloud_data_type": "cluster", - "required": true, - "cloud_data_range": [ - "resolved_to:id" - ] - }, - { - "name": "type", - "type": "TypeString", - "description": "Type TLS", - "computed": true - }, - { - "name": "status", - "type": "TypeString", - "description": "Secret Status", + "name": "persistence", + "type": "TypeBool", + "description": "Persistence of secret", "computed": true }, { - "name": "last_updated_timestamp", + "name": "expires_on", "type": "TypeString", - "description": "Timestamp secret was last updated", + "description": "Certificate expires on date", "computed": true }, { @@ -19371,12 +19532,6 @@ "description": "Secret name", "required": true }, - { - "name": "secret_namespace", - "type": "TypeString", - "description": "Secret namespace", - "required": true - }, { "name": "cert_crn", "type": "TypeString", @@ -19390,9 +19545,9 @@ "computed": true }, { - "name": "persistence", - "type": "TypeBool", - "description": "Persistence of secret", + "name": "status", + "type": "TypeString", + "description": "Secret Status", "computed": true }, { @@ -19402,9 +19557,31 @@ "computed": true }, { - "name": "expires_on", + "name": "last_updated_timestamp", "type": "TypeString", - "description": "Certificate expires on date", + "description": "Timestamp secret was last updated", + "computed": true + }, + { + "name": "cluster", + "type": "TypeString", + "description": "Cluster ID or name", + "cloud_data_type": "cluster", + "required": true, + "cloud_data_range": [ + "resolved_to:id" + ] + }, + { + "name": "secret_namespace", + "type": "TypeString", + "description": "Secret namespace", + "required": true + }, + { + "name": "type", + "type": "TypeString", + "description": "Type TLS", "computed": true } ], @@ -19546,22 +19723,24 @@ ], "ibm_container_vpc_alb": [ { - "name": "state", + "name": "load_balancer_hostname", "type": "TypeString", "computed": true }, { - "name": "status", + "name": "state", "type": "TypeString", "computed": true }, { - "name": "disable_deployment", - "type": "TypeBool", - "computed": true + "name": "resource_group_id", + "type": "TypeString", + "description": "ID of the resource group.", + "cloud_data_type": "resource_group", + "optional": true }, { - "name": "name", + "name": "alb_type", "type": "TypeString", "computed": true }, @@ -19576,12 +19755,7 @@ "computed": true }, { - "name": "load_balancer_hostname", - "type": "TypeString", - "computed": true - }, - { - "name": "resize", + "name": "disable_deployment", "type": "TypeBool", "computed": true }, @@ -19590,13 +19764,6 @@ "type": "TypeString", "computed": true }, - { - "name": "resource_group_id", - "type": "TypeString", - "description": "ID of the resource group.", - "cloud_data_type": "resource_group", - "optional": true - }, { "name": "alb_id", "type": "TypeString", @@ -19604,41 +19771,40 @@ "required": true }, { - "name": "alb_type", + "name": "name", "type": "TypeString", "computed": true - } - ], - "ibm_container_vpc_cluster": [ + }, { - "name": "health", - "type": "TypeString", + "name": "resize", + "type": "TypeBool", "computed": true }, { - "name": "resource_status", + "name": "status", "type": "TypeString", - "description": "The status of the resource", "computed": true - }, + } + ], + "ibm_container_vpc_cluster": [ { - "name": "cluster_name_id", + "name": "private_service_endpoint_url", "type": "TypeString", - "description": "Name or id of the cluster", - "optional": true, - "deprecated": "use name instead" + "computed": true }, { - "name": "crn", - "type": "TypeString", - "description": "CRN of resource instance", - "cloud_data_type": "crn", - "computed": true + "name": "tags", + "type": "TypeSet", + "cloud_data_type": "tags", + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "api_key_owner_name", + "name": "resource_name", "type": "TypeString", - "description": "Name of the key owner", + "description": "The name of the resource", "computed": true }, { @@ -19648,55 +19814,15 @@ "computed": true }, { - "name": "albs", - "type": "TypeList", - "computed": true, - "elem": { - "alb_type": { - "name": "alb_type", - "type": "TypeString", - "computed": true - }, - "disable_deployment": { - "name": "disable_deployment", - "type": "TypeBool", - "computed": true - }, - "enable": { - "name": "enable", - "type": "TypeBool", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "computed": true - }, - "load_balancer_hostname": { - "name": "load_balancer_hostname", - "type": "TypeString", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "computed": true - }, - "resize": { - "name": "resize", - "type": "TypeBool", - "computed": true - }, - "state": { - "name": "state", - "type": "TypeString", - "computed": true - } - } + "name": "worker_count", + "type": "TypeInt", + "description": "Number of workers", + "computed": true }, { - "name": "kube_version", + "name": "pod_subnet", "type": "TypeString", + "description": "Custom subnet CIDR to provide private IP addresses for pods", "computed": true }, { @@ -19706,33 +19832,25 @@ "computed": true }, { - "name": "api_key_id", - "type": "TypeString", - "description": "ID of APIkey", + "name": "public_service_endpoint", + "type": "TypeBool", "computed": true }, { - "name": "workers", - "type": "TypeList", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "ingress_hostname", + "name": "service_subnet", "type": "TypeString", + "description": "Custom subnet CIDR to provide private IP addresses for services", "computed": true }, { - "name": "private_service_endpoint_url", + "name": "health", "type": "TypeString", "computed": true }, { - "name": "pod_subnet", - "type": "TypeString", - "description": "Custom subnet CIDR to provide private IP addresses for pods", + "name": "image_security_enforcement", + "type": "TypeBool", + "description": "True if image security enforcement is enabled", "computed": true }, { @@ -19741,33 +19859,40 @@ "computed": true }, { - "name": "service_subnet", + "name": "public_service_endpoint_url", "type": "TypeString", - "description": "Custom subnet CIDR to provide private IP addresses for services", "computed": true }, { - "name": "resource_group_id", + "name": "resource_controller_url", "type": "TypeString", - "description": "ID of the resource group.", - "cloud_data_type": "resource_group", - "optional": true, + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this cluster", "computed": true }, { - "name": "state", + "name": "workers", + "type": "TypeList", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "api_key_id", "type": "TypeString", + "description": "ID of APIkey", "computed": true }, { - "name": "public_service_endpoint", - "type": "TypeBool", + "name": "resource_status", + "type": "TypeString", + "description": "The status of the resource", "computed": true }, { - "name": "status", + "name": "resource_group_name", "type": "TypeString", - "description": "The status of the cluster master", + "description": "The resource group name in which resource is provisioned", "computed": true }, { @@ -19786,18 +19911,6 @@ "resolved_to:id" ] }, - { - "name": "worker_count", - "type": "TypeInt", - "description": "Number of workers", - "computed": true - }, - { - "name": "resource_group_name", - "type": "TypeString", - "description": "The resource group name in which resource is provisioned", - "computed": true - }, { "name": "alb_type", "type": "TypeString", @@ -19805,35 +19918,13 @@ "optional": true }, { - "name": "public_service_endpoint_url", - "type": "TypeString", - "computed": true - }, - { - "name": "tags", - "type": "TypeSet", - "cloud_data_type": "tags", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "image_security_enforcement", - "type": "TypeBool", - "description": "True if image security enforcement is enabled", - "computed": true - }, - { - "name": "resource_controller_url", + "name": "ingress_hostname", "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this cluster", "computed": true }, { - "name": "resource_name", + "name": "state", "type": "TypeString", - "description": "The name of the resource", "computed": true }, { @@ -19962,33 +20053,102 @@ } }, { - "name": "master_url", + "name": "kube_version", "type": "TypeString", "computed": true - } - ], - "ibm_container_vpc_cluster_alb": [ + }, { - "name": "name", + "name": "crn", "type": "TypeString", + "description": "CRN of resource instance", + "cloud_data_type": "crn", "computed": true }, { - "name": "load_balancer_hostname", + "name": "master_url", "type": "TypeString", "computed": true }, { - "name": "state", + "name": "status", "type": "TypeString", + "description": "The status of the cluster master", "computed": true }, + { + "name": "cluster_name_id", + "type": "TypeString", + "description": "Name or id of the cluster", + "optional": true, + "deprecated": "use name instead" + }, + { + "name": "albs", + "type": "TypeList", + "computed": true, + "elem": { + "alb_type": { + "name": "alb_type", + "type": "TypeString", + "computed": true + }, + "disable_deployment": { + "name": "disable_deployment", + "type": "TypeBool", + "computed": true + }, + "enable": { + "name": "enable", + "type": "TypeBool", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "computed": true + }, + "load_balancer_hostname": { + "name": "load_balancer_hostname", + "type": "TypeString", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "computed": true + }, + "resize": { + "name": "resize", + "type": "TypeBool", + "computed": true + }, + "state": { + "name": "state", + "type": "TypeString", + "computed": true + } + } + }, { "name": "resource_group_id", "type": "TypeString", "description": "ID of the resource group.", "cloud_data_type": "resource_group", - "optional": true + "optional": true, + "computed": true + }, + { + "name": "api_key_owner_name", + "type": "TypeString", + "description": "Name of the key owner", + "computed": true + } + ], + "ibm_container_vpc_cluster_alb": [ + { + "name": "status", + "type": "TypeString", + "computed": true }, { "name": "alb_id", @@ -19997,48 +20157,59 @@ "required": true }, { - "name": "disable_deployment", - "type": "TypeBool", + "name": "alb_type", + "type": "TypeString", "computed": true }, { - "name": "enable", - "type": "TypeBool", + "name": "cluster", + "type": "TypeString", "computed": true }, { - "name": "resize", + "name": "enable", "type": "TypeBool", "computed": true }, { - "name": "status", + "name": "name", "type": "TypeString", "computed": true }, { - "name": "zone", + "name": "state", "type": "TypeString", "computed": true }, { - "name": "alb_type", - "type": "TypeString", + "name": "disable_deployment", + "type": "TypeBool", "computed": true }, { - "name": "cluster", + "name": "load_balancer_hostname", "type": "TypeString", "computed": true - } - ], - "ibm_container_vpc_cluster_worker": [ + }, { - "name": "flavor", + "name": "resize", + "type": "TypeBool", + "computed": true + }, + { + "name": "zone", "type": "TypeString", - "description": "flavor of the worker", "computed": true }, + { + "name": "resource_group_id", + "type": "TypeString", + "description": "ID of the resource group.", + "cloud_data_type": "resource_group", + "optional": true + } + ], + "ibm_container_vpc_cluster_worker": [ { "name": "kube_version", "type": "TypeString", @@ -20046,9 +20217,9 @@ "computed": true }, { - "name": "pool_name", + "name": "state", "type": "TypeString", - "description": "worker pool name", + "description": "State of the worker", "computed": true }, { @@ -20073,13 +20244,6 @@ } } }, - { - "name": "resource_group_id", - "type": "TypeString", - "description": "ID of the resource group.", - "cloud_data_type": "resource_group", - "optional": true - }, { "name": "host_pool_id", "type": "TypeString", @@ -20092,6 +20256,12 @@ "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this cluster", "computed": true }, + { + "name": "worker_id", + "type": "TypeString", + "description": "ID of the worker", + "required": true + }, { "name": "cluster_name_id", "type": "TypeString", @@ -20103,9 +20273,9 @@ ] }, { - "name": "state", + "name": "flavor", "type": "TypeString", - "description": "State of the worker", + "description": "flavor of the worker", "computed": true }, { @@ -20114,35 +20284,55 @@ "description": "worker pool id", "computed": true }, - { - "name": "worker_id", - "type": "TypeString", - "description": "ID of the worker", - "required": true - } - ], - "ibm_container_vpc_cluster_worker_pool": [ + { + "name": "pool_name", + "type": "TypeString", + "description": "worker pool name", + "computed": true + }, + { + "name": "resource_group_id", + "type": "TypeString", + "description": "ID of the resource group.", + "cloud_data_type": "resource_group", + "optional": true + } + ], + "ibm_container_vpc_cluster_worker_pool": [ + { + "name": "host_pool_id", + "type": "TypeString", + "computed": true + }, + { + "name": "autoscale_enabled", + "type": "TypeBool", + "description": "Autoscaling is enabled on the workerpool", + "computed": true + }, + { + "name": "zones", + "type": "TypeSet", + "computed": true, + "elem": { + "name": { + "name": "name", + "type": "TypeString", + "computed": true + }, + "subnet_id": { + "name": "subnet_id", + "type": "TypeString", + "computed": true + } + } + }, { "name": "operating_system", "type": "TypeString", "description": "The operating system of the workers in the worker pool", "computed": true }, - { - "name": "isolation", - "type": "TypeString", - "computed": true - }, - { - "name": "cluster", - "type": "TypeString", - "description": "Cluster name", - "cloud_data_type": "cluster", - "required": true, - "cloud_data_range": [ - "resolved_to:id" - ] - }, { "name": "secondary_storage", "type": "TypeList", @@ -20187,43 +20377,29 @@ "computed": true }, { - "name": "flavor", + "name": "isolation", "type": "TypeString", "computed": true }, { - "name": "zones", - "type": "TypeSet", - "computed": true, - "elem": { - "name": { - "name": "name", - "type": "TypeString", - "computed": true - }, - "subnet_id": { - "name": "subnet_id", - "type": "TypeString", - "computed": true - } - } - }, - { - "name": "labels", - "type": "TypeMap", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "cluster", + "type": "TypeString", + "description": "Cluster name", + "cloud_data_type": "cluster", + "required": true, + "cloud_data_range": [ + "resolved_to:id" + ] }, { - "name": "kms_instance_id", + "name": "flavor", "type": "TypeString", "computed": true }, { - "name": "crk", + "name": "resource_group_id", "type": "TypeString", + "cloud_data_type": "resource_group", "computed": true }, { @@ -20233,9 +20409,16 @@ "required": true }, { - "name": "resource_group_id", + "name": "labels", + "type": "TypeMap", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "kms_instance_id", "type": "TypeString", - "cloud_data_type": "resource_group", "computed": true }, { @@ -20244,7 +20427,7 @@ "computed": true }, { - "name": "host_pool_id", + "name": "crk", "type": "TypeString", "computed": true }, @@ -20252,22 +20435,36 @@ "name": "kms_account_id", "type": "TypeString", "computed": true - }, + } + ], + "ibm_container_vpc_worker_pool": [ { "name": "autoscale_enabled", "type": "TypeBool", "description": "Autoscaling is enabled on the workerpool", "computed": true - } - ], - "ibm_container_vpc_worker_pool": [ + }, + { + "name": "labels", + "type": "TypeMap", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "resource_group_id", + "type": "TypeString", + "cloud_data_type": "resource_group", + "computed": true + }, { "name": "kms_instance_id", "type": "TypeString", "computed": true }, { - "name": "crk", + "name": "kms_account_id", "type": "TypeString", "computed": true }, @@ -20288,55 +20485,13 @@ } } }, - { - "name": "operating_system", - "type": "TypeString", - "description": "The operating system of the workers in the worker pool", - "computed": true - }, - { - "name": "resource_group_id", - "type": "TypeString", - "cloud_data_type": "resource_group", - "computed": true - }, - { - "name": "vpc_id", - "type": "TypeString", - "computed": true - }, - { - "name": "worker_count", - "type": "TypeInt", - "computed": true - }, { "name": "host_pool_id", "type": "TypeString", "computed": true }, { - "name": "autoscale_enabled", - "type": "TypeBool", - "description": "Autoscaling is enabled on the workerpool", - "computed": true - }, - { - "name": "worker_pool_name", - "type": "TypeString", - "description": "worker pool name", - "required": true - }, - { - "name": "labels", - "type": "TypeMap", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "kms_account_id", + "name": "crk", "type": "TypeString", "computed": true }, @@ -20385,63 +20540,48 @@ } }, { - "name": "flavor", - "type": "TypeString", + "name": "worker_count", + "type": "TypeInt", "computed": true }, { "name": "isolation", "type": "TypeString", "computed": true - } - ], - "ibm_container_worker_pool": [ - { - "name": "autoscale_enabled", - "type": "TypeBool", - "description": "Autoscaling is enabled on the workerpool", - "computed": true }, { - "name": "cluster", + "name": "worker_pool_name", "type": "TypeString", - "description": "Name or ID of the cluster", - "cloud_data_type": "cluster", - "required": true, - "cloud_data_range": [ - "resolved_to:id" - ] + "description": "worker pool name", + "required": true }, { - "name": "machine_type", + "name": "flavor", "type": "TypeString", - "description": "worker nodes machine type", - "computed": true - }, - { - "name": "size_per_zone", - "type": "TypeInt", - "description": "Number of nodes per zone", "computed": true }, { - "name": "hardware", + "name": "operating_system", "type": "TypeString", - "description": "Hardware type", + "description": "The operating system of the workers in the worker pool", "computed": true }, { - "name": "labels", - "type": "TypeMap", - "description": "list of labels to worker pool", + "name": "vpc_id", + "type": "TypeString", "computed": true - }, + } + ], + "ibm_container_worker_pool": [ { - "name": "resource_group_id", + "name": "cluster", "type": "TypeString", - "description": "ID of the resource group.", - "cloud_data_type": "resource_group", - "computed": true + "description": "Name or ID of the cluster", + "cloud_data_type": "cluster", + "required": true, + "cloud_data_range": [ + "resolved_to:id" + ] }, { "name": "worker_pool_name", @@ -20493,104 +20633,51 @@ } } }, + { + "name": "labels", + "type": "TypeMap", + "description": "list of labels to worker pool", + "computed": true + }, { "name": "operating_system", "type": "TypeString", "description": "The operating system of the workers in the worker pool", "computed": true - } - ], - "ibm_cos_bucket": [ + }, { - "name": "s3_endpoint_public", + "name": "machine_type", "type": "TypeString", - "description": "Public endpoint for the COS bucket", + "description": "worker nodes machine type", "computed": true }, { - "name": "activity_tracking", - "type": "TypeList", - "computed": true, - "elem": { - "activity_tracker_crn": { - "name": "activity_tracker_crn", - "type": "TypeString", - "description": "The instance of Activity Tracker that will receive object event data", - "computed": true - }, - "read_data_events": { - "name": "read_data_events", - "type": "TypeBool", - "description": "If set to true, all object read events will be sent to Activity Tracker.", - "computed": true - }, - "write_data_events": { - "name": "write_data_events", - "type": "TypeBool", - "description": "If set to true, all object write events will be sent to Activity Tracker.", - "computed": true - } - } - }, - { - "name": "metrics_monitoring", - "type": "TypeList", - "computed": true, - "elem": { - "metrics_monitoring_crn": { - "name": "metrics_monitoring_crn", - "type": "TypeString", - "description": "Instance of IBM Cloud Monitoring that will receive the bucket metrics.", - "computed": true - }, - "request_metrics_enabled": { - "name": "request_metrics_enabled", - "type": "TypeBool", - "description": "Request metrics will be sent to the monitoring service.", - "computed": true - }, - "usage_metrics_enabled": { - "name": "usage_metrics_enabled", - "type": "TypeBool", - "description": "Usage metrics will be sent to the monitoring service.", - "computed": true - } - } - }, - { - "name": "hard_quota", + "name": "size_per_zone", "type": "TypeInt", - "description": "sets a maximum amount of storage (in bytes) available for a bucket", + "description": "Number of nodes per zone", "computed": true }, { - "name": "allowed_ip", - "type": "TypeList", - "description": "List of IPv4 or IPv6 addresses", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "website_endpoint", + "name": "hardware", "type": "TypeString", + "description": "Hardware type", "computed": true }, { - "name": "endpoint_type", + "name": "resource_group_id", "type": "TypeString", - "description": "public or private", - "default_value": "public", - "options": "public,private,direct", - "optional": true + "description": "ID of the resource group.", + "cloud_data_type": "resource_group", + "computed": true }, { - "name": "key_protect", - "type": "TypeString", - "description": "CRN of the key you want to use data at rest encryption", + "name": "autoscale_enabled", + "type": "TypeBool", + "description": "Autoscaling is enabled on the workerpool", "computed": true - }, + } + ], + "ibm_cos_bucket": [ { "name": "website_configuration", "type": "TypeList", @@ -20712,33 +20799,6 @@ } } }, - { - "name": "object_lock", - "type": "TypeBool", - "description": "Description", - "computed": true - }, - { - "name": "resource_instance_id", - "type": "TypeString", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:cloud-object-storage" - ] - }, - { - "name": "crn", - "type": "TypeString", - "description": "CRN of resource instance", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "single_site_location", - "type": "TypeString", - "computed": true - }, { "name": "s3_endpoint_private", "type": "TypeString", @@ -20746,50 +20806,77 @@ "computed": true }, { - "name": "archive_rule", + "name": "metrics_monitoring", "type": "TypeList", - "description": "Enable configuration archive_rule (glacier/accelerated) to COS Bucket after a defined period of time", "computed": true, "elem": { - "days": { - "name": "days", - "type": "TypeInt", + "metrics_monitoring_crn": { + "name": "metrics_monitoring_crn", + "type": "TypeString", + "description": "Instance of IBM Cloud Monitoring that will receive the bucket metrics.", "computed": true }, - "enable": { - "name": "enable", + "request_metrics_enabled": { + "name": "request_metrics_enabled", "type": "TypeBool", - "description": "Enable or disable an archive rule for a bucket", + "description": "Request metrics will be sent to the monitoring service.", "computed": true }, - "rule_id": { - "name": "rule_id", + "usage_metrics_enabled": { + "name": "usage_metrics_enabled", + "type": "TypeBool", + "description": "Usage metrics will be sent to the monitoring service.", + "computed": true + } + } + }, + { + "name": "activity_tracking", + "type": "TypeList", + "computed": true, + "elem": { + "activity_tracker_crn": { + "name": "activity_tracker_crn", "type": "TypeString", + "description": "The instance of Activity Tracker that will receive object event data", "computed": true }, - "type": { - "name": "type", - "type": "TypeString", + "read_data_events": { + "name": "read_data_events", + "type": "TypeBool", + "description": "If set to true, all object read events will be sent to Activity Tracker.", + "computed": true + }, + "write_data_events": { + "name": "write_data_events", + "type": "TypeBool", + "description": "If set to true, all object write events will be sent to Activity Tracker.", "computed": true } } }, { - "name": "noncurrent_version_expiration", + "name": "replication_rule", "type": "TypeList", - "description": "Enable configuration expire_rule to COS Bucket after a defined period of time", + "description": "Replicate objects between buckets, replicate across source and destination. A container for replication rules can add up to 1,000 rules. The maximum size of a replication configuration is 2 MB.", "computed": true, "elem": { - "enable": { - "name": "enable", + "deletemarker_replication_status": { + "name": "deletemarker_replication_status", "type": "TypeBool", - "description": "Enable or disable an expire rule for a bucket", + "description": "Indicates whether to replicate delete markers. It should be either Enable or Disable", "computed": true }, - "noncurrent_days": { - "name": "noncurrent_days", - "type": "TypeInt", - "description": "Specifies the number of days when the specific rule action takes effect.", + "destination_bucket_crn": { + "name": "destination_bucket_crn", + "type": "TypeString", + "description": "The Cloud Resource Name (CRN) of the bucket where you want COS to store the results", + "computed": true + }, + "enable": { + "name": "enable", + "type": "TypeBool", + "description": "Enable or disable an replication rule for a bucket", "computed": true }, "prefix": { @@ -20798,105 +20885,92 @@ "description": "The rule applies to any objects with keys that match this prefix", "computed": true }, + "priority": { + "name": "priority", + "type": "TypeInt", + "computed": true + }, "rule_id": { "name": "rule_id", "type": "TypeString", - "description": "Unique identifier for the rule.Expire rules allow you to set a specific time frame after which objects are deleted. Set Rule ID for cos bucket", + "description": "A unique identifier for the rule. The maximum value is 255 characters.", "computed": true } } }, { - "name": "bucket_name", + "name": "kms_key_crn", "type": "TypeString", - "required": true + "description": "CRN of the key you want to use data at rest encryption", + "computed": true }, { - "name": "bucket_type", + "name": "single_site_location", "type": "TypeString", - "options": "single_site_location,region_location,cross_region_location", - "optional": true + "computed": true }, { - "name": "satellite_location_id", + "name": "object_lock", + "type": "TypeBool", + "description": "Description", + "computed": true + }, + { + "name": "bucket_name", "type": "TypeString", - "optional": true + "required": true }, { - "name": "region_location", + "name": "crn", "type": "TypeString", + "description": "CRN of resource instance", + "cloud_data_type": "crn", "computed": true }, { - "name": "storage_class", + "name": "s3_endpoint_direct", "type": "TypeString", + "description": "Direct endpoint for the COS bucket", "computed": true }, { - "name": "cross_region_location", + "name": "region_location", "type": "TypeString", "computed": true }, { - "name": "s3_endpoint_direct", + "name": "storage_class", "type": "TypeString", - "description": "Direct endpoint for the COS bucket", "computed": true }, { - "name": "retention_rule", + "name": "expire_rule", "type": "TypeList", - "description": "A retention policy is enabled at the IBM Cloud Object Storage bucket level. Minimum, maximum and default retention period are defined by this policy and apply to all objects in the bucket.", + "description": "Enable configuration expire_rule to COS Bucket", "computed": true, "elem": { - "default": { - "name": "default", - "type": "TypeInt", - "description": "If an object is stored in the bucket without specifying a custom retention period.", - "computed": true - }, - "maximum": { - "name": "maximum", - "type": "TypeInt", - "description": "Maximum duration of time an object can be kept unmodified in the bucket.", + "date": { + "name": "date", + "type": "TypeString", + "description": "Specifies the date when the specific rule action takes effect.", "computed": true }, - "minimum": { - "name": "minimum", + "days": { + "name": "days", "type": "TypeInt", - "description": "Minimum duration of time an object must be kept unmodified in the bucket", + "description": "Specifies the number of days when the specific rule action takes effect.", "computed": true }, - "permanent": { - "name": "permanent", - "type": "TypeBool", - "description": "Enable or disable the permanent retention policy on the bucket", - "computed": true - } - } - }, - { - "name": "replication_rule", - "type": "TypeList", - "description": "Replicate objects between buckets, replicate across source and destination. A container for replication rules can add up to 1,000 rules. The maximum size of a replication configuration is 2 MB.", - "computed": true, - "elem": { - "deletemarker_replication_status": { - "name": "deletemarker_replication_status", + "enable": { + "name": "enable", "type": "TypeBool", - "description": "Indicates whether to replicate delete markers. It should be either Enable or Disable", - "computed": true - }, - "destination_bucket_crn": { - "name": "destination_bucket_crn", - "type": "TypeString", - "description": "The Cloud Resource Name (CRN) of the bucket where you want COS to store the results", + "description": "Enable or disable an archive rule for a bucket", "computed": true }, - "enable": { - "name": "enable", + "expired_object_delete_marker": { + "name": "expired_object_delete_marker", "type": "TypeBool", - "description": "Enable or disable an replication rule for a bucket", + "description": "Expired object delete markers can be automatically cleaned up to improve performance in bucket. This cannot be used alongside version expiration.", "computed": true }, "prefix": { @@ -20905,19 +20979,33 @@ "description": "The rule applies to any objects with keys that match this prefix", "computed": true }, - "priority": { - "name": "priority", - "type": "TypeInt", - "computed": true - }, "rule_id": { "name": "rule_id", "type": "TypeString", - "description": "A unique identifier for the rule. The maximum value is 255 characters.", "computed": true } } }, + { + "name": "hard_quota", + "type": "TypeInt", + "description": "sets a maximum amount of storage (in bytes) available for a bucket", + "computed": true + }, + { + "name": "endpoint_type", + "type": "TypeString", + "description": "public or private", + "default_value": "public", + "options": "public,private,direct", + "optional": true + }, + { + "name": "s3_endpoint_public", + "type": "TypeString", + "description": "Public endpoint for the COS bucket", + "computed": true + }, { "name": "abort_incomplete_multipart_upload_days", "type": "TypeList", @@ -20950,33 +21038,35 @@ } }, { - "name": "expire_rule", + "name": "object_versioning", "type": "TypeList", - "description": "Enable configuration expire_rule to COS Bucket", + "description": "Protect objects from accidental deletion or overwrites. Versioning allows you to keep multiple versions of an object protecting from unintentional data loss.", "computed": true, "elem": { - "date": { - "name": "date", - "type": "TypeString", - "description": "Specifies the date when the specific rule action takes effect.", - "computed": true - }, - "days": { - "name": "days", - "type": "TypeInt", - "description": "Specifies the number of days when the specific rule action takes effect.", + "enable": { + "name": "enable", + "type": "TypeBool", + "description": "Enable or suspend the versioning for objects in the bucket", "computed": true - }, + } + } + }, + { + "name": "noncurrent_version_expiration", + "type": "TypeList", + "description": "Enable configuration expire_rule to COS Bucket after a defined period of time", + "computed": true, + "elem": { "enable": { "name": "enable", "type": "TypeBool", - "description": "Enable or disable an archive rule for a bucket", + "description": "Enable or disable an expire rule for a bucket", "computed": true }, - "expired_object_delete_marker": { - "name": "expired_object_delete_marker", - "type": "TypeBool", - "description": "Expired object delete markers can be automatically cleaned up to improve performance in bucket. This cannot be used alongside version expiration.", + "noncurrent_days": { + "name": "noncurrent_days", + "type": "TypeInt", + "description": "Specifies the number of days when the specific rule action takes effect.", "computed": true }, "prefix": { @@ -20988,6 +21078,7 @@ "rule_id": { "name": "rule_id", "type": "TypeString", + "description": "Unique identifier for the rule.Expire rules allow you to set a specific time frame after which objects are deleted. Set Rule ID for cos bucket", "computed": true } } @@ -20998,21 +21089,90 @@ "optional": true }, { - "name": "kms_key_crn", + "name": "cross_region_location", "type": "TypeString", - "description": "CRN of the key you want to use data at rest encryption", "computed": true }, { - "name": "object_versioning", + "name": "resource_instance_id", + "type": "TypeString", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:cloud-object-storage" + ] + }, + { + "name": "satellite_location_id", + "type": "TypeString", + "optional": true + }, + { + "name": "allowed_ip", "type": "TypeList", - "description": "Protect objects from accidental deletion or overwrites. Versioning allows you to keep multiple versions of an object protecting from unintentional data loss.", + "description": "List of IPv4 or IPv6 addresses", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "archive_rule", + "type": "TypeList", + "description": "Enable configuration archive_rule (glacier/accelerated) to COS Bucket after a defined period of time", "computed": true, "elem": { + "days": { + "name": "days", + "type": "TypeInt", + "computed": true + }, "enable": { "name": "enable", "type": "TypeBool", - "description": "Enable or suspend the versioning for objects in the bucket", + "description": "Enable or disable an archive rule for a bucket", + "computed": true + }, + "rule_id": { + "name": "rule_id", + "type": "TypeString", + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "computed": true + } + } + }, + { + "name": "retention_rule", + "type": "TypeList", + "description": "A retention policy is enabled at the IBM Cloud Object Storage bucket level. Minimum, maximum and default retention period are defined by this policy and apply to all objects in the bucket.", + "computed": true, + "elem": { + "default": { + "name": "default", + "type": "TypeInt", + "description": "If an object is stored in the bucket without specifying a custom retention period.", + "computed": true + }, + "maximum": { + "name": "maximum", + "type": "TypeInt", + "description": "Maximum duration of time an object can be kept unmodified in the bucket.", + "computed": true + }, + "minimum": { + "name": "minimum", + "type": "TypeInt", + "description": "Minimum duration of time an object must be kept unmodified in the bucket", + "computed": true + }, + "permanent": { + "name": "permanent", + "type": "TypeBool", + "description": "Enable or disable the permanent retention policy on the bucket", "computed": true } } @@ -21063,26 +21223,26 @@ } } } - } - ], - "ibm_cos_bucket_object": [ + }, { - "name": "object_lock_mode", + "name": "website_endpoint", "type": "TypeString", "computed": true }, { - "name": "bucket_location", + "name": "bucket_type", "type": "TypeString", - "description": "COS bucket location", - "required": true + "options": "single_site_location,region_location,cross_region_location", + "optional": true }, { - "name": "content_length", - "type": "TypeInt", - "description": "COS object content length", + "name": "key_protect", + "type": "TypeString", + "description": "CRN of the key you want to use data at rest encryption", "computed": true - }, + } + ], + "ibm_cos_bucket_object": [ { "name": "etag", "type": "TypeString", @@ -21090,13 +21250,14 @@ "computed": true }, { - "name": "version_id", + "name": "object_lock_legal_hold_status", "type": "TypeString", "computed": true }, { - "name": "object_lock_retain_until_date", + "name": "body", "type": "TypeString", + "description": "COS object body", "computed": true }, { @@ -21106,33 +21267,44 @@ "required": true }, { - "name": "object_lock_legal_hold_status", + "name": "content_type", "type": "TypeString", + "description": "COS object content type", "computed": true }, { - "name": "website_redirect", + "name": "endpoint_type", + "type": "TypeString", + "description": "COS endpoint type: public, private, direct", + "default_value": "public", + "optional": true + }, + { + "name": "version_id", "type": "TypeString", "computed": true }, { - "name": "body", + "name": "object_sql_url", "type": "TypeString", - "description": "COS object body", "computed": true }, { - "name": "content_type", + "name": "object_lock_retain_until_date", "type": "TypeString", - "description": "COS object content type", "computed": true }, { - "name": "endpoint_type", + "name": "bucket_location", "type": "TypeString", - "description": "COS endpoint type: public, private, direct", - "default_value": "public", - "optional": true + "description": "COS bucket location", + "required": true + }, + { + "name": "content_length", + "type": "TypeInt", + "description": "COS object content length", + "computed": true }, { "name": "key", @@ -21147,7 +21319,12 @@ "computed": true }, { - "name": "object_sql_url", + "name": "object_lock_mode", + "type": "TypeString", + "computed": true + }, + { + "name": "website_redirect", "type": "TypeString", "computed": true } @@ -21220,37 +21397,11 @@ ], "ibm_database": [ { - "name": "service", - "type": "TypeString", - "description": "The name of the Cloud Database service", - "optional": true - }, - { - "name": "status", - "type": "TypeString", - "description": "The resource instance status", - "computed": true - }, - { - "name": "version", + "name": "resource_controller_url", "type": "TypeString", - "description": "The database version to provision if specified", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about the resource", "computed": true }, - { - "name": "members_memory_allocation_mb", - "type": "TypeInt", - "description": "Memory allocation required for cluster", - "computed": true, - "deprecated": "This field is deprecated please use groups" - }, - { - "name": "members_disk_allocation_mb", - "type": "TypeInt", - "description": "Disk allocation required for cluster", - "computed": true, - "deprecated": "This field is deprecated please use groups" - }, { "name": "name", "type": "TypeString", @@ -21262,22 +21413,15 @@ ] }, { - "name": "location", - "type": "TypeString", - "description": "The location or the region in which the Database instance exists", - "cloud_data_type": "region", - "optional": true - }, - { - "name": "guid", + "name": "plan", "type": "TypeString", - "description": "Unique identifier of resource instance", + "description": "The plan type of the Database instance", "computed": true }, { - "name": "adminuser", + "name": "version", "type": "TypeString", - "description": "The admin user id for the instance", + "description": "The database version to provision if specified", "computed": true }, { @@ -21310,27 +21454,197 @@ } }, { - "name": "resource_status", + "name": "groups", + "type": "TypeList", + "computed": true, + "elem": { + "count": { + "name": "count", + "type": "TypeInt", + "description": "Count of scaling groups for the instance", + "computed": true + }, + "cpu": { + "name": "cpu", + "type": "TypeList", + "computed": true, + "elem": { + "allocation_count": { + "name": "allocation_count", + "type": "TypeInt", + "description": "The current cpu allocation count", + "computed": true + }, + "can_scale_down": { + "name": "can_scale_down", + "type": "TypeBool", + "description": "Can the number of CPUs be scaled down as well as up", + "computed": true + }, + "is_adjustable": { + "name": "is_adjustable", + "type": "TypeBool", + "description": "Are the number of CPUs adjustable", + "computed": true + }, + "minimum_count": { + "name": "minimum_count", + "type": "TypeInt", + "description": "The minimum number of cpus allowed", + "computed": true + }, + "step_size_count": { + "name": "step_size_count", + "type": "TypeInt", + "description": "The number of CPUs allowed to step up or down by", + "computed": true + }, + "units": { + "name": "units", + "type": "TypeString", + "description": "The .", + "computed": true + } + } + }, + "disk": { + "name": "disk", + "type": "TypeList", + "computed": true, + "elem": { + "allocation_mb": { + "name": "allocation_mb", + "type": "TypeInt", + "description": "The current disk allocation", + "computed": true + }, + "can_scale_down": { + "name": "can_scale_down", + "type": "TypeBool", + "description": "Can the disk size be scaled down as well as up", + "computed": true + }, + "is_adjustable": { + "name": "is_adjustable", + "type": "TypeBool", + "description": "Is the disk size adjustable", + "computed": true + }, + "minimum_mb": { + "name": "minimum_mb", + "type": "TypeInt", + "description": "The minimum disk size allowed", + "computed": true + }, + "step_size_mb": { + "name": "step_size_mb", + "type": "TypeInt", + "description": "The step size disk increases or decreases in", + "computed": true + }, + "units": { + "name": "units", + "type": "TypeString", + "description": "The units disk is allocated in", + "computed": true + } + } + }, + "group_id": { + "name": "group_id", + "type": "TypeString", + "description": "Scaling group name", + "computed": true + }, + "memory": { + "name": "memory", + "type": "TypeList", + "computed": true, + "elem": { + "allocation_mb": { + "name": "allocation_mb", + "type": "TypeInt", + "description": "The current memory allocation for a group instance", + "computed": true + }, + "can_scale_down": { + "name": "can_scale_down", + "type": "TypeBool", + "description": "Can memory scale down as well as up.", + "computed": true + }, + "is_adjustable": { + "name": "is_adjustable", + "type": "TypeBool", + "description": "Is the memory size adjustable.", + "computed": true + }, + "minimum_mb": { + "name": "minimum_mb", + "type": "TypeInt", + "description": "The minimum memory size for a group instance", + "computed": true + }, + "step_size_mb": { + "name": "step_size_mb", + "type": "TypeInt", + "description": "The step size memory increases or decreases in.", + "computed": true + }, + "units": { + "name": "units", + "type": "TypeString", + "description": "The units memory is allocated in.", + "computed": true + } + } + } + } + }, + { + "name": "adminpassword", "type": "TypeString", - "description": "The status of the resource", + "description": "The admin user id for the instance", + "secure": true, "computed": true }, { - "name": "resource_group_name", + "name": "platform_options", + "type": "TypeSet", + "description": "Platform-specific options for this deployment.r", + "computed": true, + "elem": { + "backup_encryption_key_crn": { + "name": "backup_encryption_key_crn", + "type": "TypeString", + "description": "Backup encryption key crn", + "computed": true + }, + "disk_encryption_key_crn": { + "name": "disk_encryption_key_crn", + "type": "TypeString", + "description": "Disk encryption key crn", + "computed": true + } + } + }, + { + "name": "location", "type": "TypeString", - "description": "The resource group name in which resource is provisioned", - "computed": true + "description": "The location or the region in which the Database instance exists", + "cloud_data_type": "region", + "optional": true }, { - "name": "resource_controller_url", + "name": "guid", "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about the resource", + "description": "Unique identifier of resource instance", "computed": true }, { - "name": "plan", + "name": "adminuser", "type": "TypeString", - "description": "The plan type of the Database instance", + "description": "The admin user id for the instance", "computed": true }, { @@ -21352,6 +21666,46 @@ } } }, + { + "name": "resource_name", + "type": "TypeString", + "description": "The name of the resource", + "computed": true + }, + { + "name": "resource_crn", + "type": "TypeString", + "description": "The crn of the resource", + "computed": true + }, + { + "name": "resource_group_name", + "type": "TypeString", + "description": "The resource group name in which resource is provisioned", + "computed": true + }, + { + "name": "resource_group_id", + "type": "TypeString", + "description": "The id of the resource group in which the Database instance is present", + "cloud_data_type": "resource_group", + "optional": true, + "cloud_data_range": [ + "resolved_to:id" + ] + }, + { + "name": "service", + "type": "TypeString", + "description": "The name of the Cloud Database service", + "optional": true + }, + { + "name": "status", + "type": "TypeString", + "description": "The resource instance status", + "computed": true + }, { "name": "auto_scaling", "type": "TypeList", @@ -21471,249 +21825,58 @@ } } }, - "memory": { - "name": "memory", - "type": "TypeList", - "description": "Memory Auto Scaling", - "computed": true, - "elem": { - "io_above_percent": { - "name": "io_above_percent", - "type": "TypeInt", - "description": "Auto Scaling Scalar: IO Utilization Above Percent", - "computed": true - }, - "io_enabled": { - "name": "io_enabled", - "type": "TypeBool", - "description": "Auto Scaling Scalar: IO Utilization Enabled", - "computed": true - }, - "io_over_period": { - "name": "io_over_period", - "type": "TypeString", - "description": "Auto Scaling Scalar: IO Utilization Over Period", - "computed": true - }, - "rate_increase_percent": { - "name": "rate_increase_percent", - "type": "TypeInt", - "description": "Auto Scaling Rate: Increase Percent", - "computed": true - }, - "rate_limit_count_per_member": { - "name": "rate_limit_count_per_member", - "type": "TypeInt", - "description": "Auto Scaling Rate: Limit count per number", - "computed": true - }, - "rate_limit_mb_per_member": { - "name": "rate_limit_mb_per_member", - "type": "TypeInt", - "description": "Auto Scaling Rate: Limit mb per member", - "computed": true - }, - "rate_period_seconds": { - "name": "rate_period_seconds", - "type": "TypeInt", - "description": "Auto Scaling Rate: Period Seconds", - "computed": true - }, - "rate_units": { - "name": "rate_units", - "type": "TypeString", - "description": "Auto Scaling Rate: Units", - "computed": true - } - } - } - } - }, - { - "name": "resource_crn", - "type": "TypeString", - "description": "The crn of the resource", - "computed": true - }, - { - "name": "resource_group_id", - "type": "TypeString", - "description": "The id of the resource group in which the Database instance is present", - "cloud_data_type": "resource_group", - "optional": true, - "cloud_data_range": [ - "resolved_to:id" - ] - }, - { - "name": "adminpassword", - "type": "TypeString", - "description": "The admin user id for the instance", - "secure": true, - "computed": true - }, - { - "name": "platform_options", - "type": "TypeSet", - "description": "Platform-specific options for this deployment.r", - "computed": true, - "elem": { - "backup_encryption_key_crn": { - "name": "backup_encryption_key_crn", - "type": "TypeString", - "description": "Backup encryption key crn", - "computed": true - }, - "disk_encryption_key_crn": { - "name": "disk_encryption_key_crn", - "type": "TypeString", - "description": "Disk encryption key crn", - "computed": true - } - } - }, - { - "name": "groups", - "type": "TypeList", - "computed": true, - "elem": { - "count": { - "name": "count", - "type": "TypeInt", - "description": "Count of scaling groups for the instance", - "computed": true - }, - "cpu": { - "name": "cpu", + "memory": { + "name": "memory", "type": "TypeList", + "description": "Memory Auto Scaling", "computed": true, "elem": { - "allocation_count": { - "name": "allocation_count", + "io_above_percent": { + "name": "io_above_percent", "type": "TypeInt", - "description": "The current cpu allocation count", - "computed": true - }, - "can_scale_down": { - "name": "can_scale_down", - "type": "TypeBool", - "description": "Can the number of CPUs be scaled down as well as up", + "description": "Auto Scaling Scalar: IO Utilization Above Percent", "computed": true }, - "is_adjustable": { - "name": "is_adjustable", + "io_enabled": { + "name": "io_enabled", "type": "TypeBool", - "description": "Are the number of CPUs adjustable", - "computed": true - }, - "minimum_count": { - "name": "minimum_count", - "type": "TypeInt", - "description": "The minimum number of cpus allowed", - "computed": true - }, - "step_size_count": { - "name": "step_size_count", - "type": "TypeInt", - "description": "The number of CPUs allowed to step up or down by", + "description": "Auto Scaling Scalar: IO Utilization Enabled", "computed": true }, - "units": { - "name": "units", + "io_over_period": { + "name": "io_over_period", "type": "TypeString", - "description": "The .", - "computed": true - } - } - }, - "disk": { - "name": "disk", - "type": "TypeList", - "computed": true, - "elem": { - "allocation_mb": { - "name": "allocation_mb", - "type": "TypeInt", - "description": "The current disk allocation", - "computed": true - }, - "can_scale_down": { - "name": "can_scale_down", - "type": "TypeBool", - "description": "Can the disk size be scaled down as well as up", - "computed": true - }, - "is_adjustable": { - "name": "is_adjustable", - "type": "TypeBool", - "description": "Is the disk size adjustable", - "computed": true - }, - "minimum_mb": { - "name": "minimum_mb", - "type": "TypeInt", - "description": "The minimum disk size allowed", + "description": "Auto Scaling Scalar: IO Utilization Over Period", "computed": true }, - "step_size_mb": { - "name": "step_size_mb", + "rate_increase_percent": { + "name": "rate_increase_percent", "type": "TypeInt", - "description": "The step size disk increases or decreases in", + "description": "Auto Scaling Rate: Increase Percent", "computed": true }, - "units": { - "name": "units", - "type": "TypeString", - "description": "The units disk is allocated in", - "computed": true - } - } - }, - "group_id": { - "name": "group_id", - "type": "TypeString", - "description": "Scaling group name", - "computed": true - }, - "memory": { - "name": "memory", - "type": "TypeList", - "computed": true, - "elem": { - "allocation_mb": { - "name": "allocation_mb", + "rate_limit_count_per_member": { + "name": "rate_limit_count_per_member", "type": "TypeInt", - "description": "The current memory allocation for a group instance", - "computed": true - }, - "can_scale_down": { - "name": "can_scale_down", - "type": "TypeBool", - "description": "Can memory scale down as well as up.", - "computed": true - }, - "is_adjustable": { - "name": "is_adjustable", - "type": "TypeBool", - "description": "Is the memory size adjustable.", + "description": "Auto Scaling Rate: Limit count per number", "computed": true }, - "minimum_mb": { - "name": "minimum_mb", + "rate_limit_mb_per_member": { + "name": "rate_limit_mb_per_member", "type": "TypeInt", - "description": "The minimum memory size for a group instance", + "description": "Auto Scaling Rate: Limit mb per member", "computed": true }, - "step_size_mb": { - "name": "step_size_mb", + "rate_period_seconds": { + "name": "rate_period_seconds", "type": "TypeInt", - "description": "The step size memory increases or decreases in.", + "description": "Auto Scaling Rate: Period Seconds", "computed": true }, - "units": { - "name": "units", + "rate_units": { + "name": "rate_units", "type": "TypeString", - "description": "The units memory is allocated in.", + "description": "Auto Scaling Rate: Units", "computed": true } } @@ -21727,9 +21890,9 @@ "computed": true }, { - "name": "resource_name", + "name": "resource_status", "type": "TypeString", - "description": "The name of the resource", + "description": "The status of the resource", "computed": true } ], @@ -21971,7 +22134,7 @@ } }, { - "name": "grpc", + "name": "bi_connector", "type": "TypeList", "computed": true, "elem": { @@ -22089,7 +22252,7 @@ } }, { - "name": "secure", + "name": "mysql", "type": "TypeList", "computed": true, "elem": { @@ -22119,15 +22282,21 @@ } } }, - "bundle": { - "name": "bundle", + "browser_accessible": { + "name": "browser_accessible", + "type": "TypeBool", + "description": "Indicates the address is accessible by browser.", + "computed": true + }, + "certificate": { + "name": "certificate", "type": "TypeList", "computed": true, "elem": { - "bundle_base64": { - "name": "bundle_base64", + "certificate_base64": { + "name": "certificate_base64", "type": "TypeString", - "description": "Base64 encoded version of the certificate bundle.", + "description": "Base64 encoded version of the certificate.", "computed": true }, "name": { @@ -22138,6 +22307,20 @@ } } }, + "composed": { + "name": "composed", + "type": "TypeList", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "database": { + "name": "database", + "type": "TypeString", + "description": "Name of the database to use in the URI connection.", + "computed": true + }, "hosts": { "name": "hosts", "type": "TypeList", @@ -22156,11 +22339,44 @@ "computed": true } } + }, + "path": { + "name": "path", + "type": "TypeString", + "description": "Path for URI connection.", + "computed": true + }, + "query_options": { + "name": "query_options", + "type": "TypeMap", + "description": "Query options to add to the URI connection.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "scheme": { + "name": "scheme", + "type": "TypeString", + "description": "Scheme/protocol for URI connection.", + "computed": true + }, + "ssl": { + "name": "ssl", + "type": "TypeBool", + "description": "Indicates ssl is required for the connection.", + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "Type of connection being described.", + "computed": true } } }, { - "name": "amqps", + "name": "rediss", "type": "TypeList", "computed": true, "elem": { @@ -22223,6 +22439,12 @@ "type": "TypeString" } }, + "database": { + "name": "database", + "type": "TypeInt", + "description": "Number of the database to use in the URI connection.", + "computed": true + }, "hosts": { "name": "hosts", "type": "TypeList", @@ -22278,7 +22500,7 @@ } }, { - "name": "mongodb", + "name": "amqps", "type": "TypeList", "computed": true, "elem": { @@ -22341,12 +22563,6 @@ "type": "TypeString" } }, - "database": { - "name": "database", - "type": "TypeString", - "description": "Name of the database to use in the URI connection.", - "computed": true - }, "hosts": { "name": "hosts", "type": "TypeList", @@ -22381,12 +22597,6 @@ "type": "TypeString" } }, - "replica_set": { - "name": "replica_set", - "type": "TypeString", - "description": "Name of the replica set to use in the URI connection.", - "computed": true - }, "scheme": { "name": "scheme", "type": "TypeString", @@ -22408,7 +22618,7 @@ } }, { - "name": "bi_connector", + "name": "mqtts", "type": "TypeList", "computed": true, "elem": { @@ -22526,7 +22736,7 @@ } }, { - "name": "mysql", + "name": "grpc", "type": "TypeList", "computed": true, "elem": { @@ -22589,12 +22799,6 @@ "type": "TypeString" } }, - "database": { - "name": "database", - "type": "TypeString", - "description": "Name of the database to use in the URI connection.", - "computed": true - }, "hosts": { "name": "hosts", "type": "TypeList", @@ -22650,24 +22854,7 @@ } }, { - "name": "deployment_id", - "type": "TypeString", - "description": "Deployment ID.", - "cloud_data_type": "cloud-database", - "required": true, - "cloud_data_range": [ - "resolved_to:id" - ] - }, - { - "name": "endpoint_type", - "type": "TypeString", - "description": "Endpoint Type. The endpoint must be enabled on the deployment before its connection information can be fetched.", - "required": true, - "options": "public, private, public-and-private" - }, - { - "name": "postgres", + "name": "mongodb", "type": "TypeList", "computed": true, "elem": { @@ -22770,6 +22957,12 @@ "type": "TypeString" } }, + "replica_set": { + "name": "replica_set", + "type": "TypeString", + "description": "Name of the replica set to use in the URI connection.", + "computed": true + }, "scheme": { "name": "scheme", "type": "TypeString", @@ -22791,35 +22984,45 @@ } }, { - "name": "cli", + "name": "secure", "type": "TypeList", - "description": "CLI Connection.", "computed": true, "elem": { - "arguments": { - "name": "arguments", + "authentication": { + "name": "authentication", "type": "TypeList", - "description": "Sets of arguments to call the executable with. The outer array corresponds to a possible way to call the CLI; the inner array is the set of arguments to use with that call.", + "description": "Authentication data for Connection String.", "computed": true, "elem": { - "type": "TypeString" + "method": { + "name": "method", + "type": "TypeString", + "description": "Authentication method for this credential.", + "computed": true + }, + "password": { + "name": "password", + "type": "TypeString", + "description": "Password part of credential.", + "computed": true + }, + "username": { + "name": "username", + "type": "TypeString", + "description": "Username part of credential.", + "computed": true + } } }, - "bin": { - "name": "bin", - "type": "TypeString", - "description": "The name of the executable the CLI should run.", - "computed": true - }, - "certificate": { - "name": "certificate", + "bundle": { + "name": "bundle", "type": "TypeList", "computed": true, "elem": { - "certificate_base64": { - "name": "certificate_base64", + "bundle_base64": { + "name": "bundle_base64", "type": "TypeString", - "description": "Base64 encoded version of the certificate.", + "description": "Base64 encoded version of the certificate bundle.", "computed": true }, "name": { @@ -22830,45 +23033,29 @@ } } }, - "composed": { - "name": "composed", + "hosts": { + "name": "hosts", "type": "TypeList", "computed": true, "elem": { - "type": "TypeString" - } - }, - "environment": { - "name": "environment", - "type": "TypeMap", - "description": "A map of environment variables for a CLI connection.", - "computed": true, - "elem": { - "type": "TypeString" + "hostname": { + "name": "hostname", + "type": "TypeString", + "description": "Hostname for connection.", + "computed": true + }, + "port": { + "name": "port", + "type": "TypeInt", + "description": "Port number for connection.", + "computed": true + } } - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "Type of connection being described.", - "computed": true } } }, { - "name": "user_type", - "type": "TypeString", - "description": "User type.", - "required": true - }, - { - "name": "user_id", - "type": "TypeString", - "description": "User ID.", - "required": true - }, - { - "name": "https", + "name": "emp", "type": "TypeList", "computed": true, "elem": { @@ -22986,7 +23173,20 @@ } }, { - "name": "ops_manager", + "name": "user_type", + "type": "TypeString", + "description": "User type.", + "required": true + }, + { + "name": "endpoint_type", + "type": "TypeString", + "description": "Endpoint Type. The endpoint must be enabled on the deployment before its connection information can be fetched.", + "required": true, + "options": "public, private, public-and-private" + }, + { + "name": "postgres", "type": "TypeList", "computed": true, "elem": { @@ -23049,6 +23249,12 @@ "type": "TypeString" } }, + "database": { + "name": "database", + "type": "TypeString", + "description": "Name of the database to use in the URI connection.", + "computed": true + }, "hosts": { "name": "hosts", "type": "TypeList", @@ -23104,40 +23310,40 @@ } }, { - "name": "emp", + "name": "deployment_id", + "type": "TypeString", + "description": "Deployment ID.", + "cloud_data_type": "cloud-database", + "required": true, + "cloud_data_range": [ + "resolved_to:id" + ] + }, + { + "name": "certificate_root", + "type": "TypeString", + "description": "Optional certificate root path to prepend certificate names. Certificates would be stored in this directory for use by other commands.", + "optional": true + }, + { + "name": "cli", "type": "TypeList", + "description": "CLI Connection.", "computed": true, "elem": { - "authentication": { - "name": "authentication", + "arguments": { + "name": "arguments", "type": "TypeList", - "description": "Authentication data for Connection String.", + "description": "Sets of arguments to call the executable with. The outer array corresponds to a possible way to call the CLI; the inner array is the set of arguments to use with that call.", "computed": true, "elem": { - "method": { - "name": "method", - "type": "TypeString", - "description": "Authentication method for this credential.", - "computed": true - }, - "password": { - "name": "password", - "type": "TypeString", - "description": "Password part of credential.", - "computed": true - }, - "username": { - "name": "username", - "type": "TypeString", - "description": "Username part of credential.", - "computed": true - } + "type": "TypeString" } }, - "browser_accessible": { - "name": "browser_accessible", - "type": "TypeBool", - "description": "Indicates the address is accessible by browser.", + "bin": { + "name": "bin", + "type": "TypeString", + "description": "The name of the executable the CLI should run.", "computed": true }, "certificate": { @@ -23167,52 +23373,15 @@ "type": "TypeString" } }, - "hosts": { - "name": "hosts", - "type": "TypeList", - "computed": true, - "elem": { - "hostname": { - "name": "hostname", - "type": "TypeString", - "description": "Hostname for connection.", - "computed": true - }, - "port": { - "name": "port", - "type": "TypeInt", - "description": "Port number for connection.", - "computed": true - } - } - }, - "path": { - "name": "path", - "type": "TypeString", - "description": "Path for URI connection.", - "computed": true - }, - "query_options": { - "name": "query_options", + "environment": { + "name": "environment", "type": "TypeMap", - "description": "Query options to add to the URI connection.", + "description": "A map of environment variables for a CLI connection.", "computed": true, "elem": { "type": "TypeString" } }, - "scheme": { - "name": "scheme", - "type": "TypeString", - "description": "Scheme/protocol for URI connection.", - "computed": true - }, - "ssl": { - "name": "ssl", - "type": "TypeBool", - "description": "Indicates ssl is required for the connection.", - "computed": true - }, "type": { "name": "type", "type": "TypeString", @@ -23222,13 +23391,7 @@ } }, { - "name": "certificate_root", - "type": "TypeString", - "description": "Optional certificate root path to prepend certificate names. Certificates would be stored in this directory for use by other commands.", - "optional": true - }, - { - "name": "rediss", + "name": "https", "type": "TypeList", "computed": true, "elem": { @@ -23291,12 +23454,6 @@ "type": "TypeString" } }, - "database": { - "name": "database", - "type": "TypeInt", - "description": "Number of the database to use in the URI connection.", - "computed": true - }, "hosts": { "name": "hosts", "type": "TypeList", @@ -23352,7 +23509,7 @@ } }, { - "name": "mqtts", + "name": "analytics", "type": "TypeList", "computed": true, "elem": { @@ -23470,7 +23627,7 @@ } }, { - "name": "analytics", + "name": "ops_manager", "type": "TypeList", "computed": true, "elem": { @@ -23586,6 +23743,12 @@ "computed": true } } + }, + { + "name": "user_id", + "type": "TypeString", + "description": "User ID.", + "required": true } ], "ibm_database_point_in_time_recovery": [ @@ -23606,15 +23769,6 @@ } ], "ibm_database_remotes": [ - { - "name": "replicas", - "type": "TypeList", - "description": "Replica IDs, if applicable.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, { "name": "deployment_id", "type": "TypeString", @@ -23630,43 +23784,52 @@ "type": "TypeString", "description": "Leader ID, if applicable.", "computed": true + }, + { + "name": "replicas", + "type": "TypeList", + "description": "Replica IDs, if applicable.", + "computed": true, + "elem": { + "type": "TypeString" + } } ], "ibm_database_task": [ { - "name": "task_id", + "name": "deployment_id", "type": "TypeString", - "description": "Task ID.", - "required": true + "description": "ID of the deployment the task is being performed on.", + "computed": true }, { - "name": "description", - "type": "TypeString", - "description": "Human-readable description of the task.", + "name": "progress_percent", + "type": "TypeInt", + "description": "Indicator as percentage of progress of the task.", "computed": true }, { - "name": "status", + "name": "created_at", "type": "TypeString", - "description": "The status of the task.", + "description": "Date and time when the task was created.", "computed": true }, { - "name": "deployment_id", + "name": "task_id", "type": "TypeString", - "description": "ID of the deployment the task is being performed on.", - "computed": true + "description": "Task ID.", + "required": true }, { - "name": "progress_percent", - "type": "TypeInt", - "description": "Indicator as percentage of progress of the task.", + "name": "description", + "type": "TypeString", + "description": "Human-readable description of the task.", "computed": true }, { - "name": "created_at", + "name": "status", "type": "TypeString", - "description": "Date and time when the task was created.", + "description": "The status of the task.", "computed": true } ], @@ -23750,12 +23913,6 @@ "description": "The maximum matching length of the prefix-set", "computed": true }, - { - "name": "prefix", - "type": "TypeString", - "description": "IP prefix representing an address and mask length of the prefix-set", - "computed": true - }, { "name": "updated_at", "type": "TypeString", @@ -23779,6 +23936,12 @@ "type": "TypeInt", "description": "The minimum matching length of the prefix-set", "computed": true + }, + { + "name": "prefix", + "type": "TypeString", + "description": "IP prefix representing an address and mask length of the prefix-set", + "computed": true } ], "ibm_dl_export_route_filters": [ @@ -23847,18 +24010,6 @@ } ], "ibm_dl_gateway": [ - { - "name": "global", - "type": "TypeBool", - "description": "Gateways with global routing (true) can connect to networks outside their associated region", - "computed": true - }, - { - "name": "type", - "type": "TypeString", - "description": "Gateway type", - "computed": true - }, { "name": "as_prepends", "type": "TypeList", @@ -23913,40 +24064,33 @@ } }, { - "name": "bgp_base_cidr", - "type": "TypeString", - "description": "BGP base CIDR", - "computed": true - }, - { - "name": "created_at", + "name": "authentication_key", "type": "TypeString", - "description": "The date and time resource was created", + "description": "BGP MD5 authentication key", "computed": true }, { - "name": "bfd_status", + "name": "bgp_status", "type": "TypeString", - "description": "BFD Status", + "description": "Gateway BGP status", "computed": true }, { - "name": "bgp_ibm_cidr", + "name": "connection_mode", "type": "TypeString", - "description": "BGP IBM CIDR", + "description": "Type of services this Gateway is attached to. Mode transit means this Gateway will be attached to Transit Gateway Service and direct means this Gateway will be attached to vpc or classic connection", "computed": true }, { - "name": "port", + "name": "type", "type": "TypeString", - "description": "Gateway port", + "description": "Gateway type", "computed": true }, { - "name": "link_status_updated_at", + "name": "cross_connect_router", "type": "TypeString", - "description": "Date and time Link status was updated", - "optional": true, + "description": "Cross connect router", "computed": true }, { @@ -23956,96 +24100,27 @@ "computed": true }, { - "name": "resource_group", + "name": "operational_status", "type": "TypeString", - "description": "Gateway resource group", - "cloud_data_type": "resource_group", - "computed": true - }, - { - "name": "vlan", - "type": "TypeInt", - "description": "VLAN allocated for this gateway", - "computed": true - }, - { - "name": "gateway_vcs", - "type": "TypeList", - "description": "Collection of direct link gateway virtual connections", - "computed": true, - "elem": { - "created_at": { - "name": "created_at", - "type": "TypeString", - "description": "The date and time resource was created", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "The unique identifier for this virtual connection", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The user-defined name for this virtual connection. Virtualconnection names are unique within a gateway. This is the name of thevirtual connection itself, the network being connected may have its ownname attribute", - "computed": true - }, - "network_account": { - "name": "network_account", - "type": "TypeString", - "description": "For virtual connections across two different IBM Cloud Accounts network_account indicates the account that owns the target network.", - "computed": true - }, - "network_id": { - "name": "network_id", - "type": "TypeString", - "description": "Unique identifier of the target network. For type=vpc virtual connections this is the CRN of the target VPC. This field does not apply to type=classic connections.", - "computed": true - }, - "status": { - "name": "status", - "type": "TypeString", - "description": "Status of the virtual connection.Possible values: [pending,attached,approval_pending,rejected,expired,deleting,detached_by_network_pending,detached_by_network]", - "computed": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "The type of virtual connection. (classic,vpc)", - "computed": true - } - } - }, - { - "name": "bfd_multiplier", - "type": "TypeInt", - "description": "BFD Multiplier", + "description": "Gateway operational status", "computed": true }, { - "name": "link_status", + "name": "port", "type": "TypeString", - "description": "Gateway link status", + "description": "Gateway port", "computed": true }, { - "name": "operational_status", + "name": "bfd_status_updated_at", "type": "TypeString", - "description": "Gateway operational status", - "computed": true - }, - { - "name": "bgp_ibm_asn", - "type": "TypeInt", - "description": "IBM BGP ASN", + "description": "BFD Status", "computed": true }, { - "name": "bgp_status", + "name": "bgp_ibm_cidr", "type": "TypeString", - "description": "Gateway BGP status", + "description": "BGP IBM CIDR", "computed": true }, { @@ -24129,83 +24204,78 @@ } }, { - "name": "location_display_name", + "name": "change_request", "type": "TypeString", - "description": "Gateway location long name", + "description": "Changes pending approval for provider managed Direct Link Connect gateways", "computed": true }, { - "name": "provider_api_managed", - "type": "TypeBool", - "description": "Indicates whether gateway was created through a provider portal", + "name": "crn", + "type": "TypeString", + "description": "The CRN (Cloud Resource Name) of this gateway", + "cloud_data_type": "crn", "computed": true }, { - "name": "bfd_status_updated_at", + "name": "bgp_status_updated_at", "type": "TypeString", - "description": "BFD Status", + "description": "Date and time BGP status was updated", + "optional": true, "computed": true }, { - "name": "crn", + "name": "link_status", "type": "TypeString", - "description": "The CRN (Cloud Resource Name) of this gateway", - "cloud_data_type": "crn", + "description": "Gateway link status", "computed": true }, { - "name": "cross_connect_router", + "name": "default_import_route_filter", "type": "TypeString", - "description": "Cross connect router", + "description": "The default directional route filter action that applies to routes that do not match any directional route filters", "computed": true }, { - "name": "authentication_key", + "name": "link_status_updated_at", "type": "TypeString", - "description": "BGP MD5 authentication key", + "description": "Date and time Link status was updated", + "optional": true, "computed": true }, { - "name": "change_request", + "name": "location_display_name", "type": "TypeString", - "description": "Changes pending approval for provider managed Direct Link Connect gateways", + "description": "Gateway location long name", "computed": true }, { - "name": "completion_notice_reject_reason", + "name": "location_name", "type": "TypeString", - "description": "Reason for completion notice rejection", + "description": "Gateway location", "computed": true }, { - "name": "bfd_interval", - "type": "TypeInt", - "description": "BFD Interval", + "name": "provider_api_managed", + "type": "TypeBool", + "description": "Indicates whether gateway was created through a provider portal", "computed": true }, { - "name": "bgp_cer_cidr", - "type": "TypeString", - "description": "BGP customer edge router CIDR", + "name": "speed_mbps", + "type": "TypeInt", + "description": "Gateway speed in megabits per second", "computed": true }, { - "name": "bgp_status_updated_at", + "name": "bgp_base_cidr", "type": "TypeString", - "description": "Date and time BGP status was updated", - "optional": true, + "description": "BGP base CIDR", "computed": true }, { - "name": "connection_mode", + "name": "created_at", "type": "TypeString", - "description": "Type of services this Gateway is attached to. Mode transit means this Gateway will be attached to Transit Gateway Service and direct means this Gateway will be attached to vpc or classic connection", - "computed": true - }, - { - "name": "speed_mbps", - "type": "TypeInt", - "description": "Gateway speed in megabits per second", + "description": "The date and time resource was created", "computed": true }, { @@ -24221,9 +24291,9 @@ "computed": true }, { - "name": "default_import_route_filter", - "type": "TypeString", - "description": "The default directional route filter action that applies to routes that do not match any directional route filters", + "name": "bfd_interval", + "type": "TypeInt", + "description": "BFD Interval", "computed": true }, { @@ -24233,9 +24303,102 @@ "computed": true }, { - "name": "location_name", + "name": "completion_notice_reject_reason", "type": "TypeString", - "description": "Gateway location", + "description": "Reason for completion notice rejection", + "computed": true + }, + { + "name": "vlan", + "type": "TypeInt", + "description": "VLAN allocated for this gateway", + "computed": true + }, + { + "name": "resource_group", + "type": "TypeString", + "description": "Gateway resource group", + "cloud_data_type": "resource_group", + "computed": true + }, + { + "name": "gateway_vcs", + "type": "TypeList", + "description": "Collection of direct link gateway virtual connections", + "computed": true, + "elem": { + "created_at": { + "name": "created_at", + "type": "TypeString", + "description": "The date and time resource was created", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "The unique identifier for this virtual connection", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The user-defined name for this virtual connection. Virtualconnection names are unique within a gateway. This is the name of thevirtual connection itself, the network being connected may have its ownname attribute", + "computed": true + }, + "network_account": { + "name": "network_account", + "type": "TypeString", + "description": "For virtual connections across two different IBM Cloud Accounts network_account indicates the account that owns the target network.", + "computed": true + }, + "network_id": { + "name": "network_id", + "type": "TypeString", + "description": "Unique identifier of the target network. For type=vpc virtual connections this is the CRN of the target VPC. This field does not apply to type=classic connections.", + "computed": true + }, + "status": { + "name": "status", + "type": "TypeString", + "description": "Status of the virtual connection.Possible values: [pending,attached,approval_pending,rejected,expired,deleting,detached_by_network_pending,detached_by_network]", + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "The type of virtual connection. (classic,vpc)", + "computed": true + } + } + }, + { + "name": "bfd_multiplier", + "type": "TypeInt", + "description": "BFD Multiplier", + "computed": true + }, + { + "name": "bfd_status", + "type": "TypeString", + "description": "BFD Status", + "computed": true + }, + { + "name": "bgp_cer_cidr", + "type": "TypeString", + "description": "BGP customer edge router CIDR", + "computed": true + }, + { + "name": "bgp_ibm_asn", + "type": "TypeInt", + "description": "IBM BGP ASN", + "computed": true + }, + { + "name": "global", + "type": "TypeBool", + "description": "Gateways with global routing (true) can connect to networks outside their associated region", "computed": true } ], @@ -24595,13 +24758,6 @@ } ], "ibm_dl_import_route_filter": [ - { - "name": "gateway", - "type": "TypeString", - "description": "The Direct Link gateway identifier", - "immutable": true, - "required": true - }, { "name": "im_filter_id", "type": "TypeString", @@ -24615,6 +24771,12 @@ "description": "Identifier of the next route filter to be considered", "computed": true }, + { + "name": "created_at", + "type": "TypeString", + "description": "The date and time of the import route filter was created", + "computed": true + }, { "name": "le", "type": "TypeInt", @@ -24622,10 +24784,11 @@ "computed": true }, { - "name": "updated_at", + "name": "gateway", "type": "TypeString", - "description": "The date and time of the import route filter was last updated", - "computed": true + "description": "The Direct Link gateway identifier", + "immutable": true, + "required": true }, { "name": "action", @@ -24633,12 +24796,6 @@ "description": "Determines whether the routes that match the prefix-set will be permit or deny", "computed": true }, - { - "name": "created_at", - "type": "TypeString", - "description": "The date and time of the import route filter was created", - "computed": true - }, { "name": "ge", "type": "TypeInt", @@ -24650,6 +24807,12 @@ "type": "TypeString", "description": "IP prefix representing an address and mask length of the prefix-set", "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "The date and time of the import route filter was last updated", + "computed": true } ], "ibm_dl_import_route_filters": [ @@ -24844,6 +25007,12 @@ } ], "ibm_dl_port": [ + { + "name": "port_id", + "type": "TypeString", + "description": "Port ID", + "required": true + }, { "name": "direct_link_count", "type": "TypeInt", @@ -24882,12 +25051,6 @@ "elem": { "type": "TypeInt" } - }, - { - "name": "port_id", - "type": "TypeString", - "description": "Port ID", - "required": true } ], "ibm_dl_ports": [ @@ -25119,83 +25282,6 @@ } ], "ibm_dl_route_report": [ - { - "name": "virtual_connection_routes", - "type": "TypeList", - "description": "Virtual Connection Routes", - "computed": true, - "elem": { - "routes": { - "name": "routes", - "type": "TypeList", - "description": "Virtual connection routes", - "computed": true, - "elem": { - "active": { - "name": "active", - "type": "TypeBool", - "description": "Indicates whether the route is the preferred path of the prefix", - "computed": true - }, - "local_preference": { - "name": "local_preference", - "type": "TypeString", - "description": "The local preference of the route. This attribute can manipulate the chosen path on routes", - "computed": true - }, - "prefix": { - "name": "prefix", - "type": "TypeString", - "description": "Prefix for virtual connection routes", - "computed": true - } - } - }, - "virtual_connection_id": { - "name": "virtual_connection_id", - "type": "TypeString", - "description": "Virtual connection ID", - "computed": true - }, - "virtual_connection_name": { - "name": "virtual_connection_name", - "type": "TypeString", - "description": "Virtual connection name", - "computed": true - }, - "virtual_connection_type": { - "name": "virtual_connection_type", - "type": "TypeString", - "description": "Virtual connection type", - "computed": true - } - } - }, - { - "name": "status", - "type": "TypeString", - "description": "Route report status", - "computed": true - }, - { - "name": "created_at", - "type": "TypeString", - "description": "The date and time report was created", - "computed": true - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "The date and time resource was created", - "computed": true - }, - { - "name": "route_report", - "type": "TypeString", - "description": "Id of the route report", - "immutable": true, - "required": true - }, { "name": "gateway_routes", "type": "TypeList", @@ -25236,6 +25322,52 @@ } } }, + { + "name": "overlapping_routes", + "type": "TypeList", + "description": "List of overlapping routes", + "computed": true, + "elem": { + "routes": { + "name": "routes", + "type": "TypeList", + "description": "overlapping routes", + "computed": true, + "elem": { + "prefix": { + "name": "prefix", + "type": "TypeString", + "description": "Prefix for overlapping routes", + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "Type of route", + "computed": true + }, + "virtual_connection_id": { + "name": "virtual_connection_id", + "type": "TypeString", + "description": "Virtual connection ID", + "computed": true + } + } + } + } + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "The date and time resource was created", + "computed": true + }, + { + "name": "created_at", + "type": "TypeString", + "description": "The date and time report was created", + "computed": true + }, { "name": "gateway", "type": "TypeString", @@ -25243,6 +25375,13 @@ "immutable": true, "required": true }, + { + "name": "route_report", + "type": "TypeString", + "description": "Id of the route report", + "immutable": true, + "required": true + }, { "name": "advertised_routes", "type": "TypeList", @@ -25264,38 +25403,62 @@ } }, { - "name": "overlapping_routes", + "name": "virtual_connection_routes", "type": "TypeList", - "description": "List of overlapping routes", + "description": "Virtual Connection Routes", "computed": true, "elem": { "routes": { "name": "routes", "type": "TypeList", - "description": "overlapping routes", + "description": "Virtual connection routes", "computed": true, "elem": { - "prefix": { - "name": "prefix", - "type": "TypeString", - "description": "Prefix for overlapping routes", + "active": { + "name": "active", + "type": "TypeBool", + "description": "Indicates whether the route is the preferred path of the prefix", "computed": true }, - "type": { - "name": "type", + "local_preference": { + "name": "local_preference", "type": "TypeString", - "description": "Type of route", + "description": "The local preference of the route. This attribute can manipulate the chosen path on routes", "computed": true }, - "virtual_connection_id": { - "name": "virtual_connection_id", + "prefix": { + "name": "prefix", "type": "TypeString", - "description": "Virtual connection ID", + "description": "Prefix for virtual connection routes", "computed": true } } + }, + "virtual_connection_id": { + "name": "virtual_connection_id", + "type": "TypeString", + "description": "Virtual connection ID", + "computed": true + }, + "virtual_connection_name": { + "name": "virtual_connection_name", + "type": "TypeString", + "description": "Virtual connection name", + "computed": true + }, + "virtual_connection_type": { + "name": "virtual_connection_type", + "type": "TypeString", + "description": "Virtual connection type", + "computed": true } } + }, + { + "name": "status", + "type": "TypeString", + "description": "Route report status", + "computed": true } ], "ibm_dl_route_reports": [ @@ -25530,6 +25693,16 @@ } ], "ibm_dns_custom_resolver_forwarding_rules": [ + { + "name": "instance_id", + "type": "TypeString", + "description": "The unique identifier of a service instance.", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:dns-svcs" + ] + }, { "name": "resolver_id", "type": "TypeString", @@ -25575,16 +25748,6 @@ "computed": true } } - }, - { - "name": "instance_id", - "type": "TypeString", - "description": "The unique identifier of a service instance.", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:dns-svcs" - ] } ], "ibm_dns_custom_resolver_secondary_zones": [ @@ -25777,6 +25940,16 @@ } ], "ibm_dns_glb_monitors": [ + { + "name": "instance_id", + "type": "TypeString", + "description": "The GUID of the private DNS.", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:dns-svcs" + ] + }, { "name": "dns_glb_monitors", "type": "TypeList", @@ -25874,16 +26047,6 @@ "computed": true } } - }, - { - "name": "instance_id", - "type": "TypeString", - "description": "The GUID of the private DNS.", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:dns-svcs" - ] } ], "ibm_dns_glb_pools": [ @@ -26212,22 +26375,6 @@ } ], "ibm_dns_resource_records": [ - { - "name": "instance_id", - "type": "TypeString", - "description": "Instance ID", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:dns-svcs" - ] - }, - { - "name": "zone_id", - "type": "TypeString", - "description": "Zone Id", - "required": true - }, { "name": "dns_resource_records", "type": "TypeList", @@ -26265,20 +26412,25 @@ "computed": true } } - } - ], - "ibm_dns_secondary": [ + }, { - "name": "zone_name", + "name": "instance_id", "type": "TypeString", - "description": "The name of the secondary", - "required": true + "description": "Instance ID", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:dns-svcs" + ] }, { - "name": "master_ip_address", + "name": "zone_id", "type": "TypeString", - "computed": true - }, + "description": "Zone Id", + "required": true + } + ], + "ibm_dns_secondary": [ { "name": "transfer_frequency", "type": "TypeInt", @@ -26293,19 +26445,20 @@ "name": "status_text", "type": "TypeString", "computed": true - } - ], - "ibm_dns_zones": [ + }, { - "name": "instance_id", + "name": "zone_name", "type": "TypeString", - "description": "Instance ID", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:dns-svcs" - ] + "description": "The name of the secondary", + "required": true }, + { + "name": "master_ip_address", + "type": "TypeString", + "computed": true + } + ], + "ibm_dns_zones": [ { "name": "dns_zones", "type": "TypeList", @@ -26361,48 +26514,19 @@ "computed": true } } - } - ], - "ibm_en_destination_android": [ - { - "name": "name", - "type": "TypeString", - "description": "Destination name.", - "computed": true - }, - { - "name": "type", - "type": "TypeString", - "description": "Destination type push_android.", - "computed": true - }, - { - "name": "subscription_names", - "type": "TypeList", - "description": "List of subscriptions.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "instance_guid", - "type": "TypeString", - "description": "Unique identifier for IBM Cloud Event Notifications instance.", - "required": true - }, - { - "name": "destination_id", - "type": "TypeString", - "description": "Unique identifier for Destination.", - "required": true }, { - "name": "description", + "name": "instance_id", "type": "TypeString", - "description": "Destination description.", - "computed": true - }, + "description": "Instance ID", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:dns-svcs" + ] + } + ], + "ibm_en_destination_android": [ { "name": "config", "type": "TypeList", @@ -26442,6 +26566,36 @@ } } }, + { + "name": "subscription_count", + "type": "TypeInt", + "description": "Number of subscriptions.", + "computed": true + }, + { + "name": "destination_id", + "type": "TypeString", + "description": "Unique identifier for Destination.", + "required": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Destination name.", + "computed": true + }, + { + "name": "description", + "type": "TypeString", + "description": "Destination description.", + "computed": true + }, + { + "name": "type", + "type": "TypeString", + "description": "Destination type push_android.", + "computed": true + }, { "name": "updated_at", "type": "TypeString", @@ -26449,25 +26603,61 @@ "computed": true }, { - "name": "subscription_count", - "type": "TypeInt", - "description": "Number of subscriptions.", - "computed": true + "name": "subscription_names", + "type": "TypeList", + "description": "List of subscriptions.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "instance_guid", + "type": "TypeString", + "description": "Unique identifier for IBM Cloud Event Notifications instance.", + "required": true } ], "ibm_en_destination_ce": [ + { + "name": "type", + "type": "TypeString", + "description": "Destination type Webhook.", + "computed": true + }, + { + "name": "subscription_names", + "type": "TypeList", + "description": "List of subscriptions.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, { "name": "instance_guid", "type": "TypeString", "description": "Unique identifier for IBM Cloud Event Notifications instance.", "required": true }, + { + "name": "destination_id", + "type": "TypeString", + "description": "Unique identifier for Destination.", + "required": true + }, { "name": "name", "type": "TypeString", "description": "Destination name.", "computed": true }, + { + "name": "subscription_count", + "type": "TypeInt", + "description": "Number of subscriptions.", + "computed": true + }, { "name": "description", "type": "TypeString", @@ -26520,44 +26710,29 @@ } }, { - "name": "subscription_count", - "type": "TypeInt", - "description": "Number of subscriptions.", + "name": "updated_at", + "type": "TypeString", + "description": "Last updated time.", "computed": true - }, - { - "name": "subscription_names", - "type": "TypeList", - "description": "List of subscriptions.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, + } + ], + "ibm_en_destination_cf": [ { - "name": "destination_id", + "name": "instance_guid", "type": "TypeString", - "description": "Unique identifier for Destination.", + "description": "Unique identifier for IBM Cloud Event Notifications instance.", "required": true }, { - "name": "type", + "name": "description", "type": "TypeString", - "description": "Destination type Webhook.", + "description": "Destination description.", "computed": true }, { - "name": "updated_at", - "type": "TypeString", - "description": "Last updated time.", - "computed": true - } - ], - "ibm_en_destination_cf": [ - { - "name": "name", - "type": "TypeString", - "description": "Destination name.", + "name": "subscription_count", + "type": "TypeInt", + "description": "Number of subscriptions.", "computed": true }, { @@ -26569,18 +26744,6 @@ "type": "TypeString" } }, - { - "name": "subscription_count", - "type": "TypeInt", - "description": "Number of subscriptions.", - "computed": true - }, - { - "name": "instance_guid", - "type": "TypeString", - "description": "Unique identifier for IBM Cloud Event Notifications instance.", - "required": true - }, { "name": "destination_id", "type": "TypeString", @@ -26588,9 +26751,9 @@ "required": true }, { - "name": "description", + "name": "name", "type": "TypeString", - "description": "Destination description.", + "description": "Destination name.", "computed": true }, { @@ -26634,6 +26797,18 @@ } ], "ibm_en_destination_chrome": [ + { + "name": "description", + "type": "TypeString", + "description": "Destination description.", + "computed": true + }, + { + "name": "type", + "type": "TypeString", + "description": "Destination type push_chrome.", + "computed": true + }, { "name": "config", "type": "TypeList", @@ -26668,12 +26843,6 @@ } } }, - { - "name": "subscription_count", - "type": "TypeInt", - "description": "Number of subscriptions.", - "computed": true - }, { "name": "subscription_names", "type": "TypeList", @@ -26702,29 +26871,38 @@ "computed": true }, { - "name": "description", + "name": "updated_at", "type": "TypeString", - "description": "Destination description.", + "description": "Last updated time.", "computed": true }, { - "name": "type", - "type": "TypeString", - "description": "Destination type push_chrome.", + "name": "subscription_count", + "type": "TypeInt", + "description": "Number of subscriptions.", "computed": true - }, + } + ], + "ibm_en_destination_cos": [ { "name": "updated_at", "type": "TypeString", "description": "Last updated time.", "computed": true - } - ], - "ibm_en_destination_cos": [ + }, { - "name": "destination_id", + "name": "subscription_names", + "type": "TypeList", + "description": "List of subscriptions.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "instance_guid", "type": "TypeString", - "description": "Unique identifier for Destination.", + "description": "Unique identifier for IBM Cloud Event Notifications instance.", "required": true }, { @@ -26733,6 +26911,18 @@ "description": "Destination name.", "computed": true }, + { + "name": "description", + "type": "TypeString", + "description": "Destination description.", + "computed": true + }, + { + "name": "type", + "type": "TypeString", + "description": "Destination type ibmcf.", + "computed": true + }, { "name": "config", "type": "TypeList", @@ -26767,25 +26957,24 @@ } }, { - "name": "updated_at", - "type": "TypeString", - "description": "Last updated time.", + "name": "subscription_count", + "type": "TypeInt", + "description": "Number of subscriptions.", "computed": true }, { - "name": "subscription_names", - "type": "TypeList", - "description": "List of subscriptions.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "instance_guid", + "name": "destination_id", "type": "TypeString", - "description": "Unique identifier for IBM Cloud Event Notifications instance.", + "description": "Unique identifier for Destination.", "required": true + } + ], + "ibm_en_destination_custom_email": [ + { + "name": "subscription_count", + "type": "TypeInt", + "description": "Number of subscriptions.", + "computed": true }, { "name": "description", @@ -26794,19 +26983,23 @@ "computed": true }, { - "name": "type", + "name": "destination_id", "type": "TypeString", - "description": "Destination type ibmcf.", + "description": "Unique identifier for Destination.", + "required": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Destination name.", "computed": true }, { - "name": "subscription_count", - "type": "TypeInt", - "description": "Number of subscriptions.", + "name": "type", + "type": "TypeString", + "description": "Destination type slack.", "computed": true - } - ], - "ibm_en_destination_firefox": [ + }, { "name": "config", "type": "TypeList", @@ -26818,17 +27011,11 @@ "type": "TypeList", "computed": true, "elem": { - "pre_prod": { - "name": "pre_prod", - "type": "TypeBool", - "description": "The flag to enable destination as pre-prod or prod", - "computed": true - }, - "website_url": { - "name": "website_url", + "domain": { + "name": "domain", "type": "TypeString", - "description": "The website url", - "optional": true + "description": "The custom doamin", + "computed": true } } } @@ -26850,43 +27037,40 @@ } }, { - "name": "name", + "name": "instance_guid", "type": "TypeString", - "description": "Destination name.", - "computed": true - }, + "description": "Unique identifier for IBM Cloud Event Notifications instance.", + "required": true + } + ], + "ibm_en_destination_firefox": [ { - "name": "description", - "type": "TypeString", - "description": "Destination description.", - "computed": true + "name": "subscription_names", + "type": "TypeList", + "description": "List of subscriptions.", + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "type", + "name": "instance_guid", "type": "TypeString", - "description": "Destination type push_firefox.", - "computed": true + "description": "Unique identifier for IBM Cloud Event Notifications instance.", + "required": true }, { - "name": "subscription_count", - "type": "TypeInt", - "description": "Number of subscriptions.", + "name": "name", + "type": "TypeString", + "description": "Destination name.", "computed": true }, { - "name": "instance_guid", + "name": "type", "type": "TypeString", - "description": "Unique identifier for IBM Cloud Event Notifications instance.", - "required": true + "description": "Destination type push_firefox.", + "computed": true }, - { - "name": "destination_id", - "type": "TypeString", - "description": "Unique identifier for Destination.", - "required": true - } - ], - "ibm_en_destination_huawei": [ { "name": "config", "type": "TypeList", @@ -26898,32 +27082,26 @@ "type": "TypeList", "computed": true, "elem": { - "client_id": { - "name": "client_id", - "type": "TypeString", - "description": "ClientID for the Huawei account oauth.", - "computed": true - }, - "client_secret": { - "name": "client_secret", - "type": "TypeString", - "description": "ClientSecret for the Huawei account oauth", - "computed": true - }, "pre_prod": { "name": "pre_prod", "type": "TypeBool", "description": "The flag to enable destination as pre-prod or prod", "computed": true + }, + "website_url": { + "name": "website_url", + "type": "TypeString", + "description": "The website url", + "optional": true } } } } }, { - "name": "updated_at", - "type": "TypeString", - "description": "Last updated time.", + "name": "subscription_count", + "type": "TypeInt", + "description": "Number of subscriptions.", "computed": true }, { @@ -26933,21 +27111,29 @@ "required": true }, { - "name": "name", + "name": "description", "type": "TypeString", - "description": "Destination name.", + "description": "Destination description.", "computed": true }, { - "name": "description", + "name": "updated_at", "type": "TypeString", - "description": "Destination description.", + "description": "Last updated time.", "computed": true + } + ], + "ibm_en_destination_huawei": [ + { + "name": "destination_id", + "type": "TypeString", + "description": "Unique identifier for Destination.", + "required": true }, { - "name": "type", + "name": "name", "type": "TypeString", - "description": "Destination type push_android.", + "description": "Destination name.", "computed": true }, { @@ -26956,6 +27142,12 @@ "description": "Number of subscriptions.", "computed": true }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Last updated time.", + "computed": true + }, { "name": "subscription_names", "type": "TypeList", @@ -26970,21 +27162,54 @@ "type": "TypeString", "description": "Unique identifier for IBM Cloud Event Notifications instance.", "required": true - } - ], - "ibm_en_destination_ios": [ + }, { - "name": "certificate", + "name": "description", "type": "TypeString", - "description": "The Certificate File.", + "description": "Destination description.", "computed": true }, { - "name": "updated_at", + "name": "type", "type": "TypeString", - "description": "Last updated time.", + "description": "Destination type push_android.", "computed": true }, + { + "name": "config", + "type": "TypeList", + "description": "Payload describing a destination configuration.", + "computed": true, + "elem": { + "params": { + "name": "params", + "type": "TypeList", + "computed": true, + "elem": { + "client_id": { + "name": "client_id", + "type": "TypeString", + "description": "ClientID for the Huawei account oauth.", + "computed": true + }, + "client_secret": { + "name": "client_secret", + "type": "TypeString", + "description": "ClientSecret for the Huawei account oauth", + "computed": true + }, + "pre_prod": { + "name": "pre_prod", + "type": "TypeBool", + "description": "The flag to enable destination as pre-prod or prod", + "computed": true + } + } + } + } + } + ], + "ibm_en_destination_ios": [ { "name": "subscription_names", "type": "TypeList", @@ -26995,33 +27220,27 @@ } }, { - "name": "description", + "name": "name", "type": "TypeString", - "description": "Destination description.", + "description": "Destination name.", "computed": true }, { - "name": "destination_id", - "type": "TypeString", - "description": "Unique identifier for Destination.", - "required": true - }, - { - "name": "name", + "name": "description", "type": "TypeString", - "description": "Destination name.", + "description": "Destination description.", "computed": true }, { - "name": "type", + "name": "certificate", "type": "TypeString", - "description": "Destination type push_ios.", + "description": "The Certificate File.", "computed": true }, { - "name": "certificate_content_type", + "name": "updated_at", "type": "TypeString", - "description": "The Certificate Content Type to be set p8/p12.", + "description": "Last updated time.", "computed": true }, { @@ -27092,9 +27311,33 @@ "type": "TypeString", "description": "Unique identifier for IBM Cloud Event Notifications instance.", "required": true + }, + { + "name": "destination_id", + "type": "TypeString", + "description": "Unique identifier for Destination.", + "required": true + }, + { + "name": "type", + "type": "TypeString", + "description": "Destination type push_ios.", + "computed": true + }, + { + "name": "certificate_content_type", + "type": "TypeString", + "description": "The Certificate Content Type to be set p8/p12.", + "computed": true } ], "ibm_en_destination_msteams": [ + { + "name": "destination_id", + "type": "TypeString", + "description": "Unique identifier for Destination.", + "required": true + }, { "name": "description", "type": "TypeString", @@ -27102,25 +27345,10 @@ "computed": true }, { - "name": "config", - "type": "TypeList", - "description": "Payload describing a destination configuration.", - "computed": true, - "elem": { - "params": { - "name": "params", - "type": "TypeList", - "computed": true, - "elem": { - "url": { - "name": "url", - "type": "TypeString", - "description": "URL of msteams", - "computed": true - } - } - } - } + "name": "updated_at", + "type": "TypeString", + "description": "Last updated time.", + "computed": true }, { "name": "subscription_count", @@ -27137,24 +27365,12 @@ "type": "TypeString" } }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Last updated time.", - "computed": true - }, { "name": "instance_guid", "type": "TypeString", "description": "Unique identifier for IBM Cloud Event Notifications instance.", "required": true }, - { - "name": "destination_id", - "type": "TypeString", - "description": "Unique identifier for Destination.", - "required": true - }, { "name": "name", "type": "TypeString", @@ -27166,39 +27382,36 @@ "type": "TypeString", "description": "Destination type msteams.", "computed": true + }, + { + "name": "config", + "type": "TypeList", + "description": "Payload describing a destination configuration.", + "computed": true, + "elem": { + "params": { + "name": "params", + "type": "TypeList", + "computed": true, + "elem": { + "url": { + "name": "url", + "type": "TypeString", + "description": "URL of msteams", + "computed": true + } + } + } + } } ], "ibm_en_destination_pagerduty": [ - { - "name": "subscription_count", - "type": "TypeInt", - "description": "Number of subscriptions.", - "computed": true - }, { "name": "description", "type": "TypeString", "description": "Destination description.", "computed": true }, - { - "name": "destination_id", - "type": "TypeString", - "description": "Unique identifier for Destination.", - "required": true - }, - { - "name": "name", - "type": "TypeString", - "description": "Destination name.", - "computed": true - }, - { - "name": "type", - "type": "TypeString", - "description": "Destination type push_chrome.", - "computed": true - }, { "name": "config", "type": "TypeList", @@ -27232,6 +27445,12 @@ "description": "Last updated time.", "computed": true }, + { + "name": "subscription_count", + "type": "TypeInt", + "description": "Number of subscriptions.", + "computed": true + }, { "name": "subscription_names", "type": "TypeList", @@ -27246,13 +27465,43 @@ "type": "TypeString", "description": "Unique identifier for IBM Cloud Event Notifications instance.", "required": true + }, + { + "name": "destination_id", + "type": "TypeString", + "description": "Unique identifier for Destination.", + "required": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Destination name.", + "computed": true + }, + { + "name": "type", + "type": "TypeString", + "description": "Destination type push_chrome.", + "computed": true } ], "ibm_en_destination_safari": [ { - "name": "type", + "name": "instance_guid", "type": "TypeString", - "description": "Destination type push_ios.", + "description": "Unique identifier for IBM Cloud Event Notifications instance.", + "required": true + }, + { + "name": "description", + "type": "TypeString", + "description": "Destination description.", + "computed": true + }, + { + "name": "subscription_count", + "type": "TypeInt", + "description": "Number of subscriptions.", "computed": true }, { @@ -27318,12 +27567,6 @@ "description": "Last updated time.", "computed": true }, - { - "name": "subscription_count", - "type": "TypeInt", - "description": "Number of subscriptions.", - "computed": true - }, { "name": "subscription_names", "type": "TypeList", @@ -27333,6 +27576,12 @@ "type": "TypeString" } }, + { + "name": "destination_id", + "type": "TypeString", + "description": "Unique identifier for Destination.", + "required": true + }, { "name": "name", "type": "TypeString", @@ -27340,9 +27589,17 @@ "computed": true }, { - "name": "destination_id", + "name": "type", "type": "TypeString", - "description": "Unique identifier for Destination.", + "description": "Destination type push_ios.", + "computed": true + } + ], + "ibm_en_destination_slack": [ + { + "name": "instance_guid", + "type": "TypeString", + "description": "Unique identifier for IBM Cloud Event Notifications instance.", "required": true }, { @@ -27352,13 +27609,20 @@ "computed": true }, { - "name": "instance_guid", - "type": "TypeString", - "description": "Unique identifier for IBM Cloud Event Notifications instance.", - "required": true - } - ], - "ibm_en_destination_slack": [ + "name": "subscription_count", + "type": "TypeInt", + "description": "Number of subscriptions.", + "computed": true + }, + { + "name": "subscription_names", + "type": "TypeList", + "description": "List of subscriptions.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, { "name": "destination_id", "type": "TypeString", @@ -27366,9 +27630,9 @@ "required": true }, { - "name": "description", + "name": "name", "type": "TypeString", - "description": "Destination description.", + "description": "Destination name.", "computed": true }, { @@ -27398,41 +27662,20 @@ } } }, - { - "name": "subscription_count", - "type": "TypeInt", - "description": "Number of subscriptions.", - "computed": true - }, - { - "name": "instance_guid", - "type": "TypeString", - "description": "Unique identifier for IBM Cloud Event Notifications instance.", - "required": true - }, - { - "name": "name", - "type": "TypeString", - "description": "Destination name.", - "computed": true - }, { "name": "updated_at", "type": "TypeString", "description": "Last updated time.", "computed": true - }, - { - "name": "subscription_names", - "type": "TypeList", - "description": "List of subscriptions.", - "computed": true, - "elem": { - "type": "TypeString" - } } ], "ibm_en_destination_sn": [ + { + "name": "destination_id", + "type": "TypeString", + "description": "Unique identifier for Destination.", + "required": true + }, { "name": "name", "type": "TypeString", @@ -27446,13 +27689,10 @@ "computed": true }, { - "name": "subscription_names", - "type": "TypeList", - "description": "List of subscriptions.", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "updated_at", + "type": "TypeString", + "description": "Last updated time.", + "computed": true }, { "name": "subscription_count", @@ -27466,12 +27706,6 @@ "description": "Unique identifier for IBM Cloud Event Notifications instance.", "required": true }, - { - "name": "destination_id", - "type": "TypeString", - "description": "Unique identifier for Destination.", - "required": true - }, { "name": "description", "type": "TypeString", @@ -27523,20 +27757,6 @@ } } }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Last updated time.", - "computed": true - } - ], - "ibm_en_destination_webhook": [ - { - "name": "subscription_count", - "type": "TypeInt", - "description": "Number of subscriptions.", - "computed": true - }, { "name": "subscription_names", "type": "TypeList", @@ -27545,19 +27765,9 @@ "elem": { "type": "TypeString" } - }, - { - "name": "instance_guid", - "type": "TypeString", - "description": "Unique identifier for IBM Cloud Event Notifications instance.", - "required": true - }, - { - "name": "type", - "type": "TypeString", - "description": "Destination type Webhook.", - "computed": true - }, + } + ], + "ibm_en_destination_webhook": [ { "name": "config", "type": "TypeList", @@ -27604,9 +27814,9 @@ } }, { - "name": "updated_at", + "name": "type", "type": "TypeString", - "description": "Last updated time.", + "description": "Destination type Webhook.", "computed": true }, { @@ -27626,6 +27836,33 @@ "type": "TypeString", "description": "Destination description.", "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Last updated time.", + "computed": true + }, + { + "name": "subscription_count", + "type": "TypeInt", + "description": "Number of subscriptions.", + "computed": true + }, + { + "name": "subscription_names", + "type": "TypeList", + "description": "List of subscriptions.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "instance_guid", + "type": "TypeString", + "description": "Unique identifier for IBM Cloud Event Notifications instance.", + "required": true } ], "ibm_en_destinations": [ @@ -27702,6 +27939,12 @@ } ], "ibm_en_integration": [ + { + "name": "updated_at", + "type": "TypeString", + "description": "Last updated time.", + "computed": true + }, { "name": "instance_guid", "type": "TypeString", @@ -27713,12 +27956,6 @@ "type": "TypeString", "description": "Unique identifier for Source.", "required": true - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Last updated time.", - "computed": true } ], "ibm_en_integrations": [ @@ -27768,6 +28005,12 @@ } ], "ibm_en_source": [ + { + "name": "description", + "type": "TypeString", + "description": "Source description.", + "computed": true + }, { "name": "updated_at", "type": "TypeString", @@ -27797,12 +28040,6 @@ "type": "TypeString", "description": "Source name.", "computed": true - }, - { - "name": "description", - "type": "TypeString", - "description": "Source description.", - "computed": true } ], "ibm_en_sources": [ @@ -27876,12 +28113,50 @@ } ], "ibm_en_subscription_android": [ + { + "name": "description", + "type": "TypeString", + "description": "Subscription description.", + "computed": true + }, + { + "name": "destination_id", + "type": "TypeString", + "description": "The destination ID.", + "computed": true + }, + { + "name": "topic_id", + "type": "TypeString", + "description": "Topic ID.", + "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Last updated time.", + "computed": true + }, { "name": "instance_guid", "type": "TypeString", "description": "Unique identifier for IBM Cloud Event Notifications instance.", "required": true }, + { + "name": "subscription_id", + "type": "TypeString", + "description": "Unique identifier for result.", + "required": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Subscription name.", + "computed": true + } + ], + "ibm_en_subscription_ce": [ { "name": "subscription_id", "type": "TypeString", @@ -27912,14 +28187,6 @@ "description": "Topic ID.", "computed": true }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Last updated time.", - "computed": true - } - ], - "ibm_en_subscription_ce": [ { "name": "updated_at", "type": "TypeString", @@ -27931,13 +28198,9 @@ "type": "TypeString", "description": "Unique identifier for IBM Cloud Event Notifications instance.", "required": true - }, - { - "name": "subscription_id", - "type": "TypeString", - "description": "Unique identifier for result.", - "required": true - }, + } + ], + "ibm_en_subscription_cf": [ { "name": "name", "type": "TypeString", @@ -27961,9 +28224,27 @@ "type": "TypeString", "description": "Topic ID.", "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Last updated time.", + "computed": true + }, + { + "name": "instance_guid", + "type": "TypeString", + "description": "Unique identifier for IBM Cloud Event Notifications instance.", + "required": true + }, + { + "name": "subscription_id", + "type": "TypeString", + "description": "Unique identifier for result.", + "required": true } ], - "ibm_en_subscription_cf": [ + "ibm_en_subscription_chrome": [ { "name": "instance_guid", "type": "TypeString", @@ -28007,7 +28288,13 @@ "computed": true } ], - "ibm_en_subscription_chrome": [ + "ibm_en_subscription_cos": [ + { + "name": "destination_id", + "type": "TypeString", + "description": "The destination ID.", + "computed": true + }, { "name": "topic_id", "type": "TypeString", @@ -28043,15 +28330,15 @@ "type": "TypeString", "description": "Subscription description.", "computed": true - }, + } + ], + "ibm_en_subscription_custom_email": [ { - "name": "destination_id", + "name": "description", "type": "TypeString", - "description": "The destination ID.", + "description": "Subscription description.", "computed": true - } - ], - "ibm_en_subscription_cos": [ + }, { "name": "destination_id", "type": "TypeString", @@ -28064,6 +28351,134 @@ "description": "Topic ID.", "computed": true }, + { + "name": "attributes", + "type": "TypeList", + "computed": true, + "elem": { + "add_notification_payload": { + "name": "add_notification_payload", + "type": "TypeBool", + "description": "Whether to add the notification payload to the email.", + "computed": true + }, + "from_email": { + "name": "from_email", + "type": "TypeString", + "description": "The email from where it is sourced", + "optional": true, + "computed": true + }, + "from_name": { + "name": "from_name", + "type": "TypeString", + "description": "The email address username of source email address.", + "optional": true, + "computed": true + }, + "invited": { + "name": "invited", + "type": "TypeList", + "description": "The invited item schema", + "computed": true, + "elem": { + "email": { + "name": "email", + "type": "TypeString", + "description": "The email address to reply to.", + "optional": true, + "computed": true + }, + "expires_at": { + "name": "expires_at", + "type": "TypeString", + "description": "The expiry date of invitation mail", + "optional": true, + "computed": true + }, + "updated_at": { + "name": "updated_at", + "type": "TypeString", + "description": "The updated date of invitation", + "optional": true, + "computed": true + } + } + }, + "reply_to_mail": { + "name": "reply_to_mail", + "type": "TypeString", + "description": "The email address to reply to.", + "optional": true, + "computed": true + }, + "reply_to_name": { + "name": "reply_to_name", + "type": "TypeString", + "description": "The email address user name to reply to.", + "optional": true, + "computed": true + }, + "subscribed": { + "name": "subscribed", + "type": "TypeList", + "description": "The email subscribed items schema", + "computed": true, + "elem": { + "email": { + "name": "email", + "type": "TypeString", + "description": "The email address to reply to.", + "optional": true, + "computed": true + }, + "updated_at": { + "name": "updated_at", + "type": "TypeString", + "description": "The updated date of susbcription", + "optional": true, + "computed": true + } + } + }, + "template_id_invitation": { + "name": "template_id_invitation", + "type": "TypeString", + "description": "The templete id for invitation", + "optional": true, + "computed": true + }, + "template_id_notification": { + "name": "template_id_notification", + "type": "TypeString", + "description": "The templete id for notification", + "optional": true, + "computed": true + }, + "unsubscribed": { + "name": "unsubscribed", + "type": "TypeList", + "description": "The unsusbscribed email items schema", + "computed": true, + "elem": { + "email": { + "name": "email", + "type": "TypeString", + "description": "The email address to reply to.", + "optional": true, + "computed": true + }, + "updated_at": { + "name": "updated_at", + "type": "TypeString", + "description": "The updated date of unsusbcription", + "optional": true, + "computed": true + } + } + } + } + }, { "name": "updated_at", "type": "TypeString", @@ -28087,12 +28502,6 @@ "type": "TypeString", "description": "Subscription name.", "computed": true - }, - { - "name": "description", - "type": "TypeString", - "description": "Subscription description.", - "computed": true } ], "ibm_en_subscription_email": [ @@ -28247,6 +28656,12 @@ } ], "ibm_en_subscription_firefox": [ + { + "name": "updated_at", + "type": "TypeString", + "description": "Last updated time.", + "computed": true + }, { "name": "instance_guid", "type": "TypeString", @@ -28282,21 +28697,9 @@ "type": "TypeString", "description": "Topic ID.", "computed": true - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Last updated time.", - "computed": true } ], "ibm_en_subscription_huawei": [ - { - "name": "destination_id", - "type": "TypeString", - "description": "The destination ID.", - "computed": true - }, { "name": "topic_id", "type": "TypeString", @@ -28332,9 +28735,27 @@ "type": "TypeString", "description": "Subscription description.", "computed": true + }, + { + "name": "destination_id", + "type": "TypeString", + "description": "The destination ID.", + "computed": true } ], "ibm_en_subscription_ios": [ + { + "name": "topic_id", + "type": "TypeString", + "description": "Topic ID.", + "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Last updated time.", + "computed": true + }, { "name": "instance_guid", "type": "TypeString", @@ -28364,21 +28785,15 @@ "type": "TypeString", "description": "The destination ID.", "computed": true - }, + } + ], + "ibm_en_subscription_msteams": [ { - "name": "topic_id", + "name": "destination_id", "type": "TypeString", - "description": "Topic ID.", + "description": "The destination ID.", "computed": true }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Last updated time.", - "computed": true - } - ], - "ibm_en_subscription_msteams": [ { "name": "topic_id", "type": "TypeString", @@ -28414,12 +28829,6 @@ "type": "TypeString", "description": "Subscription description.", "computed": true - }, - { - "name": "destination_id", - "type": "TypeString", - "description": "The destination ID.", - "computed": true } ], "ibm_en_subscription_pagerduty": [ @@ -28511,31 +28920,6 @@ } ], "ibm_en_subscription_slack": [ - { - "name": "destination_id", - "type": "TypeString", - "description": "The destination ID.", - "computed": true - }, - { - "name": "topic_id", - "type": "TypeString", - "description": "Topic ID.", - "computed": true - }, - { - "name": "attributes", - "type": "TypeList", - "computed": true, - "elem": { - "attachment_color": { - "name": "attachment_color", - "type": "TypeString", - "description": "attachment color code", - "optional": true - } - } - }, { "name": "updated_at", "type": "TypeString", @@ -28565,9 +28949,40 @@ "type": "TypeString", "description": "Subscription description.", "computed": true + }, + { + "name": "destination_id", + "type": "TypeString", + "description": "The destination ID.", + "computed": true + }, + { + "name": "topic_id", + "type": "TypeString", + "description": "Topic ID.", + "computed": true + }, + { + "name": "attributes", + "type": "TypeList", + "computed": true, + "elem": { + "attachment_color": { + "name": "attachment_color", + "type": "TypeString", + "description": "attachment color code", + "optional": true + } + } } ], "ibm_en_subscription_sms": [ + { + "name": "updated_at", + "type": "TypeString", + "description": "Last updated time.", + "computed": true + }, { "name": "instance_guid", "type": "TypeString", @@ -28684,15 +29099,15 @@ } } } - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Last updated time.", - "computed": true } ], "ibm_en_subscription_sn": [ + { + "name": "instance_guid", + "type": "TypeString", + "description": "Unique identifier for IBM Cloud Event Notifications instance.", + "required": true + }, { "name": "subscription_id", "type": "TypeString", @@ -28728,15 +29143,27 @@ "type": "TypeString", "description": "Last updated time.", "computed": true - }, - { - "name": "instance_guid", - "type": "TypeString", - "description": "Unique identifier for IBM Cloud Event Notifications instance.", - "required": true } ], "ibm_en_subscription_webhook": [ + { + "name": "subscription_id", + "type": "TypeString", + "description": "Unique identifier for result.", + "required": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Subscription name.", + "computed": true + }, + { + "name": "description", + "type": "TypeString", + "description": "Subscription description.", + "computed": true + }, { "name": "destination_id", "type": "TypeString", @@ -28782,24 +29209,6 @@ "type": "TypeString", "description": "Unique identifier for IBM Cloud Event Notifications instance.", "required": true - }, - { - "name": "subscription_id", - "type": "TypeString", - "description": "Unique identifier for result.", - "required": true - }, - { - "name": "name", - "type": "TypeString", - "description": "Subscription name.", - "computed": true - }, - { - "name": "description", - "type": "TypeString", - "description": "Subscription description.", - "computed": true } ], "ibm_en_subscriptions": [ @@ -28885,12 +29294,6 @@ } ], "ibm_en_topic": [ - { - "name": "name", - "type": "TypeString", - "description": "Name of the topic.", - "computed": true - }, { "name": "description", "type": "TypeString", @@ -28898,10 +29301,54 @@ "computed": true }, { - "name": "source_count", - "type": "TypeInt", - "description": "Number of sources.", - "computed": true + "name": "subscriptions", + "type": "TypeList", + "description": "List of subscriptions.", + "computed": true, + "elem": { + "description": { + "name": "description", + "type": "TypeString", + "description": "Subscription description.", + "computed": true + }, + "destination_id": { + "name": "destination_id", + "type": "TypeString", + "description": "The destination ID.", + "computed": true + }, + "destination_type": { + "name": "destination_type", + "type": "TypeString", + "description": "The type of destination.", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "Subscription ID.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Subscription name.", + "computed": true + }, + "topic_id": { + "name": "topic_id", + "type": "TypeString", + "description": "Topic ID.", + "computed": true + }, + "updated_at": { + "name": "updated_at", + "type": "TypeString", + "description": "Last updated time.", + "computed": true + } + } }, { "name": "sources", @@ -28967,56 +29414,6 @@ "description": "Number of subscriptions.", "computed": true }, - { - "name": "subscriptions", - "type": "TypeList", - "description": "List of subscriptions.", - "computed": true, - "elem": { - "description": { - "name": "description", - "type": "TypeString", - "description": "Subscription description.", - "computed": true - }, - "destination_id": { - "name": "destination_id", - "type": "TypeString", - "description": "The destination ID.", - "computed": true - }, - "destination_type": { - "name": "destination_type", - "type": "TypeString", - "description": "The type of destination.", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "Subscription ID.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Subscription name.", - "computed": true - }, - "topic_id": { - "name": "topic_id", - "type": "TypeString", - "description": "Topic ID.", - "computed": true - }, - "updated_at": { - "name": "updated_at", - "type": "TypeString", - "description": "Last updated time.", - "computed": true - } - } - }, { "name": "updated_at", "type": "TypeString", @@ -29034,15 +29431,21 @@ "type": "TypeString", "description": "Unique identifier for Topic.", "required": true - } - ], - "ibm_en_topics": [ + }, { - "name": "search_key", + "name": "name", "type": "TypeString", - "description": "Filter the topic by name", - "optional": true + "description": "Name of the topic.", + "computed": true }, + { + "name": "source_count", + "type": "TypeInt", + "description": "Number of sources.", + "computed": true + } + ], + "ibm_en_topics": [ { "name": "topics", "type": "TypeList", @@ -29101,6 +29504,12 @@ "type": "TypeInt", "description": "Number of topics.", "computed": true + }, + { + "name": "search_key", + "type": "TypeString", + "description": "Filter the topic by name", + "optional": true } ], "ibm_enterprise_account_groups": [ @@ -29491,18 +29900,6 @@ } ], "ibm_function_action": [ - { - "name": "annotations", - "type": "TypeString", - "description": "All annotations set on action by user and those set by the IBM Cloud Function backend/API.", - "computed": true - }, - { - "name": "name", - "type": "TypeString", - "description": "Name of action.", - "required": true - }, { "name": "namespace", "type": "TypeString", @@ -29510,42 +29907,29 @@ "required": true }, { - "name": "limits", - "type": "TypeList", - "computed": true, - "elem": { - "log_size": { - "name": "log_size", - "type": "TypeInt", - "description": "The maximum log size LIMIT in MB for the action.", - "computed": true - }, - "memory": { - "name": "memory", - "type": "TypeInt", - "description": "The maximum memory LIMIT in MB for the action (default 256.", - "computed": true - }, - "timeout": { - "name": "timeout", - "type": "TypeInt", - "description": "The timeout LIMIT in milliseconds after which the action is terminated.", - "computed": true - } - } + "name": "version", + "type": "TypeString", + "description": "Semantic version of the item.", + "computed": true }, { - "name": "publish", - "type": "TypeBool", - "description": "Action visibilty.", + "name": "annotations", + "type": "TypeString", + "description": "All annotations set on action by user and those set by the IBM Cloud Function backend/API.", "computed": true }, { - "name": "version", + "name": "target_endpoint_url", "type": "TypeString", - "description": "Semantic version of the item.", + "description": "Action target endpoint URL.", "computed": true }, + { + "name": "name", + "type": "TypeString", + "description": "Name of action.", + "required": true + }, { "name": "exec", "type": "TypeList", @@ -29592,6 +29976,12 @@ } } }, + { + "name": "publish", + "type": "TypeBool", + "description": "Action visibilty.", + "computed": true + }, { "name": "parameters", "type": "TypeString", @@ -29604,10 +29994,29 @@ "computed": true }, { - "name": "target_endpoint_url", - "type": "TypeString", - "description": "Action target endpoint URL.", - "computed": true + "name": "limits", + "type": "TypeList", + "computed": true, + "elem": { + "log_size": { + "name": "log_size", + "type": "TypeInt", + "description": "The maximum log size LIMIT in MB for the action.", + "computed": true + }, + "memory": { + "name": "memory", + "type": "TypeInt", + "description": "The maximum memory LIMIT in MB for the action (default 256.", + "computed": true + }, + "timeout": { + "name": "timeout", + "type": "TypeInt", + "description": "The timeout LIMIT in milliseconds after which the action is terminated.", + "computed": true + } + } } ], "ibm_function_namespace": [ @@ -29688,24 +30097,6 @@ } ], "ibm_function_rule": [ - { - "name": "trigger_name", - "type": "TypeString", - "description": "Name of the trigger.", - "computed": true - }, - { - "name": "action_name", - "type": "TypeString", - "description": "Name of an action.", - "computed": true - }, - { - "name": "status", - "type": "TypeString", - "description": "Status of the rule.", - "computed": true - }, { "name": "publish", "type": "TypeBool", @@ -29734,9 +30125,39 @@ "type": "TypeString", "description": "Name of the namespace.", "required": true + }, + { + "name": "trigger_name", + "type": "TypeString", + "description": "Name of the trigger.", + "computed": true + }, + { + "name": "action_name", + "type": "TypeString", + "description": "Name of an action.", + "computed": true + }, + { + "name": "status", + "type": "TypeString", + "description": "Status of the rule.", + "computed": true } ], "ibm_function_trigger": [ + { + "name": "version", + "type": "TypeString", + "description": "Semantic version of the trigger.", + "computed": true + }, + { + "name": "annotations", + "type": "TypeString", + "description": "All annotations set on trigger by user and those set by the IBM Cloud Function backend/API.", + "computed": true + }, { "name": "parameters", "type": "TypeString", @@ -29765,21 +30186,61 @@ "type": "TypeBool", "description": "Trigger Visibility.", "computed": true + } + ], + "ibm_hpcs": [ + { + "name": "resource_group_id", + "type": "TypeString", + "description": "The id of the resource group in which the instance is present", + "cloud_data_type": "resource_group", + "optional": true, + "computed": true }, { - "name": "version", + "name": "units", + "type": "TypeInt", + "description": "The number of operational crypto units for your service instance", + "computed": true + }, + { + "name": "failover_units", + "type": "TypeInt", + "description": "The number of failover crypto units for your service instance", + "computed": true + }, + { + "name": "service_endpoints", "type": "TypeString", - "description": "Semantic version of the trigger.", + "description": "Types of the service endpoints. Possible values are `public-and-private`, `private-only`.", "computed": true }, { - "name": "annotations", + "name": "guid", "type": "TypeString", - "description": "All annotations set on trigger by user and those set by the IBM Cloud Function backend/API.", + "description": "Guid of resource instance", "computed": true - } - ], - "ibm_hpcs": [ + }, + { + "name": "extensions", + "type": "TypeMap", + "description": "The extended metadata as a map associated with the resource instance.", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Resource instance name for example, myobjectstorage", + "required": true + }, + { + "name": "location", + "type": "TypeString", + "description": "The location or the environment in which instance exists", + "cloud_data_type": "region", + "optional": true, + "computed": true + }, { "name": "service", "type": "TypeString", @@ -29788,22 +30249,22 @@ "optional": true }, { - "name": "failover_units", - "type": "TypeInt", - "description": "The number of failover crypto units for your service instance", + "name": "plan", + "type": "TypeString", + "description": "The plan type of the instance", "computed": true }, { - "name": "crn", + "name": "status", "type": "TypeString", - "description": "CRN of resource instance", - "cloud_data_type": "crn", + "description": "The resource instance status", "computed": true }, { - "name": "guid", + "name": "crn", "type": "TypeString", - "description": "Guid of resource instance", + "description": "CRN of resource instance", + "cloud_data_type": "crn", "computed": true }, { @@ -29875,73 +30336,15 @@ "computed": true } } - }, - { - "name": "location", - "type": "TypeString", - "description": "The location or the environment in which instance exists", - "cloud_data_type": "region", - "optional": true, - "computed": true - }, - { - "name": "resource_group_id", - "type": "TypeString", - "description": "The id of the resource group in which the instance is present", - "cloud_data_type": "resource_group", - "optional": true, - "computed": true - }, - { - "name": "units", - "type": "TypeInt", - "description": "The number of operational crypto units for your service instance", - "computed": true - }, - { - "name": "service_endpoints", - "type": "TypeString", - "description": "Types of the service endpoints. Possible values are `public-and-private`, `private-only`.", - "computed": true - }, - { - "name": "plan", - "type": "TypeString", - "description": "The plan type of the instance", - "computed": true - }, - { - "name": "status", - "type": "TypeString", - "description": "The resource instance status", - "computed": true - }, - { - "name": "extensions", - "type": "TypeMap", - "description": "The extended metadata as a map associated with the resource instance.", - "computed": true - }, - { - "name": "name", - "type": "TypeString", - "description": "Resource instance name for example, myobjectstorage", - "required": true } ], "ibm_hpcs_key_template": [ { - "name": "template_id", + "name": "uko_vault", "type": "TypeString", - "description": "UUID of the template.", + "description": "The UUID of the Vault in which the update is to take place.", "required": true }, - { - "name": "created_at", - "type": "TypeString", - "description": "Date and time when the key template was created.", - "computed": true - }, { "name": "vault", "type": "TypeList", @@ -29968,6 +30371,25 @@ } } }, + { + "name": "region", + "type": "TypeString", + "description": "The region of the UKO instance this resource exists in.", + "cloud_data_type": "region", + "required": true + }, + { + "name": "template_id", + "type": "TypeString", + "description": "UUID of the template.", + "required": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Name of the key template.", + "computed": true + }, { "name": "key", "type": "TypeList", @@ -30006,6 +30428,12 @@ } } }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Date and time when the key template was updated.", + "computed": true + }, { "name": "created_by", "type": "TypeString", @@ -30046,24 +30474,6 @@ } } }, - { - "name": "version", - "type": "TypeInt", - "description": "Version of the key template. Every time the key template is updated, the version will be updated automatically.", - "computed": true - }, - { - "name": "description", - "type": "TypeString", - "description": "Description of the key template.", - "computed": true - }, - { - "name": "href", - "type": "TypeString", - "description": "A URL that uniquely identifies your cloud resource.", - "computed": true - }, { "name": "instance_id", "type": "TypeString", @@ -30075,42 +30485,41 @@ ] }, { - "name": "region", - "type": "TypeString", - "description": "The region of the UKO instance this resource exists in.", - "cloud_data_type": "region", - "required": true + "name": "version", + "type": "TypeInt", + "description": "Version of the key template. Every time the key template is updated, the version will be updated automatically.", + "computed": true }, { - "name": "uko_vault", + "name": "updated_by", "type": "TypeString", - "description": "The UUID of the Vault in which the update is to take place.", - "required": true + "description": "ID of the user that updated the key.", + "computed": true }, { - "name": "name", + "name": "href", "type": "TypeString", - "description": "Name of the key template.", + "description": "A URL that uniquely identifies your cloud resource.", "computed": true }, { - "name": "updated_at", + "name": "description", "type": "TypeString", - "description": "Date and time when the key template was updated.", + "description": "Description of the key template.", "computed": true }, { - "name": "updated_by", + "name": "created_at", "type": "TypeString", - "description": "ID of the user that updated the key.", + "description": "Date and time when the key template was created.", "computed": true } ], "ibm_hpcs_keystore": [ { - "name": "google_location", + "name": "href", "type": "TypeString", - "description": "Location represents the geographical region where a Cloud KMS resource is stored and can be accessed. A key's location impacts the performance of applications using the key.", + "description": "A URL that uniquely identifies your cloud resource.", "computed": true }, { @@ -30121,10 +30530,15 @@ "computed": true }, { - "name": "aws_secret_access_key", + "name": "azure_resource_group", "type": "TypeString", - "description": "The secret access key used for connecting to this instance of AWS KMS.", - "secure": true, + "description": "Resource group in Azure.", + "computed": true + }, + { + "name": "ibm_api_endpoint", + "type": "TypeString", + "description": "API endpoint of the IBM Cloud keystore.", "computed": true }, { @@ -30134,15 +30548,25 @@ "computed": true }, { - "name": "created_by", + "name": "location", "type": "TypeString", - "description": "ID of the user that created the key.", + "description": "Geographic location of the keystore, if available.", + "cloud_data_type": "region", "computed": true }, { - "name": "updated_by", + "name": "groups", + "type": "TypeList", + "description": "List of groups that this keystore belongs to.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "updated_at", "type": "TypeString", - "description": "ID of the user that last updated the key.", + "description": "Date and time when the target keystore was last updated.", "computed": true }, { @@ -30152,46 +30576,59 @@ "computed": true }, { - "name": "ibm_iam_endpoint", + "name": "azure_tenant", "type": "TypeString", - "description": "Endpoint of the IAM service for this IBM Cloud keystore.", + "description": "Azure tenant that the Key Vault is associated with,.", "computed": true }, { - "name": "ibm_api_key", + "name": "region", "type": "TypeString", - "description": "The IBM Cloud API key to be used for connecting to this IBM Cloud keystore.", - "secure": true, + "description": "The region of the UKO instance this resource exists in.", + "cloud_data_type": "region", + "required": true + }, + { + "name": "updated_by", + "type": "TypeString", + "description": "ID of the user that last updated the key.", "computed": true }, { - "name": "description", + "name": "google_credentials", "type": "TypeString", - "description": "Description of the keystore.", + "description": "The value of the JSON key represented in the Base64 format.", "computed": true }, { - "name": "href", + "name": "azure_location", "type": "TypeString", - "description": "A URL that uniquely identifies your cloud resource.", + "description": "Location of the Azure Key Vault.", "computed": true }, { - "name": "google_credentials", + "name": "azure_service_principal_client_id", "type": "TypeString", - "description": "The value of the JSON key represented in the Base64 format.", + "description": "Azure service principal client ID.", "computed": true }, { - "name": "aws_region", + "name": "name", "type": "TypeString", - "description": "AWS Region.", + "description": "Name of the target keystore. It can be changed in the future.", "computed": true }, { - "name": "azure_service_principal_client_id", + "name": "type", "type": "TypeString", - "description": "Azure service principal client ID.", + "description": "Type of keystore.", + "computed": true + }, + { + "name": "aws_secret_access_key", + "type": "TypeString", + "description": "The secret access key used for connecting to this instance of AWS KMS.", + "secure": true, "computed": true }, { @@ -30200,6 +30637,12 @@ "description": "Azure environment, usually 'Azure'.", "computed": true }, + { + "name": "ibm_variant", + "type": "TypeString", + "description": "Possible IBM Cloud KMS variants.", + "computed": true + }, { "name": "keystore_id", "type": "TypeString", @@ -30207,68 +30650,71 @@ "required": true }, { - "name": "uko_vault", + "name": "created_at", "type": "TypeString", - "description": "The UUID of the Vault in which the update is to take place.", - "required": true + "description": "Date and time when the target keystore was created.", + "computed": true }, { - "name": "azure_subscription_id", + "name": "google_key_ring", "type": "TypeString", - "description": "Subscription ID in Azure.", + "description": "A key ring organizes keys in a specific Google Cloud location and allows you to manage access control on groups of keys.", "computed": true }, { - "name": "groups", - "type": "TypeList", - "description": "List of groups that this keystore belongs to.", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "aws_region", + "type": "TypeString", + "description": "AWS Region.", + "computed": true }, { - "name": "updated_at", + "name": "azure_service_name", "type": "TypeString", - "description": "Date and time when the target keystore was last updated.", + "description": "Service name of the key vault instance from the Azure portal.", "computed": true }, { - "name": "created_at", + "name": "ibm_iam_endpoint", "type": "TypeString", - "description": "Date and time when the target keystore was created.", + "description": "Endpoint of the IAM service for this IBM Cloud keystore.", "computed": true }, { - "name": "azure_location", + "name": "google_location", "type": "TypeString", - "description": "Location of the Azure Key Vault.", + "description": "Location represents the geographical region where a Cloud KMS resource is stored and can be accessed. A key's location impacts the performance of applications using the key.", "computed": true }, { - "name": "ibm_api_endpoint", + "name": "azure_service_principal_password", "type": "TypeString", - "description": "API endpoint of the IBM Cloud keystore.", + "description": "Azure service principal password.", + "secure": true, "computed": true }, { - "name": "google_key_ring", + "name": "ibm_api_key", "type": "TypeString", - "description": "A key ring organizes keys in a specific Google Cloud location and allows you to manage access control on groups of keys.", + "description": "The IBM Cloud API key to be used for connecting to this IBM Cloud keystore.", + "secure": true, "computed": true }, { - "name": "azure_service_principal_password", + "name": "google_private_key_id", "type": "TypeString", - "description": "Azure service principal password.", - "secure": true, + "description": "The private key id associated with this keystore.", "computed": true }, { - "name": "region", + "name": "azure_subscription_id", "type": "TypeString", - "description": "The region of the UKO instance this resource exists in.", - "cloud_data_type": "region", + "description": "Subscription ID in Azure.", + "computed": true + }, + { + "name": "uko_vault", + "type": "TypeString", + "description": "The UUID of the Vault in which the update is to take place.", "required": true }, { @@ -30298,88 +30744,143 @@ } }, { - "name": "name", + "name": "description", "type": "TypeString", - "description": "Name of the target keystore. It can be changed in the future.", + "description": "Description of the keystore.", "computed": true }, { - "name": "location", + "name": "instance_id", "type": "TypeString", - "description": "Geographic location of the keystore, if available.", - "cloud_data_type": "region", - "computed": true + "description": "The ID of the UKO instance this resource exists in.", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:hs-crypto" + ] }, { - "name": "type", + "name": "created_by", "type": "TypeString", - "description": "Type of keystore.", + "description": "ID of the user that created the key.", "computed": true }, { - "name": "google_private_key_id", + "name": "ibm_instance_id", "type": "TypeString", - "description": "The private key id associated with this keystore.", + "description": "The instance ID of the IBM Cloud keystore.", "computed": true + } + ], + "ibm_hpcs_managed_key": [ + { + "name": "key_id", + "type": "TypeString", + "description": "UUID of the key.", + "required": true }, { - "name": "azure_tenant", + "name": "activation_date", "type": "TypeString", - "description": "Azure tenant that the Key Vault is associated with,.", + "description": "First day when the key is active.", "computed": true }, { - "name": "ibm_instance_id", + "name": "tags", + "type": "TypeList", + "description": "Key-value pairs associated with the key.", + "cloud_data_type": "tags", + "computed": true, + "elem": { + "name": { + "name": "name", + "type": "TypeString", + "description": "Name of a tag.", + "computed": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "Value of a tag.", + "computed": true + } + } + }, + { + "name": "created_at", "type": "TypeString", - "description": "The instance ID of the IBM Cloud keystore.", + "description": "Date and time when the key was created.", "computed": true }, { - "name": "ibm_variant", + "name": "updated_at", "type": "TypeString", - "description": "Possible IBM Cloud KMS variants.", + "description": "Date and time when the key was last updated.", "computed": true }, { - "name": "instance_id", + "name": "uko_vault", "type": "TypeString", - "description": "The ID of the UKO instance this resource exists in.", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:hs-crypto" - ] + "description": "The UUID of the Vault in which the update is to take place.", + "required": true }, { - "name": "azure_service_name", - "type": "TypeString", - "description": "Service name of the key vault instance from the Azure portal.", - "computed": true + "name": "template", + "type": "TypeList", + "description": "Reference to a key template.", + "computed": true, + "elem": { + "href": { + "name": "href", + "type": "TypeString", + "description": "A URL that uniquely identifies your cloud resource.", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "The v4 UUID used to uniquely identify the resource, as specified by RFC 4122.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Name of the key template.", + "computed": true + } + } }, { - "name": "azure_resource_group", + "name": "description", "type": "TypeString", - "description": "Resource group in Azure.", + "description": "Description of the managed key.", "computed": true - } - ], - "ibm_hpcs_managed_key": [ + }, { - "name": "created_by", + "name": "label", "type": "TypeString", - "description": "ID of the user that created the key.", + "description": "The label of the key.", "computed": true }, { - "name": "referenced_keystores", + "name": "instances", "type": "TypeList", - "description": "referenced keystores.", + "description": "key instances.", "computed": true, "elem": { - "href": { - "name": "href", + "google_key_protection_level": { + "name": "google_key_protection_level", + "type": "TypeString", + "computed": true + }, + "google_key_purpose": { + "name": "google_key_purpose", + "type": "TypeString", + "computed": true + }, + "google_kms_algorithm": { + "name": "google_kms_algorithm", "type": "TypeString", - "description": "A URL that uniquely identifies your cloud resource.", "computed": true }, "id": { @@ -30388,16 +30889,35 @@ "description": "The v4 UUID used to uniquely identify the resource, as specified by RFC 4122.", "computed": true }, - "name": { - "name": "name", + "keystore": { + "name": "keystore", + "type": "TypeList", + "description": "Description of properties of a key within the context of keystores.", + "computed": true, + "elem": { + "group": { + "name": "group", + "type": "TypeString", + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "Type of keystore.", + "computed": true + } + } + }, + "label_in_keystore": { + "name": "label_in_keystore", "type": "TypeString", - "description": "Name of the target keystore.", + "description": "The label of the key.", "computed": true }, "type": { "name": "type", "type": "TypeString", - "description": "Type of keystore.", + "description": "Type of the key instance.", "computed": true } } @@ -30409,11 +30929,60 @@ "computed": true }, { - "name": "key_id", + "name": "region", "type": "TypeString", - "description": "UUID of the key.", + "description": "The region of the UKO instance this resource exists in.", + "cloud_data_type": "region", "required": true }, + { + "name": "state", + "type": "TypeString", + "description": "The state of the key.", + "computed": true + }, + { + "name": "verification_patterns", + "type": "TypeList", + "description": "A list of verification patterns of the key (e.g. public key hash for RSA keys).", + "computed": true, + "elem": { + "method": { + "name": "method", + "type": "TypeString", + "description": "The method used for calculating the verification pattern.", + "computed": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "The calculated value.", + "computed": true + } + } + }, + { + "name": "expiration_date", + "type": "TypeString", + "description": "Last day when the key is active.", + "computed": true + }, + { + "name": "updated_by", + "type": "TypeString", + "description": "ID of the user that last updated the key.", + "computed": true + }, + { + "name": "instance_id", + "type": "TypeString", + "description": "The ID of the UKO instance this resource exists in.", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:hs-crypto" + ] + }, { "name": "vault", "type": "TypeList", @@ -30441,95 +31010,33 @@ } }, { - "name": "template", - "type": "TypeList", - "description": "Reference to a key template.", - "computed": true, - "elem": { - "href": { - "name": "href", - "type": "TypeString", - "description": "A URL that uniquely identifies your cloud resource.", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "The v4 UUID used to uniquely identify the resource, as specified by RFC 4122.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Name of the key template.", - "computed": true - } - } - }, - { - "name": "expiration_date", + "name": "size", "type": "TypeString", - "description": "Last day when the key is active.", + "description": "The size of the underlying cryptographic key or key pair. E.g. \"256\" for AES keys, or \"2048\" for RSA.", "computed": true }, { - "name": "tags", - "type": "TypeList", - "description": "Key-value pairs associated with the key.", - "cloud_data_type": "tags", - "computed": true, - "elem": { - "name": { - "name": "name", - "type": "TypeString", - "description": "Name of a tag.", - "computed": true - }, - "value": { - "name": "value", - "type": "TypeString", - "description": "Value of a tag.", - "computed": true - } - } - }, - { - "name": "uko_vault", - "type": "TypeString", - "description": "The UUID of the Vault in which the update is to take place.", - "required": true - }, - { - "name": "description", + "name": "algorithm", "type": "TypeString", - "description": "Description of the managed key.", + "description": "The algorithm of the key.", "computed": true }, { - "name": "algorithm", + "name": "created_by", "type": "TypeString", - "description": "The algorithm of the key.", + "description": "ID of the user that created the key.", "computed": true }, { - "name": "instances", + "name": "referenced_keystores", "type": "TypeList", - "description": "key instances.", + "description": "referenced keystores.", "computed": true, "elem": { - "google_key_protection_level": { - "name": "google_key_protection_level", - "type": "TypeString", - "computed": true - }, - "google_key_purpose": { - "name": "google_key_purpose", - "type": "TypeString", - "computed": true - }, - "google_kms_algorithm": { - "name": "google_kms_algorithm", + "href": { + "name": "href", "type": "TypeString", + "description": "A URL that uniquely identifies your cloud resource.", "computed": true }, "id": { @@ -30538,82 +31045,38 @@ "description": "The v4 UUID used to uniquely identify the resource, as specified by RFC 4122.", "computed": true }, - "keystore": { - "name": "keystore", - "type": "TypeList", - "description": "Description of properties of a key within the context of keystores.", - "computed": true, - "elem": { - "group": { - "name": "group", - "type": "TypeString", - "computed": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "Type of keystore.", - "computed": true - } - } - }, - "label_in_keystore": { - "name": "label_in_keystore", + "name": { + "name": "name", "type": "TypeString", - "description": "The label of the key.", + "description": "Name of the target keystore.", "computed": true }, "type": { "name": "type", "type": "TypeString", - "description": "Type of the key instance.", + "description": "Type of keystore.", "computed": true } } - }, - { - "name": "region", - "type": "TypeString", - "description": "The region of the UKO instance this resource exists in.", - "cloud_data_type": "region", - "required": true - }, + } + ], + "ibm_hpcs_vault": [ { - "name": "state", + "name": "created_at", "type": "TypeString", - "description": "The state of the key.", + "description": "Date and time when the vault was created.", "computed": true }, { - "name": "verification_patterns", - "type": "TypeList", - "description": "A list of verification patterns of the key (e.g. public key hash for RSA keys).", - "computed": true, - "elem": { - "method": { - "name": "method", - "type": "TypeString", - "description": "The method used for calculating the verification pattern.", - "computed": true - }, - "value": { - "name": "value", - "type": "TypeString", - "description": "The calculated value.", - "computed": true - } - } - }, - { - "name": "created_at", + "name": "updated_at", "type": "TypeString", - "description": "Date and time when the key was created.", + "description": "Date and time when the vault was last updated.", "computed": true }, { - "name": "updated_at", + "name": "updated_by", "type": "TypeString", - "description": "Date and time when the key was last updated.", + "description": "ID of the user that last updated the vault.", "computed": true }, { @@ -30626,32 +31089,6 @@ "service:hs-crypto" ] }, - { - "name": "label", - "type": "TypeString", - "description": "The label of the key.", - "computed": true - }, - { - "name": "size", - "type": "TypeString", - "description": "The size of the underlying cryptographic key or key pair. E.g. \"256\" for AES keys, or \"2048\" for RSA.", - "computed": true - }, - { - "name": "activation_date", - "type": "TypeString", - "description": "First day when the key is active.", - "computed": true - }, - { - "name": "updated_by", - "type": "TypeString", - "description": "ID of the user that last updated the key.", - "computed": true - } - ], - "ibm_hpcs_vault": [ { "name": "name", "type": "TypeString", @@ -30664,18 +31101,6 @@ "description": "Description of the vault.", "computed": true }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Date and time when the vault was last updated.", - "computed": true - }, - { - "name": "href", - "type": "TypeString", - "description": "A URL that uniquely identifies your cloud resource.", - "computed": true - }, { "name": "created_by", "type": "TypeString", @@ -30683,21 +31108,11 @@ "computed": true }, { - "name": "updated_by", + "name": "href", "type": "TypeString", - "description": "ID of the user that last updated the vault.", + "description": "A URL that uniquely identifies your cloud resource.", "computed": true }, - { - "name": "instance_id", - "type": "TypeString", - "description": "The ID of the UKO instance this resource exists in.", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:hs-crypto" - ] - }, { "name": "region", "type": "TypeString", @@ -30710,15 +31125,20 @@ "type": "TypeString", "description": "UUID of the vault.", "required": true - }, - { - "name": "created_at", - "type": "TypeString", - "description": "Date and time when the vault was created.", - "computed": true } ], "ibm_iam_access_group": [ + { + "name": "access_group_name", + "type": "TypeString", + "description": "Name of the access group", + "cloud_data_type": "iam", + "optional": true, + "cloud_data_range": [ + "service:access_group", + "resolved_to:name" + ] + }, { "name": "groups", "type": "TypeList", @@ -30818,17 +31238,6 @@ } } } - }, - { - "name": "access_group_name", - "type": "TypeString", - "description": "Name of the access group", - "cloud_data_type": "iam", - "optional": true, - "cloud_data_range": [ - "service:access_group", - "resolved_to:name" - ] } ], "ibm_iam_access_group_policy": [ @@ -31062,28 +31471,22 @@ ], "ibm_iam_access_group_template_assignment": [ { - "name": "template_id", + "name": "account_id", "type": "TypeString", - "description": "Filter results by Template Id.", - "optional": true + "description": "Enterprise account ID.", + "computed": true }, { - "name": "transaction_id", + "name": "template_id", "type": "TypeString", - "description": "An optional transaction id for the request.", + "description": "Filter results by Template Id.", "optional": true }, { - "name": "total_count", - "type": "TypeInt", - "description": "Total number of items matching the query.", - "computed": true - }, - { - "name": "account_id", + "name": "template_version", "type": "TypeString", - "description": "Enterprise account ID.", - "computed": true + "description": "Filter results by Template Version.", + "optional": true }, { "name": "target", @@ -31097,6 +31500,12 @@ "description": "Filter results by the assignment status.", "optional": true }, + { + "name": "transaction_id", + "type": "TypeString", + "description": "An optional transaction id for the request.", + "optional": true + }, { "name": "limit", "type": "TypeInt", @@ -31109,6 +31518,12 @@ "description": "Index of the first item returned in the response.", "computed": true }, + { + "name": "total_count", + "type": "TypeInt", + "description": "Total number of items matching the query.", + "computed": true + }, { "name": "first", "type": "TypeList", @@ -31222,35 +31637,9 @@ "computed": true } } - }, - { - "name": "template_version", - "type": "TypeString", - "description": "Filter results by Template Version.", - "optional": true } ], "ibm_iam_access_group_template_versions": [ - { - "name": "template_id", - "type": "TypeString", - "description": "ID of the template that you want to list all versions of.", - "required": true - }, - { - "name": "first", - "type": "TypeList", - "description": "A link object.", - "computed": true, - "elem": { - "href": { - "name": "href", - "type": "TypeString", - "description": "A string containing the link’s URL.", - "computed": true - } - } - }, { "name": "previous", "type": "TypeList", @@ -31548,72 +31937,35 @@ "computed": true } } - } - ], - "ibm_iam_account_settings": [ + }, { - "name": "restrict_create_platform_apikey", + "name": "template_id", "type": "TypeString", - "description": "Defines whether or not creating platform API keys is access controlled. Valid values: * RESTRICTED - to apply access control * NOT_RESTRICTED - to remove access control * NOT_SET - to 'unset' a previous set value.", - "computed": true + "description": "ID of the template that you want to list all versions of.", + "required": true }, { - "name": "user_mfa", + "name": "first", "type": "TypeList", - "description": "List of users that are exempted from the MFA requirement of the account.", + "description": "A link object.", "computed": true, "elem": { - "iam_id": { - "name": "iam_id", - "type": "TypeString", - "description": "The iam_id of the user.", - "computed": true - }, - "mfa": { - "name": "mfa", + "href": { + "name": "href", "type": "TypeString", - "description": "Defines the MFA requirement for the user. Valid values: * NONE - No MFA trait set * TOTP - For all non-federated IBMId users * TOTP4ALL - For all users * LEVEL1 - Email-based MFA for all users * LEVEL2 - TOTP-based MFA for all users * LEVEL3 - U2F MFA for all users.", + "description": "A string containing the link’s URL.", "computed": true } } - }, + } + ], + "ibm_iam_account_settings": [ { "name": "session_expiration_in_seconds", "type": "TypeString", "description": "Defines the session expiration in seconds for the account. Valid values: * Any whole number between between '900' and '86400' * NOT_SET - To unset account setting and use service default.", "computed": true }, - { - "name": "include_history", - "type": "TypeBool", - "description": "Defines if the entity history is included in the response.", - "default_value": false, - "optional": true - }, - { - "name": "account_id", - "type": "TypeString", - "description": "Unique ID of the account.", - "computed": true - }, - { - "name": "allowed_ip_addresses", - "type": "TypeString", - "description": "Defines the IP addresses and subnets from which IAM tokens can be created for the account.", - "computed": true - }, - { - "name": "session_invalidation_in_seconds", - "type": "TypeString", - "description": "Defines the period of time in seconds in which a session will be invalidated due to inactivity. Valid values: * Any whole number between '900' and '7200' * NOT_SET - To unset account setting and use service default.", - "computed": true - }, - { - "name": "system_access_token_expiration_in_seconds", - "type": "TypeString", - "description": "Defines the access token expiration in seconds. Valid values: * Any whole number between '900' and '3600' * NOT_SET - To unset account setting and use service default.", - "computed": true - }, { "name": "history", "type": "TypeList", @@ -31668,9 +32020,9 @@ "computed": true }, { - "name": "mfa", + "name": "system_access_token_expiration_in_seconds", "type": "TypeString", - "description": "Defines the MFA trait for the account. Valid values: * NONE - No MFA trait set * TOTP - For all non-federated IBMId users * TOTP4ALL - For all users * LEVEL1 - Email-based MFA for all users * LEVEL2 - TOTP-based MFA for all users * LEVEL3 - U2F MFA for all users.", + "description": "Defines the access token expiration in seconds. Valid values: * Any whole number between '900' and '3600' * NOT_SET - To unset account setting and use service default.", "computed": true }, { @@ -31685,18 +32037,99 @@ "description": "Defines whether or not creating a Service Id is access controlled. Valid values: * RESTRICTED - to apply access control * NOT_RESTRICTED - to remove access control * NOT_SET - to 'unset' a previous set value.", "computed": true }, + { + "name": "account_id", + "type": "TypeString", + "description": "Unique ID of the account.", + "computed": true + }, + { + "name": "restrict_create_platform_apikey", + "type": "TypeString", + "description": "Defines whether or not creating platform API keys is access controlled. Valid values: * RESTRICTED - to apply access control * NOT_RESTRICTED - to remove access control * NOT_SET - to 'unset' a previous set value.", + "computed": true + }, { "name": "entity_tag", "type": "TypeString", "description": "Version of the account settings.", "computed": true + }, + { + "name": "include_history", + "type": "TypeBool", + "description": "Defines if the entity history is included in the response.", + "default_value": false, + "optional": true + }, + { + "name": "mfa", + "type": "TypeString", + "description": "Defines the MFA trait for the account. Valid values: * NONE - No MFA trait set * TOTP - For all non-federated IBMId users * TOTP4ALL - For all users * LEVEL1 - Email-based MFA for all users * LEVEL2 - TOTP-based MFA for all users * LEVEL3 - U2F MFA for all users.", + "computed": true + }, + { + "name": "user_mfa", + "type": "TypeList", + "description": "List of users that are exempted from the MFA requirement of the account.", + "computed": true, + "elem": { + "iam_id": { + "name": "iam_id", + "type": "TypeString", + "description": "The iam_id of the user.", + "computed": true + }, + "mfa": { + "name": "mfa", + "type": "TypeString", + "description": "Defines the MFA requirement for the user. Valid values: * NONE - No MFA trait set * TOTP - For all non-federated IBMId users * TOTP4ALL - For all users * LEVEL1 - Email-based MFA for all users * LEVEL2 - TOTP-based MFA for all users * LEVEL3 - U2F MFA for all users.", + "computed": true + } + } + }, + { + "name": "session_invalidation_in_seconds", + "type": "TypeString", + "description": "Defines the period of time in seconds in which a session will be invalidated due to inactivity. Valid values: * Any whole number between '900' and '7200' * NOT_SET - To unset account setting and use service default.", + "computed": true + }, + { + "name": "allowed_ip_addresses", + "type": "TypeString", + "description": "Defines the IP addresses and subnets from which IAM tokens can be created for the account.", + "computed": true } ], "ibm_iam_account_settings_template": [ { - "name": "name", + "name": "template_id", "type": "TypeString", - "description": "The name of the trusted profile template. This is visible only in the enterprise account.", + "description": "ID of the account settings template.", + "required": true + }, + { + "name": "created_at", + "type": "TypeString", + "description": "Template Created At.", + "computed": true + }, + { + "name": "version", + "type": "TypeString", + "description": "Version of the account settings template.", + "optional": true + }, + { + "name": "description", + "type": "TypeString", + "description": "The description of the trusted profile template. Describe the template for enterprise account users.", + "computed": true + }, + { + "name": "committed", + "type": "TypeBool", + "description": "Committed flag determines if the template is ready for assignment.", "computed": true }, { @@ -31747,9 +32180,16 @@ } }, { - "name": "entity_tag", + "name": "include_history", + "type": "TypeBool", + "description": "Defines if the entity history is included in the response.", + "default_value": false, + "optional": true + }, + { + "name": "last_modified_at", "type": "TypeString", - "description": "Entity tag for this templateId-version combination.", + "description": "Template last modified at.", "computed": true }, { @@ -31771,61 +32211,11 @@ "computed": true }, { - "name": "description", - "type": "TypeString", - "description": "The description of the trusted profile template. Describe the template for enterprise account users.", - "computed": true - }, - { - "name": "committed", - "type": "TypeBool", - "description": "Committed flag determines if the template is ready for assignment.", - "computed": true - }, - { - "name": "created_at", - "type": "TypeString", - "description": "Template Created At.", - "computed": true - }, - { - "name": "template_id", - "type": "TypeString", - "description": "ID of the account settings template.", - "required": true - }, - { - "name": "version", - "type": "TypeString", - "description": "Version of the account settings template.", - "optional": true - }, - { - "name": "crn", - "type": "TypeString", - "description": "Cloud resource name.", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "created_by_id", - "type": "TypeString", - "description": "IAMid of the creator.", - "computed": true - }, - { - "name": "last_modified_at", + "name": "name", "type": "TypeString", - "description": "Template last modified at.", + "description": "The name of the trusted profile template. This is visible only in the enterprise account.", "computed": true }, - { - "name": "include_history", - "type": "TypeBool", - "description": "Defines if the entity history is included in the response.", - "default_value": false, - "optional": true - }, { "name": "account_settings", "type": "TypeList", @@ -31906,78 +32296,62 @@ } } } + }, + { + "name": "entity_tag", + "type": "TypeString", + "description": "Entity tag for this templateId-version combination.", + "computed": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "Cloud resource name.", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "created_by_id", + "type": "TypeString", + "description": "IAMid of the creator.", + "computed": true } ], "ibm_iam_account_settings_template_assignment": [ { - "name": "target", + "name": "account_id", "type": "TypeString", - "description": "Assignment target.", + "description": "Enterprise account Id.", + "computed": true + }, + { + "name": "template_id", + "type": "TypeString", + "description": "Template Id.", "optional": true }, { - "name": "history", - "type": "TypeList", - "description": "Assignment history.", - "computed": true, - "elem": { - "action": { - "name": "action", - "type": "TypeString", - "description": "Action of the history entry.", - "computed": true - }, - "iam_id": { - "name": "iam_id", - "type": "TypeString", - "description": "IAM ID of the identity which triggered the action.", - "computed": true - }, - "iam_id_account": { - "name": "iam_id_account", - "type": "TypeString", - "description": "Account of the identity which triggered the action.", - "computed": true - }, - "message": { - "name": "message", - "type": "TypeString", - "description": "Message which summarizes the executed action.", - "computed": true - }, - "params": { - "name": "params", - "type": "TypeList", - "description": "Params of the history entry.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - "timestamp": { - "name": "timestamp", - "type": "TypeString", - "description": "Timestamp when the action was triggered.", - "computed": true - } - } + "name": "created_at", + "type": "TypeString", + "description": "Assignment created at.", + "computed": true }, { - "name": "last_modified_by_id", + "name": "created_by_id", "type": "TypeString", - "description": "IAMid of the identity that last modified the assignment.", + "description": "IAMid of the identity that created the assignment.", "computed": true }, { - "name": "entity_tag", + "name": "last_modified_at", "type": "TypeString", - "description": "Entity tag for this assignment record.", + "description": "Assignment modified at.", "computed": true }, { - "name": "account_id", + "name": "id", "type": "TypeString", - "description": "Enterprise account Id.", + "description": "Assignment record Id.", "computed": true }, { @@ -31987,16 +32361,90 @@ "computed": true }, { - "name": "created_at", + "name": "last_modified_by_id", "type": "TypeString", - "description": "Assignment created at.", + "description": "IAMid of the identity that last modified the assignment.", "computed": true }, { - "name": "template_id", + "name": "assignment_id", "type": "TypeString", - "description": "Template Id.", - "optional": true + "description": "ID of the Assignment Record.", + "required": true + }, + { + "name": "context", + "type": "TypeList", + "description": "Context with key properties for problem determination.", + "computed": true, + "elem": { + "cluster_name": { + "name": "cluster_name", + "type": "TypeString", + "description": "The cluster name.", + "computed": true + }, + "elapsed_time": { + "name": "elapsed_time", + "type": "TypeString", + "description": "The elapsed time in msec.", + "computed": true + }, + "end_time": { + "name": "end_time", + "type": "TypeString", + "description": "The finish time of the request.", + "computed": true + }, + "host": { + "name": "host", + "type": "TypeString", + "description": "The host of the server instance processing the request.", + "computed": true + }, + "instance_id": { + "name": "instance_id", + "type": "TypeString", + "description": "The instance ID of the server instance processing the request.", + "computed": true + }, + "operation": { + "name": "operation", + "type": "TypeString", + "description": "The operation of the inbound REST request.", + "computed": true + }, + "start_time": { + "name": "start_time", + "type": "TypeString", + "description": "The start time of the request.", + "computed": true + }, + "thread_id": { + "name": "thread_id", + "type": "TypeString", + "description": "The thread ID of the server instance processing the request.", + "computed": true + }, + "transaction_id": { + "name": "transaction_id", + "type": "TypeString", + "description": "The transaction ID of the inbound REST request.", + "computed": true + }, + "url": { + "name": "url", + "type": "TypeString", + "description": "The URL of that cluster.", + "computed": true + }, + "user_agent": { + "name": "user_agent", + "type": "TypeString", + "description": "The user agent of the inbound REST request.", + "computed": true + } + } }, { "name": "target_type", @@ -32005,10 +32453,23 @@ "optional": true }, { - "name": "created_by_id", + "name": "include_history", + "type": "TypeBool", + "description": "Defines if the entity history is included in the response.", + "default_value": false, + "optional": true + }, + { + "name": "template_version", + "type": "TypeInt", + "description": "Template version.", + "optional": true + }, + { + "name": "target", "type": "TypeString", - "description": "IAMid of the identity that created the assignment.", - "computed": true + "description": "Assignment target.", + "optional": true }, { "name": "status", @@ -32102,128 +32563,77 @@ } }, { - "name": "last_modified_at", - "type": "TypeString", - "description": "Assignment modified at.", - "computed": true - }, - { - "name": "assignment_id", - "type": "TypeString", - "description": "ID of the Assignment Record.", - "required": true - }, - { - "name": "include_history", - "type": "TypeBool", - "description": "Defines if the entity history is included in the response.", - "default_value": false, - "optional": true - }, - { - "name": "context", + "name": "history", "type": "TypeList", - "description": "Context with key properties for problem determination.", + "description": "Assignment history.", "computed": true, "elem": { - "cluster_name": { - "name": "cluster_name", - "type": "TypeString", - "description": "The cluster name.", - "computed": true - }, - "elapsed_time": { - "name": "elapsed_time", - "type": "TypeString", - "description": "The elapsed time in msec.", - "computed": true - }, - "end_time": { - "name": "end_time", - "type": "TypeString", - "description": "The finish time of the request.", - "computed": true - }, - "host": { - "name": "host", - "type": "TypeString", - "description": "The host of the server instance processing the request.", - "computed": true - }, - "instance_id": { - "name": "instance_id", - "type": "TypeString", - "description": "The instance ID of the server instance processing the request.", - "computed": true - }, - "operation": { - "name": "operation", + "action": { + "name": "action", "type": "TypeString", - "description": "The operation of the inbound REST request.", + "description": "Action of the history entry.", "computed": true }, - "start_time": { - "name": "start_time", + "iam_id": { + "name": "iam_id", "type": "TypeString", - "description": "The start time of the request.", + "description": "IAM ID of the identity which triggered the action.", "computed": true }, - "thread_id": { - "name": "thread_id", + "iam_id_account": { + "name": "iam_id_account", "type": "TypeString", - "description": "The thread ID of the server instance processing the request.", + "description": "Account of the identity which triggered the action.", "computed": true }, - "transaction_id": { - "name": "transaction_id", + "message": { + "name": "message", "type": "TypeString", - "description": "The transaction ID of the inbound REST request.", + "description": "Message which summarizes the executed action.", "computed": true }, - "url": { - "name": "url", - "type": "TypeString", - "description": "The URL of that cluster.", - "computed": true + "params": { + "name": "params", + "type": "TypeList", + "description": "Params of the history entry.", + "computed": true, + "elem": { + "type": "TypeString" + } }, - "user_agent": { - "name": "user_agent", + "timestamp": { + "name": "timestamp", "type": "TypeString", - "description": "The user agent of the inbound REST request.", + "description": "Timestamp when the action was triggered.", "computed": true } } }, { - "name": "id", + "name": "entity_tag", "type": "TypeString", - "description": "Assignment record Id.", + "description": "Entity tag for this assignment record.", "computed": true - }, - { - "name": "template_version", - "type": "TypeInt", - "description": "Template version.", - "optional": true } ], "ibm_iam_api_key": [ { - "name": "created_at", + "name": "entity_tag", "type": "TypeString", - "description": "If set contains a date time string of the creation date in ISO format.", + "description": "Version of the API Key details object. You need to specify this value when updating the API key to avoid stale updates.", "computed": true }, { - "name": "created_by", + "name": "crn", "type": "TypeString", - "description": "IAM ID of the user or service which created the API key.", + "description": "Cloud Resource Name of the item. Example Cloud Resource Name: 'crn:v1:bluemix:public:iam-identity:us-south:a/myaccount::apikey:1234-9012-5678'.", + "cloud_data_type": "crn", "computed": true }, { - "name": "modified_at", + "name": "created_at", "type": "TypeString", - "description": "If set contains a date time string of the last modification date in ISO format.", + "description": "If set contains a date time string of the creation date in ISO format.", "computed": true }, { @@ -32233,16 +32643,16 @@ "computed": true }, { - "name": "apikey_id", + "name": "iam_id", "type": "TypeString", - "description": "Unique ID of the API key.", - "required": true + "description": "The iam_id that this API key authenticates.", + "computed": true }, { - "name": "entity_tag", + "name": "apikey_id", "type": "TypeString", - "description": "Version of the API Key details object. You need to specify this value when updating the API key to avoid stale updates.", - "computed": true + "description": "Unique ID of the API key.", + "required": true }, { "name": "locked", @@ -32251,16 +32661,15 @@ "computed": true }, { - "name": "account_id", + "name": "created_by", "type": "TypeString", - "description": "ID of the account that this API key authenticates for.", + "description": "IAM ID of the user or service which created the API key.", "computed": true }, { - "name": "crn", + "name": "modified_at", "type": "TypeString", - "description": "Cloud Resource Name of the item. Example Cloud Resource Name: 'crn:v1:bluemix:public:iam-identity:us-south:a/myaccount::apikey:1234-9012-5678'.", - "cloud_data_type": "crn", + "description": "If set contains a date time string of the last modification date in ISO format.", "computed": true }, { @@ -32270,35 +32679,55 @@ "computed": true }, { - "name": "iam_id", + "name": "account_id", "type": "TypeString", - "description": "The iam_id that this API key authenticates.", + "description": "ID of the account that this API key authenticates for.", "computed": true } ], "ibm_iam_auth_token": [ { - "name": "iam_access_token", + "name": "uaa_access_token", "type": "TypeString", "computed": true }, { - "name": "iam_refresh_token", + "name": "uaa_refresh_token", "type": "TypeString", "computed": true }, { - "name": "uaa_access_token", + "name": "iam_access_token", "type": "TypeString", "computed": true }, { - "name": "uaa_refresh_token", + "name": "iam_refresh_token", "type": "TypeString", "computed": true } ], "ibm_iam_authorization_policies": [ + { + "name": "account_id", + "type": "TypeString", + "description": "The unique ID of an account", + "optional": true, + "computed": true + }, + { + "name": "sort", + "type": "TypeString", + "description": "Sort query for policies", + "optional": true + }, + { + "name": "transaction_id", + "type": "TypeString", + "description": "Set transactionID for debug", + "optional": true, + "computed": true + }, { "name": "policies", "type": "TypeList", @@ -32384,46 +32813,14 @@ "computed": true } } - }, - { - "name": "account_id", - "type": "TypeString", - "description": "The unique ID of an account", - "optional": true, - "computed": true - }, - { - "name": "sort", - "type": "TypeString", - "description": "Sort query for policies", - "optional": true - }, - { - "name": "transaction_id", - "type": "TypeString", - "description": "Set transactionID for debug", - "optional": true, - "computed": true } ], "ibm_iam_policy_assignment": [ { - "name": "target", - "type": "TypeString", - "description": "assignment target id.", - "computed": true - }, - { - "name": "created_at", - "type": "TypeString", - "description": "The UTC timestamp when the policy assignment was created.", - "computed": true - }, - { - "name": "last_modified_at", + "name": "assignment_id", "type": "TypeString", - "description": "The UTC timestamp when the policy assignment was last modified.", - "computed": true + "description": "The policy template assignment ID.", + "required": true }, { "name": "resources", @@ -32547,6 +32944,18 @@ } } }, + { + "name": "created_at", + "type": "TypeString", + "description": "The UTC timestamp when the policy assignment was created.", + "computed": true + }, + { + "name": "last_modified_by_id", + "type": "TypeString", + "description": "The iam ID of the entity that last modified the policy assignment.", + "computed": true + }, { "name": "options", "type": "TypeList", @@ -32586,73 +32995,61 @@ } }, { - "name": "account_id", + "name": "id", "type": "TypeString", - "description": "Enterprise accountID.", + "description": "Policy assignment ID.", "computed": true }, { - "name": "assignment_id", + "name": "href", "type": "TypeString", - "description": "The policy template assignment ID.", - "required": true + "description": "The href URL that links to the policies assignments API by policy assignment ID.", + "computed": true }, { - "name": "template_version", + "name": "target_type", "type": "TypeString", - "description": "policy template version.", + "description": "Assignment target type.", "computed": true }, { - "name": "created_by_id", + "name": "last_modified_at", "type": "TypeString", - "description": "The iam ID of the entity that created the policy assignment.", + "description": "The UTC timestamp when the policy assignment was last modified.", "computed": true }, { - "name": "last_modified_by_id", + "name": "target", "type": "TypeString", - "description": "The iam ID of the entity that last modified the policy assignment.", + "description": "assignment target id.", "computed": true }, { - "name": "template_id", + "name": "created_by_id", "type": "TypeString", - "description": "policy template id.", + "description": "The iam ID of the entity that created the policy assignment.", "computed": true }, { - "name": "id", + "name": "account_id", "type": "TypeString", - "description": "Policy assignment ID.", + "description": "Enterprise accountID.", "computed": true }, { - "name": "target_type", + "name": "template_id", "type": "TypeString", - "description": "Assignment target type.", + "description": "policy template id.", "computed": true }, { - "name": "href", + "name": "template_version", "type": "TypeString", - "description": "The href URL that links to the policies assignments API by policy assignment ID.", + "description": "policy template version.", "computed": true } ], "ibm_iam_policy_assignments": [ - { - "name": "template_id", - "type": "TypeString", - "description": "Optional template id.", - "optional": true - }, - { - "name": "template_version", - "type": "TypeString", - "description": "Optional policy template version.", - "optional": true - }, { "name": "policy_assignments", "type": "TypeList", @@ -32892,6 +33289,18 @@ "computed": true } } + }, + { + "name": "template_id", + "type": "TypeString", + "description": "Optional template id.", + "optional": true + }, + { + "name": "template_version", + "type": "TypeString", + "description": "Optional policy template version.", + "optional": true } ], "ibm_iam_policy_template": [ @@ -33296,13 +33705,6 @@ } ], "ibm_iam_roles": [ - { - "name": "service", - "type": "TypeString", - "description": "The Service Name", - "immutable": true, - "optional": true - }, { "name": "roles", "type": "TypeList", @@ -33324,6 +33726,13 @@ "computed": true } } + }, + { + "name": "service", + "type": "TypeString", + "description": "The Service Name", + "immutable": true, + "optional": true } ], "ibm_iam_service_id": [ @@ -33389,6 +33798,23 @@ } ], "ibm_iam_service_policy": [ + { + "name": "iam_service_id", + "type": "TypeString", + "description": "UUID of ServiceID", + "cloud_data_type": "iam", + "optional": true, + "cloud_data_range": [ + "service:service_id", + "resolved_to:id" + ] + }, + { + "name": "iam_id", + "type": "TypeString", + "description": "IAM ID of ServiceID", + "optional": true + }, { "name": "sort", "type": "TypeString", @@ -33560,36 +33986,31 @@ "optional": true } } - }, + } + ], + "ibm_iam_trusted_profile": [ { - "name": "iam_service_id", + "name": "description", "type": "TypeString", - "description": "UUID of ServiceID", - "cloud_data_type": "iam", - "optional": true, - "cloud_data_range": [ - "service:service_id", - "resolved_to:id" - ] + "description": "The optional description of the trusted profile. The 'description' property is only available if a description was provided during a create of a trusted profile.", + "computed": true }, { - "name": "iam_id", + "name": "template_id", "type": "TypeString", - "description": "IAM ID of ServiceID", - "optional": true - } - ], - "ibm_iam_trusted_profile": [ + "description": "Template id the profile was created from.", + "computed": true + }, { - "name": "name", + "name": "created_at", "type": "TypeString", - "description": "Name of the trusted profile. The name is checked for uniqueness. Therefore trusted profiles with the same names can not exist in the same account.", + "description": "If set contains a date time string of the creation date in ISO format.", "computed": true }, { - "name": "description", + "name": "iam_id", "type": "TypeString", - "description": "The optional description of the trusted profile. The 'description' property is only available if a description was provided during a create of a trusted profile.", + "description": "The iam_id of this trusted profile.", "computed": true }, { @@ -33599,15 +34020,33 @@ "computed": true }, { - "name": "iam_id", - "type": "TypeString", - "description": "The iam_id of this trusted profile.", + "name": "ims_account_id", + "type": "TypeInt", + "description": "IMS acount ID of the trusted profile.", "computed": true }, { - "name": "template_id", + "name": "ims_user_id", + "type": "TypeInt", + "description": "IMS user ID of the trusted profile.", + "computed": true + }, + { + "name": "profile_id", "type": "TypeString", - "description": "Template id the profile was created from.", + "description": "ID of the trusted profile to get.", + "cloud_data_type": "iam", + "required": true, + "cloud_data_range": [ + "service:trusted_profile", + "resolved_to:id" + ] + }, + { + "name": "crn", + "type": "TypeString", + "description": "Cloud Resource Name of the item. Example Cloud Resource Name: 'crn:v1:bluemix:public:iam-identity:us-south:a/myaccount::profile:Profile-94497d0d-2ac3-41bf-a993-a49d1b14627c'.", + "cloud_data_type": "crn", "computed": true }, { @@ -33664,34 +34103,47 @@ } }, { - "name": "crn", + "name": "entity_tag", "type": "TypeString", - "description": "Cloud Resource Name of the item. Example Cloud Resource Name: 'crn:v1:bluemix:public:iam-identity:us-south:a/myaccount::profile:Profile-94497d0d-2ac3-41bf-a993-a49d1b14627c'.", - "cloud_data_type": "crn", + "description": "Version of the trusted profile details object. You need to specify this value when updating the trusted profile to avoid stale updates.", "computed": true }, { - "name": "created_at", + "name": "name", "type": "TypeString", - "description": "If set contains a date time string of the creation date in ISO format.", + "description": "Name of the trusted profile. The name is checked for uniqueness. Therefore trusted profiles with the same names can not exist in the same account.", "computed": true }, { - "name": "ims_user_id", - "type": "TypeInt", - "description": "IMS user ID of the trusted profile.", + "name": "modified_at", + "type": "TypeString", + "description": "If set contains a date time string of the last modification date in ISO format.", + "computed": true + } + ], + "ibm_iam_trusted_profile_claim_rule": [ + { + "name": "realm_name", + "type": "TypeString", + "description": "The realm name of the Idp this claim rule applies to.", "computed": true }, { - "name": "ims_account_id", + "name": "expiration", "type": "TypeInt", - "description": "IMS acount ID of the trusted profile.", + "description": "Session expiration in seconds.", + "computed": true + }, + { + "name": "cr_type", + "type": "TypeString", + "description": "The compute resource type. Not required if type is Profile-SAML. Valid values are VSI, IKS_SA, ROKS_SA.", "computed": true }, { "name": "profile_id", "type": "TypeString", - "description": "ID of the trusted profile to get.", + "description": "ID of the trusted profile.", "cloud_data_type": "iam", "required": true, "cloud_data_range": [ @@ -33699,20 +34151,6 @@ "resolved_to:id" ] }, - { - "name": "entity_tag", - "type": "TypeString", - "description": "Version of the trusted profile details object. You need to specify this value when updating the trusted profile to avoid stale updates.", - "computed": true - }, - { - "name": "modified_at", - "type": "TypeString", - "description": "If set contains a date time string of the last modification date in ISO format.", - "computed": true - } - ], - "ibm_iam_trusted_profile_claim_rule": [ { "name": "rule_id", "type": "TypeString", @@ -33726,27 +34164,27 @@ "computed": true }, { - "name": "created_at", + "name": "name", "type": "TypeString", - "description": "If set contains a date time string of the creation date in ISO format.", + "description": "The optional claim rule name.", "computed": true }, { - "name": "name", + "name": "created_at", "type": "TypeString", - "description": "The optional claim rule name.", + "description": "If set contains a date time string of the creation date in ISO format.", "computed": true }, { - "name": "type", + "name": "modified_at", "type": "TypeString", - "description": "Type of the Calim rule, either 'Profile-SAML' or 'Profile-CR'.", + "description": "If set contains a date time string of the last modification date in ISO format.", "computed": true }, { - "name": "realm_name", + "name": "type", "type": "TypeString", - "description": "The realm name of the Idp this claim rule applies to.", + "description": "Type of the Calim rule, either 'Profile-SAML' or 'Profile-CR'.", "computed": true }, { @@ -33774,35 +34212,6 @@ "computed": true } } - }, - { - "name": "profile_id", - "type": "TypeString", - "description": "ID of the trusted profile.", - "cloud_data_type": "iam", - "required": true, - "cloud_data_range": [ - "service:trusted_profile", - "resolved_to:id" - ] - }, - { - "name": "expiration", - "type": "TypeInt", - "description": "Session expiration in seconds.", - "computed": true - }, - { - "name": "cr_type", - "type": "TypeString", - "description": "The compute resource type. Not required if type is Profile-SAML. Valid values are VSI, IKS_SA, ROKS_SA.", - "computed": true - }, - { - "name": "modified_at", - "type": "TypeString", - "description": "If set contains a date time string of the last modification date in ISO format.", - "computed": true } ], "ibm_iam_trusted_profile_claim_rules": [ @@ -33962,6 +34371,12 @@ } ], "ibm_iam_trusted_profile_identity": [ + { + "name": "identity_type", + "type": "TypeString", + "description": "Type of the identity.", + "required": true + }, { "name": "identifier_id", "type": "TypeString", @@ -34006,51 +34421,9 @@ "type": "TypeString", "description": "ID of the trusted profile.", "required": true - }, - { - "name": "identity_type", - "type": "TypeString", - "description": "Type of the identity.", - "required": true } ], "ibm_iam_trusted_profile_link": [ - { - "name": "link_id", - "type": "TypeString", - "description": "ID of the link.", - "required": true - }, - { - "name": "entity_tag", - "type": "TypeString", - "description": "version of the claim rule.", - "computed": true - }, - { - "name": "created_at", - "type": "TypeString", - "description": "If set contains a date time string of the creation date in ISO format.", - "computed": true - }, - { - "name": "modified_at", - "type": "TypeString", - "description": "If set contains a date time string of the last modification date in ISO format.", - "computed": true - }, - { - "name": "name", - "type": "TypeString", - "description": "Optional name of the Link.", - "computed": true - }, - { - "name": "cr_type", - "type": "TypeString", - "description": "The compute resource type. Valid values are VSI, IKS_SA, ROKS_SA.", - "computed": true - }, { "name": "link", "type": "TypeList", @@ -34086,20 +34459,45 @@ "service:trusted_profile", "resolved_to:id" ] - } - ], - "ibm_iam_trusted_profile_links": [ + }, { - "name": "profile_id", + "name": "link_id", "type": "TypeString", - "description": "ID of the trusted profile.", - "cloud_data_type": "iam", - "required": true, - "cloud_data_range": [ - "service:trusted_profile", - "resolved_to:id" - ] + "description": "ID of the link.", + "required": true }, + { + "name": "entity_tag", + "type": "TypeString", + "description": "version of the claim rule.", + "computed": true + }, + { + "name": "created_at", + "type": "TypeString", + "description": "If set contains a date time string of the creation date in ISO format.", + "computed": true + }, + { + "name": "modified_at", + "type": "TypeString", + "description": "If set contains a date time string of the last modification date in ISO format.", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Optional name of the Link.", + "computed": true + }, + { + "name": "cr_type", + "type": "TypeString", + "description": "The compute resource type. Valid values are VSI, IKS_SA, ROKS_SA.", + "computed": true + } + ], + "ibm_iam_trusted_profile_links": [ { "name": "links", "type": "TypeList", @@ -34168,26 +34566,20 @@ "computed": true } } - } - ], - "ibm_iam_trusted_profile_policy": [ + }, { "name": "profile_id", "type": "TypeString", - "description": "UUID of trusted profile", + "description": "ID of the trusted profile.", "cloud_data_type": "iam", - "optional": true, + "required": true, "cloud_data_range": [ "service:trusted_profile", "resolved_to:id" ] - }, - { - "name": "iam_id", - "type": "TypeString", - "description": "IAM ID of trusted profile", - "optional": true - }, + } + ], + "ibm_iam_trusted_profile_policy": [ { "name": "sort", "type": "TypeString", @@ -34407,39 +34799,55 @@ } } } + }, + { + "name": "profile_id", + "type": "TypeString", + "description": "UUID of trusted profile", + "cloud_data_type": "iam", + "optional": true, + "cloud_data_range": [ + "service:trusted_profile", + "resolved_to:id" + ] + }, + { + "name": "iam_id", + "type": "TypeString", + "description": "IAM ID of trusted profile", + "optional": true } ], "ibm_iam_trusted_profile_template": [ { - "name": "version", + "name": "last_modified_at", "type": "TypeString", - "description": "Version of the Profile Template.", - "optional": true + "description": "Timestamp of when the template was last modified.", + "computed": true }, { - "name": "account_id", + "name": "created_at", "type": "TypeString", - "description": "ID of the account where the template resides.", + "description": "Timestamp of when the template was created.", "computed": true }, { - "name": "crn", + "name": "created_by_id", "type": "TypeString", - "description": "Cloud resource name.", - "cloud_data_type": "crn", + "description": "IAMid of the creator.", "computed": true }, { - "name": "name", + "name": "template_id", "type": "TypeString", - "description": "The name of the trusted profile template. This is visible only in the enterprise account.", - "computed": true + "description": "ID of the trusted profile template.", + "required": true }, { - "name": "committed", - "type": "TypeBool", - "description": "Committed flag determines if the template is ready for assignment.", - "computed": true + "name": "version", + "type": "TypeString", + "description": "Version of the Profile Template.", + "optional": true }, { "name": "profile", @@ -34580,43 +34988,6 @@ } } }, - { - "name": "entity_tag", - "type": "TypeString", - "description": "Entity tag for this templateId-version combination.", - "computed": true - }, - { - "name": "last_modified_at", - "type": "TypeString", - "description": "Timestamp of when the template was last modified.", - "computed": true - }, - { - "name": "template_id", - "type": "TypeString", - "description": "ID of the trusted profile template.", - "required": true - }, - { - "name": "include_history", - "type": "TypeBool", - "description": "Defines if the entity history is included in the response.", - "default_value": false, - "optional": true - }, - { - "name": "id", - "type": "TypeString", - "description": "ID of the the template.", - "computed": true - }, - { - "name": "description", - "type": "TypeString", - "description": "The description of the trusted profile template. Describe the template for enterprise account users.", - "computed": true - }, { "name": "history", "type": "TypeList", @@ -34665,25 +35036,192 @@ } }, { - "name": "last_modified_by_id", + "name": "name", "type": "TypeString", - "description": "IAMid of the identity that made the latest modification.", + "description": "The name of the trusted profile template. This is visible only in the enterprise account.", "computed": true }, { - "name": "created_at", + "name": "description", "type": "TypeString", - "description": "Timestamp of when the template was created.", + "description": "The description of the trusted profile template. Describe the template for enterprise account users.", "computed": true }, { - "name": "created_by_id", + "name": "committed", + "type": "TypeBool", + "description": "Committed flag determines if the template is ready for assignment.", + "computed": true + }, + { + "name": "crn", "type": "TypeString", - "description": "IAMid of the creator.", + "description": "Cloud resource name.", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "include_history", + "type": "TypeBool", + "description": "Defines if the entity history is included in the response.", + "default_value": false, + "optional": true + }, + { + "name": "id", + "type": "TypeString", + "description": "ID of the the template.", + "computed": true + }, + { + "name": "account_id", + "type": "TypeString", + "description": "ID of the account where the template resides.", + "computed": true + }, + { + "name": "entity_tag", + "type": "TypeString", + "description": "Entity tag for this templateId-version combination.", + "computed": true + }, + { + "name": "last_modified_by_id", + "type": "TypeString", + "description": "IAMid of the identity that made the latest modification.", "computed": true } ], "ibm_iam_trusted_profile_template_assignment": [ + { + "name": "account_id", + "type": "TypeString", + "description": "Enterprise account Id.", + "computed": true + }, + { + "name": "target_type", + "type": "TypeString", + "description": "Assignment target type.", + "computed": true + }, + { + "name": "href", + "type": "TypeString", + "description": "Href.", + "computed": true + }, + { + "name": "entity_tag", + "type": "TypeString", + "description": "Entity tag for this assignment record.", + "computed": true + }, + { + "name": "include_history", + "type": "TypeBool", + "description": "Defines if the entity history is included in the response.", + "default_value": false, + "optional": true + }, + { + "name": "id", + "type": "TypeString", + "description": "Assignment record Id.", + "computed": true + }, + { + "name": "created_by_id", + "type": "TypeString", + "description": "IAMid of the identity that created the assignment.", + "computed": true + }, + { + "name": "context", + "type": "TypeList", + "description": "Context with key properties for problem determination.", + "computed": true, + "elem": { + "cluster_name": { + "name": "cluster_name", + "type": "TypeString", + "description": "The cluster name.", + "computed": true + }, + "elapsed_time": { + "name": "elapsed_time", + "type": "TypeString", + "description": "The elapsed time in msec.", + "computed": true + }, + "end_time": { + "name": "end_time", + "type": "TypeString", + "description": "The finish time of the request.", + "computed": true + }, + "host": { + "name": "host", + "type": "TypeString", + "description": "The host of the server instance processing the request.", + "computed": true + }, + "instance_id": { + "name": "instance_id", + "type": "TypeString", + "description": "The instance ID of the server instance processing the request.", + "computed": true + }, + "operation": { + "name": "operation", + "type": "TypeString", + "description": "The operation of the inbound REST request.", + "computed": true + }, + "start_time": { + "name": "start_time", + "type": "TypeString", + "description": "The start time of the request.", + "computed": true + }, + "thread_id": { + "name": "thread_id", + "type": "TypeString", + "description": "The thread ID of the server instance processing the request.", + "computed": true + }, + "transaction_id": { + "name": "transaction_id", + "type": "TypeString", + "description": "The transaction ID of the inbound REST request.", + "computed": true + }, + "url": { + "name": "url", + "type": "TypeString", + "description": "The URL of that cluster.", + "computed": true + }, + "user_agent": { + "name": "user_agent", + "type": "TypeString", + "description": "The user agent of the inbound REST request.", + "computed": true + } + } + }, + { + "name": "created_at", + "type": "TypeString", + "description": "Assignment created at.", + "computed": true + }, + { + "name": "template_version", + "type": "TypeInt", + "description": "Template version.", + "computed": true + }, { "name": "resources", "type": "TypeList", @@ -34842,15 +35380,9 @@ } }, { - "name": "created_by_id", - "type": "TypeString", - "description": "IAMid of the identity that created the assignment.", - "computed": true - }, - { - "name": "entity_tag", + "name": "last_modified_by_id", "type": "TypeString", - "description": "Entity tag for this assignment record.", + "description": "IAMid of the identity that last modified the assignment.", "computed": true }, { @@ -34859,36 +35391,12 @@ "description": "ID of the Assignment Record.", "required": true }, - { - "name": "id", - "type": "TypeString", - "description": "Assignment record Id.", - "computed": true - }, - { - "name": "account_id", - "type": "TypeString", - "description": "Enterprise account Id.", - "computed": true - }, { "name": "template_id", "type": "TypeString", "description": "Template Id.", "computed": true }, - { - "name": "status", - "type": "TypeString", - "description": "Assignment status.", - "computed": true - }, - { - "name": "target", - "type": "TypeString", - "description": "Assignment target.", - "computed": true - }, { "name": "history", "type": "TypeList", @@ -34937,120 +35445,21 @@ } }, { - "name": "include_history", - "type": "TypeBool", - "description": "Defines if the entity history is included in the response.", - "default_value": false, - "optional": true - }, - { - "name": "href", - "type": "TypeString", - "description": "Href.", - "computed": true - }, - { - "name": "last_modified_by_id", - "type": "TypeString", - "description": "IAMid of the identity that last modified the assignment.", - "computed": true - }, - { - "name": "context", - "type": "TypeList", - "description": "Context with key properties for problem determination.", - "computed": true, - "elem": { - "cluster_name": { - "name": "cluster_name", - "type": "TypeString", - "description": "The cluster name.", - "computed": true - }, - "elapsed_time": { - "name": "elapsed_time", - "type": "TypeString", - "description": "The elapsed time in msec.", - "computed": true - }, - "end_time": { - "name": "end_time", - "type": "TypeString", - "description": "The finish time of the request.", - "computed": true - }, - "host": { - "name": "host", - "type": "TypeString", - "description": "The host of the server instance processing the request.", - "computed": true - }, - "instance_id": { - "name": "instance_id", - "type": "TypeString", - "description": "The instance ID of the server instance processing the request.", - "computed": true - }, - "operation": { - "name": "operation", - "type": "TypeString", - "description": "The operation of the inbound REST request.", - "computed": true - }, - "start_time": { - "name": "start_time", - "type": "TypeString", - "description": "The start time of the request.", - "computed": true - }, - "thread_id": { - "name": "thread_id", - "type": "TypeString", - "description": "The thread ID of the server instance processing the request.", - "computed": true - }, - "transaction_id": { - "name": "transaction_id", - "type": "TypeString", - "description": "The transaction ID of the inbound REST request.", - "computed": true - }, - "url": { - "name": "url", - "type": "TypeString", - "description": "The URL of that cluster.", - "computed": true - }, - "user_agent": { - "name": "user_agent", - "type": "TypeString", - "description": "The user agent of the inbound REST request.", - "computed": true - } - } - }, - { - "name": "template_version", - "type": "TypeInt", - "description": "Template version.", - "computed": true - }, - { - "name": "target_type", + "name": "last_modified_at", "type": "TypeString", - "description": "Assignment target type.", + "description": "Assignment modified at.", "computed": true }, { - "name": "created_at", + "name": "target", "type": "TypeString", - "description": "Assignment created at.", + "description": "Assignment target.", "computed": true }, { - "name": "last_modified_at", + "name": "status", "type": "TypeString", - "description": "Assignment modified at.", + "description": "Assignment status.", "computed": true } ], @@ -35322,18 +35731,6 @@ } ], "ibm_iam_user_policy": [ - { - "name": "ibm_id", - "type": "TypeString", - "description": "The ibm id or email of user", - "required": true - }, - { - "name": "sort", - "type": "TypeString", - "description": "Sort query for policies", - "optional": true - }, { "name": "transaction_id", "type": "TypeString", @@ -35499,43 +35896,43 @@ "optional": true } } - } - ], - "ibm_iam_user_profile": [ + }, { - "name": "email", + "name": "ibm_id", "type": "TypeString", - "description": "The email of the user.", - "computed": true + "description": "The ibm id or email of user", + "required": true }, { - "name": "phonenumber", + "name": "sort", "type": "TypeString", - "description": "The phone for the user.", - "computed": true - }, + "description": "Sort query for policies", + "optional": true + } + ], + "ibm_iam_user_profile": [ { - "name": "iam_id", + "name": "firstname", "type": "TypeString", - "description": "User's IAM ID or or email of user", - "required": true + "description": "The first name of the user.", + "computed": true }, { - "name": "user_id", + "name": "altphonenumber", "type": "TypeString", - "description": "The user ID used for login.", + "description": "The alternative phone number of the user.", "computed": true }, { - "name": "lastname", + "name": "ibm_id", "type": "TypeString", - "description": "The last name of the user.", + "description": "An alphanumeric value identifying the user's IAM ID.", "computed": true }, { - "name": "altphonenumber", + "name": "phonenumber", "type": "TypeString", - "description": "The alternative phone number of the user.", + "description": "The phone for the user.", "computed": true }, { @@ -35545,10 +35942,10 @@ "computed": true }, { - "name": "ibm_id", + "name": "iam_id", "type": "TypeString", - "description": "An alphanumeric value identifying the user's IAM ID.", - "computed": true + "description": "User's IAM ID or or email of user", + "required": true }, { "name": "allowed_ip_addresses", @@ -35560,9 +35957,15 @@ } }, { - "name": "firstname", + "name": "user_id", "type": "TypeString", - "description": "The first name of the user.", + "description": "The user ID used for login.", + "computed": true + }, + { + "name": "lastname", + "type": "TypeString", + "description": "The last name of the user.", "computed": true }, { @@ -35570,6 +35973,12 @@ "type": "TypeString", "description": "The state of the user. Possible values are PROCESSING, PENDING, ACTIVE, DISABLED_CLASSIC_INFRASTRUCTURE, and VPN_ONLY.", "computed": true + }, + { + "name": "email", + "type": "TypeString", + "description": "The email of the user.", + "computed": true } ], "ibm_iam_users": [ @@ -35680,6 +36089,38 @@ "description": "The CRN for this backup policy.", "computed": true }, + "health_reasons": { + "name": "health_reasons", + "type": "TypeList", + "description": "The reasons for the current health_state (if any).", + "computed": true, + "elem": { + "code": { + "name": "code", + "type": "TypeString", + "description": "A snake case string succinctly identifying the reason for this health state.", + "computed": true + }, + "message": { + "name": "message", + "type": "TypeString", + "description": "An explanation of the reason for this health state.", + "computed": true + }, + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about the reason for this health state.", + "computed": true + } + } + }, + "health_state": { + "name": "health_state", + "type": "TypeString", + "description": "The health of this resource", + "computed": true + }, "href": { "name": "href", "type": "TypeString", @@ -35805,6 +36246,32 @@ "type": "TypeString", "description": "The type of resource referenced.", "computed": true + }, + "scope": { + "name": "scope", + "type": "TypeList", + "description": "The scope for this backup policy.", + "computed": true, + "elem": { + "crn": { + "name": "crn", + "type": "TypeString", + "description": "The CRN for this enterprise.", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "The unique identifier for this enterprise or account.", + "computed": true + }, + "resource_type": { + "name": "resource_type", + "type": "TypeString", + "description": "The resource type.", + "computed": true + } + } } } } @@ -35825,6 +36292,24 @@ "type": "TypeString" } }, + { + "name": "identifier", + "type": "TypeString", + "description": "The backup policy identifier.", + "optional": true + }, + { + "name": "href", + "type": "TypeString", + "description": "The URL for this backup policy.", + "computed": true + }, + { + "name": "lifecycle_state", + "type": "TypeString", + "description": "The lifecycle state of the backup policy.", + "computed": true + }, { "name": "match_user_tags", "type": "TypeList", @@ -35835,28 +36320,69 @@ } }, { - "name": "resource_type", - "type": "TypeString", - "description": "The type of resource referenced.", - "computed": true + "name": "resource_group", + "type": "TypeList", + "description": "The resource group for this backup policy.", + "cloud_data_type": "resource_group", + "computed": true, + "elem": { + "href": { + "name": "href", + "type": "TypeString", + "description": "The URL for this resource group.", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "The unique identifier for this resource group.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The user-defined name for this resource group.", + "computed": true + } + } }, { - "name": "name", + "name": "health_state", "type": "TypeString", - "description": "The unique user-defined name for this backup policy.", - "optional": true, + "description": "The health of this resource", "computed": true }, { - "name": "created_at", - "type": "TypeString", - "description": "The date and time that the backup policy was created.", - "computed": true + "name": "scope", + "type": "TypeList", + "description": "The scope for this backup policy.", + "computed": true, + "elem": { + "crn": { + "name": "crn", + "type": "TypeString", + "description": "The CRN for this enterprise.", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "The unique identifier for this enterprise or account.", + "computed": true + }, + "resource_type": { + "name": "resource_type", + "type": "TypeString", + "description": "The resource type.", + "computed": true + } + } }, { - "name": "href", + "name": "crn", "type": "TypeString", - "description": "The URL for this backup policy.", + "description": "The CRN for this backup policy.", + "cloud_data_type": "crn", "computed": true }, { @@ -35906,59 +36432,100 @@ } }, { - "name": "resource_group", + "name": "resource_type", + "type": "TypeString", + "description": "The type of resource referenced.", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The unique user-defined name for this backup policy.", + "optional": true, + "computed": true + }, + { + "name": "created_at", + "type": "TypeString", + "description": "The date and time that the backup policy was created.", + "computed": true + }, + { + "name": "health_reasons", "type": "TypeList", - "description": "The resource group for this backup policy.", - "cloud_data_type": "resource_group", + "description": "The reasons for the current health_state (if any).", "computed": true, "elem": { - "href": { - "name": "href", + "code": { + "name": "code", "type": "TypeString", - "description": "The URL for this resource group.", + "description": "A snake case string succinctly identifying the reason for this health state.", "computed": true }, - "id": { - "name": "id", + "message": { + "name": "message", "type": "TypeString", - "description": "The unique identifier for this resource group.", + "description": "An explanation of the reason for this health state.", "computed": true }, - "name": { - "name": "name", + "more_info": { + "name": "more_info", "type": "TypeString", - "description": "The user-defined name for this resource group.", + "description": "Link to documentation about the reason for this health state.", "computed": true } } + } + ], + "ibm_is_backup_policy_job": [ + { + "name": "created_at", + "type": "TypeString", + "description": "The date and time that the backup policy job was created.", + "computed": true + }, + { + "name": "href", + "type": "TypeString", + "description": "The URL for this backup policy job.", + "computed": true + }, + { + "name": "job_type", + "type": "TypeString", + "description": "The type of backup policy job.The enumerated values for this property will expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the backup policy job on which the unexpected property value was encountered.", + "computed": true }, { "name": "identifier", "type": "TypeString", - "description": "The backup policy identifier.", - "optional": true + "description": "The backup policy job identifier.", + "required": true }, { - "name": "crn", + "name": "resource_type", "type": "TypeString", - "description": "The CRN for this backup policy.", - "cloud_data_type": "crn", + "description": "The resource type.", "computed": true }, { - "name": "lifecycle_state", + "name": "status", "type": "TypeString", - "description": "The lifecycle state of the backup policy.", + "description": "The status of the backup policy job.The enumerated values for this property will expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the backup policy job on which the unexpected property value was encountered.", "computed": true - } - ], - "ibm_is_backup_policy_job": [ + }, { - "name": "backup_policy_plan", + "name": "target_snapshot", "type": "TypeList", - "description": "The backup policy plan operated this backup policy job (may be[deleted](https://cloud.ibm.com/apidocs/vpc#deleted-resources)).", + "description": "The snapshot operated on by this backup policy job (may be[deleted](https://cloud.ibm.com/apidocs/vpc#deleted-resources)).", "computed": true, "elem": { + "crn": { + "name": "crn", + "type": "TypeString", + "description": "The CRN for this snapshot.", + "computed": true + }, "deleted": { "name": "deleted", "type": "TypeList", @@ -35976,19 +36543,19 @@ "href": { "name": "href", "type": "TypeString", - "description": "The URL for this backup policy plan.", + "description": "The URL for this snapshot.", "computed": true }, "id": { "name": "id", "type": "TypeString", - "description": "The unique identifier for this backup policy plan.", + "description": "The unique identifier for this snapshot.", "computed": true }, "name": { "name": "name", "type": "TypeString", - "description": "The unique user-defined name for this backup policy plan.", + "description": "The user-defined name for this snapshot.", "computed": true }, "resource_type": { @@ -36000,65 +36567,11 @@ } }, { - "name": "href", - "type": "TypeString", - "description": "The URL for this backup policy job.", - "computed": true - }, - { - "name": "completed_at", - "type": "TypeString", - "description": "The date and time that the backup policy job was completed.", - "computed": true - }, - { - "name": "created_at", - "type": "TypeString", - "description": "The date and time that the backup policy job was created.", - "computed": true - }, - { - "name": "auto_delete_after", - "type": "TypeInt", - "description": "If `auto_delete` is `true`, the days after completion that this backup policy job will be deleted. This value may be modifiable in the future.", - "computed": true - }, - { - "name": "identifier", - "type": "TypeString", - "description": "The backup policy job identifier.", - "required": true - }, - { - "name": "auto_delete", - "type": "TypeBool", - "description": "Indicates whether this backup policy job will be automatically deleted after it completes. At present, this is always `true`, but may be modifiable in the future.", - "computed": true - }, - { - "name": "job_type", - "type": "TypeString", - "description": "The type of backup policy job.The enumerated values for this property will expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the backup policy job on which the unexpected property value was encountered.", - "computed": true - }, - { - "name": "resource_type", - "type": "TypeString", - "description": "The resource type.", - "computed": true - }, - { - "name": "source_volume", + "name": "backup_policy_plan", "type": "TypeList", - "description": "The source volume this backup was created from (may be[deleted](https://cloud.ibm.com/apidocs/vpc#deleted-resources)).", + "description": "The backup policy plan operated this backup policy job (may be[deleted](https://cloud.ibm.com/apidocs/vpc#deleted-resources)).", "computed": true, "elem": { - "crn": { - "name": "crn", - "type": "TypeString", - "description": "The CRN for this volume.", - "computed": true - }, "deleted": { "name": "deleted", "type": "TypeList", @@ -36076,27 +36589,33 @@ "href": { "name": "href", "type": "TypeString", - "description": "The URL for this volume.", + "description": "The URL for this backup policy plan.", "computed": true }, "id": { "name": "id", "type": "TypeString", - "description": "The unique identifier for this volume.", + "description": "The unique identifier for this backup policy plan.", "computed": true }, "name": { "name": "name", "type": "TypeString", - "description": "The unique user-defined name for this volume.", + "description": "The unique user-defined name for this backup policy plan.", + "computed": true + }, + "resource_type": { + "name": "resource_type", + "type": "TypeString", + "description": "The resource type.", "computed": true } } }, { - "name": "status", + "name": "completed_at", "type": "TypeString", - "description": "The status of the backup policy job.The enumerated values for this property will expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the backup policy job on which the unexpected property value was encountered.", + "description": "The date and time that the backup policy job was completed.", "computed": true }, { @@ -36132,15 +36651,27 @@ "required": true }, { - "name": "target_snapshot", + "name": "auto_delete", + "type": "TypeBool", + "description": "Indicates whether this backup policy job will be automatically deleted after it completes. At present, this is always `true`, but may be modifiable in the future.", + "computed": true + }, + { + "name": "auto_delete_after", + "type": "TypeInt", + "description": "If `auto_delete` is `true`, the days after completion that this backup policy job will be deleted. This value may be modifiable in the future.", + "computed": true + }, + { + "name": "source_volume", "type": "TypeList", - "description": "The snapshot operated on by this backup policy job (may be[deleted](https://cloud.ibm.com/apidocs/vpc#deleted-resources)).", + "description": "The source volume this backup was created from (may be[deleted](https://cloud.ibm.com/apidocs/vpc#deleted-resources)).", "computed": true, "elem": { "crn": { "name": "crn", "type": "TypeString", - "description": "The CRN for this snapshot.", + "description": "The CRN for this volume.", "computed": true }, "deleted": { @@ -36160,31 +36691,46 @@ "href": { "name": "href", "type": "TypeString", - "description": "The URL for this snapshot.", + "description": "The URL for this volume.", "computed": true }, "id": { "name": "id", "type": "TypeString", - "description": "The unique identifier for this snapshot.", + "description": "The unique identifier for this volume.", "computed": true }, "name": { "name": "name", "type": "TypeString", - "description": "The user-defined name for this snapshot.", - "computed": true - }, - "resource_type": { - "name": "resource_type", - "type": "TypeString", - "description": "The resource type.", + "description": "The unique user-defined name for this volume.", "computed": true } } } ], "ibm_is_backup_policy_jobs": [ + { + "name": "target_snapshots_crn", + "type": "TypeSet", + "description": "Filters the collection to backup policy jobs with the target snapshot with the specified CRN", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "backup_policy_plan_id", + "type": "TypeString", + "description": "Filters the collection to backup policy jobs with the backup plan with the specified identifier.", + "optional": true + }, + { + "name": "status", + "type": "TypeString", + "description": "Filters the collection to backup policy jobs with the specified status", + "optional": true + }, { "name": "jobs", "type": "TypeList", @@ -36437,51 +36983,9 @@ "elem": { "type": "TypeString" } - }, - { - "name": "target_snapshots_crn", - "type": "TypeSet", - "description": "Filters the collection to backup policy jobs with the target snapshot with the specified CRN", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "backup_policy_plan_id", - "type": "TypeString", - "description": "Filters the collection to backup policy jobs with the backup plan with the specified identifier.", - "optional": true - }, - { - "name": "status", - "type": "TypeString", - "description": "Filters the collection to backup policy jobs with the specified status", - "optional": true } ], "ibm_is_backup_policy_plan": [ - { - "name": "attach_user_tags", - "type": "TypeList", - "description": "User tags to attach to each resource created by this plan.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "copy_user_tags", - "type": "TypeBool", - "description": "Indicates whether to copy the source's user tags to the created resource.", - "computed": true - }, - { - "name": "href", - "type": "TypeString", - "description": "The URL for this backup policy plan.", - "computed": true - }, { "name": "clone_policy", "type": "TypeList", @@ -36505,28 +37009,10 @@ } }, { - "name": "resource_type", - "type": "TypeString", - "description": "The type of resource referenced.", - "computed": true - }, - { - "name": "backup_policy_id", - "type": "TypeString", - "description": "The backup policy identifier.", - "required": true - }, - { - "name": "lifecycle_state", - "type": "TypeString", - "description": "The lifecycle state of this backup policy plan.", - "computed": true - }, - { - "name": "created_at", + "name": "identifier", "type": "TypeString", - "description": "The date and time that the backup policy plan was created.", - "computed": true + "description": "The backup policy plan identifier.", + "optional": true }, { "name": "active", @@ -36535,28 +37021,12 @@ "computed": true }, { - "name": "cron_spec", - "type": "TypeString", - "description": "The cron specification for the backup schedule.", - "computed": true - }, - { - "name": "deletion_trigger", + "name": "attach_user_tags", "type": "TypeList", + "description": "User tags to attach to each resource created by this plan.", "computed": true, "elem": { - "delete_after": { - "name": "delete_after", - "type": "TypeInt", - "description": "The maximum number of days to keep each backup after creation.", - "computed": true - }, - "delete_over_count": { - "name": "delete_over_count", - "type": "TypeInt", - "description": "The maximum number of recent backups to keep. If absent, there is no maximum.", - "computed": true - } + "type": "TypeString" } }, { @@ -36585,6 +37055,61 @@ } } }, + { + "name": "backup_policy_id", + "type": "TypeString", + "description": "The backup policy identifier.", + "required": true + }, + { + "name": "deletion_trigger", + "type": "TypeList", + "computed": true, + "elem": { + "delete_after": { + "name": "delete_after", + "type": "TypeInt", + "description": "The maximum number of days to keep each backup after creation.", + "computed": true + }, + "delete_over_count": { + "name": "delete_over_count", + "type": "TypeInt", + "description": "The maximum number of recent backups to keep. If absent, there is no maximum.", + "computed": true + } + } + }, + { + "name": "lifecycle_state", + "type": "TypeString", + "description": "The lifecycle state of this backup policy plan.", + "computed": true + }, + { + "name": "resource_type", + "type": "TypeString", + "description": "The type of resource referenced.", + "computed": true + }, + { + "name": "copy_user_tags", + "type": "TypeBool", + "description": "Indicates whether to copy the source's user tags to the created resource.", + "computed": true + }, + { + "name": "cron_spec", + "type": "TypeString", + "description": "The cron specification for the backup schedule.", + "computed": true + }, + { + "name": "href", + "type": "TypeString", + "description": "The URL for this backup policy plan.", + "computed": true + }, { "name": "name", "type": "TypeString", @@ -36593,10 +37118,10 @@ "computed": true }, { - "name": "identifier", + "name": "created_at", "type": "TypeString", - "description": "The backup policy plan identifier.", - "optional": true + "description": "The date and time that the backup policy plan was created.", + "computed": true } ], "ibm_is_backup_policy_plans": [ @@ -36753,52 +37278,15 @@ ], "ibm_is_bare_metal_server": [ { - "name": "vpc", - "type": "TypeString", - "description": "The VPC the bare metal server is to be a part of", - "computed": true - }, - { - "name": "status", - "type": "TypeString", - "description": "Bare metal server status", - "computed": true - }, - { - "name": "crn", - "type": "TypeString", - "description": "The CRN for this bare metal server", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "image", - "type": "TypeString", - "description": "image name", - "computed": true - }, - { - "name": "profile", - "type": "TypeString", - "description": "profil name", - "computed": true - }, - { - "name": "resource_type", - "type": "TypeString", - "description": "Resource type name", + "name": "bandwidth", + "type": "TypeInt", + "description": "The total bandwidth (in megabits per second)", "computed": true }, { - "name": "identifier", + "name": "boot_target", "type": "TypeString", - "optional": true, - "computed": true - }, - { - "name": "bandwidth", - "type": "TypeInt", - "description": "The total bandwidth (in megabits per second)", + "description": "The unique identifier for this bare metal server disk", "computed": true }, { @@ -36833,12 +37321,6 @@ } } }, - { - "name": "href", - "type": "TypeString", - "description": "The URL for this bare metal server", - "computed": true - }, { "name": "primary_network_interface", "type": "TypeList", @@ -36926,35 +37408,25 @@ } }, { - "name": "zone", + "name": "keys", + "type": "TypeSet", + "description": "SSH key Ids for the bare metal server", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "image", "type": "TypeString", - "description": "Zone name", + "description": "image name", "computed": true }, { - "name": "status_reasons", - "type": "TypeList", - "computed": true, - "elem": { - "code": { - "name": "code", - "type": "TypeString", - "description": "A snake case string succinctly identifying the status reason", - "computed": true - }, - "message": { - "name": "message", - "type": "TypeString", - "description": "An explanation of the status reason", - "computed": true - }, - "more_info": { - "name": "more_info", - "type": "TypeString", - "description": "Link to documentation about this status reason", - "computed": true - } - } + "name": "identifier", + "type": "TypeString", + "optional": true, + "computed": true }, { "name": "name", @@ -36992,9 +37464,9 @@ } }, { - "name": "boot_target", + "name": "created_at", "type": "TypeString", - "description": "The unique identifier for this bare metal server disk", + "description": "The date and time that the bare metal server was created", "computed": true }, { @@ -37003,6 +37475,105 @@ "description": "The amount of memory, truncated to whole gibibytes", "computed": true }, + { + "name": "vpc", + "type": "TypeString", + "description": "The VPC the bare metal server is to be a part of", + "computed": true + }, + { + "name": "resource_type", + "type": "TypeString", + "description": "Resource type name", + "computed": true + }, + { + "name": "tags", + "type": "TypeSet", + "description": "Tags for the Bare metal server", + "min_length": 1, + "max_length": 128, + "matches": "^[A-Za-z0-9:_ .-]+$", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "crn", + "type": "TypeString", + "description": "The CRN for this bare metal server", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "profile", + "type": "TypeString", + "description": "profil name", + "computed": true + }, + { + "name": "zone", + "type": "TypeString", + "description": "Zone name", + "computed": true + }, + { + "name": "enable_secure_boot", + "type": "TypeBool", + "description": "Indicates whether secure boot is enabled. If enabled, the image must support secure boot or the server will fail to boot.", + "computed": true + }, + { + "name": "disks", + "type": "TypeList", + "description": "The disks for this bare metal server, including any disks that are associated with the boot_target.", + "computed": true, + "elem": { + "href": { + "name": "href", + "type": "TypeString", + "description": "The URL for this bare metal server disk", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "The unique identifier for this bare metal server disk", + "computed": true + }, + "interface_type": { + "name": "interface_type", + "type": "TypeString", + "description": "The disk interface used for attaching the disk. Supported values are [ nvme, sata ]", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The user-defined name for this disk", + "computed": true + }, + "resource_type": { + "name": "resource_type", + "type": "TypeString", + "description": "The resource type", + "computed": true + }, + "size": { + "name": "size", + "type": "TypeInt", + "description": "The size of the disk in GB (gigabytes)", + "computed": true + } + } + }, + { + "name": "href", + "type": "TypeString", + "description": "The URL for this bare metal server", + "computed": true + }, { "name": "network_interfaces", "type": "TypeList", @@ -37083,15 +37654,6 @@ } } }, - { - "name": "keys", - "type": "TypeSet", - "description": "SSH key Ids for the bare metal server", - "computed": true, - "elem": { - "type": "TypeString" - } - }, { "name": "resource_group", "type": "TypeString", @@ -37100,69 +37662,32 @@ "computed": true }, { - "name": "tags", - "type": "TypeSet", - "description": "Tags for the Bare metal server", - "min_length": 1, - "max_length": 128, - "matches": "^[A-Za-z0-9:_ .-]+$", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "enable_secure_boot", - "type": "TypeBool", - "description": "Indicates whether secure boot is enabled. If enabled, the image must support secure boot or the server will fail to boot.", - "computed": true - }, - { - "name": "created_at", + "name": "status", "type": "TypeString", - "description": "The date and time that the bare metal server was created", + "description": "Bare metal server status", "computed": true }, { - "name": "disks", + "name": "status_reasons", "type": "TypeList", - "description": "The disks for this bare metal server, including any disks that are associated with the boot_target.", "computed": true, "elem": { - "href": { - "name": "href", - "type": "TypeString", - "description": "The URL for this bare metal server disk", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "The unique identifier for this bare metal server disk", - "computed": true - }, - "interface_type": { - "name": "interface_type", + "code": { + "name": "code", "type": "TypeString", - "description": "The disk interface used for attaching the disk. Supported values are [ nvme, sata ]", + "description": "A snake case string succinctly identifying the status reason", "computed": true }, - "name": { - "name": "name", + "message": { + "name": "message", "type": "TypeString", - "description": "The user-defined name for this disk", + "description": "An explanation of the status reason", "computed": true }, - "resource_type": { - "name": "resource_type", + "more_info": { + "name": "more_info", "type": "TypeString", - "description": "The resource type", - "computed": true - }, - "size": { - "name": "size", - "type": "TypeInt", - "description": "The size of the disk in GB (gigabytes)", + "description": "Link to documentation about this status reason", "computed": true } } @@ -37178,12 +37703,6 @@ } ], "ibm_is_bare_metal_server_disk": [ - { - "name": "name", - "type": "TypeString", - "description": "The user-defined name for this disk", - "computed": true - }, { "name": "resource_type", "type": "TypeString", @@ -37225,6 +37744,12 @@ "type": "TypeString", "description": "The disk interface used for attaching the disk. Supported values are [ nvme, sata ]", "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The user-defined name for this disk", + "computed": true } ], "ibm_is_bare_metal_server_disks": [ @@ -37280,6 +37805,20 @@ } ], "ibm_is_bare_metal_server_initialization": [ + { + "name": "private_key", + "type": "TypeString", + "description": "Bare Metal Server Private Key file", + "secure": true, + "optional": true + }, + { + "name": "passphrase", + "type": "TypeString", + "description": "Passphrase for Bare Metal Server Private Key file", + "secure": true, + "optional": true + }, { "name": "image", "type": "TypeString", @@ -37346,42 +37885,25 @@ "type": "TypeString", "description": "The bare metal server identifier", "required": true - }, - { - "name": "private_key", - "type": "TypeString", - "description": "Bare Metal Server Private Key file", - "secure": true, - "optional": true - }, - { - "name": "passphrase", - "type": "TypeString", - "description": "Passphrase for Bare Metal Server Private Key file", - "secure": true, - "optional": true } ], "ibm_is_bare_metal_server_network_interface": [ { - "name": "allowed_vlans", - "type": "TypeSet", - "description": "Indicates what VLAN IDs (for VLAN type only) can use this physical (PCI type) interface. A given VLAN can only be in the allowed_vlans array for one PCI type adapter per bare metal server.", - "computed": true, - "elem": { - "type": "TypeInt" - } + "name": "name", + "type": "TypeString", + "description": "The user-defined name for this network interface", + "computed": true }, { - "name": "allow_ip_spoofing", - "type": "TypeBool", - "description": "Indicates whether source IP spoofing is allowed on this interface. If false, source IP spoofing is prevented on this interface. If true, source IP spoofing is allowed on this interface.", + "name": "port_speed", + "type": "TypeInt", + "description": "The network interface port speed in Mbps", "computed": true }, { - "name": "floating_ips", + "name": "primary_ip", "type": "TypeList", - "description": "The floating IPs associated with this network interface.", + "description": "IPv4, The IP address.", "computed": true, "elem": { "address": { @@ -37390,73 +37912,66 @@ "description": "The globally unique IP address", "computed": true }, - "crn": { - "name": "crn", - "type": "TypeString", - "description": "The CRN for this floating IP", - "computed": true - }, "href": { "name": "href", "type": "TypeString", - "description": "The URL for this floating IP", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "The unique identifier for this floating IP", + "description": "The URL for this reserved IP", "computed": true }, "name": { "name": "name", "type": "TypeString", - "description": "The unique user-defined name for this floating IP", + "description": "The user-defined name for this reserved IP. If unspecified, the name will be a hyphenated list of randomly-selected words. Names must be unique within the subnet the reserved IP resides in.", "computed": true }, "reserved_ip": { "name": "reserved_ip", "type": "TypeString", - "description": "The unique identifier for this floating IP", - "computed": true, - "deprecated": "This field is deprecated - replaced by id" + "description": "Identifies a reserved IP by a unique property.", + "computed": true + }, + "resource_type": { + "name": "resource_type", + "type": "TypeString", + "description": "The resource type", + "computed": true } } }, { - "name": "interface_type", + "name": "status", "type": "TypeString", - "description": "The network interface type: [ pci, vlan ]", + "description": "The status of the network interface : [ available, deleting, failed, pending ]", "computed": true }, { - "name": "name", - "type": "TypeString", - "description": "The user-defined name for this network interface", + "name": "vlan", + "type": "TypeInt", + "description": "Indicates the 802.1Q VLAN ID tag that must be used for all traffic on this interface", "computed": true }, { - "name": "subnet", - "type": "TypeString", - "description": "The id of the associated subnet", + "name": "allow_interface_to_float", + "type": "TypeBool", + "description": "Indicates if the interface can float to any other server within the same resource_group. The interface will float automatically if the network detects a GARP or RARP on another bare metal server in the resource group. Applies only to vlan type interfaces.", "computed": true }, { - "name": "bare_metal_server", - "type": "TypeString", - "description": "The bare metal server identifier", - "required": true + "name": "allow_ip_spoofing", + "type": "TypeBool", + "description": "Indicates whether source IP spoofing is allowed on this interface. If false, source IP spoofing is prevented on this interface. If true, source IP spoofing is allowed on this interface.", + "computed": true }, { - "name": "href", - "type": "TypeString", - "description": "The URL for this network interface", + "name": "enable_infrastructure_nat", + "type": "TypeBool", + "description": "If true, the VPC infrastructure performs any needed NAT operations. If false, the packet is passed unmodified to/from the network interface, allowing the workload to perform any needed NAT operations.", "computed": true }, { - "name": "allow_interface_to_float", - "type": "TypeBool", - "description": "Indicates if the interface can float to any other server within the same resource_group. The interface will float automatically if the network detects a GARP or RARP on another bare metal server in the resource group. Applies only to vlan type interfaces.", + "name": "href", + "type": "TypeString", + "description": "The URL for this network interface", "computed": true }, { @@ -37472,48 +37987,18 @@ "computed": true }, { - "name": "vlan", - "type": "TypeInt", - "description": "Indicates the 802.1Q VLAN ID tag that must be used for all traffic on this interface", - "computed": true - }, - { - "name": "security_groups", + "name": "allowed_vlans", "type": "TypeSet", - "description": "Collection of security groups ids", + "description": "Indicates what VLAN IDs (for VLAN type only) can use this physical (PCI type) interface. A given VLAN can only be in the allowed_vlans array for one PCI type adapter per bare metal server.", "computed": true, "elem": { - "type": "TypeString" + "type": "TypeInt" } }, { - "name": "status", - "type": "TypeString", - "description": "The status of the network interface : [ available, deleting, failed, pending ]", - "computed": true - }, - { - "name": "network_interface", - "type": "TypeString", - "description": "The bare metal server network interface identifier", - "required": true - }, - { - "name": "enable_infrastructure_nat", - "type": "TypeBool", - "description": "If true, the VPC infrastructure performs any needed NAT operations. If false, the packet is passed unmodified to/from the network interface, allowing the workload to perform any needed NAT operations.", - "computed": true - }, - { - "name": "port_speed", - "type": "TypeInt", - "description": "The network interface port speed in Mbps", - "computed": true - }, - { - "name": "primary_ip", + "name": "floating_ips", "type": "TypeList", - "description": "IPv4, The IP address.", + "description": "The floating IPs associated with this network interface.", "computed": true, "elem": { "address": { @@ -37522,40 +38007,45 @@ "description": "The globally unique IP address", "computed": true }, + "crn": { + "name": "crn", + "type": "TypeString", + "description": "The CRN for this floating IP", + "computed": true + }, "href": { "name": "href", "type": "TypeString", - "description": "The URL for this reserved IP", + "description": "The URL for this floating IP", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "The unique identifier for this floating IP", "computed": true }, "name": { "name": "name", "type": "TypeString", - "description": "The user-defined name for this reserved IP. If unspecified, the name will be a hyphenated list of randomly-selected words. Names must be unique within the subnet the reserved IP resides in.", + "description": "The unique user-defined name for this floating IP", "computed": true }, "reserved_ip": { "name": "reserved_ip", "type": "TypeString", - "description": "Identifies a reserved IP by a unique property.", - "computed": true - }, - "resource_type": { - "name": "resource_type", - "type": "TypeString", - "description": "The resource type", - "computed": true + "description": "The unique identifier for this floating IP", + "computed": true, + "deprecated": "This field is deprecated - replaced by id" } } }, { - "name": "resource_type", + "name": "interface_type", "type": "TypeString", - "description": "The resource type : [ subnet_reserved_ip ]", + "description": "The network interface type: [ pci, vlan ]", "computed": true - } - ], - "ibm_is_bare_metal_server_network_interface_floating_ip": [ + }, { "name": "bare_metal_server", "type": "TypeString", @@ -37565,25 +38055,42 @@ { "name": "network_interface", "type": "TypeString", - "description": "The network interface identifier of bare metal server", + "description": "The bare metal server network interface identifier", "required": true }, { - "name": "floating_ip", + "name": "resource_type", "type": "TypeString", - "description": "The floating ip identifier of the network interface associated with the bare metal server", - "required": true + "description": "The resource type : [ subnet_reserved_ip ]", + "computed": true }, { - "name": "address", + "name": "security_groups", + "type": "TypeSet", + "description": "Collection of security groups ids", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "subnet", "type": "TypeString", - "description": "Floating IP address", + "description": "The id of the associated subnet", + "computed": true + } + ], + "ibm_is_bare_metal_server_network_interface_floating_ip": [ + { + "name": "name", + "type": "TypeString", + "description": "Name of the floating IP", "computed": true }, { - "name": "status", + "name": "address", "type": "TypeString", - "description": "Floating IP status", + "description": "Floating IP address", "computed": true }, { @@ -37592,6 +38099,25 @@ "description": "Zone name", "computed": true }, + { + "name": "crn", + "type": "TypeString", + "description": "Floating IP crn", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "bare_metal_server", + "type": "TypeString", + "description": "The bare metal server identifier", + "required": true + }, + { + "name": "floating_ip", + "type": "TypeString", + "description": "The floating ip identifier of the network interface associated with the bare metal server", + "required": true + }, { "name": "target", "type": "TypeString", @@ -37599,16 +38125,15 @@ "computed": true }, { - "name": "crn", + "name": "network_interface", "type": "TypeString", - "description": "Floating IP crn", - "cloud_data_type": "crn", - "computed": true + "description": "The network interface identifier of bare metal server", + "required": true }, { - "name": "name", + "name": "status", "type": "TypeString", - "description": "Name of the floating IP", + "description": "Floating IP status", "computed": true } ], @@ -37678,33 +38203,33 @@ ], "ibm_is_bare_metal_server_network_interface_reserved_ip": [ { - "name": "auto_delete", - "type": "TypeBool", - "description": "If set to true, this reserved IP will be automatically deleted", + "name": "address", + "type": "TypeString", + "description": "The IP address", "computed": true }, { - "name": "created_at", + "name": "owner", "type": "TypeString", - "description": "The date and time that the reserved IP was created.", + "description": "The owner of a reserved IP, defining whether it is managed by the user or the provider.", "computed": true }, { - "name": "href", + "name": "target", "type": "TypeString", - "description": "The URL for this reserved IP.", + "description": "Reserved IP target id.", "computed": true }, { - "name": "name", + "name": "href", "type": "TypeString", - "description": "The user-defined or system-provided name for this reserved IP.", + "description": "The URL for this reserved IP.", "computed": true }, { - "name": "owner", + "name": "name", "type": "TypeString", - "description": "The owner of a reserved IP, defining whether it is managed by the user or the provider.", + "description": "The user-defined or system-provided name for this reserved IP.", "computed": true }, { @@ -37720,27 +38245,27 @@ "required": true }, { - "name": "reserved_ip", + "name": "network_interface", "type": "TypeString", - "description": "The reserved IP identifier.", + "description": "The Bare Metal Server network interface identifier.", "required": true }, { - "name": "target", + "name": "reserved_ip", "type": "TypeString", - "description": "Reserved IP target id.", - "computed": true + "description": "The reserved IP identifier.", + "required": true }, { - "name": "network_interface", - "type": "TypeString", - "description": "The Bare Metal Server network interface identifier.", - "required": true + "name": "auto_delete", + "type": "TypeBool", + "description": "If set to true, this reserved IP will be automatically deleted", + "computed": true }, { - "name": "address", + "name": "created_at", "type": "TypeString", - "description": "The IP address", + "description": "The date and time that the reserved IP was created.", "computed": true } ], @@ -37827,6 +38352,12 @@ } ], "ibm_is_bare_metal_server_network_interfaces": [ + { + "name": "bare_metal_server", + "type": "TypeString", + "description": "The bare metal server identifier", + "required": true + }, { "name": "network_interfaces", "type": "TypeList", @@ -38019,38 +38550,40 @@ "computed": true } } - }, - { - "name": "bare_metal_server", - "type": "TypeString", - "description": "The bare metal server identifier", - "required": true } ], "ibm_is_bare_metal_server_profile": [ { - "name": "console_types", + "name": "network_interface_count", "type": "TypeList", - "description": "The console type configuration for a bare metal server with this profile.", "computed": true, "elem": { + "max": { + "name": "max", + "type": "TypeInt", + "description": "The maximum value for this profile field.", + "computed": true + }, + "min": { + "name": "min", + "type": "TypeInt", + "description": "The minimum value for this profile field.", + "computed": true + }, "type": { "name": "type", "type": "TypeString", "description": "The type for this profile field.", "computed": true - }, - "values": { - "name": "values", - "type": "TypeList", - "description": "The console types for a bare metal server with this profile.", - "computed": true, - "elem": { - "type": "TypeString" - } } } }, + { + "name": "resource_type", + "type": "TypeString", + "description": "The resource type for this bare metal server profile", + "computed": true + }, { "name": "cpu_socket_count", "type": "TypeList", @@ -38071,18 +38604,6 @@ } } }, - { - "name": "name", - "type": "TypeString", - "description": "The name for this bare metal server profile", - "required": true - }, - { - "name": "href", - "type": "TypeString", - "description": "The URL for this bare metal server profile", - "computed": true - }, { "name": "os_architecture", "type": "TypeList", @@ -38113,81 +38634,10 @@ } }, { - "name": "disks", - "type": "TypeList", - "description": "Collection of the bare metal server profile's disks", - "computed": true, - "elem": { - "quantity": { - "name": "quantity", - "type": "TypeList", - "description": "The number of disks of this configuration for a bare metal server with this profile", - "computed": true, - "elem": { - "type": { - "name": "type", - "type": "TypeString", - "description": "The type for this profile field", - "computed": true - }, - "value": { - "name": "value", - "type": "TypeInt", - "description": "The value for this profile field", - "computed": true - } - } - }, - "size": { - "name": "size", - "type": "TypeList", - "description": "The size of the disk in GB (gigabytes)", - "computed": true, - "elem": { - "type": { - "name": "type", - "type": "TypeString", - "description": "The type for this profile field", - "computed": true - }, - "value": { - "name": "value", - "type": "TypeInt", - "description": "The value for this profile field", - "computed": true - } - } - }, - "supported_interface_types": { - "name": "supported_interface_types", - "type": "TypeList", - "description": "The disk interface used for attaching the disk.", - "computed": true, - "elem": { - "default": { - "name": "default", - "type": "TypeString", - "description": "The enumerated values for this property are expected to expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the resource on which the unexpected property value was encountered.", - "computed": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "The type for this profile field", - "computed": true - }, - "values": { - "name": "values", - "type": "TypeSet", - "description": "The supported disk interfaces used for attaching the disk", - "computed": true, - "elem": { - "type": "TypeString" - } - } - } - } - } + "name": "name", + "type": "TypeString", + "description": "The name for this bare metal server profile", + "required": true }, { "name": "family", @@ -38196,9 +38646,9 @@ "computed": true }, { - "name": "bandwidth", + "name": "cpu_architecture", "type": "TypeList", - "description": "The total bandwidth (in megabits per second) shared across the network interfaces of a bare metal server with this profile", + "description": "The CPU architecture for a bare metal server with this profile", "computed": true, "elem": { "type": { @@ -38209,41 +38659,16 @@ }, "value": { "name": "value", - "type": "TypeInt", - "description": "The value for this profile field", - "computed": true - } - } - }, - { - "name": "network_interface_count", - "type": "TypeList", - "computed": true, - "elem": { - "max": { - "name": "max", - "type": "TypeInt", - "description": "The maximum value for this profile field.", - "computed": true - }, - "min": { - "name": "min", - "type": "TypeInt", - "description": "The minimum value for this profile field.", - "computed": true - }, - "type": { - "name": "type", "type": "TypeString", - "description": "The type for this profile field.", + "description": "The value for this profile field", "computed": true } } }, { - "name": "cpu_architecture", + "name": "memory", "type": "TypeList", - "description": "The CPU architecture for a bare metal server with this profile", + "description": "The memory (in gibibytes) for a bare metal server with this profile", "computed": true, "elem": { "type": { @@ -38254,22 +38679,22 @@ }, "value": { "name": "value", - "type": "TypeString", + "type": "TypeInt", "description": "The value for this profile field", "computed": true } } }, { - "name": "resource_type", + "name": "href", "type": "TypeString", - "description": "The resource type for this bare metal server profile", + "description": "The URL for this bare metal server profile", "computed": true }, { - "name": "cpu_core_count", + "name": "bandwidth", "type": "TypeList", - "description": "The CPU core count for a bare metal server with this profile", + "description": "The total bandwidth (in megabits per second) shared across the network interfaces of a bare metal server with this profile", "computed": true, "elem": { "type": { @@ -38287,9 +38712,9 @@ } }, { - "name": "memory", + "name": "cpu_core_count", "type": "TypeList", - "description": "The memory (in gibibytes) for a bare metal server with this profile", + "description": "The CPU core count for a bare metal server with this profile", "computed": true, "elem": { "type": { @@ -38328,6 +38753,106 @@ } } } + }, + { + "name": "console_types", + "type": "TypeList", + "description": "The console type configuration for a bare metal server with this profile.", + "computed": true, + "elem": { + "type": { + "name": "type", + "type": "TypeString", + "description": "The type for this profile field.", + "computed": true + }, + "values": { + "name": "values", + "type": "TypeList", + "description": "The console types for a bare metal server with this profile.", + "computed": true, + "elem": { + "type": "TypeString" + } + } + } + }, + { + "name": "disks", + "type": "TypeList", + "description": "Collection of the bare metal server profile's disks", + "computed": true, + "elem": { + "quantity": { + "name": "quantity", + "type": "TypeList", + "description": "The number of disks of this configuration for a bare metal server with this profile", + "computed": true, + "elem": { + "type": { + "name": "type", + "type": "TypeString", + "description": "The type for this profile field", + "computed": true + }, + "value": { + "name": "value", + "type": "TypeInt", + "description": "The value for this profile field", + "computed": true + } + } + }, + "size": { + "name": "size", + "type": "TypeList", + "description": "The size of the disk in GB (gigabytes)", + "computed": true, + "elem": { + "type": { + "name": "type", + "type": "TypeString", + "description": "The type for this profile field", + "computed": true + }, + "value": { + "name": "value", + "type": "TypeInt", + "description": "The value for this profile field", + "computed": true + } + } + }, + "supported_interface_types": { + "name": "supported_interface_types", + "type": "TypeList", + "description": "The disk interface used for attaching the disk.", + "computed": true, + "elem": { + "default": { + "name": "default", + "type": "TypeString", + "description": "The enumerated values for this property are expected to expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the resource on which the unexpected property value was encountered.", + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "The type for this profile field", + "computed": true + }, + "values": { + "name": "values", + "type": "TypeSet", + "description": "The supported disk interfaces used for attaching the disk", + "computed": true, + "elem": { + "type": "TypeString" + } + } + } + } + } } ], "ibm_is_bare_metal_server_profiles": [ @@ -38649,16 +39174,15 @@ ], "ibm_is_bare_metal_servers": [ { - "name": "resource_group", + "name": "vpc_crn", "type": "TypeString", - "description": "The unique identifier of the resource group this bare metal server belongs to", - "cloud_data_type": "resource_group", + "description": "The vpc CRN this bare metal server is in", "optional": true }, { - "name": "vpc_crn", + "name": "name", "type": "TypeString", - "description": "The vpc CRN this bare metal server is in", + "description": "The name of the bare metal server", "optional": true }, { @@ -39100,21 +39624,22 @@ } }, { - "name": "vpc", + "name": "resource_group", "type": "TypeString", - "description": "The vpc ID this bare metal server is in", + "description": "The unique identifier of the resource group this bare metal server belongs to", + "cloud_data_type": "resource_group", "optional": true }, { - "name": "vpc_name", + "name": "vpc", "type": "TypeString", - "description": "The vpc name this bare metal server is in", + "description": "The vpc ID this bare metal server is in", "optional": true }, { - "name": "name", + "name": "vpc_name", "type": "TypeString", - "description": "The name of the bare metal server", + "description": "The vpc name this bare metal server is in", "optional": true }, { @@ -39166,6 +39691,167 @@ "cloud_data_type": "crn", "computed": true }, + { + "name": "href", + "type": "TypeString", + "description": "The URL for this dedicated host.", + "computed": true + }, + { + "name": "instance_placement_enabled", + "type": "TypeBool", + "description": "If set to true, instances can be placed on this dedicated host.", + "computed": true + }, + { + "name": "instances", + "type": "TypeList", + "description": "Array of instances that are allocated to this dedicated host.", + "computed": true, + "elem": { + "crn": { + "name": "crn", + "type": "TypeString", + "description": "The CRN for this virtual server instance.", + "computed": true + }, + "deleted": { + "name": "deleted", + "type": "TypeList", + "description": "If present, this property indicates the referenced resource has been deleted and providessome supplementary information.", + "computed": true, + "elem": { + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about deleted resources.", + "computed": true + } + } + }, + "href": { + "name": "href", + "type": "TypeString", + "description": "The URL for this virtual server instance.", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "The unique identifier for this virtual server instance.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The user-defined name for this virtual server instance (and default system hostname).", + "computed": true + } + } + }, + { + "name": "provisionable", + "type": "TypeBool", + "description": "Indicates whether this dedicated host is available for instance creation.", + "computed": true + }, + { + "name": "host_group", + "type": "TypeString", + "description": "The unique identifier of the dedicated host group this dedicated host belongs to", + "required": true + }, + { + "name": "socket_count", + "type": "TypeInt", + "description": "The total number of sockets for this host.", + "computed": true + }, + { + "name": "zone", + "type": "TypeString", + "description": "The globally unique name of the zone this dedicated host resides in.", + "computed": true + }, + { + "name": "access_tags", + "type": "TypeSet", + "description": "List of access tags", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "name", + "type": "TypeString", + "description": "The unique name of this dedicated host", + "required": true + }, + { + "name": "created_at", + "type": "TypeString", + "description": "The date and time that the dedicated host was created.", + "computed": true + }, + { + "name": "state", + "type": "TypeString", + "description": "The administrative state of the dedicated host.The enumerated values for this property are expected to expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the dedicated host on which the unexpected property value was encountered.", + "computed": true + }, + { + "name": "vcpu", + "type": "TypeList", + "description": "The total VCPU of the dedicated host.", + "computed": true, + "elem": { + "architecture": { + "name": "architecture", + "type": "TypeString", + "description": "The VCPU architecture.", + "computed": true + }, + "count": { + "name": "count", + "type": "TypeInt", + "description": "The number of VCPUs assigned.", + "computed": true + }, + "manufacturer": { + "name": "manufacturer", + "type": "TypeString", + "description": "The VCPU manufacturer.", + "computed": true + } + } + }, + { + "name": "supported_instance_profiles", + "type": "TypeList", + "description": "Array of instance profiles that can be used by instances placed on this dedicated host.", + "computed": true, + "elem": { + "href": { + "name": "href", + "type": "TypeString", + "description": "The URL for this virtual server instance profile.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The globally unique name for this virtual server instance profile.", + "computed": true + } + } + }, + { + "name": "available_memory", + "type": "TypeInt", + "description": "The amount of memory in gibibytes that is currently available for instances.", + "computed": true + }, { "name": "disks", "type": "TypeList", @@ -39290,93 +39976,11 @@ } }, { - "name": "instance_placement_enabled", - "type": "TypeBool", - "description": "If set to true, instances can be placed on this dedicated host.", - "computed": true - }, - { - "name": "resource_type", - "type": "TypeString", - "description": "The type of resource referenced.", - "computed": true - }, - { - "name": "state", - "type": "TypeString", - "description": "The administrative state of the dedicated host.The enumerated values for this property are expected to expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the dedicated host on which the unexpected property value was encountered.", - "computed": true - }, - { - "name": "zone", - "type": "TypeString", - "description": "The globally unique name of the zone this dedicated host resides in.", - "computed": true - }, - { - "name": "name", - "type": "TypeString", - "description": "The unique name of this dedicated host", - "required": true - }, - { - "name": "created_at", - "type": "TypeString", - "description": "The date and time that the dedicated host was created.", - "computed": true - }, - { - "name": "href", + "name": "lifecycle_state", "type": "TypeString", - "description": "The URL for this dedicated host.", + "description": "The lifecycle state of the dedicated host resource.", "computed": true }, - { - "name": "instances", - "type": "TypeList", - "description": "Array of instances that are allocated to this dedicated host.", - "computed": true, - "elem": { - "crn": { - "name": "crn", - "type": "TypeString", - "description": "The CRN for this virtual server instance.", - "computed": true - }, - "deleted": { - "name": "deleted", - "type": "TypeList", - "description": "If present, this property indicates the referenced resource has been deleted and providessome supplementary information.", - "computed": true, - "elem": { - "more_info": { - "name": "more_info", - "type": "TypeString", - "description": "Link to documentation about deleted resources.", - "computed": true - } - } - }, - "href": { - "name": "href", - "type": "TypeString", - "description": "The URL for this virtual server instance.", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "The unique identifier for this virtual server instance.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The user-defined name for this virtual server instance (and default system hostname).", - "computed": true - } - } - }, { "name": "memory", "type": "TypeInt", @@ -39384,70 +39988,39 @@ "computed": true }, { - "name": "provisionable", - "type": "TypeBool", - "description": "Indicates whether this dedicated host is available for instance creation.", - "computed": true - }, - { - "name": "socket_count", - "type": "TypeInt", - "description": "The total number of sockets for this host.", - "computed": true - }, - { - "name": "vcpu", + "name": "numa", "type": "TypeList", - "description": "The total VCPU of the dedicated host.", + "description": "The dedicated host NUMA configuration", "computed": true, "elem": { - "architecture": { - "name": "architecture", - "type": "TypeString", - "description": "The VCPU architecture.", - "computed": true - }, "count": { "name": "count", "type": "TypeInt", - "description": "The number of VCPUs assigned.", + "description": "The total number of NUMA nodes for this dedicated host", "computed": true }, - "manufacturer": { - "name": "manufacturer", - "type": "TypeString", - "description": "The VCPU manufacturer.", - "computed": true + "nodes": { + "name": "nodes", + "type": "TypeList", + "description": "The NUMA nodes for this dedicated host.", + "computed": true, + "elem": { + "available_vcpu": { + "name": "available_vcpu", + "type": "TypeInt", + "description": "The available VCPU for this NUMA node.", + "computed": true + }, + "vcpu": { + "name": "vcpu", + "type": "TypeInt", + "description": "The total VCPU capacity for this NUMA node.", + "computed": true + } + } } } }, - { - "name": "access_tags", - "type": "TypeSet", - "description": "List of access tags", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "host_group", - "type": "TypeString", - "description": "The unique identifier of the dedicated host group this dedicated host belongs to", - "required": true - }, - { - "name": "lifecycle_state", - "type": "TypeString", - "description": "The lifecycle state of the dedicated host resource.", - "computed": true - }, - { - "name": "available_memory", - "type": "TypeInt", - "description": "The amount of memory in gibibytes that is currently available for instances.", - "computed": true - }, { "name": "profile", "type": "TypeList", @@ -39468,57 +40041,22 @@ } } }, - { - "name": "supported_instance_profiles", - "type": "TypeList", - "description": "Array of instance profiles that can be used by instances placed on this dedicated host.", - "computed": true, - "elem": { - "href": { - "name": "href", - "type": "TypeString", - "description": "The URL for this virtual server instance profile.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The globally unique name for this virtual server instance profile.", - "computed": true - } - } - } - ], - "ibm_is_dedicated_host_disk": [ - { - "name": "created_at", - "type": "TypeString", - "description": "The date and time that the disk was created.", - "computed": true - }, - { - "name": "interface_type", - "type": "TypeString", - "description": "The disk interface used for attaching the diskThe enumerated values for this property are expected to expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the resource on which the unexpected property value was encountered.", - "computed": true - }, { "name": "resource_type", "type": "TypeString", "description": "The type of resource referenced.", "computed": true - }, - { - "name": "size", - "type": "TypeInt", - "description": "The size of the disk in GB (gigabytes).", - "computed": true - }, + } + ], + "ibm_is_dedicated_host_disk": [ { - "name": "available", - "type": "TypeInt", - "description": "The remaining space left for instance placement in GB (gigabytes).", - "computed": true + "name": "supported_instance_interface_types", + "type": "TypeList", + "description": "The instance disk interfaces supported for this dedicated host disk.", + "computed": true, + "elem": { + "type": "TypeString" + } }, { "name": "disk", @@ -39527,9 +40065,9 @@ "required": true }, { - "name": "href", - "type": "TypeString", - "description": "The URL for this disk.", + "name": "available", + "type": "TypeInt", + "description": "The remaining space left for instance placement in GB (gigabytes).", "computed": true }, { @@ -39597,22 +40135,49 @@ "computed": true }, { - "name": "supported_instance_interface_types", - "type": "TypeList", - "description": "The instance disk interfaces supported for this dedicated host disk.", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "resource_type", + "type": "TypeString", + "description": "The type of resource referenced.", + "computed": true + }, + { + "name": "size", + "type": "TypeInt", + "description": "The size of the disk in GB (gigabytes).", + "computed": true }, { "name": "dedicated_host", "type": "TypeString", "description": "The dedicated host identifier.", "required": true + }, + { + "name": "created_at", + "type": "TypeString", + "description": "The date and time that the disk was created.", + "computed": true + }, + { + "name": "href", + "type": "TypeString", + "description": "The URL for this disk.", + "computed": true + }, + { + "name": "interface_type", + "type": "TypeString", + "description": "The disk interface used for attaching the diskThe enumerated values for this property are expected to expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the resource on which the unexpected property value was encountered.", + "computed": true } ], "ibm_is_dedicated_host_disks": [ + { + "name": "dedicated_host", + "type": "TypeString", + "description": "The dedicated host identifier.", + "required": true + }, { "name": "disks", "type": "TypeList", @@ -39735,41 +40300,9 @@ } } } - }, - { - "name": "dedicated_host", - "type": "TypeString", - "description": "The dedicated host identifier.", - "required": true } ], "ibm_is_dedicated_host_group": [ - { - "name": "resource_group", - "type": "TypeString", - "description": "The unique identifier of the resource group for this dedicated host group.", - "cloud_data_type": "resource_group", - "computed": true - }, - { - "name": "resource_type", - "type": "TypeString", - "description": "The type of resource referenced.", - "computed": true - }, - { - "name": "zone", - "type": "TypeString", - "description": "The globally unique name of the zone this dedicated host group resides in.", - "computed": true - }, - { - "name": "crn", - "type": "TypeString", - "description": "The CRN for this dedicated host group.", - "cloud_data_type": "crn", - "computed": true - }, { "name": "dedicated_hosts", "type": "TypeList", @@ -39828,6 +40361,44 @@ "description": "The URL for this dedicated host group.", "computed": true }, + { + "name": "resource_group", + "type": "TypeString", + "description": "The unique identifier of the resource group for this dedicated host group.", + "cloud_data_type": "resource_group", + "computed": true + }, + { + "name": "resource_type", + "type": "TypeString", + "description": "The type of resource referenced.", + "computed": true + }, + { + "name": "zone", + "type": "TypeString", + "description": "The globally unique name of the zone this dedicated host group resides in.", + "computed": true + }, + { + "name": "class", + "type": "TypeString", + "description": "The dedicated host profile class for hosts in this group.", + "computed": true + }, + { + "name": "created_at", + "type": "TypeString", + "description": "The date and time that the dedicated host group was created.", + "computed": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "The CRN for this dedicated host group.", + "cloud_data_type": "crn", + "computed": true + }, { "name": "family", "type": "TypeString", @@ -39859,40 +40430,9 @@ "type": "TypeString", "description": "The unique user-defined name for this dedicated host. If unspecified, the name will be a hyphenated list of randomly-selected words.", "required": true - }, - { - "name": "class", - "type": "TypeString", - "description": "The dedicated host profile class for hosts in this group.", - "computed": true - }, - { - "name": "created_at", - "type": "TypeString", - "description": "The date and time that the dedicated host group was created.", - "computed": true } ], "ibm_is_dedicated_host_groups": [ - { - "name": "resource_group", - "type": "TypeString", - "description": "The unique identifier of the resource group this dedicated host group belongs to", - "cloud_data_type": "resource_group", - "optional": true - }, - { - "name": "zone", - "type": "TypeString", - "description": "The zone name this dedicated host group is in", - "optional": true - }, - { - "name": "name", - "type": "TypeString", - "description": "The name of the dedicated host group", - "optional": true - }, { "name": "host_groups", "type": "TypeList", @@ -40038,30 +40578,48 @@ "type": "TypeInt", "description": "The total number of resources across all pages.", "computed": true + }, + { + "name": "resource_group", + "type": "TypeString", + "description": "The unique identifier of the resource group this dedicated host group belongs to", + "cloud_data_type": "resource_group", + "optional": true + }, + { + "name": "zone", + "type": "TypeString", + "description": "The zone name this dedicated host group is in", + "optional": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The name of the dedicated host group", + "optional": true } ], "ibm_is_dedicated_host_profile": [ { - "name": "vcpu_architecture", - "type": "TypeList", - "computed": true, - "elem": { - "type": { - "name": "type", - "type": "TypeString", - "description": "The type for this profile field.", - "computed": true - }, - "value": { - "name": "value", - "type": "TypeString", - "description": "The VCPU architecture for a dedicated host with this profile.", - "computed": true - } - } + "name": "class", + "type": "TypeString", + "description": "The product class this dedicated host profile belongs to.", + "computed": true }, { - "name": "vcpu_count", + "name": "family", + "type": "TypeString", + "description": "The product family this dedicated host profile belongs toThe enumerated values for this property are expected to expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the resource on which the unexpected property value was encountered.", + "computed": true + }, + { + "name": "href", + "type": "TypeString", + "description": "The URL for this dedicated host.", + "computed": true + }, + { + "name": "memory", "type": "TypeList", "computed": true, "elem": { @@ -40113,32 +40671,7 @@ } }, { - "name": "vcpu_manufacturer", - "type": "TypeList", - "computed": true, - "elem": { - "type": { - "name": "type", - "type": "TypeString", - "description": "The type for this profile field.", - "computed": true - }, - "value": { - "name": "value", - "type": "TypeString", - "description": "The VCPU manufacturer for a dedicated host with this profile.", - "computed": true - } - } - }, - { - "name": "name", - "type": "TypeString", - "description": "The globally unique name for this virtual server instance profile.", - "optional": true - }, - { - "name": "memory", + "name": "socket_count", "type": "TypeList", "computed": true, "elem": { @@ -40190,7 +40723,7 @@ } }, { - "name": "socket_count", + "name": "vcpu_count", "type": "TypeList", "computed": true, "elem": { @@ -40242,30 +40775,10 @@ } }, { - "name": "supported_instance_profiles", - "type": "TypeList", - "description": "Array of instance profiles that can be used by instances placed on dedicated hosts with this profile.", - "computed": true, - "elem": { - "href": { - "name": "href", - "type": "TypeString", - "description": "The URL for this virtual server instance profile.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The globally unique name for this virtual server instance profile.", - "computed": true - } - } - }, - { - "name": "class", + "name": "name", "type": "TypeString", - "description": "The product class this dedicated host profile belongs to.", - "computed": true + "description": "The globally unique name for this virtual server instance profile.", + "optional": true }, { "name": "disks", @@ -40357,16 +40870,68 @@ } }, { - "name": "family", - "type": "TypeString", - "description": "The product family this dedicated host profile belongs toThe enumerated values for this property are expected to expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the resource on which the unexpected property value was encountered.", - "computed": true + "name": "supported_instance_profiles", + "type": "TypeList", + "description": "Array of instance profiles that can be used by instances placed on dedicated hosts with this profile.", + "computed": true, + "elem": { + "href": { + "name": "href", + "type": "TypeString", + "description": "The URL for this virtual server instance profile.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The globally unique name for this virtual server instance profile.", + "computed": true + } + } }, { - "name": "href", + "name": "status", "type": "TypeString", - "description": "The URL for this dedicated host.", + "description": "The status of the dedicated host profile.", "computed": true + }, + { + "name": "vcpu_architecture", + "type": "TypeList", + "computed": true, + "elem": { + "type": { + "name": "type", + "type": "TypeString", + "description": "The type for this profile field.", + "computed": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "The VCPU architecture for a dedicated host with this profile.", + "computed": true + } + } + }, + { + "name": "vcpu_manufacturer", + "type": "TypeList", + "computed": true, + "elem": { + "type": { + "name": "type", + "type": "TypeString", + "description": "The type for this profile field.", + "computed": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "The VCPU manufacturer for a dedicated host with this profile.", + "computed": true + } + } } ], "ibm_is_dedicated_host_profiles": [ @@ -40535,64 +41100,70 @@ } } }, - "name": { - "name": "name", + "name": { + "name": "name", + "type": "TypeString", + "description": "The globally unique name for this dedicated host profile.", + "computed": true + }, + "socket_count": { + "name": "socket_count", + "type": "TypeList", + "computed": true, + "elem": { + "default": { + "name": "default", + "type": "TypeInt", + "description": "The default value for this profile field.", + "computed": true + }, + "max": { + "name": "max", + "type": "TypeInt", + "description": "The maximum value for this profile field.", + "computed": true + }, + "min": { + "name": "min", + "type": "TypeInt", + "description": "The minimum value for this profile field.", + "computed": true + }, + "step": { + "name": "step", + "type": "TypeInt", + "description": "The increment step value for this profile field.", + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "The type for this profile field.", + "computed": true + }, + "value": { + "name": "value", + "type": "TypeInt", + "description": "The value for this profile field.", + "computed": true + }, + "values": { + "name": "values", + "type": "TypeList", + "description": "The permitted values for this profile field.", + "computed": true, + "elem": { + "type": "TypeInt" + } + } + } + }, + "status": { + "name": "status", "type": "TypeString", - "description": "The globally unique name for this dedicated host profile.", + "description": "The status of the dedicated host profile.", "computed": true }, - "socket_count": { - "name": "socket_count", - "type": "TypeList", - "computed": true, - "elem": { - "default": { - "name": "default", - "type": "TypeInt", - "description": "The default value for this profile field.", - "computed": true - }, - "max": { - "name": "max", - "type": "TypeInt", - "description": "The maximum value for this profile field.", - "computed": true - }, - "min": { - "name": "min", - "type": "TypeInt", - "description": "The minimum value for this profile field.", - "computed": true - }, - "step": { - "name": "step", - "type": "TypeInt", - "description": "The increment step value for this profile field.", - "computed": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "The type for this profile field.", - "computed": true - }, - "value": { - "name": "value", - "type": "TypeInt", - "description": "The value for this profile field.", - "computed": true - }, - "values": { - "name": "values", - "type": "TypeList", - "description": "The permitted values for this profile field.", - "computed": true, - "elem": { - "type": "TypeInt" - } - } - } - }, "supported_instance_profiles": { "name": "supported_instance_profiles", "type": "TypeList", @@ -40713,6 +41284,18 @@ } ], "ibm_is_dedicated_hosts": [ + { + "name": "total_count", + "type": "TypeInt", + "description": "The total number of resources across all pages.", + "computed": true + }, + { + "name": "host_group", + "type": "TypeString", + "description": "The unique identifier of the dedicated host group this dedicated host belongs to", + "optional": true + }, { "name": "resource_group", "type": "TypeString", @@ -41002,6 +41585,40 @@ "description": "The unique user-defined name for this dedicated host. If unspecified, the name will be a hyphenated list of randomly-selected words.", "computed": true }, + "numa": { + "name": "numa", + "type": "TypeList", + "description": "The dedicated host NUMA configuration", + "computed": true, + "elem": { + "count": { + "name": "count", + "type": "TypeInt", + "description": "The total number of NUMA nodes for this dedicated host", + "computed": true + }, + "nodes": { + "name": "nodes", + "type": "TypeList", + "description": "The NUMA nodes for this dedicated host.", + "computed": true, + "elem": { + "available_vcpu": { + "name": "available_vcpu", + "type": "TypeInt", + "description": "The available VCPU for this NUMA node.", + "computed": true + }, + "vcpu": { + "name": "vcpu", + "type": "TypeInt", + "description": "The total VCPU capacity for this NUMA node.", + "computed": true + } + } + } + } + }, "profile": { "name": "profile", "type": "TypeList", @@ -41105,18 +41722,6 @@ "computed": true } } - }, - { - "name": "total_count", - "type": "TypeInt", - "description": "The total number of resources across all pages.", - "computed": true - }, - { - "name": "host_group", - "type": "TypeString", - "description": "The unique identifier of the dedicated host group this dedicated host belongs to", - "optional": true } ], "ibm_is_endpoint_gateway_targets": [ @@ -41176,9 +41781,24 @@ ], "ibm_is_floating_ip": [ { - "name": "target", + "name": "access_tags", + "type": "TypeSet", + "description": "List of access management tags", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "name", "type": "TypeString", - "description": "Target info", + "description": "Name of the floating IP", + "required": true + }, + { + "name": "zone", + "type": "TypeString", + "description": "Zone name", "computed": true }, { @@ -41199,24 +41819,21 @@ } }, { - "name": "access_tags", - "type": "TypeSet", - "description": "List of access management tags", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "address", + "type": "TypeString", + "description": "Floating IP address", + "computed": true }, { - "name": "name", + "name": "status", "type": "TypeString", - "description": "Name of the floating IP", - "required": true + "description": "Floating IP status", + "computed": true }, { - "name": "address", + "name": "target", "type": "TypeString", - "description": "Floating IP address", + "description": "Target info", "computed": true }, { @@ -41308,21 +41925,16 @@ "computed": true } } - }, - { - "name": "status", - "type": "TypeString", - "description": "Floating IP status", - "computed": true - }, - { - "name": "zone", - "type": "TypeString", - "description": "Zone name", - "computed": true } ], "ibm_is_floating_ips": [ + { + "name": "resource_group", + "type": "TypeString", + "description": "The unique identifier of the resource group this floating ips belongs to", + "cloud_data_type": "resource_group", + "optional": true + }, { "name": "name", "type": "TypeString", @@ -41529,32 +42141,13 @@ } } } - }, - { - "name": "resource_group", - "type": "TypeString", - "description": "The unique identifier of the resource group this floating ips belongs to", - "cloud_data_type": "resource_group", - "optional": true } ], "ibm_is_flow_log": [ { - "name": "identifier", - "type": "TypeString", - "description": "The flow log collector identifier.", - "optional": true - }, - { - "name": "active", + "name": "auto_delete", "type": "TypeBool", - "description": "Indicates whether this collector is active.", - "computed": true - }, - { - "name": "href", - "type": "TypeString", - "description": "The URL for this flow log collector.", + "description": "If set to `true`, this flow log collector will be automatically deleted when the target is deleted.", "computed": true }, { @@ -41590,54 +42183,6 @@ } } }, - { - "name": "access_tags", - "type": "TypeSet", - "description": "List of access management tags", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "name", - "type": "TypeString", - "description": "The unique user-defined name for this flow log collector.", - "optional": true - }, - { - "name": "auto_delete", - "type": "TypeBool", - "description": "If set to `true`, this flow log collector will be automatically deleted when the target is deleted.", - "computed": true - }, - { - "name": "created_at", - "type": "TypeString", - "description": "The date and time that the flow log collector was created.", - "computed": true - }, - { - "name": "crn", - "type": "TypeString", - "description": "The CRN for this flow log collector.", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "storage_bucket", - "type": "TypeList", - "description": "The Cloud Object Storage bucket where the collected flows are logged.", - "computed": true, - "elem": { - "name": { - "name": "name", - "type": "TypeString", - "description": "The globally unique name of this COS bucket.", - "computed": true - } - } - }, { "name": "target", "type": "TypeList", @@ -41679,13 +42224,61 @@ "name": { "name": "name", "type": "TypeString", - "description": "The user-defined name for this network interface.", - "computed": true - }, - "resource_type": { - "name": "resource_type", - "type": "TypeString", - "description": "The resource type.", + "description": "The user-defined name for this network interface.", + "computed": true + }, + "resource_type": { + "name": "resource_type", + "type": "TypeString", + "description": "The resource type.", + "computed": true + } + } + }, + { + "name": "access_tags", + "type": "TypeSet", + "description": "List of access management tags", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "name", + "type": "TypeString", + "description": "The unique user-defined name for this flow log collector.", + "optional": true + }, + { + "name": "active", + "type": "TypeBool", + "description": "Indicates whether this collector is active.", + "computed": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "The CRN for this flow log collector.", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "href", + "type": "TypeString", + "description": "The URL for this flow log collector.", + "computed": true + }, + { + "name": "storage_bucket", + "type": "TypeList", + "description": "The Cloud Object Storage bucket where the collected flows are logged.", + "computed": true, + "elem": { + "name": { + "name": "name", + "type": "TypeString", + "description": "The globally unique name of this COS bucket.", "computed": true } } @@ -41735,9 +42328,51 @@ "computed": true } } + }, + { + "name": "identifier", + "type": "TypeString", + "description": "The flow log collector identifier.", + "optional": true + }, + { + "name": "created_at", + "type": "TypeString", + "description": "The date and time that the flow log collector was created.", + "computed": true } ], "ibm_is_flow_logs": [ + { + "name": "vpc", + "type": "TypeString", + "description": "The vpc ID this flow log is in", + "optional": true + }, + { + "name": "vpc_name", + "type": "TypeString", + "description": "The vpc name this flow log is in", + "optional": true + }, + { + "name": "vpc_crn", + "type": "TypeString", + "description": "The vpc CRN this flow log is in", + "optional": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The name of the flow log", + "optional": true + }, + { + "name": "target", + "type": "TypeString", + "description": "The target id of the flow log", + "optional": true + }, { "name": "target_resource_type", "type": "TypeString", @@ -41842,36 +42477,6 @@ "description": "The unique identifier of the resource group this flow log belongs to", "cloud_data_type": "resource_group", "optional": true - }, - { - "name": "vpc", - "type": "TypeString", - "description": "The vpc ID this flow log is in", - "optional": true - }, - { - "name": "vpc_name", - "type": "TypeString", - "description": "The vpc name this flow log is in", - "optional": true - }, - { - "name": "vpc_crn", - "type": "TypeString", - "description": "The vpc CRN this flow log is in", - "optional": true - }, - { - "name": "name", - "type": "TypeString", - "description": "The name of the flow log", - "optional": true - }, - { - "name": "target", - "type": "TypeString", - "description": "The target id of the flow log", - "optional": true } ], "ibm_is_ike_policies": [ @@ -42023,12 +42628,24 @@ } ], "ibm_is_ike_policy": [ + { + "name": "name", + "type": "TypeString", + "description": "The IKE policy name.", + "optional": true + }, { "name": "ike_policy", "type": "TypeString", "description": "The IKE policy identifier.", "optional": true }, + { + "name": "authentication_algorithm", + "type": "TypeString", + "description": "The authentication algorithm.", + "computed": true + }, { "name": "connections", "type": "TypeList", @@ -42075,60 +42692,18 @@ } } }, - { - "name": "ike_version", - "type": "TypeInt", - "description": "The IKE protocol version.", - "computed": true - }, - { - "name": "resource_type", - "type": "TypeString", - "description": "The resource type.", - "computed": true - }, - { - "name": "negotiation_mode", - "type": "TypeString", - "description": "The IKE negotiation mode. Only `main` is supported.", - "computed": true - }, - { - "name": "name", - "type": "TypeString", - "description": "The IKE policy name.", - "optional": true - }, - { - "name": "authentication_algorithm", - "type": "TypeString", - "description": "The authentication algorithm.", - "computed": true - }, { "name": "created_at", "type": "TypeString", "description": "The date and time that this IKE policy was created.", "computed": true }, - { - "name": "dh_group", - "type": "TypeInt", - "description": "The Diffie-Hellman group.", - "computed": true - }, { "name": "encryption_algorithm", "type": "TypeString", "description": "The encryption algorithm.", "computed": true }, - { - "name": "href", - "type": "TypeString", - "description": "The IKE policy's canonical URL.", - "computed": true - }, { "name": "key_lifetime", "type": "TypeInt", @@ -42161,13 +42736,43 @@ "computed": true } } + }, + { + "name": "dh_group", + "type": "TypeInt", + "description": "The Diffie-Hellman group.", + "computed": true + }, + { + "name": "href", + "type": "TypeString", + "description": "The IKE policy's canonical URL.", + "computed": true + }, + { + "name": "ike_version", + "type": "TypeInt", + "description": "The IKE protocol version.", + "computed": true + }, + { + "name": "negotiation_mode", + "type": "TypeString", + "description": "The IKE negotiation mode. Only `main` is supported.", + "computed": true + }, + { + "name": "resource_type", + "type": "TypeString", + "description": "The resource type.", + "computed": true } ], "ibm_is_image": [ { - "name": "name", + "name": "identifier", "type": "TypeString", - "description": "Image name", + "description": "Image id", "optional": true }, { @@ -42177,16 +42782,21 @@ "computed": true }, { - "name": "architecture", + "name": "encryption", "type": "TypeString", - "description": "The operating system architecture", + "description": "The type of encryption used on the image", "computed": true }, { - "name": "crn", + "name": "created_at", "type": "TypeString", - "description": "The CRN for this image", - "cloud_data_type": "crn", + "description": "The date and time that the image was created", + "computed": true + }, + { + "name": "obsolescence_at", + "type": "TypeString", + "description": "The obsolescence date and time (UTC) for this image. If absent, no obsolescence date and time has been set.", "computed": true }, { @@ -42196,15 +42806,15 @@ "computed": true }, { - "name": "visibility", + "name": "encryption_key", "type": "TypeString", - "description": "Whether the image is publicly visible or private to the account", - "optional": true + "description": "The CRN of the Key Protect Root Key or Hyper Protect Crypto Service Root Key for this resource", + "computed": true }, { - "name": "source_volume", + "name": "architecture", "type": "TypeString", - "description": "Source volume id of the image", + "description": "The operating system architecture", "computed": true }, { @@ -42235,9 +42845,9 @@ } }, { - "name": "identifier", + "name": "visibility", "type": "TypeString", - "description": "Image id", + "description": "Whether the image is publicly visible or private to the account", "optional": true }, { @@ -42247,15 +42857,9 @@ "computed": true }, { - "name": "encryption", - "type": "TypeString", - "description": "The type of encryption used on the image", - "computed": true - }, - { - "name": "created_at", + "name": "source_volume", "type": "TypeString", - "description": "The date and time that the image was created", + "description": "Source volume id of the image", "computed": true }, { @@ -42264,18 +42868,6 @@ "description": "The deprecation date and time (UTC) for this image. If absent, no deprecation date and time has been set.", "computed": true }, - { - "name": "encryption_key", - "type": "TypeString", - "description": "The CRN of the Key Protect Root Key or Hyper Protect Crypto Service Root Key for this resource", - "computed": true - }, - { - "name": "obsolescence_at", - "type": "TypeString", - "description": "The obsolescence date and time (UTC) for this image. If absent, no obsolescence date and time has been set.", - "computed": true - }, { "name": "access_tags", "type": "TypeSet", @@ -42284,25 +42876,44 @@ "elem": { "type": "TypeString" } + }, + { + "name": "name", + "type": "TypeString", + "description": "Image name", + "optional": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "The CRN for this image", + "cloud_data_type": "crn", + "computed": true } ], "ibm_is_image_export_job": [ { - "name": "image", + "name": "href", "type": "TypeString", - "description": "The image identifier.", - "required": true + "description": "The URL for this image export job.", + "computed": true }, { - "name": "name", + "name": "started_at", "type": "TypeString", - "description": "The user-defined name for this image export job.", + "description": "The date and time that the image export job started running.If absent, the export job has not yet started.", "computed": true }, { - "name": "started_at", + "name": "completed_at", "type": "TypeString", - "description": "The date and time that the image export job started running.If absent, the export job has not yet started.", + "description": "The date and time that the image export job was completed.If absent, the export job has not yet completed.", + "computed": true + }, + { + "name": "storage_href", + "type": "TypeString", + "description": "The Cloud Object Storage location of the exported image object. The object at this location may not exist until the job is started, and will be incomplete while the job is running.After the job completes, the exported image object is not managed by the IBM VPC service, and may be removed or replaced with a different object by any user or service with IAM authorization to the bucket.", "computed": true }, { @@ -42320,35 +42931,21 @@ } }, { - "name": "status", + "name": "image", "type": "TypeString", - "description": "The status of this image export job:- `deleting`: Export job is being deleted- `failed`: Export job could not be completed successfully- `queued`: Export job is queued- `running`: Export job is in progress- `succeeded`: Export job was completed successfullyThe exported image object is automatically deleted for `failed` jobs.", - "computed": true + "description": "The image identifier.", + "required": true }, { - "name": "storage_bucket", - "type": "TypeList", - "description": "The Cloud Object Storage bucket of the exported image object.", - "computed": true, - "elem": { - "crn": { - "name": "crn", - "type": "TypeString", - "description": "The CRN of this Cloud Object Storage bucket.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The globally unique name of this Cloud Object Storage bucket.", - "computed": true - } - } + "name": "image_export_job", + "type": "TypeString", + "description": "The image export job identifier.", + "required": true }, { - "name": "storage_href", + "name": "created_at", "type": "TypeString", - "description": "The Cloud Object Storage location of the exported image object. The object at this location may not exist until the job is started, and will be incomplete while the job is running.After the job completes, the exported image object is not managed by the IBM VPC service, and may be removed or replaced with a different object by any user or service with IAM authorization to the bucket.", + "description": "The date and time that the image export job was created.", "computed": true }, { @@ -42363,12 +42960,6 @@ "description": "The type of resource referenced.", "computed": true }, - { - "name": "href", - "type": "TypeString", - "description": "The URL for this image export job.", - "computed": true - }, { "name": "status_reasons", "type": "TypeList", @@ -42396,28 +42987,42 @@ } }, { - "name": "image_export_job", + "name": "encrypted_data_key", "type": "TypeString", - "description": "The image export job identifier.", - "required": true + "description": "A base64-encoded, encrypted representation of the key that was used to encrypt the data for the exported image. This key can be unwrapped with the image's `encryption_key` root key using either Key Protect or Hyper Protect Crypto Service.If absent, the export job is for an unencrypted image.", + "computed": true }, { - "name": "completed_at", + "name": "name", "type": "TypeString", - "description": "The date and time that the image export job was completed.If absent, the export job has not yet completed.", + "description": "The user-defined name for this image export job.", "computed": true }, { - "name": "created_at", + "name": "status", "type": "TypeString", - "description": "The date and time that the image export job was created.", + "description": "The status of this image export job:- `deleting`: Export job is being deleted- `failed`: Export job could not be completed successfully- `queued`: Export job is queued- `running`: Export job is in progress- `succeeded`: Export job was completed successfullyThe exported image object is automatically deleted for `failed` jobs.", "computed": true }, { - "name": "encrypted_data_key", - "type": "TypeString", - "description": "A base64-encoded, encrypted representation of the key that was used to encrypt the data for the exported image. This key can be unwrapped with the image's `encryption_key` root key using either Key Protect or Hyper Protect Crypto Service.If absent, the export job is for an unencrypted image.", - "computed": true + "name": "storage_bucket", + "type": "TypeList", + "description": "The Cloud Object Storage bucket of the exported image object.", + "computed": true, + "elem": { + "crn": { + "name": "crn", + "type": "TypeString", + "description": "The CRN of this Cloud Object Storage bucket.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The globally unique name of this Cloud Object Storage bucket.", + "computed": true + } + } } ], "ibm_is_image_export_jobs": [ @@ -42563,31 +43168,6 @@ } ], "ibm_is_images": [ - { - "name": "catalog_managed", - "type": "TypeBool", - "description": "Lists images managed as part of a catalog offering. If an image is managed, accounts in the same enterprise with access to that catalog can specify the image's catalog offering version CRN to provision virtual server instances using the image", - "optional": true - }, - { - "name": "name", - "type": "TypeString", - "description": "The name of the image", - "optional": true - }, - { - "name": "status", - "type": "TypeString", - "description": "The status of the image", - "options": "available, deleting, deprecated, failed, obsolete, pending, tentative, unusable", - "optional": true - }, - { - "name": "visibility", - "type": "TypeString", - "description": "Whether the image is publicly visible or private to the account", - "optional": true - }, { "name": "images", "type": "TypeList", @@ -42718,32 +43298,97 @@ "description": "The id of the resource group", "cloud_data_type": "resource_group", "optional": true + }, + { + "name": "catalog_managed", + "type": "TypeBool", + "description": "Lists images managed as part of a catalog offering. If an image is managed, accounts in the same enterprise with access to that catalog can specify the image's catalog offering version CRN to provision virtual server instances using the image", + "optional": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The name of the image", + "optional": true + }, + { + "name": "status", + "type": "TypeString", + "description": "The status of the image", + "options": "available, deleting, deprecated, failed, obsolete, pending, tentative, unusable", + "optional": true + }, + { + "name": "visibility", + "type": "TypeString", + "description": "Whether the image is publicly visible or private to the account", + "optional": true } ], "ibm_is_instance": [ { - "name": "zone", + "name": "resource_controller_url", "type": "TypeString", - "description": "Zone name", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", "computed": true }, { - "name": "tags", - "type": "TypeSet", - "description": "list of tags for the instance", - "cloud_data_type": "tags", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "resource_name", + "type": "TypeString", + "description": "The name of the resource", + "computed": true }, { - "name": "resource_group", + "name": "resource_crn", "type": "TypeString", - "description": "Instance resource group", - "cloud_data_type": "resource_group", + "description": "The crn of the resource", + "computed": true + }, + { + "name": "password", + "type": "TypeString", + "description": "password for Windows Instance", + "secure": true, "computed": true }, + { + "name": "volume_attachments", + "type": "TypeList", + "description": "Instance Volume Attachments", + "computed": true, + "elem": { + "id": { + "name": "id", + "type": "TypeString", + "description": "Instance Volume Attachment id", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Instance Volume Attachment name", + "computed": true + }, + "volume_crn": { + "name": "volume_crn", + "type": "TypeString", + "description": "Instance Boot Volume's volume CRN", + "computed": true + }, + "volume_id": { + "name": "volume_id", + "type": "TypeString", + "description": "Instance Boot Volume's volume id", + "computed": true + }, + "volume_name": { + "name": "volume_name", + "type": "TypeString", + "description": "Instance Boot Volume's volume name", + "computed": true + } + } + }, { "name": "gpu", "type": "TypeList", @@ -42777,42 +43422,72 @@ } }, { - "name": "resource_controller_url", + "name": "memory", + "type": "TypeInt", + "description": "Instance memory", + "computed": true + }, + { + "name": "access_tags", + "type": "TypeSet", + "description": "list of access tags for the instance", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "resource_group", "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", + "description": "Instance resource group", + "cloud_data_type": "resource_group", "computed": true }, { - "name": "keys", + "name": "crn", + "type": "TypeString", + "description": "The crn of the resource", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "resource_group_name", + "type": "TypeString", + "description": "The resource group name in which resource is provisioned", + "computed": true + }, + { + "name": "metadata_service", "type": "TypeList", - "description": "Instance keys", + "description": "The metadata service configuration", "computed": true, "elem": { - "id": { - "name": "id", - "type": "TypeString", - "description": "Instance key id", + "enabled": { + "name": "enabled", + "type": "TypeBool", + "description": "Indicates whether the metadata service endpoint will be available to the virtual server instance", "computed": true }, - "name": { - "name": "name", + "protocol": { + "name": "protocol", "type": "TypeString", - "description": "Instance key name", + "description": "The communication protocol to use for the metadata service endpoint. Applies only when the metadata service is enabled.", + "computed": true + }, + "response_hop_limit": { + "name": "response_hop_limit", + "type": "TypeInt", + "description": "The hop limit (IP time to live) for IP response packets from the metadata service", "computed": true } } }, { - "name": "vpc", + "name": "passphrase", "type": "TypeString", - "description": "VPC id", - "computed": true - }, - { - "name": "total_volume_bandwidth", - "type": "TypeInt", - "description": "The amount of bandwidth (in megabits per second) allocated exclusively to instance storage volumes", - "computed": true + "description": "Passphrase for Instance Private Key file", + "secure": true, + "optional": true }, { "name": "total_network_bandwidth", @@ -42821,58 +43496,67 @@ "computed": true }, { - "name": "access_tags", - "type": "TypeSet", - "description": "list of access tags for the instance", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "lifecycle_state", + "type": "TypeString", + "description": "The lifecycle state of the virtual server instance.", + "computed": true }, { - "name": "boot_volume", + "name": "disks", "type": "TypeList", - "description": "Instance Boot Volume", + "description": "Collection of the instance's disks.", "computed": true, "elem": { - "device": { - "name": "device", + "created_at": { + "name": "created_at", "type": "TypeString", - "description": "Instance Boot Volume device", + "description": "The date and time that the disk was created.", + "computed": true + }, + "href": { + "name": "href", + "type": "TypeString", + "description": "The URL for this instance disk.", "computed": true }, "id": { "name": "id", "type": "TypeString", - "description": "Instance Boot Volume id", + "description": "The unique identifier for this instance disk.", "computed": true }, - "name": { - "name": "name", + "interface_type": { + "name": "interface_type", "type": "TypeString", - "description": "Instance Boot Volume name", + "description": "The disk interface used for attaching the disk.The enumerated values for this property are expected to expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the resource on which the unexpected property value was encountered.", "computed": true }, - "volume_crn": { - "name": "volume_crn", + "name": { + "name": "name", "type": "TypeString", - "description": "Instance Boot Volume's volume CRN", + "description": "The user-defined name for this disk.", "computed": true }, - "volume_id": { - "name": "volume_id", + "resource_type": { + "name": "resource_type", "type": "TypeString", - "description": "Instance Boot Volume's volume id", + "description": "The resource type.", "computed": true }, - "volume_name": { - "name": "volume_name", - "type": "TypeString", - "description": "Instance Boot Volume's volume name", + "size": { + "name": "size", + "type": "TypeInt", + "description": "The size of the disk in GB (gigabytes).", "computed": true } } }, + { + "name": "name", + "type": "TypeString", + "description": "Instance name", + "required": true + }, { "name": "network_interfaces", "type": "TypeList", @@ -42953,85 +43637,47 @@ } }, { - "name": "disks", + "name": "image", + "type": "TypeString", + "description": "Instance Image", + "computed": true + }, + { + "name": "numa_count", + "type": "TypeInt", + "description": "The number of NUMA nodes this virtual server instance is provisioned on. This property may be absent if the instance's `status` is not `running`.", + "computed": true + }, + { + "name": "vcpu", "type": "TypeList", - "description": "Collection of the instance's disks.", + "description": "Instance vCPU", "computed": true, "elem": { - "created_at": { - "name": "created_at", - "type": "TypeString", - "description": "The date and time that the disk was created.", - "computed": true - }, - "href": { - "name": "href", - "type": "TypeString", - "description": "The URL for this instance disk.", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "The unique identifier for this instance disk.", - "computed": true - }, - "interface_type": { - "name": "interface_type", - "type": "TypeString", - "description": "The disk interface used for attaching the disk.The enumerated values for this property are expected to expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the resource on which the unexpected property value was encountered.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The user-defined name for this disk.", - "computed": true - }, - "resource_type": { - "name": "resource_type", + "architecture": { + "name": "architecture", "type": "TypeString", - "description": "The resource type.", + "description": "Instance vCPU Architecture", "computed": true }, - "size": { - "name": "size", + "count": { + "name": "count", "type": "TypeInt", - "description": "The size of the disk in GB (gigabytes).", - "computed": true - } - } - }, - { - "name": "metadata_service", - "type": "TypeList", - "description": "The metadata service configuration", - "computed": true, - "elem": { - "enabled": { - "name": "enabled", - "type": "TypeBool", - "description": "Indicates whether the metadata service endpoint will be available to the virtual server instance", + "description": "Instance vCPU count", "computed": true }, - "protocol": { - "name": "protocol", + "manufacturer": { + "name": "manufacturer", "type": "TypeString", - "description": "The communication protocol to use for the metadata service endpoint. Applies only when the metadata service is enabled.", - "computed": true - }, - "response_hop_limit": { - "name": "response_hop_limit", - "type": "TypeInt", - "description": "The hop limit (IP time to live) for IP response packets from the metadata service", + "description": "Instance vCPU Manufacturer", "computed": true } } }, { - "name": "memory", - "type": "TypeInt", - "description": "Instance memory", + "name": "resource_status", + "type": "TypeString", + "description": "The status of the resource", "computed": true }, { @@ -43041,96 +43687,80 @@ "computed": true }, { - "name": "name", - "type": "TypeString", - "description": "Instance name", - "required": true - }, - { - "name": "password", - "type": "TypeString", - "description": "password for Windows Instance", - "secure": true, - "computed": true - }, - { - "name": "image", - "type": "TypeString", - "description": "Instance Image", + "name": "total_volume_bandwidth", + "type": "TypeInt", + "description": "The amount of bandwidth (in megabits per second) allocated exclusively to instance storage volumes", "computed": true }, { - "name": "placement_target", + "name": "boot_volume", "type": "TypeList", - "description": "The placement restrictions for the virtual server instance.", + "description": "Instance Boot Volume", "computed": true, "elem": { - "crn": { - "name": "crn", - "type": "TypeString", - "description": "The CRN for this dedicated host group.", - "computed": true - }, - "deleted": { - "name": "deleted", - "type": "TypeList", - "description": "If present, this property indicates the referenced resource has been deleted and providessome supplementary information.", - "computed": true, - "elem": { - "more_info": { - "name": "more_info", - "type": "TypeString", - "description": "Link to documentation about deleted resources.", - "computed": true - } - } - }, - "href": { - "name": "href", + "device": { + "name": "device", "type": "TypeString", - "description": "The URL for this dedicated host group.", + "description": "Instance Boot Volume device", "computed": true }, "id": { "name": "id", "type": "TypeString", - "description": "The unique identifier for this dedicated host group.", + "description": "Instance Boot Volume id", "computed": true }, "name": { "name": "name", "type": "TypeString", - "description": "The unique user-defined name for this dedicated host group. If unspecified, the name will be a hyphenated list of randomly-selected words.", + "description": "Instance Boot Volume name", "computed": true }, - "resource_type": { - "name": "resource_type", + "volume_crn": { + "name": "volume_crn", "type": "TypeString", - "description": "The type of resource referenced.", + "description": "Instance Boot Volume's volume CRN", "computed": true - } - } - }, - { - "name": "catalog_offering", - "type": "TypeList", - "description": "The catalog offering or offering version to use when provisioning this virtual server instance. If an offering is specified, the latest version of that offering will be used. The specified offering or offering version may be in a different account in the same enterprise, subject to IAM policies.", - "computed": true, - "elem": { - "offering_crn": { - "name": "offering_crn", + }, + "volume_id": { + "name": "volume_id", "type": "TypeString", - "description": "Identifies a catalog offering by a unique CRN property", + "description": "Instance Boot Volume's volume id", "computed": true }, - "version_crn": { - "name": "version_crn", + "volume_name": { + "name": "volume_name", "type": "TypeString", - "description": "Identifies a version of a catalog offering by a unique CRN property", + "description": "Instance Boot Volume's volume name", "computed": true } } }, + { + "name": "volumes", + "type": "TypeSet", + "description": "List of volumes", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "vpc", + "type": "TypeString", + "description": "VPC id", + "computed": true + }, + { + "name": "tags", + "type": "TypeSet", + "description": "list of tags for the instance", + "cloud_data_type": "tags", + "computed": true, + "elem": { + "type": "TypeString" + } + }, { "name": "status_reasons", "type": "TypeList", @@ -43157,87 +43787,6 @@ } } }, - { - "name": "resource_crn", - "type": "TypeString", - "description": "The crn of the resource", - "computed": true - }, - { - "name": "resource_status", - "type": "TypeString", - "description": "The status of the resource", - "computed": true - }, - { - "name": "metadata_service_enabled", - "type": "TypeBool", - "description": "Indicates whether the metadata service endpoint is available to the virtual server instance", - "computed": true - }, - { - "name": "vcpu", - "type": "TypeList", - "description": "Instance vCPU", - "computed": true, - "elem": { - "architecture": { - "name": "architecture", - "type": "TypeString", - "description": "Instance vCPU Architecture", - "computed": true - }, - "count": { - "name": "count", - "type": "TypeInt", - "description": "Instance vCPU count", - "computed": true - }, - "manufacturer": { - "name": "manufacturer", - "type": "TypeString", - "description": "Instance vCPU Manufacturer", - "computed": true - } - } - }, - { - "name": "resource_name", - "type": "TypeString", - "description": "The name of the resource", - "computed": true - }, - { - "name": "status", - "type": "TypeString", - "description": "instance status", - "computed": true - }, - { - "name": "private_key", - "type": "TypeString", - "description": "Instance Private Key file", - "optional": true - }, - { - "name": "passphrase", - "type": "TypeString", - "description": "Passphrase for Instance Private Key file", - "secure": true, - "optional": true - }, - { - "name": "bandwidth", - "type": "TypeInt", - "description": "The total bandwidth (in megabits per second) shared across the instance's network interfaces and storage volumes", - "computed": true - }, - { - "name": "lifecycle_state", - "type": "TypeString", - "description": "The lifecycle state of the virtual server instance.", - "computed": true - }, { "name": "lifecycle_reasons", "type": "TypeList", @@ -43265,43 +43814,95 @@ } }, { - "name": "volume_attachments", + "name": "placement_target", "type": "TypeList", - "description": "Instance Volume Attachments", + "description": "The placement restrictions for the virtual server instance.", "computed": true, "elem": { + "crn": { + "name": "crn", + "type": "TypeString", + "description": "The CRN for this dedicated host group.", + "computed": true + }, + "deleted": { + "name": "deleted", + "type": "TypeList", + "description": "If present, this property indicates the referenced resource has been deleted and providessome supplementary information.", + "computed": true, + "elem": { + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about deleted resources.", + "computed": true + } + } + }, + "href": { + "name": "href", + "type": "TypeString", + "description": "The URL for this dedicated host group.", + "computed": true + }, "id": { "name": "id", "type": "TypeString", - "description": "Instance Volume Attachment id", + "description": "The unique identifier for this dedicated host group.", "computed": true }, "name": { "name": "name", "type": "TypeString", - "description": "Instance Volume Attachment name", + "description": "The unique user-defined name for this dedicated host group. If unspecified, the name will be a hyphenated list of randomly-selected words.", "computed": true }, - "volume_crn": { - "name": "volume_crn", + "resource_type": { + "name": "resource_type", "type": "TypeString", - "description": "Instance Boot Volume's volume CRN", + "description": "The type of resource referenced.", "computed": true - }, - "volume_id": { - "name": "volume_id", + } + } + }, + { + "name": "zone", + "type": "TypeString", + "description": "Zone name", + "computed": true + }, + { + "name": "catalog_offering", + "type": "TypeList", + "description": "The catalog offering or offering version to use when provisioning this virtual server instance. If an offering is specified, the latest version of that offering will be used. The specified offering or offering version may be in a different account in the same enterprise, subject to IAM policies.", + "computed": true, + "elem": { + "offering_crn": { + "name": "offering_crn", "type": "TypeString", - "description": "Instance Boot Volume's volume id", + "description": "Identifies a catalog offering by a unique CRN property", "computed": true }, - "volume_name": { - "name": "volume_name", + "version_crn": { + "name": "version_crn", "type": "TypeString", - "description": "Instance Boot Volume's volume name", + "description": "Identifies a version of a catalog offering by a unique CRN property", "computed": true } } }, + { + "name": "status", + "type": "TypeString", + "description": "instance status", + "computed": true + }, + { + "name": "bandwidth", + "type": "TypeInt", + "description": "The total bandwidth (in megabits per second) shared across the instance's network interfaces and storage volumes", + "computed": true + }, { "name": "primary_network_interface", "type": "TypeList", @@ -43388,53 +43989,45 @@ } }, { - "name": "crn", - "type": "TypeString", - "description": "The crn of the resource", - "cloud_data_type": "crn", + "name": "metadata_service_enabled", + "type": "TypeBool", + "description": "Indicates whether the metadata service endpoint is available to the virtual server instance", "computed": true }, { - "name": "profile", + "name": "private_key", "type": "TypeString", - "description": "Profile info", - "computed": true + "description": "Instance Private Key file", + "optional": true }, { - "name": "volumes", - "type": "TypeSet", - "description": "List of volumes", + "name": "keys", + "type": "TypeList", + "description": "Instance keys", "computed": true, "elem": { - "type": "TypeString" + "id": { + "name": "id", + "type": "TypeString", + "description": "Instance key id", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Instance key name", + "computed": true + } } }, { - "name": "resource_group_name", + "name": "profile", "type": "TypeString", - "description": "The resource group name in which resource is provisioned", + "description": "Profile info", "computed": true } ], "ibm_is_instance_disk": [ - { - "name": "resource_type", - "type": "TypeString", - "description": "The resource type.", - "computed": true - }, - { - "name": "size", - "type": "TypeInt", - "description": "The size of the disk in GB (gigabytes).", - "computed": true - }, - { - "name": "instance", - "type": "TypeString", - "description": "The instance identifier.", - "required": true - }, { "name": "disk", "type": "TypeString", @@ -43464,9 +44057,33 @@ "type": "TypeString", "description": "The user-defined name for this disk.", "computed": true + }, + { + "name": "resource_type", + "type": "TypeString", + "description": "The resource type.", + "computed": true + }, + { + "name": "size", + "type": "TypeInt", + "description": "The size of the disk in GB (gigabytes).", + "computed": true + }, + { + "name": "instance", + "type": "TypeString", + "description": "The instance identifier.", + "required": true } ], "ibm_is_instance_disks": [ + { + "name": "instance", + "type": "TypeString", + "description": "The instance identifier.", + "required": true + }, { "name": "disks", "type": "TypeList", @@ -43516,15 +44133,37 @@ "computed": true } } + } + ], + "ibm_is_instance_group": [ + { + "name": "application_port", + "type": "TypeInt", + "description": "Used by the instance group when scaling up instances to supply the port for the load balancer pool member.", + "computed": true }, { - "name": "instance", + "name": "name", "type": "TypeString", - "description": "The instance identifier.", + "description": "The user-defined name for this instance group", "required": true - } - ], - "ibm_is_instance_group": [ + }, + { + "name": "crn", + "type": "TypeString", + "description": "The CRN for this instance group", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "subnets", + "type": "TypeList", + "description": "list of subnet IDs", + "computed": true, + "elem": { + "type": "TypeString" + } + }, { "name": "load_balancer_pool", "type": "TypeString", @@ -43540,6 +44179,12 @@ "type": "TypeString" } }, + { + "name": "vpc", + "type": "TypeString", + "description": "vpc instance", + "computed": true + }, { "name": "status", "type": "TypeString", @@ -43555,32 +44200,12 @@ "type": "TypeString" } }, - { - "name": "name", - "type": "TypeString", - "description": "The user-defined name for this instance group", - "required": true - }, { "name": "instance_template", "type": "TypeString", "description": "instance template ID", "computed": true }, - { - "name": "resource_group", - "type": "TypeString", - "description": "Resource group ID", - "cloud_data_type": "resource_group", - "computed": true - }, - { - "name": "crn", - "type": "TypeString", - "description": "The CRN for this instance group", - "cloud_data_type": "crn", - "computed": true - }, { "name": "membership_count", "type": "TypeInt", @@ -43588,50 +44213,18 @@ "computed": true }, { - "name": "subnets", - "type": "TypeList", - "description": "list of subnet IDs", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "application_port", - "type": "TypeInt", - "description": "Used by the instance group when scaling up instances to supply the port for the load balancer pool member.", - "computed": true - }, - { - "name": "vpc", + "name": "resource_group", "type": "TypeString", - "description": "vpc instance", + "description": "Resource group ID", + "cloud_data_type": "resource_group", "computed": true } ], "ibm_is_instance_group_manager": [ { - "name": "manager_type", - "type": "TypeString", - "description": "The type of instance group manager.", - "computed": true - }, - { - "name": "aggregation_window", - "type": "TypeInt", - "description": "The time window in seconds to aggregate metrics prior to evaluation", - "computed": true - }, - { - "name": "max_membership_count", + "name": "min_membership_count", "type": "TypeInt", - "description": "The maximum number of members in a managed instance group", - "computed": true - }, - { - "name": "manager_id", - "type": "TypeString", - "description": "The ID of instance group manager.", + "description": "The minimum number of members in a managed instance group", "computed": true }, { @@ -43677,6 +44270,24 @@ "description": "Name of the instance group manager.", "required": true }, + { + "name": "aggregation_window", + "type": "TypeInt", + "description": "The time window in seconds to aggregate metrics prior to evaluation", + "computed": true + }, + { + "name": "max_membership_count", + "type": "TypeInt", + "description": "The maximum number of members in a managed instance group", + "computed": true + }, + { + "name": "manager_type", + "type": "TypeString", + "description": "The type of instance group manager.", + "computed": true + }, { "name": "cooldown", "type": "TypeInt", @@ -43684,52 +44295,52 @@ "computed": true }, { - "name": "min_membership_count", - "type": "TypeInt", - "description": "The minimum number of members in a managed instance group", + "name": "manager_id", + "type": "TypeString", + "description": "The ID of instance group manager.", "computed": true } ], "ibm_is_instance_group_manager_action": [ { - "name": "last_applied_at", + "name": "instance_group_manager", "type": "TypeString", - "description": "The date and time the scheduled action was last applied. If empty the action has never been applied.", - "computed": true + "description": "Instance group manager ID of type scheduled", + "required": true }, { - "name": "auto_delete", - "type": "TypeBool", + "name": "max_membership_count", + "type": "TypeInt", + "description": "The maximum number of members in a managed instance group", "computed": true }, { - "name": "created_at", - "type": "TypeString", - "description": "The date and time that the instance group manager action was modified.", + "name": "min_membership_count", + "type": "TypeInt", + "description": "The minimum number of members in a managed instance group", "computed": true }, { - "name": "cron_spec", + "name": "resource_type", "type": "TypeString", - "description": "The cron specification for a recurring scheduled action. Actions can be applied a maximum of one time within a 5 min period.", + "description": "The resource type.", "computed": true }, { - "name": "status", + "name": "next_run_at", "type": "TypeString", - "description": "The status of the instance group action- `active`: Action is ready to be run- `completed`: Action was completed successfully- `failed`: Action could not be completed successfully- `incompatible`: Action parameters are not compatible with the group or manager- `omitted`: Action was not applied because this action's manager was disabled.", + "description": "The date and time the scheduled action will next run. If empty the system is currently calculating the next run time.", "computed": true }, { - "name": "updated_at", - "type": "TypeString", - "description": "The date and time that the instance group manager action was modified.", + "name": "auto_delete_timeout", + "type": "TypeInt", "computed": true }, { - "name": "action_type", + "name": "action_id", "type": "TypeString", - "description": "The type of action for the instance group.", + "description": "Instance group manager action ID", "computed": true }, { @@ -43739,15 +44350,8 @@ "required": true }, { - "name": "run_at", - "type": "TypeString", - "description": "The date and time the scheduled action will run.", - "computed": true - }, - { - "name": "resource_type", - "type": "TypeString", - "description": "The resource type.", + "name": "auto_delete", + "type": "TypeBool", "computed": true }, { @@ -43757,9 +44361,9 @@ "required": true }, { - "name": "membership_count", - "type": "TypeInt", - "description": "The number of members the instance group should have at the scheduled time.", + "name": "action_type", + "type": "TypeString", + "description": "The type of action for the instance group.", "computed": true }, { @@ -43769,44 +44373,51 @@ "computed": true }, { - "name": "min_membership_count", - "type": "TypeInt", - "description": "The minimum number of members in a managed instance group", + "name": "last_applied_at", + "type": "TypeString", + "description": "The date and time the scheduled action was last applied. If empty the action has never been applied.", "computed": true }, { - "name": "target_manager", + "name": "created_at", "type": "TypeString", - "description": "The unique identifier for this instance group manager of type autoscale.", + "description": "The date and time that the instance group manager action was modified.", "computed": true }, { - "name": "next_run_at", + "name": "run_at", "type": "TypeString", - "description": "The date and time the scheduled action will next run. If empty the system is currently calculating the next run time.", + "description": "The date and time the scheduled action will run.", "computed": true }, { - "name": "auto_delete_timeout", - "type": "TypeInt", + "name": "target_manager", + "type": "TypeString", + "description": "The unique identifier for this instance group manager of type autoscale.", "computed": true }, { - "name": "action_id", + "name": "status", "type": "TypeString", - "description": "Instance group manager action ID", + "description": "The status of the instance group action- `active`: Action is ready to be run- `completed`: Action was completed successfully- `failed`: Action could not be completed successfully- `incompatible`: Action parameters are not compatible with the group or manager- `omitted`: Action was not applied because this action's manager was disabled.", "computed": true }, { - "name": "instance_group_manager", + "name": "updated_at", "type": "TypeString", - "description": "Instance group manager ID of type scheduled", - "required": true + "description": "The date and time that the instance group manager action was modified.", + "computed": true }, { - "name": "max_membership_count", + "name": "membership_count", "type": "TypeInt", - "description": "The maximum number of members in a managed instance group", + "description": "The number of members the instance group should have at the scheduled time.", + "computed": true + }, + { + "name": "cron_spec", + "type": "TypeString", + "description": "The cron specification for a recurring scheduled action. Actions can be applied a maximum of one time within a 5 min period.", "computed": true } ], @@ -44003,6 +44614,24 @@ } ], "ibm_is_instance_group_manager_policy": [ + { + "name": "instance_group", + "type": "TypeString", + "description": "instance group ID", + "required": true + }, + { + "name": "instance_group_manager", + "type": "TypeString", + "description": "Instance group manager ID", + "required": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The name of the instance group manager policy", + "required": true + }, { "name": "metric_type", "type": "TypeString", @@ -44026,24 +44655,6 @@ "type": "TypeString", "description": "The policy ID", "computed": true - }, - { - "name": "instance_group", - "type": "TypeString", - "description": "instance group ID", - "required": true - }, - { - "name": "instance_group_manager", - "type": "TypeString", - "description": "Instance group manager ID", - "required": true - }, - { - "name": "name", - "type": "TypeString", - "description": "The name of the instance group manager policy", - "required": true } ], "ibm_is_instance_group_managers": [ @@ -44142,6 +44753,42 @@ } ], "ibm_is_instance_group_membership": [ + { + "name": "load_balancer_pool_member", + "type": "TypeString", + "description": "The unique identifier for this load balancer pool member.", + "computed": true + }, + { + "name": "status", + "type": "TypeString", + "description": "The status of the instance group membership- `deleting`: Membership is deleting dependent resources- `failed`: Membership was unable to maintain dependent resources- `healthy`: Membership is active and serving in the group- `pending`: Membership is waiting for dependent resources- `unhealthy`: Membership has unhealthy dependent resources.", + "computed": true + }, + { + "name": "instance_group", + "type": "TypeString", + "description": "The instance group identifier.", + "required": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The user-defined name for this instance group membership. Names must be unique within the instance group.", + "required": true + }, + { + "name": "delete_instance_on_membership_delete", + "type": "TypeBool", + "description": "If set to true, when deleting the membership the instance will also be deleted.", + "computed": true + }, + { + "name": "instance_group_membership", + "type": "TypeString", + "description": "The unique identifier for this instance group membership.", + "computed": true + }, { "name": "instance", "type": "TypeList", @@ -44191,45 +44838,15 @@ "computed": true } } - }, - { - "name": "load_balancer_pool_member", - "type": "TypeString", - "description": "The unique identifier for this load balancer pool member.", - "computed": true - }, - { - "name": "status", - "type": "TypeString", - "description": "The status of the instance group membership- `deleting`: Membership is deleting dependent resources- `failed`: Membership was unable to maintain dependent resources- `healthy`: Membership is active and serving in the group- `pending`: Membership is waiting for dependent resources- `unhealthy`: Membership has unhealthy dependent resources.", - "computed": true - }, + } + ], + "ibm_is_instance_group_memberships": [ { "name": "instance_group", "type": "TypeString", "description": "The instance group identifier.", "required": true }, - { - "name": "name", - "type": "TypeString", - "description": "The user-defined name for this instance group membership. Names must be unique within the instance group.", - "required": true - }, - { - "name": "delete_instance_on_membership_delete", - "type": "TypeBool", - "description": "If set to true, when deleting the membership the instance will also be deleted.", - "computed": true - }, - { - "name": "instance_group_membership", - "type": "TypeString", - "description": "The unique identifier for this instance group membership.", - "computed": true - } - ], - "ibm_is_instance_group_memberships": [ { "name": "memberships", "type": "TypeList", @@ -44317,12 +44934,6 @@ "computed": true } } - }, - { - "name": "instance_group", - "type": "TypeString", - "description": "The instance group identifier.", - "required": true } ], "ibm_is_instance_groups": [ @@ -44654,42 +45265,6 @@ } ], "ibm_is_instance_network_interface": [ - { - "name": "name", - "type": "TypeString", - "description": "The user-defined name for this network interface.", - "computed": true - }, - { - "name": "port_speed", - "type": "TypeInt", - "description": "The network interface port speed in Mbps.", - "computed": true - }, - { - "name": "primary_ipv4_address", - "type": "TypeString", - "description": "The primary IPv4 address.", - "computed": true - }, - { - "name": "instance_name", - "type": "TypeString", - "description": "The instance name.", - "required": true - }, - { - "name": "network_interface_name", - "type": "TypeString", - "description": "The network interface name.", - "required": true - }, - { - "name": "created_at", - "type": "TypeString", - "description": "The date and time that the network interface was created.", - "computed": true - }, { "name": "floating_ips", "type": "TypeList", @@ -44743,27 +45318,65 @@ } }, { - "name": "href", + "name": "status", "type": "TypeString", - "description": "The URL for this network interface.", + "description": "The status of the network interface.", "computed": true }, { - "name": "status", + "name": "primary_ipv4_address", "type": "TypeString", - "description": "The status of the network interface.", + "description": "The primary IPv4 address.", "computed": true }, { - "name": "subnet", + "name": "primary_ip", "type": "TypeList", - "description": "The associated subnet.", + "description": "The primary IP address to bind to the network interface. This can be specified using an existing reserved IP, or a prototype object for a new reserved IP.", + "computed": true, + "elem": { + "address": { + "name": "address", + "type": "TypeString", + "description": "The IP address to reserve, which must not already be reserved on the subnet.", + "computed": true + }, + "href": { + "name": "href", + "type": "TypeString", + "description": "The URL for this reserved IP", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The user-defined name for this reserved IP. If unspecified, the name will be a hyphenated list of randomly-selected words. Names must be unique within the subnet the reserved IP resides in.", + "computed": true + }, + "reserved_ip": { + "name": "reserved_ip", + "type": "TypeString", + "description": "Identifies a reserved IP by a unique property.", + "computed": true + }, + "resource_type": { + "name": "resource_type", + "type": "TypeString", + "description": "The resource type", + "computed": true + } + } + }, + { + "name": "security_groups", + "type": "TypeList", + "description": "Collection of security groups.", "computed": true, "elem": { "crn": { "name": "crn", "type": "TypeString", - "description": "The CRN for this subnet.", + "description": "The security group's CRN.", "computed": true }, "deleted": { @@ -44783,19 +45396,19 @@ "href": { "name": "href", "type": "TypeString", - "description": "The URL for this subnet.", + "description": "The security group's canonical URL.", "computed": true }, "id": { "name": "id", "type": "TypeString", - "description": "The unique identifier for this subnet.", + "description": "The unique identifier for this security group.", "computed": true }, "name": { "name": "name", "type": "TypeString", - "description": "The user-defined name for this subnet.", + "description": "The user-defined name for this security group. Names must be unique within the VPC the security group resides in.", "computed": true } } @@ -44806,50 +45419,24 @@ "description": "The type of this network interface as it relates to an instance.", "computed": true }, - { - "name": "primary_ip", - "type": "TypeList", - "description": "The primary IP address to bind to the network interface. This can be specified using an existing reserved IP, or a prototype object for a new reserved IP.", - "computed": true, - "elem": { - "address": { - "name": "address", - "type": "TypeString", - "description": "The IP address to reserve, which must not already be reserved on the subnet.", - "computed": true - }, - "href": { - "name": "href", - "type": "TypeString", - "description": "The URL for this reserved IP", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The user-defined name for this reserved IP. If unspecified, the name will be a hyphenated list of randomly-selected words. Names must be unique within the subnet the reserved IP resides in.", - "computed": true - }, - "reserved_ip": { - "name": "reserved_ip", - "type": "TypeString", - "description": "Identifies a reserved IP by a unique property.", - "computed": true - }, - "resource_type": { - "name": "resource_type", - "type": "TypeString", - "description": "The resource type", - "computed": true - } - } - }, { "name": "allow_ip_spoofing", "type": "TypeBool", "description": "Indicates whether source IP spoofing is allowed on this interface. If false, source IP spoofing is prevented on this interface. If true, source IP spoofing is allowed on this interface.", "computed": true }, + { + "name": "href", + "type": "TypeString", + "description": "The URL for this network interface.", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The user-defined name for this network interface.", + "computed": true + }, { "name": "resource_type", "type": "TypeString", @@ -44857,15 +45444,39 @@ "computed": true }, { - "name": "security_groups", + "name": "instance_name", + "type": "TypeString", + "description": "The instance name.", + "required": true + }, + { + "name": "network_interface_name", + "type": "TypeString", + "description": "The network interface name.", + "required": true + }, + { + "name": "created_at", + "type": "TypeString", + "description": "The date and time that the network interface was created.", + "computed": true + }, + { + "name": "port_speed", + "type": "TypeInt", + "description": "The network interface port speed in Mbps.", + "computed": true + }, + { + "name": "subnet", "type": "TypeList", - "description": "Collection of security groups.", + "description": "The associated subnet.", "computed": true, "elem": { "crn": { "name": "crn", "type": "TypeString", - "description": "The security group's CRN.", + "description": "The CRN for this subnet.", "computed": true }, "deleted": { @@ -44885,19 +45496,19 @@ "href": { "name": "href", "type": "TypeString", - "description": "The security group's canonical URL.", + "description": "The URL for this subnet.", "computed": true }, "id": { "name": "id", "type": "TypeString", - "description": "The unique identifier for this security group.", + "description": "The unique identifier for this subnet.", "computed": true }, "name": { "name": "name", "type": "TypeString", - "description": "The user-defined name for this security group. Names must be unique within the VPC the security group resides in.", + "description": "The user-defined name for this subnet.", "computed": true } } @@ -44905,21 +45516,21 @@ ], "ibm_is_instance_network_interface_reserved_ip": [ { - "name": "network_interface", - "type": "TypeString", - "description": "The instance network interface identifier.", - "required": true + "name": "auto_delete", + "type": "TypeBool", + "description": "If set to true, this reserved IP will be automatically deleted", + "computed": true }, { - "name": "reserved_ip", + "name": "created_at", "type": "TypeString", - "description": "The reserved IP identifier.", - "required": true + "description": "The date and time that the reserved IP was created.", + "computed": true }, { - "name": "target", + "name": "href", "type": "TypeString", - "description": "Reserved IP target id.", + "description": "The URL for this reserved IP.", "computed": true }, { @@ -44929,45 +45540,45 @@ "required": true }, { - "name": "auto_delete", - "type": "TypeBool", - "description": "If set to true, this reserved IP will be automatically deleted", - "computed": true + "name": "network_interface", + "type": "TypeString", + "description": "The instance network interface identifier.", + "required": true }, { - "name": "created_at", + "name": "address", "type": "TypeString", - "description": "The date and time that the reserved IP was created.", + "description": "The IP address", "computed": true }, { - "name": "href", + "name": "resource_type", "type": "TypeString", - "description": "The URL for this reserved IP.", + "description": "The resource type.", "computed": true }, { - "name": "name", + "name": "target", "type": "TypeString", - "description": "The user-defined or system-provided name for this reserved IP.", + "description": "Reserved IP target id.", "computed": true }, { - "name": "owner", + "name": "reserved_ip", "type": "TypeString", - "description": "The owner of a reserved IP, defining whether it is managed by the user or the provider.", - "computed": true + "description": "The reserved IP identifier.", + "required": true }, { - "name": "resource_type", + "name": "name", "type": "TypeString", - "description": "The resource type.", + "description": "The user-defined or system-provided name for this reserved IP.", "computed": true }, { - "name": "address", + "name": "owner", "type": "TypeString", - "description": "The IP address", + "description": "The owner of a reserved IP, defining whether it is managed by the user or the provider.", "computed": true } ], @@ -45054,6 +45665,12 @@ } ], "ibm_is_instance_network_interfaces": [ + { + "name": "total_count", + "type": "TypeInt", + "description": "The total number of resources across all pages.", + "computed": true + }, { "name": "instance_name", "type": "TypeString", @@ -45309,54 +45926,19 @@ "computed": true } } - }, - { - "name": "total_count", - "type": "TypeInt", - "description": "The total number of resources across all pages.", - "computed": true } ], "ibm_is_instance_profile": [ { - "name": "name", - "type": "TypeString", - "required": true - }, - { - "name": "href", + "name": "architecture_type", "type": "TypeString", - "description": "The URL for this virtual server instance profile.", + "description": "The type for the OS architecture.", "computed": true }, { - "name": "vcpu_manufacturer", - "type": "TypeList", - "computed": true, - "elem": { - "default": { - "name": "default", - "type": "TypeString", - "description": "The default VCPU manufacturer for an instance with this profile.", - "computed": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "The type for this profile field.", - "computed": true - }, - "value": { - "name": "value", - "type": "TypeString", - "description": "The VCPU manufacturer for an instance with this profile.", - "computed": true - } - } - }, - { - "name": "bandwidth", + "name": "gpu_count", "type": "TypeList", + "description": "GPU count of this profile", "computed": true, "elem": { "default": { @@ -45407,8 +45989,9 @@ } }, { - "name": "memory", + "name": "gpu_memory", "type": "TypeList", + "description": "GPU memory of this profile", "computed": true, "elem": { "default": { @@ -45459,40 +46042,37 @@ } }, { - "name": "vcpu_architecture", + "name": "gpu_model", "type": "TypeList", + "description": "GPU model of this profile", "computed": true, "elem": { - "default": { - "name": "default", - "type": "TypeString", - "description": "The default VCPU architecture for an instance with this profile.", - "computed": true - }, "type": { "name": "type", "type": "TypeString", "description": "The type for this profile field.", "computed": true }, - "value": { - "name": "value", - "type": "TypeString", - "description": "The VCPU architecture for an instance with this profile.", - "computed": true + "values": { + "name": "values", + "type": "TypeList", + "description": "The possible GPU model(s) for an instance with this profile", + "computed": true, + "elem": { + "type": "TypeString" + } } } }, { - "name": "family", + "name": "name", "type": "TypeString", - "description": "The product family this virtual server instance profile belongs to.", - "computed": true + "required": true }, { - "name": "architecture", + "name": "family", "type": "TypeString", - "description": "The default OS architecture for an instance with this profile.", + "description": "The product family this virtual server instance profile belongs to.", "computed": true }, { @@ -45505,9 +46085,58 @@ } }, { - "name": "gpu_count", + "name": "numa_count", + "type": "TypeList", + "computed": true, + "elem": { + "type": { + "name": "type", + "type": "TypeString", + "description": "The type for this profile field.", + "computed": true + }, + "value": { + "name": "value", + "type": "TypeInt", + "description": "The value for this profile field.", + "computed": true + } + } + }, + { + "name": "vcpu_architecture", + "type": "TypeList", + "computed": true, + "elem": { + "default": { + "name": "default", + "type": "TypeString", + "description": "The default VCPU architecture for an instance with this profile.", + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "The type for this profile field.", + "computed": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "The VCPU architecture for an instance with this profile.", + "computed": true + } + } + }, + { + "name": "href", + "type": "TypeString", + "description": "The URL for this virtual server instance profile.", + "computed": true + }, + { + "name": "memory", "type": "TypeList", - "description": "GPU count of this profile", "computed": true, "elem": { "default": { @@ -45558,9 +46187,33 @@ } }, { - "name": "total_volume_bandwidth", + "name": "network_interface_count", + "type": "TypeSet", + "computed": true, + "elem": { + "max": { + "name": "max", + "type": "TypeInt", + "description": "The maximum value for this profile field", + "computed": true + }, + "min": { + "name": "min", + "type": "TypeInt", + "description": "The minimum value for this profile field", + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "The type for this profile field.", + "computed": true + } + } + }, + { + "name": "vcpu_count", "type": "TypeList", - "description": "The amount of bandwidth (in megabits per second) allocated exclusively to instance storage volumes. An increase in this value will result in a corresponding decrease to total_network_bandwidth.", "computed": true, "elem": { "default": { @@ -45611,26 +46264,13 @@ } }, { - "name": "port_speed", - "type": "TypeList", - "computed": true, - "elem": { - "type": { - "name": "type", - "type": "TypeString", - "description": "The type for this profile field.", - "computed": true - }, - "value": { - "name": "value", - "type": "TypeInt", - "description": "The value for this profile field.", - "computed": true - } - } + "name": "architecture", + "type": "TypeString", + "description": "The default OS architecture for an instance with this profile.", + "computed": true }, { - "name": "vcpu_count", + "name": "bandwidth", "type": "TypeList", "computed": true, "elem": { @@ -45681,12 +46321,6 @@ } } }, - { - "name": "architecture_type", - "type": "TypeString", - "description": "The type for the OS architecture.", - "computed": true - }, { "name": "gpu_manufacturer", "type": "TypeList", @@ -45711,9 +46345,9 @@ } }, { - "name": "gpu_memory", + "name": "total_volume_bandwidth", "type": "TypeList", - "description": "GPU memory of this profile", + "description": "The amount of bandwidth (in megabits per second) allocated exclusively to instance storage volumes. An increase in this value will result in a corresponding decrease to total_network_bandwidth.", "computed": true, "elem": { "default": { @@ -45763,29 +46397,6 @@ } } }, - { - "name": "gpu_model", - "type": "TypeList", - "description": "GPU model of this profile", - "computed": true, - "elem": { - "type": { - "name": "type", - "type": "TypeString", - "description": "The type for this profile field.", - "computed": true - }, - "values": { - "name": "values", - "type": "TypeList", - "description": "The possible GPU model(s) for an instance with this profile", - "computed": true, - "elem": { - "type": "TypeString" - } - } - } - }, { "name": "disks", "type": "TypeList", @@ -45927,20 +46538,39 @@ } }, { - "name": "network_interface_count", - "type": "TypeSet", + "name": "port_speed", + "type": "TypeList", "computed": true, "elem": { - "max": { - "name": "max", - "type": "TypeInt", - "description": "The maximum value for this profile field", + "type": { + "name": "type", + "type": "TypeString", + "description": "The type for this profile field.", "computed": true }, - "min": { - "name": "min", + "value": { + "name": "value", "type": "TypeInt", - "description": "The minimum value for this profile field", + "description": "The value for this profile field.", + "computed": true + } + } + }, + { + "name": "status", + "type": "TypeString", + "description": "The status of the instance profile.", + "computed": true + }, + { + "name": "vcpu_manufacturer", + "type": "TypeList", + "computed": true, + "elem": { + "default": { + "name": "default", + "type": "TypeString", + "description": "The default VCPU manufacturer for an instance with this profile.", "computed": true }, "type": { @@ -45948,6 +46578,12 @@ "type": "TypeString", "description": "The type for this profile field.", "computed": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "The VCPU manufacturer for an instance with this profile.", + "computed": true } } } @@ -46418,6 +47054,25 @@ } } }, + "numa_count": { + "name": "numa_count", + "type": "TypeList", + "computed": true, + "elem": { + "type": { + "name": "type", + "type": "TypeString", + "description": "The type for this profile field.", + "computed": true + }, + "value": { + "name": "value", + "type": "TypeInt", + "description": "The value for this profile field.", + "computed": true + } + } + }, "port_speed": { "name": "port_speed", "type": "TypeList", @@ -46437,6 +47092,12 @@ } } }, + "status": { + "name": "status", + "type": "TypeString", + "description": "The status of the instance profile.", + "computed": true + }, "total_volume_bandwidth": { "name": "total_volume_bandwidth", "type": "TypeList", @@ -46596,6 +47257,49 @@ } ], "ibm_is_instance_template": [ + { + "name": "metadata_service", + "type": "TypeList", + "description": "The metadata service configuration", + "computed": true, + "elem": { + "enabled": { + "name": "enabled", + "type": "TypeBool", + "description": "Indicates whether the metadata service endpoint will be available to the virtual server instance", + "computed": true + }, + "protocol": { + "name": "protocol", + "type": "TypeString", + "description": "The communication protocol to use for the metadata service endpoint. Applies only when the metadata service is enabled.", + "computed": true + }, + "response_hop_limit": { + "name": "response_hop_limit", + "type": "TypeInt", + "description": "The hop limit (IP time to live) for IP response packets from the metadata service", + "computed": true + } + } + }, + { + "name": "resource_group", + "type": "TypeString", + "cloud_data_type": "resource_group", + "computed": true + }, + { + "name": "href", + "type": "TypeString", + "computed": true + }, + { + "name": "crn", + "type": "TypeString", + "cloud_data_type": "crn", + "computed": true + }, { "name": "keys", "type": "TypeList", @@ -46631,122 +47335,57 @@ } }, { - "name": "network_interfaces", + "name": "placement_target", "type": "TypeList", + "description": "The placement restrictions to use for the virtual server instance.", "computed": true, "elem": { - "name": { - "name": "name", + "crn": { + "name": "crn", "type": "TypeString", + "description": "The CRN for this dedicated host.", "computed": true }, - "primary_ip": { - "name": "primary_ip", - "type": "TypeList", - "description": "The primary IP address to bind to the network interface. This can be specified using an existing reserved IP, or a prototype object for a new reserved IP.", - "computed": true, - "elem": { - "address": { - "name": "address", - "type": "TypeString", - "description": "The IP address to reserve, which must not already be reserved on the subnet.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The user-defined name for this reserved IP. If unspecified, the name will be a hyphenated list of randomly-selected words. Names must be unique within the subnet the reserved IP resides in.", - "computed": true - }, - "reserved_ip": { - "name": "reserved_ip", - "type": "TypeString", - "description": "Identifies a reserved IP by a unique property.", - "computed": true - } - } - }, - "primary_ipv4_address": { - "name": "primary_ipv4_address", + "href": { + "name": "href", "type": "TypeString", + "description": "The URL for this dedicated host.", "computed": true }, - "security_groups": { - "name": "security_groups", - "type": "TypeSet", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - "subnet": { - "name": "subnet", + "id": { + "name": "id", "type": "TypeString", + "description": "The unique identifier for this dedicated host.", "computed": true } } }, { - "name": "user_data", + "name": "identifier", "type": "TypeString", + "optional": true, "computed": true }, { - "name": "image", + "name": "zone", "type": "TypeString", "computed": true }, { - "name": "boot_volume_attachment", - "type": "TypeList", - "computed": true, - "elem": { - "delete_volume_on_instance_delete": { - "name": "delete_volume_on_instance_delete", - "type": "TypeBool", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "computed": true - }, - "profile": { - "name": "profile", - "type": "TypeString", - "computed": true - }, - "size": { - "name": "size", - "type": "TypeInt", - "computed": true - }, - "tags": { - "name": "tags", - "type": "TypeSet", - "description": "The user tags associated with this volume.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - "volume": { - "name": "volume", - "type": "TypeString", - "computed": true - } - } + "name": "metadata_service_enabled", + "type": "TypeBool", + "description": "Indicates whether the metadata service endpoint is available to the virtual server instance", + "computed": true }, { - "name": "resource_group", + "name": "availability_policy_host_failure", "type": "TypeString", - "cloud_data_type": "resource_group", + "description": "The availability policy to use for this virtual server instance. The action to perform if the compute host experiences a failure.", "computed": true }, { - "name": "crn", + "name": "image", "type": "TypeString", - "cloud_data_type": "crn", "computed": true }, { @@ -46755,65 +47394,8 @@ "computed": true }, { - "name": "primary_network_interface", - "type": "TypeList", - "computed": true, - "elem": { - "name": { - "name": "name", - "type": "TypeString", - "computed": true - }, - "primary_ip": { - "name": "primary_ip", - "type": "TypeList", - "description": "The primary IP address to bind to the network interface. This can be specified using an existing reserved IP, or a prototype object for a new reserved IP.", - "computed": true, - "elem": { - "address": { - "name": "address", - "type": "TypeString", - "description": "The IP address to reserve, which must not already be reserved on the subnet.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The user-defined name for this reserved IP. If unspecified, the name will be a hyphenated list of randomly-selected words. Names must be unique within the subnet the reserved IP resides in.", - "computed": true - }, - "reserved_ip": { - "name": "reserved_ip", - "type": "TypeString", - "description": "Identifies a reserved IP by a unique property.", - "computed": true - } - } - }, - "primary_ipv4_address": { - "name": "primary_ipv4_address", - "type": "TypeString", - "computed": true - }, - "security_groups": { - "name": "security_groups", - "type": "TypeSet", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - "subnet": { - "name": "subnet", - "type": "TypeString", - "computed": true - } - } - }, - { - "name": "default_trusted_profile_auto_link", - "type": "TypeBool", - "description": "If set to `true`, the system will create a link to the specified `target` trusted profile during instance creation. Regardless of whether a link is created by the system or manually using the IAM Identity service, it will be automatically deleted when the instance is deleted.", + "name": "profile", + "type": "TypeString", "computed": true }, { @@ -46822,32 +47404,6 @@ "description": "The unique identifier or CRN of the default IAM trusted profile to use for this virtual server instance.", "computed": true }, - { - "name": "metadata_service", - "type": "TypeList", - "description": "The metadata service configuration", - "computed": true, - "elem": { - "enabled": { - "name": "enabled", - "type": "TypeBool", - "description": "Indicates whether the metadata service endpoint will be available to the virtual server instance", - "computed": true - }, - "protocol": { - "name": "protocol", - "type": "TypeString", - "description": "The communication protocol to use for the metadata service endpoint. Applies only when the metadata service is enabled.", - "computed": true - }, - "response_hop_limit": { - "name": "response_hop_limit", - "type": "TypeInt", - "description": "The hop limit (IP time to live) for IP response packets from the metadata service", - "computed": true - } - } - }, { "name": "volume_attachments", "type": "TypeList", @@ -46911,52 +47467,162 @@ } }, { - "name": "placement_target", + "name": "primary_network_interface", "type": "TypeList", - "description": "The placement restrictions to use for the virtual server instance.", "computed": true, "elem": { - "crn": { - "name": "crn", + "name": { + "name": "name", "type": "TypeString", - "description": "The CRN for this dedicated host.", "computed": true }, - "href": { - "name": "href", + "primary_ip": { + "name": "primary_ip", + "type": "TypeList", + "description": "The primary IP address to bind to the network interface. This can be specified using an existing reserved IP, or a prototype object for a new reserved IP.", + "computed": true, + "elem": { + "address": { + "name": "address", + "type": "TypeString", + "description": "The IP address to reserve, which must not already be reserved on the subnet.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The user-defined name for this reserved IP. If unspecified, the name will be a hyphenated list of randomly-selected words. Names must be unique within the subnet the reserved IP resides in.", + "computed": true + }, + "reserved_ip": { + "name": "reserved_ip", + "type": "TypeString", + "description": "Identifies a reserved IP by a unique property.", + "computed": true + } + } + }, + "primary_ipv4_address": { + "name": "primary_ipv4_address", "type": "TypeString", - "description": "The URL for this dedicated host.", "computed": true }, - "id": { - "name": "id", + "security_groups": { + "name": "security_groups", + "type": "TypeSet", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "subnet": { + "name": "subnet", "type": "TypeString", - "description": "The unique identifier for this dedicated host.", "computed": true } } }, { - "name": "identifier", - "type": "TypeString", - "optional": true, - "computed": true - }, - { - "name": "zone", - "type": "TypeString", - "computed": true + "name": "network_interfaces", + "type": "TypeList", + "computed": true, + "elem": { + "name": { + "name": "name", + "type": "TypeString", + "computed": true + }, + "primary_ip": { + "name": "primary_ip", + "type": "TypeList", + "description": "The primary IP address to bind to the network interface. This can be specified using an existing reserved IP, or a prototype object for a new reserved IP.", + "computed": true, + "elem": { + "address": { + "name": "address", + "type": "TypeString", + "description": "The IP address to reserve, which must not already be reserved on the subnet.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The user-defined name for this reserved IP. If unspecified, the name will be a hyphenated list of randomly-selected words. Names must be unique within the subnet the reserved IP resides in.", + "computed": true + }, + "reserved_ip": { + "name": "reserved_ip", + "type": "TypeString", + "description": "Identifies a reserved IP by a unique property.", + "computed": true + } + } + }, + "primary_ipv4_address": { + "name": "primary_ipv4_address", + "type": "TypeString", + "computed": true + }, + "security_groups": { + "name": "security_groups", + "type": "TypeSet", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "subnet": { + "name": "subnet", + "type": "TypeString", + "computed": true + } + } }, { - "name": "profile", + "name": "user_data", "type": "TypeString", "computed": true }, { - "name": "availability_policy_host_failure", - "type": "TypeString", - "description": "The availability policy to use for this virtual server instance. The action to perform if the compute host experiences a failure.", - "computed": true + "name": "boot_volume_attachment", + "type": "TypeList", + "computed": true, + "elem": { + "delete_volume_on_instance_delete": { + "name": "delete_volume_on_instance_delete", + "type": "TypeBool", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "computed": true + }, + "profile": { + "name": "profile", + "type": "TypeString", + "computed": true + }, + "size": { + "name": "size", + "type": "TypeInt", + "computed": true + }, + "tags": { + "name": "tags", + "type": "TypeSet", + "description": "The user tags associated with this volume.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "volume": { + "name": "volume", + "type": "TypeString", + "computed": true + } + } }, { "name": "name", @@ -46965,14 +47631,9 @@ "computed": true }, { - "name": "href", - "type": "TypeString", - "computed": true - }, - { - "name": "metadata_service_enabled", + "name": "default_trusted_profile_auto_link", "type": "TypeBool", - "description": "Indicates whether the metadata service endpoint is available to the virtual server instance", + "description": "If set to `true`, the system will create a link to the specified `target` trusted profile during instance creation. Regardless of whether a link is created by the system or manually using the IAM Identity service, it will be automatically deleted when the instance is deleted.", "computed": true } ], @@ -47374,18 +48035,18 @@ "description": "The user-defined name for this volume attachment.", "required": true }, - { - "name": "delete_volume_on_instance_delete", - "type": "TypeBool", - "description": "If set to true, when deleting the instance the volume will also be deleted.", - "computed": true - }, { "name": "device", "type": "TypeString", "description": "A unique identifier for the device which is exposed to the instance operating system", "computed": true }, + { + "name": "delete_volume_on_instance_delete", + "type": "TypeBool", + "description": "If set to true, when deleting the instance the volume will also be deleted.", + "computed": true + }, { "name": "href", "type": "TypeString", @@ -47450,12 +48111,6 @@ } ], "ibm_is_instance_volume_attachments": [ - { - "name": "instance", - "type": "TypeString", - "description": "Instance id", - "required": true - }, { "name": "volume_attachments", "type": "TypeList", @@ -47542,33 +48197,15 @@ "elem": {} } } - } - ], - "ibm_is_instances": [ - { - "name": "instance_group", - "type": "TypeString", - "description": "Instance group ID to filter the instances attached to it", - "optional": true - }, - { - "name": "instance_group_name", - "type": "TypeString", - "description": "Instance group name to filter the instances attached to it", - "optional": true }, { - "name": "vpc_name", - "type": "TypeString", - "description": "Name of the vpc to filter the instances attached to it", - "optional": true - }, - { - "name": "vpc", + "name": "instance", "type": "TypeString", - "description": "VPC ID to filter the instances attached to it", - "optional": true - }, + "description": "Instance id", + "required": true + } + ], + "ibm_is_instances": [ { "name": "resource_group", "type": "TypeString", @@ -47576,18 +48213,6 @@ "cloud_data_type": "resource_group", "optional": true }, - { - "name": "placement_group_name", - "type": "TypeString", - "description": "Name of the placement group to filter the instances attached to it", - "optional": true - }, - { - "name": "vpc_crn", - "type": "TypeString", - "description": "VPC CRN to filter the instances attached to it", - "optional": true - }, { "name": "dedicated_host_name", "type": "TypeString", @@ -47947,6 +48572,12 @@ } } }, + "numa_count": { + "name": "numa_count", + "type": "TypeInt", + "description": "The number of NUMA nodes this virtual server instance is provisioned on. This property may be absent if the instance's `status` is not `running`.", + "computed": true + }, "placement_target": { "name": "placement_target", "type": "TypeList", @@ -48220,6 +48851,42 @@ "computed": true } } + }, + { + "name": "instance_group", + "type": "TypeString", + "description": "Instance group ID to filter the instances attached to it", + "optional": true + }, + { + "name": "vpc_name", + "type": "TypeString", + "description": "Name of the vpc to filter the instances attached to it", + "optional": true + }, + { + "name": "vpc_crn", + "type": "TypeString", + "description": "VPC CRN to filter the instances attached to it", + "optional": true + }, + { + "name": "placement_group_name", + "type": "TypeString", + "description": "Name of the placement group to filter the instances attached to it", + "optional": true + }, + { + "name": "instance_group_name", + "type": "TypeString", + "description": "Instance group name to filter the instances attached to it", + "optional": true + }, + { + "name": "vpc", + "type": "TypeString", + "description": "VPC ID to filter the instances attached to it", + "optional": true } ], "ibm_is_ipsec_policies": [ @@ -48372,9 +49039,21 @@ ], "ibm_is_ipsec_policy": [ { - "name": "pfs", + "name": "ipsec_policy", "type": "TypeString", - "description": "Perfect Forward Secrecy.", + "description": "The IPsec policy identifier.", + "optional": true + }, + { + "name": "created_at", + "type": "TypeString", + "description": "The date and time that this IPsec policy was created.", + "computed": true + }, + { + "name": "href", + "type": "TypeString", + "description": "The IPsec policy's canonical URL.", "computed": true }, { @@ -48405,11 +49084,17 @@ } }, { - "name": "ipsec_policy", + "name": "name", "type": "TypeString", - "description": "The IPsec policy identifier.", + "description": "The IPsec policy name.", "optional": true }, + { + "name": "authentication_algorithm", + "type": "TypeString", + "description": "The authentication algorithm.", + "computed": true + }, { "name": "connections", "type": "TypeList", @@ -48468,12 +49153,6 @@ "description": "The encryption algorithm.", "computed": true }, - { - "name": "href", - "type": "TypeString", - "description": "The IPsec policy's canonical URL.", - "computed": true - }, { "name": "key_lifetime", "type": "TypeInt", @@ -48481,63 +49160,38 @@ "computed": true }, { - "name": "resource_type", - "type": "TypeString", - "description": "The resource type.", - "computed": true - }, - { - "name": "transform_protocol", + "name": "pfs", "type": "TypeString", - "description": "The transform protocol used. Only `esp` is supported.", + "description": "Perfect Forward Secrecy.", "computed": true }, { - "name": "name", - "type": "TypeString", - "description": "The IPsec policy name.", - "optional": true - }, - { - "name": "authentication_algorithm", + "name": "resource_type", "type": "TypeString", - "description": "The authentication algorithm.", + "description": "The resource type.", "computed": true }, { - "name": "created_at", + "name": "transform_protocol", "type": "TypeString", - "description": "The date and time that this IPsec policy was created.", + "description": "The transform protocol used. Only `esp` is supported.", "computed": true } ], "ibm_is_lb": [ { - "name": "crn", - "type": "TypeString", - "description": "The CRN for this Load Balancer", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "operating_status", - "type": "TypeString", - "description": "Load Balancer operating status", - "computed": true - }, - { - "name": "listeners", + "name": "security_groups", "type": "TypeSet", - "description": "Load Balancer Listeners list", + "description": "Load Balancer securitygroups list", "computed": true, "elem": { "type": "TypeString" } }, { - "name": "resource_name", + "name": "resource_controller_url", "type": "TypeString", - "description": "The name of the resource", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", "computed": true }, { @@ -48547,16 +49201,48 @@ "computed": true }, { - "name": "type", + "name": "dns", + "type": "TypeList", + "description": "The DNS configuration for this load balancer.", + "computed": true, + "elem": { + "instance_crn": { + "name": "instance_crn", + "type": "TypeString", + "description": "The CRN for this DNS instance", + "computed": true + }, + "zone_id": { + "name": "zone_id", + "type": "TypeString", + "description": "The unique identifier of the DNS zone.", + "computed": true + } + } + }, + { + "name": "operating_status", "type": "TypeString", - "description": "Load Balancer type", + "description": "Load Balancer operating status", "computed": true }, { - "name": "udp_supported", - "type": "TypeBool", - "description": "Indicates whether this load balancer supports UDP.", - "computed": true + "name": "public_ips", + "type": "TypeList", + "description": "Load Balancer Public IPs", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "access_tags", + "type": "TypeSet", + "description": "List of access tags", + "computed": true, + "elem": { + "type": "TypeString" + } }, { "name": "private_ip", @@ -48597,52 +49283,87 @@ } }, { - "name": "security_groups", - "type": "TypeSet", - "description": "Load Balancer securitygroups list", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "resource_name", + "type": "TypeString", + "description": "The name of the resource", + "computed": true }, { - "name": "resource_group", + "name": "type", "type": "TypeString", - "description": "Load Balancer Resource group", - "cloud_data_type": "resource_group", + "description": "Load Balancer type", "computed": true }, { - "name": "public_ips", + "name": "status", + "type": "TypeString", + "description": "Load Balancer status", + "computed": true + }, + { + "name": "private_ips", "type": "TypeList", - "description": "Load Balancer Public IPs", + "description": "Load Balancer private IPs", "computed": true, "elem": { "type": "TypeString" } }, { - "name": "subnets", + "name": "logging", + "type": "TypeBool", + "description": "Logging of Load Balancer", + "computed": true + }, + { + "name": "listeners", "type": "TypeSet", - "description": "Load Balancer subnets list", + "description": "Load Balancer Listeners list", "computed": true, "elem": { "type": "TypeString" } }, { - "name": "access_tags", + "name": "name", + "type": "TypeString", + "description": "Load Balancer name", + "required": true + }, + { + "name": "udp_supported", + "type": "TypeBool", + "description": "Indicates whether this load balancer supports UDP.", + "computed": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "The CRN for this Load Balancer", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "tags", "type": "TypeSet", - "description": "List of access tags", + "description": "Tags associated to Load Balancer", + "cloud_data_type": "tags", "computed": true, "elem": { "type": "TypeString" } }, { - "name": "logging", - "type": "TypeBool", - "description": "Logging of Load Balancer", + "name": "resource_group", + "type": "TypeString", + "description": "Load Balancer Resource group", + "cloud_data_type": "resource_group", + "computed": true + }, + { + "name": "hostname", + "type": "TypeString", + "description": "Load Balancer Host Name", "computed": true }, { @@ -48733,18 +49454,6 @@ } } }, - { - "name": "resource_controller_url", - "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", - "computed": true - }, - { - "name": "name", - "type": "TypeString", - "description": "Load Balancer name", - "required": true - }, { "name": "route_mode", "type": "TypeBool", @@ -48752,9 +49461,9 @@ "computed": true }, { - "name": "private_ips", - "type": "TypeList", - "description": "Load Balancer private IPs", + "name": "subnets", + "type": "TypeSet", + "description": "Load Balancer subnets list", "computed": true, "elem": { "type": "TypeString" @@ -48765,75 +49474,31 @@ "type": "TypeBool", "description": "Security Group Supported for this Load Balancer", "computed": true - }, - { - "name": "tags", - "type": "TypeSet", - "description": "Tags associated to Load Balancer", - "cloud_data_type": "tags", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "hostname", - "type": "TypeString", - "description": "Load Balancer Host Name", - "computed": true - }, - { - "name": "dns", - "type": "TypeList", - "description": "The DNS configuration for this load balancer.", - "computed": true, - "elem": { - "instance_crn": { - "name": "instance_crn", - "type": "TypeString", - "description": "The CRN for this DNS instance", - "computed": true - }, - "zone_id": { - "name": "zone_id", - "type": "TypeString", - "description": "The unique identifier of the DNS zone.", - "computed": true - } - } - }, - { - "name": "status", - "type": "TypeString", - "description": "Load Balancer status", - "computed": true } ], "ibm_is_lb_listener": [ { - "name": "certificate_instance", - "type": "TypeList", - "description": "The certificate instance used for SSL termination. It is applicable only to `https`protocol.", - "computed": true, - "elem": { - "crn": { - "name": "crn", - "type": "TypeString", - "description": "The CRN for this certificate instance.", - "computed": true - } - } + "name": "created_at", + "type": "TypeString", + "description": "The date and time that this listener was created.", + "computed": true }, { - "name": "accept_proxy_protocol", - "type": "TypeBool", - "description": "If set to `true`, this listener will accept and forward PROXY protocol information. Supported by load balancers in the `application` family (otherwise always `false`). Additional restrictions:- If this listener has `https_redirect` specified, its `accept_proxy_protocol` value must match the `accept_proxy_protocol` value of the `https_redirect` listener.- If this listener is the target of another listener's `https_redirect`, its `accept_proxy_protocol` value must match that listener's `accept_proxy_protocol` value.", + "name": "port_max", + "type": "TypeInt", + "description": "The inclusive upper bound of the range of ports used by this listener.Only load balancers in the `network` family support more than one port per listener.", "computed": true }, { - "name": "created_at", + "name": "listener_id", "type": "TypeString", - "description": "The date and time that this listener was created.", + "description": "The listener identifier.", + "required": true + }, + { + "name": "connection_limit", + "type": "TypeInt", + "description": "The connection limit of the listener.", "computed": true }, { @@ -48877,40 +49542,82 @@ } }, { - "name": "port_max", + "name": "policies", + "type": "TypeList", + "description": "The policies for this listener.", + "computed": true, + "elem": { + "deleted": { + "name": "deleted", + "type": "TypeList", + "description": "If present, this property indicates the referenced resource has been deleted and providessome supplementary information.", + "computed": true, + "elem": { + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about deleted resources.", + "computed": true + } + } + }, + "href": { + "name": "href", + "type": "TypeString", + "description": "The listener policy's canonical URL.", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "The policy's unique identifier.", + "computed": true + } + } + }, + { + "name": "port", "type": "TypeInt", - "description": "The inclusive upper bound of the range of ports used by this listener.Only load balancers in the `network` family support more than one port per listener.", + "description": "The listener port number, or the inclusive lower bound of the port range. Each listener in the load balancer must have a unique `port` and `protocol` combination.", "computed": true }, { - "name": "protocol", - "type": "TypeString", - "description": "The listener protocol. Load balancers in the `network` family support `tcp`. Load balancers in the `application` family support `tcp`, `http`, and `https`. Each listener in the load balancer must have a unique `port` and `protocol` combination.", + "name": "idle_connection_timeout", + "type": "TypeInt", + "description": "idle connection timeout of listener", "computed": true }, { - "name": "provisioning_status", - "type": "TypeString", - "description": "The provisioning status of this listener.", - "computed": true + "name": "certificate_instance", + "type": "TypeList", + "description": "The certificate instance used for SSL termination. It is applicable only to `https`protocol.", + "computed": true, + "elem": { + "crn": { + "name": "crn", + "type": "TypeString", + "description": "The CRN for this certificate instance.", + "computed": true + } + } }, { - "name": "listener_id", + "name": "href", "type": "TypeString", - "description": "The listener identifier.", - "required": true + "description": "The listener's canonical URL.", + "computed": true }, { - "name": "connection_limit", - "type": "TypeInt", - "description": "The connection limit of the listener.", + "name": "provisioning_status", + "type": "TypeString", + "description": "The provisioning status of this listener.", "computed": true }, { - "name": "href", + "name": "lb", "type": "TypeString", - "description": "The listener's canonical URL.", - "computed": true + "description": "The load balancer identifier.", + "required": true }, { "name": "https_redirect", @@ -48965,46 +49672,6 @@ } } }, - { - "name": "policies", - "type": "TypeList", - "description": "The policies for this listener.", - "computed": true, - "elem": { - "deleted": { - "name": "deleted", - "type": "TypeList", - "description": "If present, this property indicates the referenced resource has been deleted and providessome supplementary information.", - "computed": true, - "elem": { - "more_info": { - "name": "more_info", - "type": "TypeString", - "description": "Link to documentation about deleted resources.", - "computed": true - } - } - }, - "href": { - "name": "href", - "type": "TypeString", - "description": "The listener policy's canonical URL.", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "The policy's unique identifier.", - "computed": true - } - } - }, - { - "name": "port", - "type": "TypeInt", - "description": "The listener port number, or the inclusive lower bound of the port range. Each listener in the load balancer must have a unique `port` and `protocol` combination.", - "computed": true - }, { "name": "port_min", "type": "TypeInt", @@ -49012,16 +49679,16 @@ "computed": true }, { - "name": "idle_connection_timeout", - "type": "TypeInt", - "description": "idle connection timeout of listener", + "name": "protocol", + "type": "TypeString", + "description": "The listener protocol. Load balancers in the `network` family support `tcp`. Load balancers in the `application` family support `tcp`, `http`, and `https`. Each listener in the load balancer must have a unique `port` and `protocol` combination.", "computed": true }, { - "name": "lb", - "type": "TypeString", - "description": "The load balancer identifier.", - "required": true + "name": "accept_proxy_protocol", + "type": "TypeBool", + "description": "If set to `true`, this listener will accept and forward PROXY protocol information. Supported by load balancers in the `application` family (otherwise always `false`). Additional restrictions:- If this listener has `https_redirect` specified, its `accept_proxy_protocol` value must match the `accept_proxy_protocol` value of the `https_redirect` listener.- If this listener is the target of another listener's `https_redirect`, its `accept_proxy_protocol` value must match that listener's `accept_proxy_protocol` value.", + "computed": true } ], "ibm_is_lb_listener_policies": [ @@ -49214,76 +49881,6 @@ } ], "ibm_is_lb_listener_policy": [ - { - "name": "name", - "type": "TypeString", - "description": "The user-defined name for this policy.", - "computed": true - }, - { - "name": "priority", - "type": "TypeInt", - "description": "Priority of the policy. Lower value indicates higher priority.", - "computed": true - }, - { - "name": "provisioning_status", - "type": "TypeString", - "description": "The provisioning status of this policy.", - "computed": true - }, - { - "name": "lb", - "type": "TypeString", - "description": "The load balancer identifier.", - "required": true - }, - { - "name": "created_at", - "type": "TypeString", - "description": "The date and time that this policy was created.", - "computed": true - }, - { - "name": "href", - "type": "TypeString", - "description": "The listener policy's canonical URL.", - "computed": true - }, - { - "name": "rules", - "type": "TypeList", - "description": "The rules for this policy.", - "computed": true, - "elem": { - "deleted": { - "name": "deleted", - "type": "TypeList", - "description": "If present, this property indicates the referenced resource has been deleted and providessome supplementary information.", - "computed": true, - "elem": { - "more_info": { - "name": "more_info", - "type": "TypeString", - "description": "Link to documentation about deleted resources.", - "computed": true - } - } - }, - "href": { - "name": "href", - "type": "TypeString", - "description": "The rule's canonical URL.", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "The rule's unique identifier.", - "computed": true - } - } - }, { "name": "target", "type": "TypeList", @@ -49375,12 +49972,70 @@ } } }, + { + "name": "lb", + "type": "TypeString", + "description": "The load balancer identifier.", + "required": true + }, { "name": "listener", "type": "TypeString", "description": "The listener identifier.", "required": true }, + { + "name": "created_at", + "type": "TypeString", + "description": "The date and time that this policy was created.", + "computed": true + }, + { + "name": "priority", + "type": "TypeInt", + "description": "Priority of the policy. Lower value indicates higher priority.", + "computed": true + }, + { + "name": "provisioning_status", + "type": "TypeString", + "description": "The provisioning status of this policy.", + "computed": true + }, + { + "name": "rules", + "type": "TypeList", + "description": "The rules for this policy.", + "computed": true, + "elem": { + "deleted": { + "name": "deleted", + "type": "TypeList", + "description": "If present, this property indicates the referenced resource has been deleted and providessome supplementary information.", + "computed": true, + "elem": { + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about deleted resources.", + "computed": true + } + } + }, + "href": { + "name": "href", + "type": "TypeString", + "description": "The rule's canonical URL.", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "The rule's unique identifier.", + "computed": true + } + } + }, { "name": "policy_id", "type": "TypeString", @@ -49392,26 +50047,26 @@ "type": "TypeString", "description": "The policy action.The enumerated values for this property are expected to expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the policy on which the unexpected property value was encountered.", "computed": true - } - ], - "ibm_is_lb_listener_policy_rule": [ - { - "name": "rule", - "type": "TypeString", - "description": "The rule identifier.", - "required": true }, { - "name": "created_at", + "name": "href", "type": "TypeString", - "description": "The date and time that this rule was created.", + "description": "The listener policy's canonical URL.", "computed": true }, { - "name": "field", + "name": "name", "type": "TypeString", - "description": "The field. This is applicable to `header`, `query`, and `body` rule types.If the rule type is `header`, this property is required.If the rule type is `query`, this is optional. If specified and the rule condition is not`matches_regex`, the value must be percent-encoded.If the rule type is `body`, this is optional.", + "description": "The user-defined name for this policy.", "computed": true + } + ], + "ibm_is_lb_listener_policy_rule": [ + { + "name": "policy", + "type": "TypeString", + "description": "The policy identifier.", + "required": true }, { "name": "provisioning_status", @@ -49426,33 +50081,33 @@ "computed": true }, { - "name": "value", + "name": "listener", "type": "TypeString", - "description": "Value to be matched for rule condition.If the rule type is `query` and the rule condition is not `matches_regex`, the value must be percent-encoded.", - "computed": true + "description": "The listener identifier.", + "required": true }, { - "name": "lb", + "name": "rule", "type": "TypeString", - "description": "The load balancer identifier.", + "description": "The rule identifier.", "required": true }, { - "name": "listener", + "name": "condition", "type": "TypeString", - "description": "The listener identifier.", - "required": true + "description": "The condition of the rule.", + "computed": true }, { - "name": "policy", + "name": "created_at", "type": "TypeString", - "description": "The policy identifier.", - "required": true + "description": "The date and time that this rule was created.", + "computed": true }, { - "name": "condition", + "name": "field", "type": "TypeString", - "description": "The condition of the rule.", + "description": "The field. This is applicable to `header`, `query`, and `body` rule types.If the rule type is `header`, this property is required.If the rule type is `query`, this is optional. If specified and the rule condition is not`matches_regex`, the value must be percent-encoded.If the rule type is `body`, this is optional.", "computed": true }, { @@ -49460,6 +50115,18 @@ "type": "TypeString", "description": "The rule's canonical URL.", "computed": true + }, + { + "name": "value", + "type": "TypeString", + "description": "Value to be matched for rule condition.If the rule type is `query` and the rule condition is not `matches_regex`, the value must be percent-encoded.", + "computed": true + }, + { + "name": "lb", + "type": "TypeString", + "description": "The load balancer identifier.", + "required": true } ], "ibm_is_lb_listener_policy_rules": [ @@ -49764,36 +50431,17 @@ ], "ibm_is_lb_pool": [ { - "name": "provisioning_status", + "name": "name", "type": "TypeString", - "description": "The provisioning status of this pool.", + "description": "The user-defined name for this load balancer pool.", + "optional": true, "computed": true }, { - "name": "session_persistence", - "type": "TypeList", - "description": "The session persistence of this pool.The enumerated values for this property are expected to expand in the future. Whenprocessing this property, check for and log unknown values. Optionally haltprocessing and surface the error, or bypass the pool on which the unexpectedproperty value was encountered.", - "computed": true, - "elem": { - "cookie_name": { - "name": "cookie_name", - "type": "TypeString", - "description": "The session persistence cookie name. Applicable only for type `app_cookie`. Names starting with `IBM` are not allowed.", - "computed": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "The session persistence type. The `http_cookie` and `app_cookie` types are applicable only to the `http` and `https` protocols.", - "computed": true - } - } - }, - { - "name": "identifier", + "name": "algorithm", "type": "TypeString", - "description": "The pool identifier.", - "optional": true + "description": "The load balancing algorithm.", + "computed": true }, { "name": "health_monitor", @@ -49840,17 +50488,17 @@ } }, { - "name": "instance_group", + "name": "href", + "type": "TypeString", + "description": "The pool's canonical URL.", + "computed": true + }, + { + "name": "members", "type": "TypeList", - "description": "The instance group that is managing this pool.", + "description": "The backend server members of the pool.", "computed": true, "elem": { - "crn": { - "name": "crn", - "type": "TypeString", - "description": "The CRN for this instance group.", - "computed": true - }, "deleted": { "name": "deleted", "type": "TypeList", @@ -49868,19 +50516,13 @@ "href": { "name": "href", "type": "TypeString", - "description": "The URL for this instance group.", + "description": "The member's canonical URL.", "computed": true }, "id": { "name": "id", "type": "TypeString", - "description": "The unique identifier for this instance group.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The user-defined name for this instance group.", + "description": "The unique identifier for this load balancer pool member.", "computed": true } } @@ -49892,17 +50534,67 @@ "computed": true }, { - "name": "href", + "name": "lb", "type": "TypeString", - "description": "The pool's canonical URL.", + "description": "The load balancer identifier.", + "required": true + }, + { + "name": "identifier", + "type": "TypeString", + "description": "The pool identifier.", + "optional": true + }, + { + "name": "provisioning_status", + "type": "TypeString", + "description": "The provisioning status of this pool.", "computed": true }, { - "name": "members", + "name": "proxy_protocol", + "type": "TypeString", + "description": "The PROXY protocol setting for this pool:- `v1`: Enabled with version 1 (human-readable header format)- `v2`: Enabled with version 2 (binary header format)- `disabled`: DisabledSupported by load balancers in the `application` family (otherwise always `disabled`).", + "computed": true + }, + { + "name": "session_persistence", "type": "TypeList", - "description": "The backend server members of the pool.", + "description": "The session persistence of this pool.The enumerated values for this property are expected to expand in the future. Whenprocessing this property, check for and log unknown values. Optionally haltprocessing and surface the error, or bypass the pool on which the unexpectedproperty value was encountered.", "computed": true, "elem": { + "cookie_name": { + "name": "cookie_name", + "type": "TypeString", + "description": "The session persistence cookie name. Applicable only for type `app_cookie`. Names starting with `IBM` are not allowed.", + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "The session persistence type. The `http_cookie` and `app_cookie` types are applicable only to the `http` and `https` protocols.", + "computed": true + } + } + }, + { + "name": "created_at", + "type": "TypeString", + "description": "The date and time that this pool was created.", + "computed": true + }, + { + "name": "instance_group", + "type": "TypeList", + "description": "The instance group that is managing this pool.", + "computed": true, + "elem": { + "crn": { + "name": "crn", + "type": "TypeString", + "description": "The CRN for this instance group.", + "computed": true + }, "deleted": { "name": "deleted", "type": "TypeList", @@ -49920,50 +50612,55 @@ "href": { "name": "href", "type": "TypeString", - "description": "The member's canonical URL.", + "description": "The URL for this instance group.", "computed": true }, "id": { "name": "id", "type": "TypeString", - "description": "The unique identifier for this load balancer pool member.", + "description": "The unique identifier for this instance group.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The user-defined name for this instance group.", "computed": true } } - }, + } + ], + "ibm_is_lb_pool_member": [ { - "name": "proxy_protocol", + "name": "member", "type": "TypeString", - "description": "The PROXY protocol setting for this pool:- `v1`: Enabled with version 1 (human-readable header format)- `v2`: Enabled with version 2 (binary header format)- `disabled`: DisabledSupported by load balancers in the `application` family (otherwise always `disabled`).", - "computed": true + "description": "The member identifier.", + "required": true }, { - "name": "lb", + "name": "health", "type": "TypeString", - "description": "The load balancer identifier.", - "required": true + "description": "Health of the server member in the pool.", + "computed": true }, { - "name": "name", + "name": "href", "type": "TypeString", - "description": "The user-defined name for this load balancer pool.", - "optional": true, + "description": "The member's canonical URL.", "computed": true }, { - "name": "algorithm", - "type": "TypeString", - "description": "The load balancing algorithm.", + "name": "port", + "type": "TypeInt", + "description": "The port number of the application running in the server member.", "computed": true }, { - "name": "created_at", - "type": "TypeString", - "description": "The date and time that this pool was created.", + "name": "weight", + "type": "TypeInt", + "description": "Weight of the server member. Applicable only if the pool algorithm is`weighted_round_robin`.", "computed": true - } - ], - "ibm_is_lb_pool_member": [ + }, { "name": "lb", "type": "TypeString", @@ -49971,21 +50668,21 @@ "required": true }, { - "name": "created_at", + "name": "pool", "type": "TypeString", - "description": "The date and time that this member was created.", - "computed": true + "description": "The pool identifier.", + "required": true }, { - "name": "health", + "name": "created_at", "type": "TypeString", - "description": "Health of the server member in the pool.", + "description": "The date and time that this member was created.", "computed": true }, { - "name": "port", - "type": "TypeInt", - "description": "The port number of the application running in the server member.", + "name": "provisioning_status", + "type": "TypeString", + "description": "The provisioning status of this member.", "computed": true }, { @@ -50039,39 +50736,21 @@ "computed": true } } - }, + } + ], + "ibm_is_lb_pool_members": [ { - "name": "pool", + "name": "lb", "type": "TypeString", - "description": "The pool identifier.", + "description": "The load balancer identifier.", "required": true }, { - "name": "member", + "name": "pool", "type": "TypeString", - "description": "The member identifier.", + "description": "The pool identifier.", "required": true }, - { - "name": "href", - "type": "TypeString", - "description": "The member's canonical URL.", - "computed": true - }, - { - "name": "provisioning_status", - "type": "TypeString", - "description": "The provisioning status of this member.", - "computed": true - }, - { - "name": "weight", - "type": "TypeInt", - "description": "Weight of the server member. Applicable only if the pool algorithm is`weighted_round_robin`.", - "computed": true - } - ], - "ibm_is_lb_pool_members": [ { "name": "members", "type": "TypeList", @@ -50173,21 +50852,15 @@ "computed": true } } - }, + } + ], + "ibm_is_lb_pools": [ { "name": "lb", "type": "TypeString", "description": "The load balancer identifier.", "required": true }, - { - "name": "pool", - "type": "TypeString", - "description": "The pool identifier.", - "required": true - } - ], - "ibm_is_lb_pools": [ { "name": "pools", "type": "TypeList", @@ -50387,15 +51060,27 @@ } } } - }, - { - "name": "lb", - "type": "TypeString", - "description": "The load balancer identifier.", - "required": true } ], "ibm_is_lb_profile": [ + { + "name": "name", + "type": "TypeString", + "description": "The name for this load balancer profile", + "required": true + }, + { + "name": "href", + "type": "TypeString", + "description": "The URL for this load balancer profile", + "computed": true + }, + { + "name": "family", + "type": "TypeString", + "description": "The product family this load balancer profile belongs to", + "computed": true + }, { "name": "route_mode_supported", "type": "TypeBool", @@ -50419,24 +51104,6 @@ "type": "TypeString", "description": "The UDP support type for a load balancer with this profile", "computed": true - }, - { - "name": "name", - "type": "TypeString", - "description": "The name for this load balancer profile", - "required": true - }, - { - "name": "href", - "type": "TypeString", - "description": "The URL for this load balancer profile", - "computed": true - }, - { - "name": "family", - "type": "TypeString", - "description": "The product family this load balancer profile belongs to", - "computed": true } ], "ibm_is_lb_profiles": [ @@ -50775,18 +51442,6 @@ } ], "ibm_is_network_acl": [ - { - "name": "vpc_name", - "type": "TypeString", - "description": "The name of the vpc the network acl resides in.", - "optional": true - }, - { - "name": "network_acl", - "type": "TypeString", - "description": "The network acl id.", - "optional": true - }, { "name": "crn", "type": "TypeString", @@ -50794,6 +51449,33 @@ "cloud_data_type": "crn", "computed": true }, + { + "name": "resource_group", + "type": "TypeList", + "description": "The resource group for this network ACL.", + "cloud_data_type": "resource_group", + "computed": true, + "elem": { + "href": { + "name": "href", + "type": "TypeString", + "description": "The URL for this resource group.", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "The unique identifier for this resource group.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The user-defined name for this resource group.", + "computed": true + } + } + }, { "name": "rules", "type": "TypeList", @@ -50987,15 +51669,15 @@ } }, { - "name": "vpc", + "name": "subnets", "type": "TypeList", - "description": "The VPC this network ACL is a part of.", + "description": "The subnets to which this network ACL is attached.", "computed": true, "elem": { "crn": { "name": "crn", "type": "TypeString", - "description": "The CRN for this VPC.", + "description": "The CRN for this subnet.", "computed": true }, "deleted": { @@ -51015,81 +51697,33 @@ "href": { "name": "href", "type": "TypeString", - "description": "The URL for this VPC.", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "The unique identifier for this VPC.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The unique user-defined name for this VPC.", - "computed": true - } - } - }, - { - "name": "access_tags", - "type": "TypeSet", - "description": "List of access tags", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "name", - "type": "TypeString", - "description": "The network acl name.", - "optional": true - }, - { - "name": "href", - "type": "TypeString", - "description": "The URL for this network ACL.", - "computed": true - }, - { - "name": "resource_group", - "type": "TypeList", - "description": "The resource group for this network ACL.", - "cloud_data_type": "resource_group", - "computed": true, - "elem": { - "href": { - "name": "href", - "type": "TypeString", - "description": "The URL for this resource group.", + "description": "The URL for this subnet.", "computed": true }, "id": { "name": "id", "type": "TypeString", - "description": "The unique identifier for this resource group.", + "description": "The unique identifier for this subnet.", "computed": true }, "name": { "name": "name", "type": "TypeString", - "description": "The user-defined name for this resource group.", + "description": "The user-defined name for this subnet.", "computed": true } } }, { - "name": "subnets", + "name": "vpc", "type": "TypeList", - "description": "The subnets to which this network ACL is attached.", + "description": "The VPC this network ACL is a part of.", "computed": true, "elem": { "crn": { "name": "crn", "type": "TypeString", - "description": "The CRN for this subnet.", + "description": "The CRN for this VPC.", "computed": true }, "deleted": { @@ -51109,61 +51743,74 @@ "href": { "name": "href", "type": "TypeString", - "description": "The URL for this subnet.", + "description": "The URL for this VPC.", "computed": true }, "id": { "name": "id", "type": "TypeString", - "description": "The unique identifier for this subnet.", + "description": "The unique identifier for this VPC.", "computed": true }, "name": { "name": "name", "type": "TypeString", - "description": "The user-defined name for this subnet.", + "description": "The unique user-defined name for this VPC.", "computed": true } } }, + { + "name": "name", + "type": "TypeString", + "description": "The network acl name.", + "optional": true + }, { "name": "created_at", "type": "TypeString", "description": "The date and time that the network ACL was created.", "computed": true - } - ], - "ibm_is_network_acl_rule": [ + }, { "name": "href", "type": "TypeString", - "description": "The URL for this network ACL rule", + "description": "The URL for this network ACL.", "computed": true }, { - "name": "icmp", - "type": "TypeList", - "description": "The protocol ICMP", + "name": "access_tags", + "type": "TypeSet", + "description": "List of access tags", "computed": true, "elem": { - "code": { - "name": "code", - "type": "TypeInt", - "description": "The ICMP traffic code to allow. Valid values from 0 to 255.", - "computed": true - }, - "type": { - "name": "type", - "type": "TypeInt", - "description": "The ICMP traffic type to allow. Valid values from 0 to 254.", - "computed": true - } + "type": "TypeString" } }, { - "name": "tcp", + "name": "vpc_name", + "type": "TypeString", + "description": "The name of the vpc the network acl resides in.", + "optional": true + }, + { + "name": "network_acl", + "type": "TypeString", + "description": "The network acl id.", + "optional": true + } + ], + "ibm_is_network_acl_rule": [ + { + "name": "name", + "type": "TypeString", + "description": "The user-defined name for this rule", + "required": true + }, + { + "name": "udp", "type": "TypeList", - "description": "TCP protocol", + "description": "UDP protocol", "computed": true, "elem": { "port_max": { @@ -51193,9 +51840,41 @@ } }, { - "name": "udp", + "name": "icmp", "type": "TypeList", - "description": "UDP protocol", + "description": "The protocol ICMP", + "computed": true, + "elem": { + "code": { + "name": "code", + "type": "TypeInt", + "description": "The ICMP traffic code to allow. Valid values from 0 to 255.", + "computed": true + }, + "type": { + "name": "type", + "type": "TypeInt", + "description": "The ICMP traffic type to allow. Valid values from 0 to 254.", + "computed": true + } + } + }, + { + "name": "protocol", + "type": "TypeString", + "description": "The protocol to enforce.", + "computed": true + }, + { + "name": "direction", + "type": "TypeString", + "description": "Whether the traffic to be matched is inbound or outbound.", + "computed": true + }, + { + "name": "tcp", + "type": "TypeList", + "description": "TCP protocol", "computed": true, "elem": { "port_max": { @@ -51225,39 +51904,27 @@ } }, { - "name": "source", + "name": "rule_id", "type": "TypeString", - "description": "The source IP address or CIDR block.", + "description": "Network ACL rule id", "computed": true }, { - "name": "destination", + "name": "source", "type": "TypeString", - "description": "The destination IP address or CIDR block.", + "description": "The source IP address or CIDR block.", "computed": true }, { - "name": "name", - "type": "TypeString", - "description": "The user-defined name for this rule", - "required": true - }, - { - "name": "protocol", + "name": "href", "type": "TypeString", - "description": "The protocol to enforce.", + "description": "The URL for this network ACL rule", "computed": true }, { - "name": "network_acl", - "type": "TypeString", - "description": "Network ACL id", - "required": true - }, - { - "name": "rule_id", + "name": "action", "type": "TypeString", - "description": "Network ACL rule id", + "description": "Whether to allow or deny matching traffic.", "computed": true }, { @@ -51267,25 +51934,37 @@ "computed": true }, { - "name": "direction", + "name": "destination", "type": "TypeString", - "description": "Whether the traffic to be matched is inbound or outbound.", + "description": "The destination IP address or CIDR block.", "computed": true }, { - "name": "before", + "name": "network_acl", "type": "TypeString", - "description": "The rule that this rule is immediately before. If absent, this is the last rule.", - "computed": true + "description": "Network ACL id", + "required": true }, { - "name": "action", + "name": "before", "type": "TypeString", - "description": "Whether to allow or deny matching traffic.", + "description": "The rule that this rule is immediately before. If absent, this is the last rule.", "computed": true } ], "ibm_is_network_acl_rules": [ + { + "name": "direction", + "type": "TypeString", + "description": "The direction of the rules to filter", + "optional": true + }, + { + "name": "network_acl", + "type": "TypeString", + "description": "Network ACL id", + "required": true + }, { "name": "rules", "type": "TypeList", @@ -51437,28 +52116,9 @@ } } } - }, - { - "name": "direction", - "type": "TypeString", - "description": "The direction of the rules to filter", - "optional": true - }, - { - "name": "network_acl", - "type": "TypeString", - "description": "Network ACL id", - "required": true } ], "ibm_is_network_acls": [ - { - "name": "resource_group", - "type": "TypeString", - "description": "Resource group identifier.", - "cloud_data_type": "resource_group", - "optional": true - }, { "name": "network_acls", "type": "TypeList", @@ -51815,15 +52475,16 @@ } } } + }, + { + "name": "resource_group", + "type": "TypeString", + "description": "Resource group identifier.", + "cloud_data_type": "resource_group", + "optional": true } ], "ibm_is_operating_system": [ - { - "name": "name", - "type": "TypeString", - "description": "The globally unique name for this operating system", - "required": true - }, { "name": "architecture", "type": "TypeString", @@ -51865,6 +52526,12 @@ "type": "TypeString", "description": "The vendor of the operating system", "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The globally unique name for this operating system", + "required": true } ], "ibm_is_operating_systems": [ @@ -51927,31 +52594,17 @@ ], "ibm_is_placement_group": [ { - "name": "resource_group", - "type": "TypeList", - "description": "The resource group for this placement group.", - "cloud_data_type": "resource_group", - "computed": true, - "elem": { - "href": { - "name": "href", - "type": "TypeString", - "description": "The URL for this resource group.", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "The unique identifier for this resource group.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The user-defined name for this resource group.", - "computed": true - } - } + "name": "name", + "type": "TypeString", + "description": "The placement group name.", + "required": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "The CRN for this placement group.", + "cloud_data_type": "crn", + "computed": true }, { "name": "strategy", @@ -51970,10 +52623,13 @@ } }, { - "name": "name", - "type": "TypeString", - "description": "The placement group name.", - "required": true + "name": "access_tags", + "type": "TypeSet", + "description": "List of access management tags", + "computed": true, + "elem": { + "type": "TypeString" + } }, { "name": "created_at", @@ -51987,28 +52643,39 @@ "description": "The URL for this placement group.", "computed": true }, - { - "name": "access_tags", - "type": "TypeSet", - "description": "List of access management tags", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "crn", - "type": "TypeString", - "description": "The CRN for this placement group.", - "cloud_data_type": "crn", - "computed": true - }, { "name": "lifecycle_state", "type": "TypeString", "description": "The lifecycle state of the placement group.", "computed": true }, + { + "name": "resource_group", + "type": "TypeList", + "description": "The resource group for this placement group.", + "cloud_data_type": "resource_group", + "computed": true, + "elem": { + "href": { + "name": "href", + "type": "TypeString", + "description": "The URL for this resource group.", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "The unique identifier for this resource group.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The user-defined name for this resource group.", + "computed": true + } + } + }, { "name": "resource_type", "type": "TypeString", @@ -52126,69 +52793,85 @@ ], "ibm_is_public_gateway": [ { - "name": "resource_status", + "name": "vpc", "type": "TypeString", - "description": "The status of the resource", + "description": "Public gateway VPC info", "computed": true }, { - "name": "resource_crn", + "name": "resource_name", "type": "TypeString", - "description": "The crn of the resource", + "description": "The name of the resource", "computed": true }, { - "name": "floating_ip", - "type": "TypeMap", - "description": "Public gateway floating IP", + "name": "resource_status", + "type": "TypeString", + "description": "The status of the resource", "computed": true }, { - "name": "zone", - "type": "TypeString", - "description": "Public gateway zone info", + "name": "floating_ip", + "type": "TypeMap", + "description": "Public gateway floating IP", "computed": true }, { - "name": "access_tags", + "name": "tags", "type": "TypeSet", - "description": "List of access management tags", + "description": "Service tags for the public gateway instance", + "cloud_data_type": "tags", "computed": true, "elem": { "type": "TypeString" } }, { - "name": "resource_controller_url", + "name": "crn", "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", + "description": "The crn of the resource", + "cloud_data_type": "crn", "computed": true }, { - "name": "name", + "name": "resource_crn", "type": "TypeString", - "description": "Public gateway Name", - "required": true + "description": "The crn of the resource", + "computed": true }, { - "name": "resource_name", + "name": "status", "type": "TypeString", - "description": "The name of the resource", + "description": "Public gateway instance status", "computed": true }, { - "name": "crn", + "name": "zone", "type": "TypeString", - "description": "The crn of the resource", - "cloud_data_type": "crn", + "description": "Public gateway zone info", "computed": true }, + { + "name": "access_tags", + "type": "TypeSet", + "description": "List of access management tags", + "computed": true, + "elem": { + "type": "TypeString" + } + }, { "name": "resource_group_name", "type": "TypeString", "description": "The resource group name in which resource is provisioned", "computed": true }, + { + "name": "name", + "type": "TypeString", + "description": "Public gateway Name", + "required": true + }, { "name": "resource_group", "type": "TypeString", @@ -52198,25 +52881,9 @@ "computed": true }, { - "name": "vpc", - "type": "TypeString", - "description": "Public gateway VPC info", - "computed": true - }, - { - "name": "tags", - "type": "TypeSet", - "description": "Service tags for the public gateway instance", - "cloud_data_type": "tags", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "status", + "name": "resource_controller_url", "type": "TypeString", - "description": "Public gateway instance status", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", "computed": true } ], @@ -52335,11 +53002,6 @@ } ], "ibm_is_region": [ - { - "name": "status", - "type": "TypeString", - "computed": true - }, { "name": "endpoint", "type": "TypeString", @@ -52349,6 +53011,11 @@ "name": "name", "type": "TypeString", "optional": true + }, + { + "name": "status", + "type": "TypeString", + "computed": true } ], "ibm_is_regions": [ @@ -52388,6 +53055,56 @@ "description": "Security group name", "required": true }, + { + "name": "resource_group_name", + "type": "TypeString", + "description": "The resource group name in which resource is provisioned", + "computed": true + }, + { + "name": "resource_controller_url", + "type": "TypeString", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", + "computed": true + }, + { + "name": "resource_name", + "type": "TypeString", + "description": "The name of the resource", + "computed": true + }, + { + "name": "resource_crn", + "type": "TypeString", + "description": "The crn of the resource", + "computed": true + }, + { + "name": "tags", + "type": "TypeSet", + "description": "List of tags", + "cloud_data_type": "tags", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "access_tags", + "type": "TypeSet", + "description": "List of access management tags", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "crn", + "type": "TypeString", + "description": "The crn of the resource", + "cloud_data_type": "crn", + "computed": true + }, { "name": "vpc", "type": "TypeString", @@ -52451,81 +53168,31 @@ "computed": true } } - }, - { - "name": "resource_controller_url", - "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", - "computed": true - }, - { - "name": "resource_group_name", - "type": "TypeString", - "description": "The resource group name in which resource is provisioned", - "computed": true - }, - { - "name": "access_tags", - "type": "TypeSet", - "description": "List of access management tags", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "crn", - "type": "TypeString", - "description": "The crn of the resource", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "resource_name", - "type": "TypeString", - "description": "The name of the resource", - "computed": true - }, - { - "name": "resource_crn", - "type": "TypeString", - "description": "The crn of the resource", - "computed": true - }, - { - "name": "tags", - "type": "TypeSet", - "description": "List of tags", - "cloud_data_type": "tags", - "computed": true, - "elem": { - "type": "TypeString" - } } ], "ibm_is_security_group_rule": [ { - "name": "code", + "name": "type", "type": "TypeInt", - "description": "The ICMP traffic code to allow.", + "description": "The ICMP traffic type to allow.", "computed": true }, { - "name": "security_group", + "name": "security_group_rule", "type": "TypeString", - "description": "The security group identifier.", + "description": "The rule identifier.", "required": true }, { - "name": "href", + "name": "ip_version", "type": "TypeString", - "description": "The URL for this security group rule.", + "description": "The IP version to enforce. The format of `remote.address` or `remote.cidr_block` must match this property, if they are used. Alternatively, if `remote` references a security group, then this rule only applies to IP addresses (network interfaces) in that group matching this IP version.", "computed": true }, { - "name": "ip_version", + "name": "protocol", "type": "TypeString", - "description": "The IP version to enforce. The format of `remote.address` or `remote.cidr_block` must match this property, if they are used. Alternatively, if `remote` references a security group, then this rule only applies to IP addresses (network interfaces) in that group matching this IP version.", + "description": "The protocol to enforce.", "computed": true }, { @@ -52586,6 +53253,12 @@ } } }, + { + "name": "code", + "type": "TypeInt", + "description": "The ICMP traffic code to allow.", + "computed": true + }, { "name": "port_max", "type": "TypeInt", @@ -52599,9 +53272,9 @@ "computed": true }, { - "name": "security_group_rule", + "name": "security_group", "type": "TypeString", - "description": "The rule identifier.", + "description": "The security group identifier.", "required": true }, { @@ -52611,15 +53284,9 @@ "computed": true }, { - "name": "protocol", + "name": "href", "type": "TypeString", - "description": "The protocol to enforce.", - "computed": true - }, - { - "name": "type", - "type": "TypeInt", - "description": "The ICMP traffic type to allow.", + "description": "The URL for this security group rule.", "computed": true } ], @@ -52752,6 +53419,18 @@ } ], "ibm_is_security_group_target": [ + { + "name": "security_group", + "type": "TypeString", + "description": "Security group id", + "required": true + }, + { + "name": "target", + "type": "TypeString", + "description": "security group target identifier", + "computed": true + }, { "name": "name", "type": "TypeString", @@ -52776,27 +53455,9 @@ "type": "TypeString", "description": "Link to documentation about deleted resources", "computed": true - }, - { - "name": "security_group", - "type": "TypeString", - "description": "Security group id", - "required": true - }, - { - "name": "target", - "type": "TypeString", - "description": "security group target identifier", - "computed": true } ], "ibm_is_security_group_targets": [ - { - "name": "security_group", - "type": "TypeString", - "description": "Security group id", - "required": true - }, { "name": "targets", "type": "TypeList", @@ -52834,9 +53495,22 @@ "computed": true } } + }, + { + "name": "security_group", + "type": "TypeString", + "description": "Security group id", + "required": true } ], "ibm_is_security_groups": [ + { + "name": "resource_group", + "type": "TypeString", + "description": "resource group identifier.", + "cloud_data_type": "resource_group", + "optional": true + }, { "name": "vpc_id", "type": "TypeString", @@ -53145,28 +53819,9 @@ } } } - }, - { - "name": "resource_group", - "type": "TypeString", - "description": "resource group identifier.", - "cloud_data_type": "resource_group", - "optional": true } ], "ibm_is_share": [ - { - "name": "share", - "type": "TypeString", - "description": "The file share identifier.", - "optional": true - }, - { - "name": "iops", - "type": "TypeInt", - "description": "The maximum input/output operation performance bandwidth per second for the file share.", - "computed": true - }, { "name": "replication_role", "type": "TypeString", @@ -53174,23 +53829,36 @@ "computed": true }, { - "name": "resource_group", + "name": "replication_status", "type": "TypeString", - "description": "The unique identifier of the resource group for this file share.", - "cloud_data_type": "resource_group", - "computed": true - }, - { - "name": "size", - "type": "TypeInt", - "description": "The size of the file share rounded up to the next gigabyte.", + "description": "The replication status of the file share.* `active`: This share is actively participating in replication, and the replica's data is up-to-date with the replication schedule.* `failover_pending`: This share is performing a replication failover.* `initializing`: This share is initializing replication.* `none`: This share is not participating in replication.* `split_pending`: This share is performing a replication split.", "computed": true }, { - "name": "access_control_mode", - "type": "TypeString", - "description": "The access control mode for the share", - "computed": true + "name": "replication_status_reasons", + "type": "TypeList", + "description": "The reasons for the current replication status (if any).The enumerated reason code values for this property will expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the resource on which the unexpected reason code was encountered.", + "computed": true, + "elem": { + "code": { + "name": "code", + "type": "TypeString", + "description": "A snake case string succinctly identifying the status reason.", + "computed": true + }, + "message": { + "name": "message", + "type": "TypeString", + "description": "An explanation of the status reason.", + "computed": true + }, + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about this status reason.", + "computed": true + } + } }, { "name": "source_share", @@ -53245,34 +53913,55 @@ } }, { - "name": "zone", - "type": "TypeString", - "description": "The globally unique name of the zone this file share will reside in.", - "computed": true - }, - { - "name": "crn", - "type": "TypeString", - "description": "The CRN for this share.", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "encryption", - "type": "TypeString", - "description": "The type of encryption used for this file share.", - "computed": true - }, - { - "name": "lifecycle_state", - "type": "TypeString", - "description": "The lifecycle state of the file share.", - "computed": true + "name": "share_targets", + "type": "TypeList", + "description": "Mount targets for the file share.", + "computed": true, + "elem": { + "deleted": { + "name": "deleted", + "type": "TypeList", + "description": "If present, this property indicates the referenced resource has been deleted and providessome supplementary information.", + "computed": true, + "elem": { + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about deleted resources.", + "computed": true + } + } + }, + "href": { + "name": "href", + "type": "TypeString", + "description": "The URL for this share target.", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "The unique identifier for this share target.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The user-defined name for this share target.", + "computed": true + }, + "resource_type": { + "name": "resource_type", + "type": "TypeString", + "description": "The type of resource referenced.", + "computed": true + } + } }, { - "name": "profile", - "type": "TypeString", - "description": "The globally unique name of the profile this file share uses.", + "name": "iops", + "type": "TypeInt", + "description": "The maximum input/output operation performance bandwidth per second for the file share.", "computed": true }, { @@ -53327,40 +54016,6 @@ } } }, - { - "name": "resource_type", - "type": "TypeString", - "description": "The type of resource referenced.", - "computed": true - }, - { - "name": "access_tags", - "type": "TypeSet", - "description": "List of access management tags", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "name", - "type": "TypeString", - "description": "Name of the share.", - "optional": true, - "computed": true - }, - { - "name": "encryption_key", - "type": "TypeString", - "description": "The key used to encrypt this file share. The CRN of the [Key Protect Root Key](https://cloud.ibm.com/docs/key-protect?topic=key-protect-getting-started-tutorial) or [Hyper Protect Crypto Service Root Key](https://cloud.ibm.com/docs/hs-crypto?topic=hs-crypto-get-started) for this resource.", - "computed": true - }, - { - "name": "href", - "type": "TypeString", - "description": "The URL for this share.", - "computed": true - }, { "name": "latest_job", "type": "TypeList", @@ -53414,250 +54069,97 @@ "computed": true }, { - "name": "replication_status_reasons", - "type": "TypeList", - "description": "The reasons for the current replication status (if any).The enumerated reason code values for this property will expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the resource on which the unexpected reason code was encountered.", - "computed": true, - "elem": { - "code": { - "name": "code", - "type": "TypeString", - "description": "A snake case string succinctly identifying the status reason.", - "computed": true - }, - "message": { - "name": "message", - "type": "TypeString", - "description": "An explanation of the status reason.", - "computed": true - }, - "more_info": { - "name": "more_info", - "type": "TypeString", - "description": "Link to documentation about this status reason.", - "computed": true - } - } - }, - { - "name": "created_at", + "name": "resource_group", "type": "TypeString", - "description": "The date and time that the file share is created.", + "description": "The unique identifier of the resource group for this file share.", + "cloud_data_type": "resource_group", "computed": true }, { - "name": "replication_status", - "type": "TypeString", - "description": "The replication status of the file share.* `active`: This share is actively participating in replication, and the replica's data is up-to-date with the replication schedule.* `failover_pending`: This share is performing a replication failover.* `initializing`: This share is initializing replication.* `none`: This share is not participating in replication.* `split_pending`: This share is performing a replication split.", + "name": "size", + "type": "TypeInt", + "description": "The size of the file share rounded up to the next gigabyte.", "computed": true }, { - "name": "share_targets", - "type": "TypeList", - "description": "Mount targets for the file share.", - "computed": true, - "elem": { - "deleted": { - "name": "deleted", - "type": "TypeList", - "description": "If present, this property indicates the referenced resource has been deleted and providessome supplementary information.", - "computed": true, - "elem": { - "more_info": { - "name": "more_info", - "type": "TypeString", - "description": "Link to documentation about deleted resources.", - "computed": true - } - } - }, - "href": { - "name": "href", - "type": "TypeString", - "description": "The URL for this share target.", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "The unique identifier for this share target.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The user-defined name for this share target.", - "computed": true - }, - "resource_type": { - "name": "resource_type", - "type": "TypeString", - "description": "The type of resource referenced.", - "computed": true - } - } - }, - { - "name": "tags", + "name": "access_tags", "type": "TypeSet", - "description": "List of tags", - "cloud_data_type": "tags", + "description": "List of access management tags", "computed": true, "elem": { "type": "TypeString" } - } - ], - "ibm_is_share_mount_target": [ + }, { - "name": "mount_target", + "name": "name", "type": "TypeString", - "description": "The share target identifier.", - "optional": true + "description": "Name of the share.", + "optional": true, + "computed": true }, { - "name": "share_name", + "name": "encryption", "type": "TypeString", - "description": "The file share name.", - "optional": true + "description": "The type of encryption used for this file share.", + "computed": true }, { - "name": "transit_encryption", + "name": "resource_type", "type": "TypeString", + "description": "The type of resource referenced.", "computed": true }, { - "name": "name", + "name": "encryption_key", "type": "TypeString", - "description": "The user-defined name for this share target.", + "description": "The key used to encrypt this file share. The CRN of the [Key Protect Root Key](https://cloud.ibm.com/docs/key-protect?topic=key-protect-getting-started-tutorial) or [Hyper Protect Crypto Service Root Key](https://cloud.ibm.com/docs/hs-crypto?topic=hs-crypto-get-started) for this resource.", "computed": true }, { - "name": "virtual_network_interface", - "type": "TypeList", - "description": "The virtual network interface for this file share mount target.", - "computed": true, - "elem": { - "crn": { - "name": "crn", - "type": "TypeString", - "description": "The CRN for this virtual network interface.", - "computed": true - }, - "deleted": { - "name": "deleted", - "type": "TypeList", - "description": "If present, this property indicates the referenced resource has been deleted and providessome supplementary information.", - "computed": true, - "elem": { - "more_info": { - "name": "more_info", - "type": "TypeString", - "description": "Link to documentation about deleted resources.", - "computed": true - } - } - }, - "href": { - "name": "href", - "type": "TypeString", - "description": "The URL for this virtual network interface.", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "The unique identifier for this virtual network interface.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The unique user-defined name for this virtual network interface.", - "computed": true - }, - "resource_type": { - "name": "resource_type", - "type": "TypeString", - "description": "The resource type.", - "computed": true - } - } + "name": "href", + "type": "TypeString", + "description": "The URL for this share.", + "computed": true }, { - "name": "access_control_mode", + "name": "crn", "type": "TypeString", - "description": "The access control mode for the share", + "description": "The CRN for this share.", + "cloud_data_type": "crn", "computed": true }, { - "name": "href", + "name": "lifecycle_state", "type": "TypeString", - "description": "The URL for this share target.", + "description": "The lifecycle state of the file share.", "computed": true }, { - "name": "mount_path", + "name": "profile", "type": "TypeString", - "description": "The mount path for the share.The IP addresses used in the mount path are currently within the IBM services IP range, but are expected to change to be within one of the VPC's subnets in the future.", + "description": "The globally unique name of the profile this file share uses.", "computed": true }, { - "name": "resource_type", + "name": "zone", "type": "TypeString", - "description": "The type of resource referenced.", + "description": "The globally unique name of the zone this file share will reside in.", "computed": true }, { - "name": "vpc", - "type": "TypeList", - "description": "The VPC to which this share target is allowing to mount the file share.", + "name": "access_control_mode", + "type": "TypeString", + "description": "The access control mode for the share", + "computed": true + }, + { + "name": "tags", + "type": "TypeSet", + "description": "List of tags", + "cloud_data_type": "tags", "computed": true, "elem": { - "crn": { - "name": "crn", - "type": "TypeString", - "description": "The CRN for this VPC.", - "computed": true - }, - "deleted": { - "name": "deleted", - "type": "TypeList", - "description": "If present, this property indicates the referenced resource has been deleted and providessome supplementary information.", - "computed": true, - "elem": { - "more_info": { - "name": "more_info", - "type": "TypeString", - "description": "Link to documentation about deleted resources.", - "computed": true - } - } - }, - "href": { - "name": "href", - "type": "TypeString", - "description": "The URL for this VPC.", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "The unique identifier for this VPC.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The unique user-defined name for this VPC.", - "computed": true - }, - "resource_type": { - "name": "resource_type", - "type": "TypeString", - "description": "The resource type.", - "computed": true - } + "type": "TypeString" } }, { @@ -53666,6 +54168,44 @@ "description": "The file share identifier.", "optional": true }, + { + "name": "created_at", + "type": "TypeString", + "description": "The date and time that the file share is created.", + "computed": true + } + ], + "ibm_is_share_mount_target": [ + { + "name": "lifecycle_state", + "type": "TypeString", + "description": "The lifecycle state of the mount target.", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The user-defined name for this share target.", + "computed": true + }, + { + "name": "share", + "type": "TypeString", + "description": "The file share identifier.", + "optional": true + }, + { + "name": "mount_target", + "type": "TypeString", + "description": "The share target identifier.", + "optional": true + }, + { + "name": "share_name", + "type": "TypeString", + "description": "The file share name.", + "optional": true + }, { "name": "mount_target_name", "type": "TypeString", @@ -53679,9 +54219,21 @@ "computed": true }, { - "name": "lifecycle_state", + "name": "access_control_mode", "type": "TypeString", - "description": "The lifecycle state of the mount target.", + "description": "The access control mode for the share", + "computed": true + }, + { + "name": "href", + "type": "TypeString", + "description": "The URL for this share target.", + "computed": true + }, + { + "name": "mount_path", + "type": "TypeString", + "description": "The mount path for the share.The IP addresses used in the mount path are currently within the IBM services IP range, but are expected to change to be within one of the VPC's subnets in the future.", "computed": true }, { @@ -53735,6 +54287,121 @@ "computed": true } } + }, + { + "name": "transit_encryption", + "type": "TypeString", + "computed": true + }, + { + "name": "resource_type", + "type": "TypeString", + "description": "The type of resource referenced.", + "computed": true + }, + { + "name": "vpc", + "type": "TypeList", + "description": "The VPC to which this share target is allowing to mount the file share.", + "computed": true, + "elem": { + "crn": { + "name": "crn", + "type": "TypeString", + "description": "The CRN for this VPC.", + "computed": true + }, + "deleted": { + "name": "deleted", + "type": "TypeList", + "description": "If present, this property indicates the referenced resource has been deleted and providessome supplementary information.", + "computed": true, + "elem": { + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about deleted resources.", + "computed": true + } + } + }, + "href": { + "name": "href", + "type": "TypeString", + "description": "The URL for this VPC.", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "The unique identifier for this VPC.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The unique user-defined name for this VPC.", + "computed": true + }, + "resource_type": { + "name": "resource_type", + "type": "TypeString", + "description": "The resource type.", + "computed": true + } + } + }, + { + "name": "virtual_network_interface", + "type": "TypeList", + "description": "The virtual network interface for this file share mount target.", + "computed": true, + "elem": { + "crn": { + "name": "crn", + "type": "TypeString", + "description": "The CRN for this virtual network interface.", + "computed": true + }, + "deleted": { + "name": "deleted", + "type": "TypeList", + "description": "If present, this property indicates the referenced resource has been deleted and providessome supplementary information.", + "computed": true, + "elem": { + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about deleted resources.", + "computed": true + } + } + }, + "href": { + "name": "href", + "type": "TypeString", + "description": "The URL for this virtual network interface.", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "The unique identifier for this virtual network interface.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The unique user-defined name for this virtual network interface.", + "computed": true + }, + "resource_type": { + "name": "resource_type", + "type": "TypeString", + "description": "The resource type.", + "computed": true + } + } } ], "ibm_is_share_mount_targets": [ @@ -53970,6 +54637,24 @@ } ], "ibm_is_share_profile": [ + { + "name": "family", + "type": "TypeString", + "description": "The product family this share profile belongs to.", + "computed": true + }, + { + "name": "href", + "type": "TypeString", + "description": "The URL for this share profile.", + "computed": true + }, + { + "name": "resource_type", + "type": "TypeString", + "description": "The resource type.", + "computed": true + }, { "name": "name", "type": "TypeString", @@ -54078,24 +54763,6 @@ "computed": true } } - }, - { - "name": "family", - "type": "TypeString", - "description": "The product family this share profile belongs to.", - "computed": true - }, - { - "name": "href", - "type": "TypeString", - "description": "The URL for this share profile.", - "computed": true - }, - { - "name": "resource_type", - "type": "TypeString", - "description": "The resource type.", - "computed": true } ], "ibm_is_share_profiles": [ @@ -54623,42 +55290,70 @@ ], "ibm_is_snapshot": [ { - "name": "clones", - "type": "TypeSet", - "description": "Zones for creating the snapshot clone", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "encryption_key", + "type": "TypeString", + "description": "A reference to the root key used to wrap the data encryption key for the source volume.", + "computed": true }, { - "name": "tags", - "type": "TypeSet", - "description": "User Tags for the snapshot", - "cloud_data_type": "tags", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "minimum_capacity", + "type": "TypeInt", + "description": "Minimum capacity of the snapshot", + "computed": true }, { - "name": "source_snapshot", + "name": "source_image", + "type": "TypeString", + "description": "If present, the image id from which the data on this volume was most directly provisioned.", + "computed": true + }, + { + "name": "bootable", + "type": "TypeBool", + "description": "Indicates if a boot volume attachment can be created with a volume created from this snapshot", + "computed": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "The crn of the resource", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "encryption", + "type": "TypeString", + "description": "Encryption type of the snapshot", + "computed": true + }, + { + "name": "identifier", + "type": "TypeString", + "description": "Snapshot identifier", + "optional": true + }, + { + "name": "source_volume", + "type": "TypeString", + "description": "Snapshot source volume id", + "computed": true + }, + { + "name": "lifecycle_state", + "type": "TypeString", + "description": "Snapshot lifecycle state", + "computed": true + }, + { + "name": "backup_policy_plan", "type": "TypeList", - "description": "If present, the source snapshot this snapshot was created from.", - "optional": true, + "description": "If present, the backup policy plan which created this snapshot.", "computed": true, "elem": { - "crn": { - "name": "crn", - "type": "TypeString", - "description": "The CRN of the source snapshot.", - "optional": true, - "computed": true - }, "deleted": { "name": "deleted", "type": "TypeList", - "description": "If present, this property indicates the referenced resource has been deleted, and providessome supplementary information.", + "description": "If present, this property indicates the referenced resource has been deleted and provides some supplementary information.", "computed": true, "elem": { "more_info": { @@ -54672,61 +55367,60 @@ "href": { "name": "href", "type": "TypeString", - "description": "The URL for the source snapshot.", + "description": "The URL for this backup policy plan.", "computed": true }, "id": { "name": "id", "type": "TypeString", - "description": "The unique identifier for the source snapshot.", + "description": "The unique identifier for this backup policy plan.", "computed": true }, "name": { "name": "name", "type": "TypeString", - "description": "The name for the source snapshot. The name is unique across all snapshots in the source snapshot's native region.", + "description": "The unique user-defined name for this backup policy plan.", "computed": true }, - "remote": { - "name": "remote", - "type": "TypeList", - "description": "If present, this property indicates the referenced resource is remote to this region,and identifies the native region.", - "computed": true, - "elem": { - "href": { - "name": "href", - "type": "TypeString", - "description": "The URL for this region.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The globally unique name for this region.", - "computed": true - } - } - }, "resource_type": { "name": "resource_type", "type": "TypeString", - "description": "The resource type.", + "description": "The type of resource referenced", "computed": true } } }, { - "name": "encryption", + "name": "name", "type": "TypeString", - "description": "Encryption type of the snapshot", - "computed": true + "description": "Snapshot name", + "optional": true }, { - "name": "encryption_key", - "type": "TypeString", - "description": "A reference to the root key used to wrap the data encryption key for the source volume.", + "name": "access_tags", + "type": "TypeSet", + "description": "List of access tags", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "size", + "type": "TypeInt", + "description": "The size of the snapshot", "computed": true }, + { + "name": "tags", + "type": "TypeSet", + "description": "User Tags for the snapshot", + "cloud_data_type": "tags", + "computed": true, + "elem": { + "type": "TypeString" + } + }, { "name": "href", "type": "TypeString", @@ -54734,9 +55428,24 @@ "computed": true }, { - "name": "minimum_capacity", - "type": "TypeInt", - "description": "Minimum capacity of the snapshot", + "name": "resource_type", + "type": "TypeString", + "description": "The resource type of the snapshot", + "computed": true + }, + { + "name": "clones", + "type": "TypeSet", + "description": "Zones for creating the snapshot clone", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "captured_at", + "type": "TypeString", + "description": "The date and time that this snapshot was created", "computed": true }, { @@ -54812,67 +55521,30 @@ } }, { - "name": "resource_type", - "type": "TypeString", - "description": "The resource type of the snapshot", - "computed": true - }, - { - "name": "size", - "type": "TypeInt", - "description": "The size of the snapshot", - "computed": true - }, - { - "name": "operating_system", - "type": "TypeString", - "description": "The globally unique name for the operating system included in this image", - "computed": true - }, - { - "name": "bootable", - "type": "TypeBool", - "description": "Indicates if a boot volume attachment can be created with a volume created from this snapshot", - "computed": true - }, - { - "name": "lifecycle_state", - "type": "TypeString", - "description": "Snapshot lifecycle state", - "computed": true - }, - { - "name": "captured_at", - "type": "TypeString", - "description": "The date and time that this snapshot was created", - "computed": true - }, - { - "name": "access_tags", - "type": "TypeSet", - "description": "List of access tags", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "crn", + "name": "resource_group", "type": "TypeString", - "description": "The crn of the resource", - "cloud_data_type": "crn", + "description": "Resource group info", + "cloud_data_type": "resource_group", "computed": true }, { - "name": "backup_policy_plan", + "name": "source_snapshot", "type": "TypeList", - "description": "If present, the backup policy plan which created this snapshot.", + "description": "If present, the source snapshot this snapshot was created from.", + "optional": true, "computed": true, "elem": { + "crn": { + "name": "crn", + "type": "TypeString", + "description": "The CRN of the source snapshot.", + "optional": true, + "computed": true + }, "deleted": { "name": "deleted", "type": "TypeList", - "description": "If present, this property indicates the referenced resource has been deleted and provides some supplementary information.", + "description": "If present, this property indicates the referenced resource has been deleted, and providessome supplementary information.", "computed": true, "elem": { "more_info": { @@ -54886,58 +55558,53 @@ "href": { "name": "href", "type": "TypeString", - "description": "The URL for this backup policy plan.", + "description": "The URL for the source snapshot.", "computed": true }, "id": { "name": "id", "type": "TypeString", - "description": "The unique identifier for this backup policy plan.", + "description": "The unique identifier for the source snapshot.", "computed": true }, "name": { "name": "name", "type": "TypeString", - "description": "The unique user-defined name for this backup policy plan.", + "description": "The name for the source snapshot. The name is unique across all snapshots in the source snapshot's native region.", "computed": true }, + "remote": { + "name": "remote", + "type": "TypeList", + "description": "If present, this property indicates the referenced resource is remote to this region,and identifies the native region.", + "computed": true, + "elem": { + "href": { + "name": "href", + "type": "TypeString", + "description": "The URL for this region.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The globally unique name for this region.", + "computed": true + } + } + }, "resource_type": { "name": "resource_type", "type": "TypeString", - "description": "The type of resource referenced", + "description": "The resource type.", "computed": true } } }, { - "name": "identifier", - "type": "TypeString", - "description": "Snapshot identifier", - "optional": true - }, - { - "name": "name", - "type": "TypeString", - "description": "Snapshot name", - "optional": true - }, - { - "name": "resource_group", - "type": "TypeString", - "description": "Resource group info", - "cloud_data_type": "resource_group", - "computed": true - }, - { - "name": "source_volume", - "type": "TypeString", - "description": "Snapshot source volume id", - "computed": true - }, - { - "name": "source_image", + "name": "operating_system", "type": "TypeString", - "description": "If present, the image id from which the data on this volume was most directly provisioned.", + "description": "The globally unique name for the operating system included in this image", "computed": true } ], @@ -54967,11 +55634,6 @@ } ], "ibm_is_snapshot_clones": [ - { - "name": "snapshot", - "type": "TypeString", - "required": true - }, { "name": "clones", "type": "TypeList", @@ -54997,26 +55659,30 @@ "computed": true } } + }, + { + "name": "snapshot", + "type": "TypeString", + "required": true } ], "ibm_is_snapshots": [ { - "name": "resource_group", + "name": "source_image", "type": "TypeString", - "description": "Filters the snapshot collection by resources group id", - "cloud_data_type": "resource_group", + "description": "Filters the snapshot collection by source image id", "optional": true }, { - "name": "name", + "name": "source_volume", "type": "TypeString", - "description": "Filters the snapshot collection by snapshot name", + "description": "Filters the snapshot collection by source volume id", "optional": true }, { - "name": "snapshot_copies_id", + "name": "snapshot_copies_name", "type": "TypeString", - "description": "Filters the collection to snapshots with copies with the specified identifier.", + "description": "Filters the collection to snapshots with copies with the exact specified name.", "optional": true }, { @@ -55025,6 +55691,12 @@ "description": "Filters the collection to snapshots with copies with the specified CRN.", "optional": true }, + { + "name": "snapshot_copies_remote_region_name", + "type": "TypeString", + "description": "Filters the collection to snapshots with copies with the exact remote region name.", + "optional": true + }, { "name": "source_snapshot_remote_region_name", "type": "TypeString", @@ -55032,9 +55704,22 @@ "optional": true }, { - "name": "source_image", + "name": "resource_group", "type": "TypeString", - "description": "Filters the snapshot collection by source image id", + "description": "Filters the snapshot collection by resources group id", + "cloud_data_type": "resource_group", + "optional": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Filters the snapshot collection by snapshot name", + "optional": true + }, + { + "name": "snapshot_copies_id", + "type": "TypeString", + "description": "Filters the collection to snapshots with copies with the specified identifier.", "optional": true }, { @@ -55377,29 +56062,11 @@ "description": "Filters the collection to resources with the source snapshot with the specified identifier.", "optional": true }, - { - "name": "source_volume", - "type": "TypeString", - "description": "Filters the snapshot collection by source volume id", - "optional": true - }, { "name": "tag", "type": "TypeString", "description": "Filters the collection to resources with the exact tag value", "optional": true - }, - { - "name": "snapshot_copies_name", - "type": "TypeString", - "description": "Filters the collection to snapshots with copies with the exact specified name.", - "optional": true - }, - { - "name": "snapshot_copies_remote_region_name", - "type": "TypeString", - "description": "Filters the collection to snapshots with copies with the exact remote region name.", - "optional": true } ], "ibm_is_source_share": [ @@ -55436,6 +56103,18 @@ } ], "ibm_is_ssh_key": [ + { + "name": "fingerprint", + "type": "TypeString", + "description": "The ssh key Fingerprint", + "computed": true + }, + { + "name": "public_key", + "type": "TypeString", + "description": "SSH Public key data", + "computed": true + }, { "name": "resource_name", "type": "TypeString", @@ -55443,12 +56122,18 @@ "computed": true }, { - "name": "crn", + "name": "resource_crn", "type": "TypeString", "description": "The crn of the resource", - "cloud_data_type": "crn", "computed": true }, + { + "name": "resource_group", + "type": "TypeString", + "description": "Resource group ID", + "cloud_data_type": "resource_group", + "optional": true + }, { "name": "name", "type": "TypeString", @@ -55462,16 +56147,19 @@ "computed": true }, { - "name": "fingerprint", + "name": "resource_group_name", "type": "TypeString", - "description": "The ssh key Fingerprint", + "description": "The resource group name in which resource is provisioned", "computed": true }, { - "name": "public_key", - "type": "TypeString", - "description": "SSH Public key data", - "computed": true + "name": "access_tags", + "type": "TypeSet", + "description": "List of access tags", + "computed": true, + "elem": { + "type": "TypeString" + } }, { "name": "length", @@ -55479,13 +56167,6 @@ "description": "The ssh key length", "computed": true }, - { - "name": "resource_group", - "type": "TypeString", - "description": "Resource group ID", - "cloud_data_type": "resource_group", - "optional": true - }, { "name": "resource_controller_url", "type": "TypeString", @@ -55493,25 +56174,11 @@ "computed": true }, { - "name": "resource_crn", + "name": "crn", "type": "TypeString", "description": "The crn of the resource", + "cloud_data_type": "crn", "computed": true - }, - { - "name": "resource_group_name", - "type": "TypeString", - "description": "The resource group name in which resource is provisioned", - "computed": true - }, - { - "name": "access_tags", - "type": "TypeSet", - "description": "List of access tags", - "computed": true, - "elem": { - "type": "TypeString" - } } ], "ibm_is_ssh_keys": [ @@ -55615,56 +56282,9 @@ ], "ibm_is_subnet": [ { - "name": "total_ipv4_address_count", - "type": "TypeInt", - "computed": true - }, - { - "name": "resource_name", - "type": "TypeString", - "description": "The name of the resource", - "computed": true - }, - { - "name": "crn", - "type": "TypeString", - "description": "The crn of the resource", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "zone", - "type": "TypeString", - "computed": true - }, - { - "name": "resource_controller_url", - "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", - "computed": true - }, - { - "name": "resource_group_name", - "type": "TypeString", - "description": "The resource group name in which resource is provisioned", - "computed": true - }, - { - "name": "available_ipv4_address_count", - "type": "TypeInt", - "computed": true - }, - { - "name": "name", - "type": "TypeString", - "optional": true, - "computed": true - }, - { - "name": "tags", + "name": "access_tags", "type": "TypeSet", - "description": "List of tags", - "cloud_data_type": "tags", + "description": "List of access tags", "computed": true, "elem": { "type": "TypeString" @@ -55676,60 +56296,20 @@ "computed": true }, { - "name": "vpc_name", - "type": "TypeString", - "computed": true - }, - { - "name": "vpc", - "type": "TypeString", - "computed": true - }, - { - "name": "resource_group", - "type": "TypeString", - "cloud_data_type": "resource_group", - "computed": true - }, - { - "name": "resource_crn", - "type": "TypeString", - "description": "The crn of the resource", - "computed": true - }, - { - "name": "identifier", - "type": "TypeString", - "optional": true - }, - { - "name": "ipv4_cidr_block", - "type": "TypeString", - "computed": true - }, - { - "name": "access_tags", - "type": "TypeSet", - "description": "List of access tags", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "network_acl", + "name": "zone", "type": "TypeString", "computed": true }, { - "name": "public_gateway", + "name": "resource_controller_url", "type": "TypeString", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", "computed": true }, { - "name": "resource_status", + "name": "resource_name", "type": "TypeString", - "description": "The status of the resource", + "description": "The name of the resource", "computed": true }, { @@ -55777,57 +56357,138 @@ "computed": true } } - } - ], - "ibm_is_subnet_reserved_ip": [ + }, { - "name": "reserved_ip", + "name": "identifier", "type": "TypeString", - "description": "The reserved IP identifier.", - "required": true + "optional": true }, { - "name": "address", + "name": "total_ipv4_address_count", + "type": "TypeInt", + "computed": true + }, + { + "name": "network_acl", "type": "TypeString", - "description": "The IP address", "computed": true }, { - "name": "created_at", + "name": "ipv4_cidr_block", "type": "TypeString", - "description": "The date and time that the reserved IP was created.", "computed": true }, { - "name": "target_crn", + "name": "available_ipv4_address_count", + "type": "TypeInt", + "computed": true + }, + { + "name": "crn", "type": "TypeString", - "description": "The crn for target.", + "description": "The crn of the resource", + "cloud_data_type": "crn", "computed": true }, { - "name": "name", + "name": "public_gateway", "type": "TypeString", - "description": "The user-defined or system-provided name for this reserved IP.", "computed": true }, { - "name": "owner", + "name": "vpc", "type": "TypeString", - "description": "The owner of a reserved IP, defining whether it is managed by the user or the provider.", "computed": true }, { - "name": "resource_type", + "name": "vpc_name", "type": "TypeString", - "description": "The resource type.", "computed": true }, + { + "name": "resource_group", + "type": "TypeString", + "cloud_data_type": "resource_group", + "computed": true + }, + { + "name": "resource_crn", + "type": "TypeString", + "description": "The crn of the resource", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "optional": true, + "computed": true + }, + { + "name": "tags", + "type": "TypeSet", + "description": "List of tags", + "cloud_data_type": "tags", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "resource_status", + "type": "TypeString", + "description": "The status of the resource", + "computed": true + }, + { + "name": "resource_group_name", + "type": "TypeString", + "description": "The resource group name in which resource is provisioned", + "computed": true + } + ], + "ibm_is_subnet_reserved_ip": [ { "name": "target", "type": "TypeString", "description": "Reserved IP target id.", "computed": true }, + { + "name": "target_crn", + "type": "TypeString", + "description": "The crn for target.", + "computed": true + }, + { + "name": "reserved_ip", + "type": "TypeString", + "description": "The reserved IP identifier.", + "required": true + }, + { + "name": "address", + "type": "TypeString", + "description": "The IP address", + "computed": true + }, + { + "name": "auto_delete", + "type": "TypeBool", + "description": "If set to true, this reserved IP will be automatically deleted", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The user-defined or system-provided name for this reserved IP.", + "computed": true + }, + { + "name": "owner", + "type": "TypeString", + "description": "The owner of a reserved IP, defining whether it is managed by the user or the provider.", + "computed": true + }, { "name": "subnet", "type": "TypeString", @@ -55841,9 +56502,9 @@ "computed": true }, { - "name": "auto_delete", - "type": "TypeBool", - "description": "If set to true, this reserved IP will be automatically deleted", + "name": "created_at", + "type": "TypeString", + "description": "The date and time that the reserved IP was created.", "computed": true }, { @@ -55851,6 +56512,12 @@ "type": "TypeString", "description": "The URL for this reserved IP.", "computed": true + }, + { + "name": "resource_type", + "type": "TypeString", + "description": "The resource type.", + "computed": true } ], "ibm_is_subnet_reserved_ips": [ @@ -56078,38 +56745,17 @@ ], "ibm_is_virtual_endpoint_gateway": [ { - "name": "resource_group", + "name": "lifecycle_state", "type": "TypeString", - "description": "The resource group id", - "cloud_data_type": "resource_group", + "description": "Endpoint gateway lifecycle state", "computed": true }, { - "name": "created_at", + "name": "vpc", "type": "TypeString", - "description": "Endpoint gateway created date and time", + "description": "The VPC id", "computed": true }, - { - "name": "target", - "type": "TypeList", - "description": "Endpoint gateway target", - "computed": true, - "elem": { - "name": { - "name": "name", - "type": "TypeString", - "description": "The target name", - "computed": true - }, - "resource_type": { - "name": "resource_type", - "type": "TypeString", - "description": "The target resource type", - "computed": true - } - } - }, { "name": "tags", "type": "TypeSet", @@ -56121,13 +56767,16 @@ } }, { - "name": "service_endpoints", - "type": "TypeList", - "description": "The fully qualified domain names for the target service. A fully qualified domain name for the target service", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "created_at", + "type": "TypeString", + "description": "Endpoint gateway created date and time", + "computed": true + }, + { + "name": "health_state", + "type": "TypeString", + "description": "Endpoint gateway health state", + "computed": true }, { "name": "allow_dns_resolution_binding", @@ -56136,60 +56785,47 @@ "computed": true }, { - "name": "access_tags", - "type": "TypeSet", - "description": "List of access management tags", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "resource_type", + "name": "name", "type": "TypeString", - "description": "Endpoint gateway resource type", - "computed": true + "description": "Endpoint gateway name", + "required": true }, { - "name": "crn", + "name": "resource_group", "type": "TypeString", - "description": "The CRN for this Endpoint gateway", - "cloud_data_type": "crn", + "description": "The resource group id", + "cloud_data_type": "resource_group", "computed": true }, { - "name": "lifecycle_state", - "type": "TypeString", - "description": "Endpoint gateway lifecycle state", - "computed": true + "name": "target", + "type": "TypeList", + "description": "Endpoint gateway target", + "computed": true, + "elem": { + "name": { + "name": "name", + "type": "TypeString", + "description": "The target name", + "computed": true + }, + "resource_type": { + "name": "resource_type", + "type": "TypeString", + "description": "The target resource type", + "computed": true + } + } }, { - "name": "security_groups", - "type": "TypeSet", - "description": "Endpoint gateway securitygroups list", + "name": "service_endpoints", + "type": "TypeList", + "description": "The fully qualified domain names for the target service. A fully qualified domain name for the target service", "computed": true, "elem": { "type": "TypeString" } }, - { - "name": "vpc", - "type": "TypeString", - "description": "The VPC id", - "computed": true - }, - { - "name": "name", - "type": "TypeString", - "description": "Endpoint gateway name", - "required": true - }, - { - "name": "health_state", - "type": "TypeString", - "description": "Endpoint gateway health state", - "computed": true - }, { "name": "ips", "type": "TypeList", @@ -56221,6 +56857,37 @@ "computed": true } } + }, + { + "name": "security_groups", + "type": "TypeSet", + "description": "Endpoint gateway securitygroups list", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "access_tags", + "type": "TypeSet", + "description": "List of access management tags", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "resource_type", + "type": "TypeString", + "description": "Endpoint gateway resource type", + "computed": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "The CRN for this Endpoint gateway", + "cloud_data_type": "crn", + "computed": true } ], "ibm_is_virtual_endpoint_gateway_ips": [ @@ -56300,6 +56967,13 @@ } ], "ibm_is_virtual_endpoint_gateways": [ + { + "name": "resource_group", + "type": "TypeString", + "description": "The unique identifier of the resource group this endpoint gateway belongs to", + "cloud_data_type": "resource_group", + "optional": true + }, { "name": "name", "type": "TypeString", @@ -56460,42 +57134,14 @@ "computed": true } } - }, - { - "name": "resource_group", - "type": "TypeString", - "description": "The unique identifier of the resource group this endpoint gateway belongs to", - "cloud_data_type": "resource_group", - "optional": true } ], "ibm_is_virtual_network_interface": [ { - "name": "resource_group", - "type": "TypeList", - "description": "The resource group for this virtual network interface.", - "cloud_data_type": "resource_group", - "computed": true, - "elem": { - "href": { - "name": "href", - "type": "TypeString", - "description": "The URL for this resource group.", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "The unique identifier for this resource group.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The name for this resource group.", - "computed": true - } - } + "name": "name", + "type": "TypeString", + "description": "The name for this virtual network interface. The name is unique across all virtual network interfaces in the VPC.", + "computed": true }, { "name": "primary_ip", @@ -56549,12 +57195,6 @@ } } }, - { - "name": "resource_type", - "type": "TypeString", - "description": "The resource type.", - "computed": true - }, { "name": "security_groups", "type": "TypeList", @@ -56602,61 +57242,68 @@ } }, { - "name": "target", + "name": "zone", "type": "TypeList", - "description": "The target of this virtual network interface.If absent, this virtual network interface is not attached to a target.", + "description": "The zone this virtual network interface resides in.", "computed": true, "elem": { - "deleted": { - "name": "deleted", - "type": "TypeList", - "description": "If present, this property indicates the referenced resource has been deleted, and providessome supplementary information.", - "computed": true, - "elem": { - "more_info": { - "name": "more_info", - "type": "TypeString", - "description": "Link to documentation about deleted resources.", - "computed": true - } - } + "href": { + "name": "href", + "type": "TypeString", + "description": "The URL for this zone.", + "computed": true }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The globally unique name for this zone.", + "computed": true + } + } + }, + { + "name": "created_at", + "type": "TypeString", + "description": "The date and time that the virtual network interface was created.", + "computed": true + }, + { + "name": "resource_group", + "type": "TypeList", + "description": "The resource group for this virtual network interface.", + "cloud_data_type": "resource_group", + "computed": true, + "elem": { "href": { "name": "href", "type": "TypeString", - "description": "The URL for this share mount target.", + "description": "The URL for this resource group.", "computed": true }, "id": { "name": "id", "type": "TypeString", - "description": "The unique identifier for this share mount target.", + "description": "The unique identifier for this resource group.", "computed": true }, "name": { "name": "name", "type": "TypeString", - "description": "The name for this share mount target. The name is unique across all targets for the file share.", - "computed": true - }, - "resource_type": { - "name": "resource_type", - "type": "TypeString", - "description": "The resource type.", + "description": "The name for this resource group.", "computed": true } } }, { - "name": "auto_delete", - "type": "TypeBool", - "description": "Indicates whether this virtual network interface will be automatically deleted when`target` is deleted.", + "name": "resource_type", + "type": "TypeString", + "description": "The resource type.", "computed": true }, { - "name": "href", - "type": "TypeString", - "description": "The URL for this virtual network interface.", + "name": "auto_delete", + "type": "TypeBool", + "description": "Indicates whether this virtual network interface will be automatically deleted when`target` is deleted.", "computed": true }, { @@ -56666,17 +57313,11 @@ "computed": true }, { - "name": "subnet", + "name": "target", "type": "TypeList", - "description": "The associated subnet.", + "description": "The target of this virtual network interface.If absent, this virtual network interface is not attached to a target.", "computed": true, "elem": { - "crn": { - "name": "crn", - "type": "TypeString", - "description": "The CRN for this subnet.", - "computed": true - }, "deleted": { "name": "deleted", "type": "TypeList", @@ -56694,19 +57335,19 @@ "href": { "name": "href", "type": "TypeString", - "description": "The URL for this subnet.", + "description": "The URL for this share mount target.", "computed": true }, "id": { "name": "id", "type": "TypeString", - "description": "The unique identifier for this subnet.", + "description": "The unique identifier for this share mount target.", "computed": true }, "name": { "name": "name", "type": "TypeString", - "description": "The name for this subnet. The name is unique across all subnets in the VPC.", + "description": "The name for this share mount target. The name is unique across all targets for the file share.", "computed": true }, "resource_type": { @@ -56775,12 +57416,6 @@ "description": "The network interface identifier.", "required": true }, - { - "name": "created_at", - "type": "TypeString", - "description": "The date and time that the virtual network interface was created.", - "computed": true - }, { "name": "crn", "type": "TypeString", @@ -56789,27 +57424,59 @@ "computed": true }, { - "name": "name", + "name": "href", "type": "TypeString", - "description": "The name for this virtual network interface. The name is unique across all virtual network interfaces in the VPC.", + "description": "The URL for this virtual network interface.", "computed": true }, { - "name": "zone", + "name": "subnet", "type": "TypeList", - "description": "The zone this virtual network interface resides in.", + "description": "The associated subnet.", "computed": true, "elem": { + "crn": { + "name": "crn", + "type": "TypeString", + "description": "The CRN for this subnet.", + "computed": true + }, + "deleted": { + "name": "deleted", + "type": "TypeList", + "description": "If present, this property indicates the referenced resource has been deleted, and providessome supplementary information.", + "computed": true, + "elem": { + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about deleted resources.", + "computed": true + } + } + }, "href": { "name": "href", "type": "TypeString", - "description": "The URL for this zone.", + "description": "The URL for this subnet.", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "The unique identifier for this subnet.", "computed": true }, "name": { "name": "name", "type": "TypeString", - "description": "The globally unique name for this zone.", + "description": "The name for this subnet. The name is unique across all subnets in the VPC.", + "computed": true + }, + "resource_type": { + "name": "resource_type", + "type": "TypeString", + "description": "The resource type.", "computed": true } } @@ -57169,44 +57836,30 @@ ], "ibm_is_volume": [ { - "name": "source_snapshot", - "type": "TypeString", - "description": "Identifier of the snapshot from which this volume was cloned", - "computed": true - }, - { - "name": "bandwidth", - "type": "TypeInt", - "description": "The maximum bandwidth (in megabits per second) for the volume", - "computed": true - }, - { - "name": "iops", - "type": "TypeInt", - "description": "IOPS value for the Volume", - "computed": true - }, - { - "name": "access_tags", - "type": "TypeSet", - "description": "Access management tags for the volume instance", + "name": "health_reasons", + "type": "TypeList", "computed": true, "elem": { - "type": "TypeString" + "code": { + "name": "code", + "type": "TypeString", + "description": "A snake case string succinctly identifying the reason for this health state.", + "computed": true + }, + "message": { + "name": "message", + "type": "TypeString", + "description": "An explanation of the reason for this health state.", + "computed": true + }, + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about the reason for this health state.", + "computed": true + } } }, - { - "name": "resource_name", - "type": "TypeString", - "description": "The name of the resource", - "computed": true - }, - { - "name": "encryption_type", - "type": "TypeString", - "description": "Volume encryption type info", - "computed": true - }, { "name": "resource_crn", "type": "TypeString", @@ -57214,64 +57867,23 @@ "computed": true }, { - "name": "tags", - "type": "TypeSet", - "description": "Tags for the volume instance", - "cloud_data_type": "tags", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "zone", - "type": "TypeString", - "description": "Zone name", - "optional": true, - "computed": true - }, - { - "name": "active", - "type": "TypeBool", - "description": "Indicates whether a running virtual server instance has an attachment to this volume.", - "computed": true - }, - { - "name": "created_at", - "type": "TypeString", - "description": "The date and time that the volume was created.", - "computed": true - }, - { - "name": "profile", - "type": "TypeString", - "description": "Volume profile name", - "computed": true - }, - { - "name": "status", + "name": "encryption_key", "type": "TypeString", - "description": "Volume status", + "description": "Volume encryption key info", "computed": true }, { - "name": "resource_controller_url", + "name": "encryption_type", "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", + "description": "Volume encryption type info", "computed": true }, { - "name": "resource_group_name", - "type": "TypeString", - "description": "The resource group name in which resource is provisioned", + "name": "busy", + "type": "TypeBool", + "description": "Indicates whether this volume is performing an operation that must be serialized. If an operation specifies that it requires serialization, the operation will fail unless this property is `false`.", "computed": true }, - { - "name": "name", - "type": "TypeString", - "description": "Volume name", - "required": true - }, { "name": "operating_system", "type": "TypeList", @@ -57329,53 +57941,38 @@ } }, { - "name": "encryption_key", + "name": "resource_group", "type": "TypeString", - "description": "Volume encryption key info", + "description": "Resource group name", + "cloud_data_type": "resource_group", "computed": true }, { - "name": "health_state", - "type": "TypeString", - "description": "The health of this resource.", - "computed": true + "name": "tags", + "type": "TypeSet", + "description": "Tags for the volume instance", + "cloud_data_type": "tags", + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "attachment_state", + "name": "resource_controller_url", "type": "TypeString", - "description": "The attachment state of the volume.", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", "computed": true }, { - "name": "health_reasons", - "type": "TypeList", - "computed": true, - "elem": { - "code": { - "name": "code", - "type": "TypeString", - "description": "A snake case string succinctly identifying the reason for this health state.", - "computed": true - }, - "message": { - "name": "message", - "type": "TypeString", - "description": "An explanation of the reason for this health state.", - "computed": true - }, - "more_info": { - "name": "more_info", - "type": "TypeString", - "description": "Link to documentation about the reason for this health state.", - "computed": true - } - } + "name": "name", + "type": "TypeString", + "description": "Volume name", + "required": true }, { - "name": "resource_group", - "type": "TypeString", - "description": "Resource group name", - "cloud_data_type": "resource_group", + "name": "active", + "type": "TypeBool", + "description": "Indicates whether a running virtual server instance has an attachment to this volume.", "computed": true }, { @@ -57384,6 +57981,12 @@ "description": "The status of the resource", "computed": true }, + { + "name": "bandwidth", + "type": "TypeInt", + "description": "The maximum bandwidth (in megabits per second) for the volume", + "computed": true + }, { "name": "crn", "type": "TypeString", @@ -57391,12 +57994,76 @@ "cloud_data_type": "crn", "computed": true }, + { + "name": "status", + "type": "TypeString", + "description": "Volume status", + "computed": true + }, + { + "name": "access_tags", + "type": "TypeSet", + "description": "Access management tags for the volume instance", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "source_snapshot", + "type": "TypeString", + "description": "Identifier of the snapshot from which this volume was cloned", + "computed": true + }, + { + "name": "resource_group_name", + "type": "TypeString", + "description": "The resource group name in which resource is provisioned", + "computed": true + }, { "name": "capacity", "type": "TypeInt", "description": "Vloume capacity value", "computed": true }, + { + "name": "iops", + "type": "TypeInt", + "description": "IOPS value for the Volume", + "computed": true + }, + { + "name": "created_at", + "type": "TypeString", + "description": "The date and time that the volume was created.", + "computed": true + }, + { + "name": "profile", + "type": "TypeString", + "description": "Volume profile name", + "computed": true + }, + { + "name": "health_state", + "type": "TypeString", + "description": "The health of this resource.", + "computed": true + }, + { + "name": "zone", + "type": "TypeString", + "description": "Zone name", + "optional": true, + "computed": true + }, + { + "name": "attachment_state", + "type": "TypeString", + "description": "The attachment state of the volume.", + "computed": true + }, { "name": "status_reasons", "type": "TypeList", @@ -57423,9 +58090,9 @@ } }, { - "name": "busy", - "type": "TypeBool", - "description": "Indicates whether this volume is performing an operation that must be serialized. If an operation specifies that it requires serialization, the operation will fail unless this property is `false`.", + "name": "resource_name", + "type": "TypeString", + "description": "The name of the resource", "computed": true } ], @@ -57464,12 +58131,6 @@ } ], "ibm_is_volumes": [ - { - "name": "zone_name", - "type": "TypeString", - "description": "Zone name identifier.", - "optional": true - }, { "name": "volumes", "type": "TypeList", @@ -58006,6 +58667,12 @@ "type": "TypeString", "description": "Volume name identifier.", "optional": true + }, + { + "name": "zone_name", + "type": "TypeString", + "description": "Zone name identifier.", + "optional": true } ], "ibm_is_vpc": [ @@ -58021,16 +58688,44 @@ ] }, { - "name": "classic_access", - "type": "TypeBool", + "name": "access_tags", + "type": "TypeSet", + "description": "List of access tags", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "status", + "type": "TypeString", "computed": true }, { - "name": "default_network_acl_name", + "name": "resource_controller_url", "type": "TypeString", - "description": "Default Network ACL name", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", "computed": true }, + { + "name": "cse_source_addresses", + "type": "TypeList", + "computed": true, + "elem": { + "address": { + "name": "address", + "type": "TypeString", + "description": "Cloud service endpoint IP Address", + "computed": true + }, + "zone_name": { + "name": "zone_name", + "type": "TypeString", + "description": "Location info of CSE Address", + "computed": true + } + } + }, { "name": "dns", "type": "TypeList", @@ -58198,32 +58893,22 @@ } }, { - "name": "health_state", + "name": "name", "type": "TypeString", - "description": "The health of this resource.- `ok`: No abnormal behavior detected- `degraded`: Experiencing compromised performance, capacity, or connectivity- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.", - "computed": true + "optional": true }, { - "name": "default_security_group_name", + "name": "default_network_acl_crn", "type": "TypeString", - "description": "Default security group name", + "description": "Default Network ACL CRN", "computed": true }, { - "name": "default_security_group_crn", + "name": "default_security_group", "type": "TypeString", - "description": "Default security group CRN", + "description": "Security group associated with VPC", "computed": true }, - { - "name": "access_tags", - "type": "TypeSet", - "description": "List of access tags", - "computed": true, - "elem": { - "type": "TypeString" - } - }, { "name": "resource_status", "type": "TypeString", @@ -58231,30 +58916,9 @@ "computed": true }, { - "name": "health_reasons", - "type": "TypeList", - "description": "The reasons for the current `health_state` (if any).The enumerated reason code values for this property will expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the resource on which the unexpected reason code was encountered.", - "computed": true, - "elem": { - "code": { - "name": "code", - "type": "TypeString", - "description": "A snake case string succinctly identifying the reason for this health state.", - "computed": true - }, - "message": { - "name": "message", - "type": "TypeString", - "description": "An explanation of the reason for this health state.", - "computed": true - }, - "more_info": { - "name": "more_info", - "type": "TypeString", - "description": "Link to documentation about the reason for this health state.", - "computed": true - } - } + "name": "identifier", + "type": "TypeString", + "optional": true }, { "name": "subnets", @@ -58300,46 +58964,49 @@ } }, { - "name": "status", + "name": "default_network_acl", "type": "TypeString", "computed": true }, { - "name": "default_security_group", + "name": "classic_access", + "type": "TypeBool", + "computed": true + }, + { + "name": "default_network_acl_name", "type": "TypeString", - "description": "Security group associated with VPC", + "description": "Default Network ACL name", "computed": true }, { - "name": "tags", - "type": "TypeSet", - "cloud_data_type": "tags", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "default_routing_table_name", + "type": "TypeString", + "description": "Default routing table name", + "computed": true }, { - "name": "name", + "name": "resource_group", "type": "TypeString", - "optional": true + "cloud_data_type": "resource_group", + "computed": true }, { - "name": "default_network_acl_crn", + "name": "resource_crn", "type": "TypeString", - "description": "Default Network ACL CRN", + "description": "The crn of the resource", "computed": true }, { - "name": "resource_controller_url", + "name": "default_routing_table", "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", + "description": "Default routing table associated with VPC", "computed": true }, { - "name": "resource_group", + "name": "default_security_group_crn", "type": "TypeString", - "cloud_data_type": "resource_group", + "description": "Default security group CRN", "computed": true }, { @@ -58356,58 +59023,43 @@ "computed": true }, { - "name": "resource_crn", + "name": "default_security_group_name", "type": "TypeString", - "description": "The crn of the resource", + "description": "Default security group name", "computed": true }, { - "name": "cse_source_addresses", + "name": "resource_group_name", + "type": "TypeString", + "description": "The resource group name in which resource is provisioned", + "computed": true + }, + { + "name": "health_reasons", "type": "TypeList", + "description": "The reasons for the current `health_state` (if any).The enumerated reason code values for this property will expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the resource on which the unexpected reason code was encountered.", "computed": true, "elem": { - "address": { - "name": "address", + "code": { + "name": "code", "type": "TypeString", - "description": "Cloud service endpoint IP Address", + "description": "A snake case string succinctly identifying the reason for this health state.", "computed": true }, - "zone_name": { - "name": "zone_name", + "message": { + "name": "message", "type": "TypeString", - "description": "Location info of CSE Address", + "description": "An explanation of the reason for this health state.", + "computed": true + }, + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about the reason for this health state.", "computed": true } } }, - { - "name": "default_network_acl", - "type": "TypeString", - "computed": true - }, - { - "name": "identifier", - "type": "TypeString", - "optional": true - }, - { - "name": "default_routing_table_name", - "type": "TypeString", - "description": "Default routing table name", - "computed": true - }, - { - "name": "default_routing_table", - "type": "TypeString", - "description": "Default routing table associated with VPC", - "computed": true - }, - { - "name": "resource_group_name", - "type": "TypeString", - "description": "The resource group name in which resource is provisioned", - "computed": true - }, { "name": "security_group", "type": "TypeList", @@ -58483,19 +59135,28 @@ } } } - } - ], - "ibm_is_vpc_address_prefix": [ + }, { - "name": "cidr", - "type": "TypeString", - "description": "The CIDR block for this prefix.", - "computed": true + "name": "tags", + "type": "TypeSet", + "cloud_data_type": "tags", + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "created_at", + "name": "health_state", "type": "TypeString", - "description": "The date and time that the prefix was created.", + "description": "The health of this resource.- `ok`: No abnormal behavior detected- `degraded`: Experiencing compromised performance, capacity, or connectivity- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.", + "computed": true + } + ], + "ibm_is_vpc_address_prefix": [ + { + "name": "is_default", + "type": "TypeBool", + "description": "Indicates whether this is the default prefix for this zone in this VPC. If a default prefix was automatically created when the VPC was created, the prefix is automatically named using a hyphenated list of randomly-selected words, but may be updated with a user-specified name.", "computed": true }, { @@ -58525,28 +59186,28 @@ } }, { - "name": "vpc", + "name": "vpc_name", "type": "TypeString", - "description": "The VPC identifier.", + "description": "The VPC name.", "optional": true }, { - "name": "vpc_name", + "name": "address_prefix_name", "type": "TypeString", - "description": "The VPC name.", + "description": "The address prefix name.", "optional": true }, { - "name": "address_prefix", + "name": "cidr", "type": "TypeString", - "description": "The address prefix identifier.", - "optional": true + "description": "The CIDR block for this prefix.", + "computed": true }, { - "name": "address_prefix_name", + "name": "created_at", "type": "TypeString", - "description": "The address prefix name.", - "optional": true + "description": "The date and time that the prefix was created.", + "computed": true }, { "name": "has_subnets", @@ -58561,10 +59222,16 @@ "computed": true }, { - "name": "is_default", - "type": "TypeBool", - "description": "Indicates whether this is the default prefix for this zone in this VPC. If a default prefix was automatically created when the VPC was created, the prefix is automatically named using a hyphenated list of randomly-selected words, but may be updated with a user-specified name.", - "computed": true + "name": "vpc", + "type": "TypeString", + "description": "The VPC identifier.", + "optional": true + }, + { + "name": "address_prefix", + "type": "TypeString", + "description": "The address prefix identifier.", + "optional": true } ], "ibm_is_vpc_address_prefixes": [ @@ -58653,27 +59320,46 @@ ], "ibm_is_vpc_default_routing_table": [ { - "name": "vpc", - "type": "TypeString", - "description": "VPC identifier", - "required": true + "name": "is_default", + "type": "TypeBool", + "description": "Indicates whether this is the default routing table for this VPC", + "computed": true }, { - "name": "lifecycle_state", + "name": "routes", + "type": "TypeList", + "computed": true, + "elem": { + "id": { + "name": "id", + "type": "TypeString", + "description": "Route ID", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Route name", + "computed": true + } + } + }, + { + "name": "default_routing_table", "type": "TypeString", - "description": "Default Routing table Lifecycle State", + "description": "Default Routing Table ID", "computed": true }, { - "name": "route_direct_link_ingress", + "name": "route_transit_gateway_ingress", "type": "TypeBool", - "description": "If set to true, this routing table will be used to route traffic that originates from Direct Link to this VPC.", + "description": "If set to true, this routing table will be used to route traffic that originates from Transit Gateway to this VPC.", "computed": true }, { - "name": "route_vpc_zone_ingress", - "type": "TypeBool", - "description": "If set to true, this routing table will be used to route traffic that originates from subnets in other zones in this VPC.", + "name": "href", + "type": "TypeString", + "description": "Default Routing table Href", "computed": true }, { @@ -58683,15 +59369,15 @@ "computed": true }, { - "name": "href", + "name": "lifecycle_state", "type": "TypeString", - "description": "Default Routing table Href", + "description": "Default Routing table Lifecycle State", "computed": true }, { - "name": "resource_type", - "type": "TypeString", - "description": "Default Routing table Resource Type", + "name": "route_direct_link_ingress", + "type": "TypeBool", + "description": "If set to true, this routing table will be used to route traffic that originates from Direct Link to this VPC.", "computed": true }, { @@ -58701,23 +59387,28 @@ "computed": true }, { - "name": "routes", - "type": "TypeList", - "computed": true, - "elem": { - "id": { - "name": "id", - "type": "TypeString", - "description": "Route ID", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Route name", - "computed": true - } - } + "name": "route_vpc_zone_ingress", + "type": "TypeBool", + "description": "If set to true, this routing table will be used to route traffic that originates from subnets in other zones in this VPC.", + "computed": true + }, + { + "name": "vpc", + "type": "TypeString", + "description": "VPC identifier", + "required": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Default Routing table Name", + "computed": true + }, + { + "name": "resource_type", + "type": "TypeString", + "description": "Default Routing table Resource Type", + "computed": true }, { "name": "subnets", @@ -58737,39 +59428,9 @@ "computed": true } } - }, - { - "name": "default_routing_table", - "type": "TypeString", - "description": "Default Routing Table ID", - "computed": true - }, - { - "name": "name", - "type": "TypeString", - "description": "Default Routing table Name", - "computed": true - }, - { - "name": "route_transit_gateway_ingress", - "type": "TypeBool", - "description": "If set to true, this routing table will be used to route traffic that originates from Transit Gateway to this VPC.", - "computed": true - }, - { - "name": "is_default", - "type": "TypeBool", - "description": "Indicates whether this is the default routing table for this VPC", - "computed": true } ], "ibm_is_vpc_dns_resolution_binding": [ - { - "name": "created_at", - "type": "TypeString", - "description": "The date and time that the DNS resolution binding was created.", - "computed": true - }, { "name": "href", "type": "TypeString", @@ -58874,6 +59535,18 @@ "description": "The VPC identifier.", "required": true }, + { + "name": "identifier", + "type": "TypeString", + "description": "The DNS resolution binding identifier.", + "required": true + }, + { + "name": "created_at", + "type": "TypeString", + "description": "The date and time that the DNS resolution binding was created.", + "computed": true + }, { "name": "endpoint_gateways", "type": "TypeList", @@ -58971,12 +59644,6 @@ "type": "TypeString", "description": "The resource type.", "computed": true - }, - { - "name": "identifier", - "type": "TypeString", - "description": "The DNS resolution binding identifier.", - "required": true } ], "ibm_is_vpc_dns_resolution_bindings": [ @@ -59204,12 +59871,6 @@ } ], "ibm_is_vpc_routing_table": [ - { - "name": "resource_type", - "type": "TypeString", - "description": "The resource type.", - "computed": true - }, { "name": "accept_routes_from", "type": "TypeList", @@ -59224,6 +59885,66 @@ } } }, + { + "name": "is_default", + "type": "TypeBool", + "description": "Indicates whether this is the default routing table for this VPC.", + "computed": true + }, + { + "name": "route_internet_ingress", + "type": "TypeBool", + "description": "Indicates whether this routing table is used to route traffic that originates from the internet.Incoming traffic will be routed according to the routing table with two exceptions:- Traffic destined for IP addresses associated with public gateways will not be subject to routes in this routing table.- Routes with an action of deliver are treated as drop unless the `next_hop` is an IP address bound to a network interface on a subnet in the route's `zone`. Therefore, if an incoming packet matches a route with a `next_hop` of an internet-bound IP address or a VPN gateway connection, the packet will be dropped.", + "computed": true + }, + { + "name": "routing_table", + "type": "TypeString", + "description": "The routing table identifier.", + "optional": true + }, + { + "name": "lifecycle_state", + "type": "TypeString", + "description": "The lifecycle state of the routing table.", + "computed": true + }, + { + "name": "route_direct_link_ingress", + "type": "TypeBool", + "description": "Indicates whether this routing table is used to route traffic that originates from[Direct Link](https://cloud.ibm.com/docs/dl/) to this VPC.Incoming traffic will be routed according to the routing table with one exception: routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address within the VPC's address prefix ranges. Therefore, if an incoming packet matches a route with a `next_hop` of an internet-bound IP address or a VPN gateway connection, the packet will be dropped.", + "computed": true + }, + { + "name": "route_vpc_zone_ingress", + "type": "TypeBool", + "description": "Indicates whether this routing table is used to route traffic that originates from subnets in other zones in this VPC.Incoming traffic will be routed according to the routing table with one exception: routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address within the VPC's address prefix ranges. Therefore, if an incoming packet matches a route with a `next_hop` of an internet-bound IP address or a VPN gateway connection, the packet will be dropped.", + "computed": true + }, + { + "name": "created_at", + "type": "TypeString", + "description": "The date and time that this routing table was created.", + "computed": true + }, + { + "name": "href", + "type": "TypeString", + "description": "The URL for this routing table.", + "computed": true + }, + { + "name": "resource_type", + "type": "TypeString", + "description": "The resource type.", + "computed": true + }, + { + "name": "route_transit_gateway_ingress", + "type": "TypeBool", + "description": "Indicates whether this routing table is used to route traffic that originates from from [Transit Gateway](https://cloud.ibm.com/cloud/transit-gateway/) to this VPC.Incoming traffic will be routed according to the routing table with one exception: routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address within the VPC's address prefix ranges. Therefore, if an incoming packet matches a route with a `next_hop` of an internet-bound IP address or a VPN gateway connection, the packet will be dropped.", + "computed": true + }, { "name": "routes", "type": "TypeList", @@ -59264,6 +59985,18 @@ } } }, + { + "name": "vpc", + "type": "TypeString", + "description": "The VPC identifier.", + "required": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The user-defined name for this routing table.", + "optional": true + }, { "name": "subnets", "type": "TypeList", @@ -59309,79 +60042,37 @@ "computed": true } } - }, + } + ], + "ibm_is_vpc_routing_table_route": [ { - "name": "vpc", + "name": "name", "type": "TypeString", - "description": "The VPC identifier.", - "required": true + "description": "The user-defined name for this route.", + "optional": true }, { - "name": "href", + "name": "destination", "type": "TypeString", - "description": "The URL for this routing table.", - "computed": true - }, - { - "name": "route_direct_link_ingress", - "type": "TypeBool", - "description": "Indicates whether this routing table is used to route traffic that originates from[Direct Link](https://cloud.ibm.com/docs/dl/) to this VPC.Incoming traffic will be routed according to the routing table with one exception: routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address within the VPC's address prefix ranges. Therefore, if an incoming packet matches a route with a `next_hop` of an internet-bound IP address or a VPN gateway connection, the packet will be dropped.", - "computed": true - }, - { - "name": "route_internet_ingress", - "type": "TypeBool", - "description": "Indicates whether this routing table is used to route traffic that originates from the internet.Incoming traffic will be routed according to the routing table with two exceptions:- Traffic destined for IP addresses associated with public gateways will not be subject to routes in this routing table.- Routes with an action of deliver are treated as drop unless the `next_hop` is an IP address bound to a network interface on a subnet in the route's `zone`. Therefore, if an incoming packet matches a route with a `next_hop` of an internet-bound IP address or a VPN gateway connection, the packet will be dropped.", - "computed": true - }, - { - "name": "route_transit_gateway_ingress", - "type": "TypeBool", - "description": "Indicates whether this routing table is used to route traffic that originates from from [Transit Gateway](https://cloud.ibm.com/cloud/transit-gateway/) to this VPC.Incoming traffic will be routed according to the routing table with one exception: routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address within the VPC's address prefix ranges. Therefore, if an incoming packet matches a route with a `next_hop` of an internet-bound IP address or a VPN gateway connection, the packet will be dropped.", - "computed": true - }, - { - "name": "route_vpc_zone_ingress", - "type": "TypeBool", - "description": "Indicates whether this routing table is used to route traffic that originates from subnets in other zones in this VPC.Incoming traffic will be routed according to the routing table with one exception: routes with an `action` of `deliver` are treated as `drop` unless the `next_hop` is an IP address within the VPC's address prefix ranges. Therefore, if an incoming packet matches a route with a `next_hop` of an internet-bound IP address or a VPN gateway connection, the packet will be dropped.", + "description": "The destination of the route.", "computed": true }, { - "name": "name", + "name": "href", "type": "TypeString", - "description": "The user-defined name for this routing table.", - "optional": true + "description": "The URL for this route.", + "computed": true }, { "name": "routing_table", "type": "TypeString", "description": "The routing table identifier.", - "optional": true - }, - { - "name": "created_at", - "type": "TypeString", - "description": "The date and time that this routing table was created.", - "computed": true - }, - { - "name": "is_default", - "type": "TypeBool", - "description": "Indicates whether this is the default routing table for this VPC.", - "computed": true + "required": true }, { - "name": "lifecycle_state", - "type": "TypeString", - "description": "The lifecycle state of the routing table.", - "computed": true - } - ], - "ibm_is_vpc_routing_table_route": [ - { - "name": "name", + "name": "route_id", "type": "TypeString", - "description": "The user-defined name for this route.", + "description": "The VPC routing table route identifier.", "optional": true }, { @@ -59391,17 +60082,11 @@ "computed": true }, { - "name": "routing_table", + "name": "vpc", "type": "TypeString", - "description": "The routing table identifier.", + "description": "The VPC identifier.", "required": true }, - { - "name": "action", - "type": "TypeString", - "description": "The action to perform with a packet matching the route:- `delegate`: delegate to the system's built-in routes- `delegate_vpc`: delegate to the system's built-in routes, ignoring Internet-bound routes- `deliver`: deliver the packet to the specified `next_hop`- `drop`: drop the packet.", - "computed": true - }, { "name": "created_at", "type": "TypeString", @@ -59467,42 +60152,10 @@ "computed": true }, { - "name": "zone", - "type": "TypeList", - "description": "The zone the route applies to. (Traffic from subnets in this zone will besubject to this route.).", - "computed": true, - "elem": { - "href": { - "name": "href", - "type": "TypeString", - "description": "The URL for this zone.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The globally unique name for this zone.", - "computed": true - } - } - }, - { - "name": "priority", - "type": "TypeInt", - "description": "The route's priority. Smaller values have higher priority. If a routing table contains routes with the same destination, the route with the highest priority (smallest value) is selected.", - "computed": true - }, - { - "name": "vpc", - "type": "TypeString", - "description": "The VPC identifier.", - "required": true - }, - { - "name": "route_id", + "name": "action", "type": "TypeString", - "description": "The VPC routing table route identifier.", - "optional": true + "description": "The action to perform with a packet matching the route:- `delegate`: delegate to the system's built-in routes- `delegate_vpc`: delegate to the system's built-in routes, ignoring Internet-bound routes- `deliver`: deliver the packet to the specified `next_hop`- `drop`: drop the packet.", + "computed": true }, { "name": "creator", @@ -59557,16 +60210,30 @@ } }, { - "name": "destination", - "type": "TypeString", - "description": "The destination of the route.", + "name": "priority", + "type": "TypeInt", + "description": "The route's priority. Smaller values have higher priority. If a routing table contains routes with the same destination, the route with the highest priority (smallest value) is selected.", "computed": true }, { - "name": "href", - "type": "TypeString", - "description": "The URL for this route.", - "computed": true + "name": "zone", + "type": "TypeList", + "description": "The zone the route applies to. (Traffic from subnets in this zone will besubject to this route.).", + "computed": true, + "elem": { + "href": { + "name": "href", + "type": "TypeString", + "description": "The URL for this zone.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The globally unique name for this zone.", + "computed": true + } + } } ], "ibm_is_vpc_routing_table_routes": [ @@ -59710,6 +60377,18 @@ } ], "ibm_is_vpc_routing_tables": [ + { + "name": "vpc", + "type": "TypeString", + "description": "VPC identifier", + "required": true + }, + { + "name": "is_default", + "type": "TypeBool", + "description": "Filters the collection to routing tables with the specified is_default value", + "optional": true + }, { "name": "routing_tables", "type": "TypeList", @@ -59835,21 +60514,16 @@ } } } - }, - { - "name": "vpc", - "type": "TypeString", - "description": "VPC identifier", - "required": true - }, - { - "name": "is_default", - "type": "TypeBool", - "description": "Filters the collection to routing tables with the specified is_default value", - "optional": true } ], "ibm_is_vpcs": [ + { + "name": "resource_group", + "type": "TypeString", + "description": "The unique identifier of the resource group this vpc belongs to", + "cloud_data_type": "resource_group", + "optional": true + }, { "name": "classic_access", "type": "TypeBool", @@ -60327,38 +61001,25 @@ } } } - }, - { - "name": "resource_group", - "type": "TypeString", - "description": "The unique identifier of the resource group this vpc belongs to", - "cloud_data_type": "resource_group", - "optional": true } ], "ibm_is_vpn_gateway": [ { - "name": "resource_type", + "name": "health_state", "type": "TypeString", - "description": "The resource type.", + "description": "The health of this resource.- `ok`: Healthy- `degraded`: Suffering from compromised performance, capacity, or connectivity- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.", "computed": true }, { - "name": "vpc", + "name": "connections", "type": "TypeList", - "description": "VPC for the VPN Gateway", + "description": "Connections for this VPN gateway.", "computed": true, "elem": { - "crn": { - "name": "crn", - "type": "TypeString", - "description": "The CRN for this VPC.", - "computed": true - }, "deleted": { "name": "deleted", "type": "TypeList", - "description": "If present, this property indicates the referenced resource has been deleted and providessome supplementary information.", + "description": "If present, this property indicates the referenced resource has been deleted and provides some supplementary information.", "computed": true, "elem": { "more_info": { @@ -60372,53 +61033,152 @@ "href": { "name": "href", "type": "TypeString", - "description": "The URL for this VPC.", + "description": "The VPN connection's canonical URL.", "computed": true }, "id": { "name": "id", "type": "TypeString", - "description": "The unique identifier for this VPC.", + "description": "The unique identifier for this VPN gateway connection.", "computed": true }, "name": { "name": "name", "type": "TypeString", - "description": "The unique user-defined name for this VPC.", + "description": "The user-defined name for this VPN connection.", + "computed": true + }, + "resource_type": { + "name": "resource_type", + "type": "TypeString", + "description": "The resource type.", "computed": true } } }, { - "name": "created_at", + "name": "name", "type": "TypeString", - "description": "The date and time that this VPN gateway was created.", + "description": "The user-defined name for this VPN gateway.", "computed": true }, { - "name": "crn", + "name": "resource_type", "type": "TypeString", - "description": "The VPN gateway's CRN.", - "cloud_data_type": "crn", + "description": "The resource type.", "computed": true }, { - "name": "name", - "type": "TypeString", - "description": "The user-defined name for this VPN gateway.", - "computed": true + "name": "health_reasons", + "type": "TypeList", + "computed": true, + "elem": { + "code": { + "name": "code", + "type": "TypeString", + "description": "A snake case string succinctly identifying the reason for this health state.", + "computed": true + }, + "message": { + "name": "message", + "type": "TypeString", + "description": "An explanation of the reason for this health state.", + "computed": true + }, + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about the reason for this health state.", + "computed": true + } + } }, { - "name": "vpn_gateway", - "type": "TypeString", - "description": "The VPN gateway identifier.", - "optional": true + "name": "lifecycle_reasons", + "type": "TypeList", + "description": "The reasons for the current lifecycle_state (if any).", + "computed": true, + "elem": { + "code": { + "name": "code", + "type": "TypeString", + "description": "A snake case string succinctly identifying the reason for this lifecycle state.", + "computed": true + }, + "message": { + "name": "message", + "type": "TypeString", + "description": "An explanation of the reason for this lifecycle state.", + "computed": true + }, + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about the reason for this lifecycle state.", + "computed": true + } + } + }, + { + "name": "subnet", + "type": "TypeList", + "computed": true, + "elem": { + "crn": { + "name": "crn", + "type": "TypeString", + "description": "The CRN for this subnet.", + "computed": true + }, + "deleted": { + "name": "deleted", + "type": "TypeList", + "description": "If present, this property indicates the referenced resource has been deleted and provides some supplementary information.", + "computed": true, + "elem": { + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about deleted resources.", + "computed": true + } + } + }, + "href": { + "name": "href", + "type": "TypeString", + "description": "The URL for this subnet.", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "The unique identifier for this subnet.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The user-defined name for this subnet.", + "computed": true + } + } + }, + { + "name": "access_tags", + "type": "TypeSet", + "description": "List of access management tags", + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "vpn_gateway_name", + "name": "crn", "type": "TypeString", - "description": "The VPN gateway name.", - "optional": true + "description": "The VPN gateway's CRN.", + "cloud_data_type": "crn", + "computed": true }, { "name": "resource_group", @@ -60448,21 +61208,11 @@ } }, { - "name": "mode", + "name": "href", "type": "TypeString", - "description": "Route mode VPN gateway.", + "description": "The VPN gateway's canonical URL.", "computed": true }, - { - "name": "tags", - "type": "TypeSet", - "description": "VPN Gateway tags list", - "cloud_data_type": "tags", - "computed": true, - "elem": { - "type": "TypeString" - } - }, { "name": "members", "type": "TypeList", @@ -60502,20 +61252,27 @@ "computed": true }, { - "name": "subnet", + "name": "lifecycle_state", + "type": "TypeString", + "description": "The lifecycle state of the VPN route.", + "computed": true + }, + { + "name": "vpc", "type": "TypeList", + "description": "VPC for the VPN Gateway", "computed": true, "elem": { "crn": { "name": "crn", "type": "TypeString", - "description": "The CRN for this subnet.", + "description": "The CRN for this VPC.", "computed": true }, "deleted": { "name": "deleted", "type": "TypeList", - "description": "If present, this property indicates the referenced resource has been deleted and provides some supplementary information.", + "description": "If present, this property indicates the referenced resource has been deleted and providessome supplementary information.", "computed": true, "elem": { "more_info": { @@ -60529,102 +61286,93 @@ "href": { "name": "href", "type": "TypeString", - "description": "The URL for this subnet.", + "description": "The URL for this VPC.", "computed": true }, "id": { "name": "id", "type": "TypeString", - "description": "The unique identifier for this subnet.", + "description": "The unique identifier for this VPC.", "computed": true }, "name": { "name": "name", "type": "TypeString", - "description": "The user-defined name for this subnet.", + "description": "The unique user-defined name for this VPC.", "computed": true } } }, { - "name": "connections", - "type": "TypeList", - "description": "Connections for this VPN gateway.", + "name": "tags", + "type": "TypeSet", + "description": "VPN Gateway tags list", + "cloud_data_type": "tags", "computed": true, "elem": { - "deleted": { - "name": "deleted", - "type": "TypeList", - "description": "If present, this property indicates the referenced resource has been deleted and provides some supplementary information.", - "computed": true, - "elem": { - "more_info": { - "name": "more_info", - "type": "TypeString", - "description": "Link to documentation about deleted resources.", - "computed": true - } - } - }, - "href": { - "name": "href", - "type": "TypeString", - "description": "The VPN connection's canonical URL.", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "The unique identifier for this VPN gateway connection.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The user-defined name for this VPN connection.", - "computed": true - }, - "resource_type": { - "name": "resource_type", - "type": "TypeString", - "description": "The resource type.", - "computed": true - } + "type": "TypeString" } }, { - "name": "href", + "name": "vpn_gateway_name", "type": "TypeString", - "description": "The VPN gateway's canonical URL.", + "description": "The VPN gateway name.", + "optional": true + }, + { + "name": "created_at", + "type": "TypeString", + "description": "The date and time that this VPN gateway was created.", "computed": true }, { - "name": "access_tags", - "type": "TypeSet", - "description": "List of access management tags", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "vpn_gateway", + "type": "TypeString", + "description": "The VPN gateway identifier.", + "optional": true + }, + { + "name": "mode", + "type": "TypeString", + "description": "Route mode VPN gateway.", + "computed": true } ], "ibm_is_vpn_gateway_connection": [ { - "name": "vpn_gateway_connection_name", + "name": "vpn_gateway_connection", "type": "TypeString", - "description": "The VPN gateway connection name.", + "description": "The VPN gateway connection identifier.", "optional": true }, { - "name": "created_at", + "name": "authentication_mode", "type": "TypeString", - "description": "The date and time that this VPN gateway connection was created.", + "description": "The authentication mode. Only `psk` is currently supported.", "computed": true }, { - "name": "routing_protocol", + "name": "name", "type": "TypeString", - "description": "Routing protocols are disabled for this VPN gateway connection.", + "description": "The user-defined name for this VPN gateway connection.", + "computed": true + }, + { + "name": "psk", + "type": "TypeString", + "description": "The preshared key.", + "computed": true + }, + { + "name": "resource_type", + "type": "TypeString", + "description": "The resource type.", + "computed": true + }, + { + "name": "status", + "type": "TypeString", + "description": "The status of a VPN gateway connection.", "computed": true }, { @@ -60633,6 +61381,56 @@ "description": "The VPN gateway identifier.", "optional": true }, + { + "name": "admin_state_up", + "type": "TypeBool", + "description": "If set to false, the VPN gateway connection is shut down.", + "computed": true + }, + { + "name": "dead_peer_detection", + "type": "TypeList", + "description": "The Dead Peer Detection settings.", + "computed": true, + "elem": { + "action": { + "name": "action", + "type": "TypeString", + "description": "Dead Peer Detection actions.", + "computed": true + }, + "interval": { + "name": "interval", + "type": "TypeInt", + "description": "Dead Peer Detection interval in seconds.", + "computed": true + }, + "timeout": { + "name": "timeout", + "type": "TypeInt", + "description": "Dead Peer Detection timeout in seconds. Must be at least the interval.", + "computed": true + } + } + }, + { + "name": "href", + "type": "TypeString", + "description": "The VPN connection's canonical URL.", + "computed": true + }, + { + "name": "peer_address", + "type": "TypeString", + "description": "The IP address of the peer VPN gateway.", + "computed": true + }, + { + "name": "vpn_gateway_connection_name", + "type": "TypeString", + "description": "The VPN gateway connection name.", + "optional": true + }, { "name": "ike_policy", "type": "TypeList", @@ -60679,53 +61477,6 @@ } } }, - { - "name": "peer_cidrs", - "type": "TypeList", - "description": "The peer CIDRs for this resource.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "admin_state_up", - "type": "TypeBool", - "description": "If set to false, the VPN gateway connection is shut down.", - "computed": true - }, - { - "name": "authentication_mode", - "type": "TypeString", - "description": "The authentication mode. Only `psk` is currently supported.", - "computed": true - }, - { - "name": "tunnels", - "type": "TypeList", - "description": "The VPN tunnel configuration for this VPN gateway connection (in static route mode).", - "computed": true, - "elem": { - "public_ip_address": { - "name": "public_ip_address", - "type": "TypeString", - "description": "The IP address of the VPN gateway member in which the tunnel resides.", - "computed": true - }, - "status": { - "name": "status", - "type": "TypeString", - "description": "The status of the VPN Tunnel.", - "computed": true - } - } - }, - { - "name": "href", - "type": "TypeString", - "description": "The VPN connection's canonical URL.", - "computed": true - }, { "name": "ipsec_policy", "type": "TypeList", @@ -60779,16 +61530,39 @@ "computed": true }, { - "name": "name", + "name": "routing_protocol", "type": "TypeString", - "description": "The user-defined name for this VPN gateway connection.", + "description": "Routing protocols are disabled for this VPN gateway connection.", "computed": true }, { - "name": "peer_address", - "type": "TypeString", - "description": "The IP address of the peer VPN gateway.", - "computed": true + "name": "tunnels", + "type": "TypeList", + "description": "The VPN tunnel configuration for this VPN gateway connection (in static route mode).", + "computed": true, + "elem": { + "public_ip_address": { + "name": "public_ip_address", + "type": "TypeString", + "description": "The IP address of the VPN gateway member in which the tunnel resides.", + "computed": true + }, + "status": { + "name": "status", + "type": "TypeString", + "description": "The status of the VPN Tunnel.", + "computed": true + } + } + }, + { + "name": "peer_cidrs", + "type": "TypeList", + "description": "The peer CIDRs for this resource.", + "computed": true, + "elem": { + "type": "TypeString" + } }, { "name": "vpn_gateway_name", @@ -60797,33 +61571,33 @@ "optional": true }, { - "name": "vpn_gateway_connection", + "name": "created_at", "type": "TypeString", - "description": "The VPN gateway connection identifier.", - "optional": true + "description": "The date and time that this VPN gateway connection was created.", + "computed": true }, { - "name": "dead_peer_detection", + "name": "status_reasons", "type": "TypeList", - "description": "The Dead Peer Detection settings.", + "description": "The reasons for the current status (if any).", "computed": true, "elem": { - "action": { - "name": "action", + "code": { + "name": "code", "type": "TypeString", - "description": "Dead Peer Detection actions.", + "description": "A snake case string succinctly identifying the status reason.", "computed": true }, - "interval": { - "name": "interval", - "type": "TypeInt", - "description": "Dead Peer Detection interval in seconds.", + "message": { + "name": "message", + "type": "TypeString", + "description": "An explanation of the status reason.", "computed": true }, - "timeout": { - "name": "timeout", - "type": "TypeInt", - "description": "Dead Peer Detection timeout in seconds. Must be at least the interval.", + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about this status reason.", "computed": true } } @@ -60836,24 +61610,6 @@ "elem": { "type": "TypeString" } - }, - { - "name": "psk", - "type": "TypeString", - "description": "The preshared key.", - "computed": true - }, - { - "name": "resource_type", - "type": "TypeString", - "description": "The resource type.", - "computed": true - }, - { - "name": "status", - "type": "TypeString", - "description": "The status of a VPN gateway connection.", - "computed": true } ], "ibm_is_vpn_gateway_connections": [ @@ -60971,6 +61727,32 @@ "description": "VPN gateway connection status", "computed": true }, + "status_reasons": { + "name": "status_reasons", + "type": "TypeList", + "description": "The reasons for the current status (if any).", + "computed": true, + "elem": { + "code": { + "name": "code", + "type": "TypeString", + "description": "A snake case string succinctly identifying the status reason.", + "computed": true + }, + "message": { + "name": "message", + "type": "TypeString", + "description": "An explanation of the status reason.", + "computed": true + }, + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about this status reason.", + "computed": true + } + } + }, "timeout": { "name": "timeout", "type": "TypeInt", @@ -61042,6 +61824,69 @@ "description": "The VPN gateway's CRN", "computed": true }, + "health_reasons": { + "name": "health_reasons", + "type": "TypeList", + "computed": true, + "elem": { + "code": { + "name": "code", + "type": "TypeString", + "description": "A snake case string succinctly identifying the reason for this health state.", + "computed": true + }, + "message": { + "name": "message", + "type": "TypeString", + "description": "An explanation of the reason for this health state.", + "computed": true + }, + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about the reason for this health state.", + "computed": true + } + } + }, + "health_state": { + "name": "health_state", + "type": "TypeString", + "description": "The health of this resource.- `ok`: Healthy- `degraded`: Suffering from compromised performance, capacity, or connectivity- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.", + "computed": true + }, + "lifecycle_reasons": { + "name": "lifecycle_reasons", + "type": "TypeList", + "description": "The reasons for the current lifecycle_state (if any).", + "computed": true, + "elem": { + "code": { + "name": "code", + "type": "TypeString", + "description": "A snake case string succinctly identifying the reason for this lifecycle state.", + "computed": true + }, + "message": { + "name": "message", + "type": "TypeString", + "description": "An explanation of the reason for this lifecycle state.", + "computed": true + }, + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about the reason for this lifecycle state.", + "computed": true + } + } + }, + "lifecycle_state": { + "name": "lifecycle_state", + "type": "TypeString", + "description": "The lifecycle state of the VPN route.", + "computed": true + }, "members": { "name": "members", "type": "TypeList", @@ -61170,122 +62015,104 @@ ], "ibm_is_vpn_server": [ { - "name": "certificate", - "type": "TypeList", - "description": "The certificate instance for this VPN server.", - "computed": true, - "elem": { - "crn": { - "name": "crn", - "type": "TypeString", - "description": "The CRN for this certificate instance.", - "computed": true - } - } + "name": "client_auto_delete", + "type": "TypeBool", + "description": "If set to `true`, disconnected VPN clients will be automatically deleted after the `client_auto_delete_timeout` time has passed.", + "computed": true }, { - "name": "client_authentication", - "type": "TypeList", - "description": "The methods used to authenticate VPN clients to this VPN server. VPN clients must authenticate against all provided methods.", - "computed": true, - "elem": { - "client_ca": { - "name": "client_ca", - "type": "TypeString", - "description": "The CRN for this certificate instance,The certificate instance used for the VPN client certificate authority (CA).", - "computed": true - }, - "identity_provider": { - "name": "identity_provider", - "type": "TypeString", - "description": "The type of identity provider to be used by the VPN client.- `iam`: IBM identity and access managementThe enumerated values for this property are expected to expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the route on which the unexpected property value was encountered,The type of identity provider to be used by VPN client.", - "computed": true - }, - "method": { - "name": "method", - "type": "TypeString", - "description": "The type of authentication.", - "computed": true - } - } + "name": "client_auto_delete_timeout", + "type": "TypeInt", + "description": "Hours after which disconnected VPN clients will be automatically deleted. If `0`, disconnected VPN clients will be deleted immediately.", + "computed": true }, { - "name": "client_auto_delete", - "type": "TypeBool", - "description": "If set to `true`, disconnected VPN clients will be automatically deleted after the `client_auto_delete_timeout` time has passed.", + "name": "lifecycle_state", + "type": "TypeString", + "description": "The lifecycle state of the VPN server.", "computed": true }, { - "name": "client_dns_server_ips", - "type": "TypeList", - "description": "The DNS server addresses that will be provided to VPN clients that are connected to this VPN server.", + "name": "access_tags", + "type": "TypeSet", + "description": "List of access tags", "computed": true, "elem": { - "address": { - "name": "address", - "type": "TypeString", - "description": "The IP address. This property may add support for IPv6 addresses in the future. When processing a value in this property, verify that the address is in an expected format. If it is not, log an error. Optionally halt processing and surface the error, or bypass the resource on which the unexpected IP address format was encountered.", - "computed": true - } + "type": "TypeString" } }, { - "name": "client_idle_timeout", - "type": "TypeInt", - "description": "The seconds a VPN client can be idle before this VPN server will disconnect it. If `0`, the server will not disconnect idle clients.", + "name": "name", + "type": "TypeString", + "description": "The unique user-defined name for this VPN server", + "optional": true, "computed": true }, { - "name": "client_ip_pool", + "name": "crn", "type": "TypeString", - "description": "The VPN client IPv4 address pool, expressed in CIDR format.", + "description": "The CRN for this VPN server.", + "cloud_data_type": "crn", "computed": true }, { - "name": "created_at", - "type": "TypeString", - "description": "The date and time that the VPN server was created.", + "name": "enable_split_tunneling", + "type": "TypeBool", + "description": "Indicates whether the split tunneling is enabled on this VPN server.", "computed": true }, { - "name": "hostname", + "name": "href", "type": "TypeString", - "description": "Fully qualified domain name assigned to this VPN server.", + "description": "The URL for this VPN server.", "computed": true }, { - "name": "resource_group", + "name": "security_groups", "type": "TypeList", - "description": "The resource group for this VPN server.", - "cloud_data_type": "resource_group", + "description": "The security groups targeting this VPN server.", "computed": true, "elem": { + "crn": { + "name": "crn", + "type": "TypeString", + "description": "The security group's CRN.", + "computed": true + }, + "deleted": { + "name": "deleted", + "type": "TypeList", + "description": "If present, this property indicates the referenced resource has been deleted and providessome supplementary information.", + "computed": true, + "elem": { + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about deleted resources.", + "computed": true + } + } + }, "href": { "name": "href", "type": "TypeString", - "description": "The URL for this resource group.", + "description": "The security group's canonical URL.", "computed": true }, "id": { "name": "id", "type": "TypeString", - "description": "The unique identifier for this resource group.", + "description": "The unique identifier for this security group.", "computed": true }, "name": { "name": "name", "type": "TypeString", - "description": "The user-defined name for this resource group.", + "description": "The user-defined name for this security group. Names must be unique within the VPC the security group resides in.", "computed": true } } }, - { - "name": "resource_type", - "type": "TypeString", - "description": "The type of resource referenced.", - "computed": true - }, { "name": "subnets", "type": "TypeList", @@ -61339,47 +62166,41 @@ } }, { - "name": "name", - "type": "TypeString", - "description": "The unique user-defined name for this VPN server", - "optional": true, - "computed": true - }, - { - "name": "client_auto_delete_timeout", - "type": "TypeInt", - "description": "Hours after which disconnected VPN clients will be automatically deleted. If `0`, disconnected VPN clients will be deleted immediately.", - "computed": true - }, - { - "name": "crn", - "type": "TypeString", - "description": "The CRN for this VPN server.", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "lifecycle_state", - "type": "TypeString", - "description": "The lifecycle state of the VPN server.", - "computed": true - }, - { - "name": "port", - "type": "TypeInt", - "description": "The port number used by this VPN server.", - "computed": true + "name": "lifecycle_reasons", + "type": "TypeList", + "description": "The reasons for the current lifecycle_state (if any).", + "computed": true, + "elem": { + "code": { + "name": "code", + "type": "TypeString", + "description": "A snake case string succinctly identifying the reason for this lifecycle state.", + "computed": true + }, + "message": { + "name": "message", + "type": "TypeString", + "description": "An explanation of the reason for this lifecycle state.", + "computed": true + }, + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about the reason for this lifecycle state.", + "computed": true + } + } }, { - "name": "security_groups", + "name": "private_ips", "type": "TypeList", - "description": "The security groups targeting this VPN server.", + "description": "The reserved IPs bound to this VPN server.", "computed": true, "elem": { - "crn": { - "name": "crn", + "address": { + "name": "address", "type": "TypeString", - "description": "The security group's CRN.", + "description": "The IP address. This property may add support for IPv6 addresses in the future. When processing a value in this property, verify that the address is in an expected format. If it is not, log an error. Optionally halt processing and surface the error, or bypass the resource on which the unexpected IP address format was encountered.", "computed": true }, "deleted": { @@ -61399,97 +62220,112 @@ "href": { "name": "href", "type": "TypeString", - "description": "The security group's canonical URL.", + "description": "The URL for this reserved IP.", "computed": true }, "id": { "name": "id", "type": "TypeString", - "description": "The unique identifier for this security group.", + "description": "The unique identifier for this reserved IP.", "computed": true }, "name": { "name": "name", "type": "TypeString", - "description": "The user-defined name for this security group. Names must be unique within the VPC the security group resides in.", + "description": "The user-defined or system-provided name for this reserved IP.", + "computed": true + }, + "resource_type": { + "name": "resource_type", + "type": "TypeString", + "description": "The resource type.", "computed": true } } }, { - "name": "vpc", + "name": "certificate", "type": "TypeList", - "description": "The VPC this VPN server resides in.", + "description": "The certificate instance for this VPN server.", "computed": true, "elem": { "crn": { "name": "crn", "type": "TypeString", - "description": "The CRN for this VPC.", + "description": "The CRN for this certificate instance.", + "computed": true + } + } + }, + { + "name": "client_authentication", + "type": "TypeList", + "description": "The methods used to authenticate VPN clients to this VPN server. VPN clients must authenticate against all provided methods.", + "computed": true, + "elem": { + "client_ca": { + "name": "client_ca", + "type": "TypeString", + "description": "The CRN for this certificate instance,The certificate instance used for the VPN client certificate authority (CA).", "computed": true }, - "deleted": { - "name": "deleted", - "type": "TypeList", - "description": "If present, this property indicates the referenced resource has been deleted and providessome supplementary information.", - "computed": true, - "elem": { - "more_info": { - "name": "more_info", - "type": "TypeString", - "description": "Link to documentation about deleted resources.", - "computed": true - } - } + "identity_provider": { + "name": "identity_provider", + "type": "TypeString", + "description": "The type of identity provider to be used by the VPN client.- `iam`: IBM identity and access managementThe enumerated values for this property are expected to expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the route on which the unexpected property value was encountered,The type of identity provider to be used by VPN client.", + "computed": true }, + "method": { + "name": "method", + "type": "TypeString", + "description": "The type of authentication.", + "computed": true + } + } + }, + { + "name": "client_idle_timeout", + "type": "TypeInt", + "description": "The seconds a VPN client can be idle before this VPN server will disconnect it. If `0`, the server will not disconnect idle clients.", + "computed": true + }, + { + "name": "resource_group", + "type": "TypeList", + "description": "The resource group for this VPN server.", + "cloud_data_type": "resource_group", + "computed": true, + "elem": { "href": { "name": "href", "type": "TypeString", - "description": "The URL for this VPC.", + "description": "The URL for this resource group.", "computed": true }, "id": { "name": "id", "type": "TypeString", - "description": "The unique identifier for this VPC.", + "description": "The unique identifier for this resource group.", "computed": true }, "name": { "name": "name", "type": "TypeString", - "description": "The unique user-defined name for this VPC.", + "description": "The user-defined name for this resource group.", "computed": true } } }, { - "name": "identifier", - "type": "TypeString", - "description": "The unique identifier for this VPN server", - "optional": true - }, - { - "name": "enable_split_tunneling", - "type": "TypeBool", - "description": "Indicates whether the split tunneling is enabled on this VPN server.", - "computed": true - }, - { - "name": "href", - "type": "TypeString", - "description": "The URL for this VPN server.", - "computed": true - }, - { - "name": "private_ips", + "name": "vpc", "type": "TypeList", - "description": "The reserved IPs bound to this VPN server.", + "description": "The VPC this VPN server resides in.", "computed": true, "elem": { - "address": { - "name": "address", + "crn": { + "name": "crn", "type": "TypeString", - "description": "The IP address. This property may add support for IPv6 addresses in the future. When processing a value in this property, verify that the address is in an expected format. If it is not, log an error. Optionally halt processing and surface the error, or bypass the resource on which the unexpected IP address format was encountered.", + "description": "The CRN for this VPC.", "computed": true }, "deleted": { @@ -61509,29 +62345,43 @@ "href": { "name": "href", "type": "TypeString", - "description": "The URL for this reserved IP.", + "description": "The URL for this VPC.", "computed": true }, "id": { "name": "id", "type": "TypeString", - "description": "The unique identifier for this reserved IP.", + "description": "The unique identifier for this VPC.", "computed": true }, "name": { "name": "name", "type": "TypeString", - "description": "The user-defined or system-provided name for this reserved IP.", + "description": "The unique user-defined name for this VPC.", "computed": true - }, - "resource_type": { - "name": "resource_type", + } + } + }, + { + "name": "client_dns_server_ips", + "type": "TypeList", + "description": "The DNS server addresses that will be provided to VPN clients that are connected to this VPN server.", + "computed": true, + "elem": { + "address": { + "name": "address", "type": "TypeString", - "description": "The resource type.", + "description": "The IP address. This property may add support for IPv6 addresses in the future. When processing a value in this property, verify that the address is in an expected format. If it is not, log an error. Optionally halt processing and surface the error, or bypass the resource on which the unexpected IP address format was encountered.", "computed": true } } }, + { + "name": "protocol", + "type": "TypeString", + "description": "The transport protocol used by this VPN server.", + "computed": true + }, { "name": "health_state", "type": "TypeString", @@ -61539,64 +62389,78 @@ "computed": true }, { - "name": "protocol", + "name": "hostname", "type": "TypeString", - "description": "The transport protocol used by this VPN server.", + "description": "Fully qualified domain name assigned to this VPN server.", "computed": true }, - { - "name": "access_tags", - "type": "TypeSet", - "description": "List of access tags", - "computed": true, - "elem": { - "type": "TypeString" - } - } - ], - "ibm_is_vpn_server_client": [ { "name": "resource_type", "type": "TypeString", - "description": "The resource type.", + "description": "The type of resource referenced.", "computed": true }, { - "name": "username", + "name": "identifier", "type": "TypeString", - "description": "The username that this VPN client provided when connecting to the VPN server.This property will be present only when the`username` client authentication method is enabled on the VPN server.", + "description": "The unique identifier for this VPN server", + "optional": true + }, + { + "name": "client_ip_pool", + "type": "TypeString", + "description": "The VPN client IPv4 address pool, expressed in CIDR format.", "computed": true }, { - "name": "identifier", + "name": "created_at", "type": "TypeString", - "description": "The VPN client identifier.", - "required": true + "description": "The date and time that the VPN server was created.", + "computed": true }, { - "name": "client_ip", + "name": "health_reasons", "type": "TypeList", - "description": "The IP address assigned to this VPN client from `client_ip_pool`.", "computed": true, "elem": { - "address": { - "name": "address", + "code": { + "name": "code", "type": "TypeString", - "description": "The IP address. This property may add support for IPv6 addresses in the future. When processing a value in this property, verify that the address is in an expected format. If it is not, log an error. Optionally halt processing and surface the error, or bypass the resource on which the unexpected IP address format was encountered.", + "description": "A snake case string succinctly identifying the reason for this health state.", + "computed": true + }, + "message": { + "name": "message", + "type": "TypeString", + "description": "An explanation of the reason for this health state.", + "computed": true + }, + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about the reason for this health state.", "computed": true } } }, { - "name": "created_at", + "name": "port", + "type": "TypeInt", + "description": "The port number used by this VPN server.", + "computed": true + } + ], + "ibm_is_vpn_server_client": [ + { + "name": "common_name", "type": "TypeString", - "description": "The date and time that the VPN client was created.", + "description": "The common name of client certificate that the VPN client provided when connecting to the server.This property will be present only when the `certificate` client authentication method is enabled on the VPN server.", "computed": true }, { - "name": "href", + "name": "created_at", "type": "TypeString", - "description": "The URL for this VPN client.", + "description": "The date and time that the VPN client was created.", "computed": true }, { @@ -61614,27 +62478,47 @@ } }, { - "name": "vpn_server", - "type": "TypeString", - "description": "The VPN server identifier.", - "required": true + "name": "remote_port", + "type": "TypeInt", + "description": "The remote port of this VPN client.", + "computed": true }, { - "name": "common_name", + "name": "resource_type", "type": "TypeString", - "description": "The common name of client certificate that the VPN client provided when connecting to the server.This property will be present only when the `certificate` client authentication method is enabled on the VPN server.", + "description": "The resource type.", "computed": true }, { - "name": "disconnected_at", + "name": "username", "type": "TypeString", - "description": "The date and time that the VPN client was disconnected.", + "description": "The username that this VPN client provided when connecting to the VPN server.This property will be present only when the`username` client authentication method is enabled on the VPN server.", "computed": true }, { - "name": "remote_port", - "type": "TypeInt", - "description": "The remote port of this VPN client.", + "name": "identifier", + "type": "TypeString", + "description": "The VPN client identifier.", + "required": true + }, + { + "name": "client_ip", + "type": "TypeList", + "description": "The IP address assigned to this VPN client from `client_ip_pool`.", + "computed": true, + "elem": { + "address": { + "name": "address", + "type": "TypeString", + "description": "The IP address. This property may add support for IPv6 addresses in the future. When processing a value in this property, verify that the address is in an expected format. If it is not, log an error. Optionally halt processing and surface the error, or bypass the resource on which the unexpected IP address format was encountered.", + "computed": true + } + } + }, + { + "name": "href", + "type": "TypeString", + "description": "The URL for this VPN client.", "computed": true }, { @@ -61642,6 +62526,18 @@ "type": "TypeString", "description": "The status of the VPN client:- `connected`: the VPN client is `connected` to this VPN server.- `disconnected`: the VPN client is `disconnected` from this VPN server.The enumerated values for this property are expected to expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the VPN client on which the unexpected property value was encountered.", "computed": true + }, + { + "name": "vpn_server", + "type": "TypeString", + "description": "The VPN server identifier.", + "required": true + }, + { + "name": "disconnected_at", + "type": "TypeString", + "description": "The date and time that the VPN client was disconnected.", + "computed": true } ], "ibm_is_vpn_server_client_configuration": [ @@ -61667,12 +62563,6 @@ } ], "ibm_is_vpn_server_clients": [ - { - "name": "vpn_server", - "type": "TypeString", - "description": "The VPN server identifier.", - "required": true - }, { "name": "clients", "type": "TypeList", @@ -61762,14 +62652,20 @@ "computed": true } } - } - ], - "ibm_is_vpn_server_route": [ + }, { "name": "vpn_server", "type": "TypeString", "description": "The VPN server identifier.", "required": true + } + ], + "ibm_is_vpn_server_route": [ + { + "name": "resource_type", + "type": "TypeString", + "description": "The resource type.", + "computed": true }, { "name": "identifier", @@ -61778,46 +62674,103 @@ "optional": true }, { - "name": "name", + "name": "created_at", "type": "TypeString", - "description": "The unique user-defined name for this VPN server route", - "optional": true, + "description": "The date and time that the VPN route was created.", "computed": true }, { - "name": "action", + "name": "href", "type": "TypeString", - "description": "The action to perform with a packet matching the VPN route:- `translate`: translate the source IP address to one of the private IP addresses of the VPN server.- `deliver`: deliver the packet into the VPC.- `drop`: drop the packetThe enumerated values for this property are expected to expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the VPN route on which the unexpected property value was encountered.", + "description": "The URL for this VPN route.", "computed": true }, { - "name": "resource_type", + "name": "lifecycle_reasons", + "type": "TypeList", + "description": "The reasons for the current lifecycle_state (if any).", + "computed": true, + "elem": { + "code": { + "name": "code", + "type": "TypeString", + "description": "A snake case string succinctly identifying the reason for this lifecycle state.", + "computed": true + }, + "message": { + "name": "message", + "type": "TypeString", + "description": "An explanation of the reason for this lifecycle state.", + "computed": true + }, + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about the reason for this lifecycle state.", + "computed": true + } + } + }, + { + "name": "health_state", "type": "TypeString", - "description": "The resource type.", + "description": "The health of this resource.- `ok`: Healthy- `degraded`: Suffering from compromised performance, capacity, or connectivity- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.", "computed": true }, { - "name": "created_at", + "name": "health_reasons", + "type": "TypeList", + "computed": true, + "elem": { + "code": { + "name": "code", + "type": "TypeString", + "description": "A snake case string succinctly identifying the reason for this health state.", + "computed": true + }, + "message": { + "name": "message", + "type": "TypeString", + "description": "An explanation of the reason for this health state.", + "computed": true + }, + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about the reason for this health state.", + "computed": true + } + } + }, + { + "name": "lifecycle_state", "type": "TypeString", - "description": "The date and time that the VPN route was created.", + "description": "The lifecycle state of the VPN route.", "computed": true }, { - "name": "destination", + "name": "vpn_server", "type": "TypeString", - "description": "The destination for this VPN route in the VPN server. If an incoming packet does not match any destination, it will be dropped.", + "description": "The VPN server identifier.", + "required": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The unique user-defined name for this VPN server route", + "optional": true, "computed": true }, { - "name": "href", + "name": "action", "type": "TypeString", - "description": "The URL for this VPN route.", + "description": "The action to perform with a packet matching the VPN route:- `translate`: translate the source IP address to one of the private IP addresses of the VPN server.- `deliver`: deliver the packet into the VPC.- `drop`: drop the packetThe enumerated values for this property are expected to expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the VPN route on which the unexpected property value was encountered.", "computed": true }, { - "name": "lifecycle_state", + "name": "destination", "type": "TypeString", - "description": "The lifecycle state of the VPN route.", + "description": "The destination for this VPN route in the VPN server. If an incoming packet does not match any destination, it will be dropped.", "computed": true } ], @@ -61852,6 +62805,37 @@ "description": "The destination for this VPN route in the VPN server. If an incoming packet does not match any destination, it will be dropped.", "computed": true }, + "health_reasons": { + "name": "health_reasons", + "type": "TypeList", + "computed": true, + "elem": { + "code": { + "name": "code", + "type": "TypeString", + "description": "A snake case string succinctly identifying the reason for this health state.", + "computed": true + }, + "message": { + "name": "message", + "type": "TypeString", + "description": "An explanation of the reason for this health state.", + "computed": true + }, + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about the reason for this health state.", + "computed": true + } + } + }, + "health_state": { + "name": "health_state", + "type": "TypeString", + "description": "The health of this resource.- `ok`: Healthy- `degraded`: Suffering from compromised performance, capacity, or connectivity- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.", + "computed": true + }, "href": { "name": "href", "type": "TypeString", @@ -61864,6 +62848,32 @@ "description": "The unique identifier for this VPN route.", "computed": true }, + "lifecycle_reasons": { + "name": "lifecycle_reasons", + "type": "TypeList", + "description": "The reasons for the current lifecycle_state (if any).", + "computed": true, + "elem": { + "code": { + "name": "code", + "type": "TypeString", + "description": "A snake case string succinctly identifying the reason for this lifecycle state.", + "computed": true + }, + "message": { + "name": "message", + "type": "TypeString", + "description": "An explanation of the reason for this lifecycle state.", + "computed": true + }, + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about the reason for this lifecycle state.", + "computed": true + } + } + }, "lifecycle_state": { "name": "lifecycle_state", "type": "TypeString", @@ -61886,6 +62896,13 @@ } ], "ibm_is_vpn_servers": [ + { + "name": "resource_group_id", + "type": "TypeString", + "description": "resource group identifier.", + "cloud_data_type": "resource_group", + "optional": true + }, { "name": "vpn_servers", "type": "TypeList", @@ -61997,6 +63014,31 @@ "description": "Indicates whether the split tunneling is enabled on this VPN server.", "computed": true }, + "health_reasons": { + "name": "health_reasons", + "type": "TypeList", + "computed": true, + "elem": { + "code": { + "name": "code", + "type": "TypeString", + "description": "A snake case string succinctly identifying the reason for this health state.", + "computed": true + }, + "message": { + "name": "message", + "type": "TypeString", + "description": "An explanation of the reason for this health state.", + "computed": true + }, + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about the reason for this health state.", + "computed": true + } + } + }, "health_state": { "name": "health_state", "type": "TypeString", @@ -62021,6 +63063,32 @@ "description": "The unique identifier for this VPN server.", "computed": true }, + "lifecycle_reasons": { + "name": "lifecycle_reasons", + "type": "TypeList", + "description": "The reasons for the current lifecycle_state (if any).", + "computed": true, + "elem": { + "code": { + "name": "code", + "type": "TypeString", + "description": "A snake case string succinctly identifying the reason for this lifecycle state.", + "computed": true + }, + "message": { + "name": "message", + "type": "TypeString", + "description": "An explanation of the reason for this lifecycle state.", + "computed": true + }, + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about the reason for this lifecycle state.", + "computed": true + } + } + }, "lifecycle_state": { "name": "lifecycle_state", "type": "TypeString", @@ -62274,13 +63342,6 @@ } } } - }, - { - "name": "resource_group_id", - "type": "TypeString", - "description": "resource group identifier.", - "cloud_data_type": "resource_group", - "optional": true } ], "ibm_is_zone": [ @@ -62324,23 +63385,11 @@ ], "ibm_kms_instance_policies": [ { - "name": "key_create_import_access", + "name": "dual_auth_delete", "type": "TypeList", - "description": "Data associated with the key create import access policy for the instance", + "description": "Data associated with the dual auth delete policy for instance", "computed": true, "elem": { - "create_root_key": { - "name": "create_root_key", - "type": "TypeBool", - "description": "If set to true, Key Protect allows you or any authorized users to create root keys in the instance.", - "computed": true - }, - "create_standard_key": { - "name": "create_standard_key", - "type": "TypeBool", - "description": "If set to true, Key Protect allows you or any authorized users to create standard keys in the instance.", - "computed": true - }, "created_by": { "name": "created_by", "type": "TypeString", @@ -62356,25 +63405,7 @@ "enabled": { "name": "enabled", "type": "TypeBool", - "description": "Data associated with enable/disable KCIA policy for the instance.", - "computed": true - }, - "enforce_token": { - "name": "enforce_token", - "type": "TypeBool", - "description": "If set to true, the service prevents you or any authorized users from importing key material into the specified service instance without using an import token.", - "computed": true - }, - "import_root_key": { - "name": "import_root_key", - "type": "TypeBool", - "description": "If set to true, Key Protect allows you or any authorized users to import root keys into the instance.", - "computed": true - }, - "import_standard_key": { - "name": "import_standard_key", - "type": "TypeBool", - "description": "If set to true, Key Protect allows you or any authorized users to import standard keys into the instance.", + "description": "Data associated with enable/disable dual authorization policy for the instance.", "computed": true }, "last_updated": { @@ -62392,9 +63423,9 @@ } }, { - "name": "metrics", + "name": "rotation", "type": "TypeList", - "description": "Data associated with the metric policy for the instance", + "description": "Data associated with the rotation policy for instance", "computed": true, "elem": { "created_by": { @@ -62412,7 +63443,13 @@ "enabled": { "name": "enabled", "type": "TypeBool", - "description": "Data associated with enable/disable metrics policy on the instance.", + "description": "Data associated with enable/disable of rotation policy for the instance", + "computed": true + }, + "interval_month": { + "name": "interval_month", + "type": "TypeInt", + "description": "Specifies the rotation time interval in months for the instance", "computed": true }, "last_updated": { @@ -62430,28 +63467,23 @@ } }, { - "name": "instance_id", - "type": "TypeString", - "description": "Key protect or hpcs instance GUID or CRN", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true, - "cloud_data_range": [ - "service:kms|hs-crypto" - ] - }, - { - "name": "policy_type", - "type": "TypeString", - "description": "Type of Policy to be Retrieved", - "optional": true - }, - { - "name": "dual_auth_delete", + "name": "key_create_import_access", "type": "TypeList", - "description": "Data associated with the dual auth delete policy for instance", + "description": "Data associated with the key create import access policy for the instance", "computed": true, "elem": { + "create_root_key": { + "name": "create_root_key", + "type": "TypeBool", + "description": "If set to true, Key Protect allows you or any authorized users to create root keys in the instance.", + "computed": true + }, + "create_standard_key": { + "name": "create_standard_key", + "type": "TypeBool", + "description": "If set to true, Key Protect allows you or any authorized users to create standard keys in the instance.", + "computed": true + }, "created_by": { "name": "created_by", "type": "TypeString", @@ -62467,7 +63499,25 @@ "enabled": { "name": "enabled", "type": "TypeBool", - "description": "Data associated with enable/disable dual authorization policy for the instance.", + "description": "Data associated with enable/disable KCIA policy for the instance.", + "computed": true + }, + "enforce_token": { + "name": "enforce_token", + "type": "TypeBool", + "description": "If set to true, the service prevents you or any authorized users from importing key material into the specified service instance without using an import token.", + "computed": true + }, + "import_root_key": { + "name": "import_root_key", + "type": "TypeBool", + "description": "If set to true, Key Protect allows you or any authorized users to import root keys into the instance.", + "computed": true + }, + "import_standard_key": { + "name": "import_standard_key", + "type": "TypeBool", + "description": "If set to true, Key Protect allows you or any authorized users to import standard keys into the instance.", "computed": true }, "last_updated": { @@ -62485,9 +63535,9 @@ } }, { - "name": "rotation", + "name": "metrics", "type": "TypeList", - "description": "Data associated with the rotation policy for instance", + "description": "Data associated with the metric policy for the instance", "computed": true, "elem": { "created_by": { @@ -62505,13 +63555,7 @@ "enabled": { "name": "enabled", "type": "TypeBool", - "description": "Data associated with enable/disable of rotation policy for the instance", - "computed": true - }, - "interval_month": { - "name": "interval_month", - "type": "TypeInt", - "description": "Specifies the rotation time interval in months for the instance", + "description": "Data associated with enable/disable metrics policy on the instance.", "computed": true }, "last_updated": { @@ -62527,49 +63571,26 @@ "computed": true } } - } - ], - "ibm_kms_key": [ + }, { "name": "instance_id", "type": "TypeString", - "description": "Key protect or hpcs instance GUID", + "description": "Key protect or hpcs instance GUID or CRN", "cloud_data_type": "resource_instance", + "immutable": true, "required": true, "cloud_data_range": [ "service:kms|hs-crypto" ] }, { - "name": "limit", - "type": "TypeInt", - "description": "Limit till the keys to be fetched", - "optional": true - }, - { - "name": "key_id", - "type": "TypeString", - "optional": true - }, - { - "name": "key_name", - "type": "TypeString", - "description": "The name of the key to be fetched", - "optional": true - }, - { - "name": "alias", - "type": "TypeString", - "description": "The alias associated with the key", - "optional": true - }, - { - "name": "endpoint_type", + "name": "policy_type", "type": "TypeString", - "description": "public or private", - "default_value": "public", + "description": "Type of Policy to be Retrieved", "optional": true - }, + } + ], + "ibm_kms_key": [ { "name": "keys", "type": "TypeList", @@ -62713,6 +63734,46 @@ "computed": true } } + }, + { + "name": "instance_id", + "type": "TypeString", + "description": "Key protect or hpcs instance GUID", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:kms|hs-crypto" + ] + }, + { + "name": "limit", + "type": "TypeInt", + "description": "Limit till the keys to be fetched", + "optional": true + }, + { + "name": "key_id", + "type": "TypeString", + "optional": true + }, + { + "name": "key_name", + "type": "TypeString", + "description": "The name of the key to be fetched", + "optional": true + }, + { + "name": "alias", + "type": "TypeString", + "description": "The alias associated with the key", + "optional": true + }, + { + "name": "endpoint_type", + "type": "TypeString", + "description": "public or private", + "default_value": "public", + "optional": true } ], "ibm_kms_key_policies": [ @@ -62861,23 +63922,6 @@ } ], "ibm_kms_key_rings": [ - { - "name": "instance_id", - "type": "TypeString", - "description": "Key protect or hpcs instance GUID", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:kms|hs-crypto" - ] - }, - { - "name": "endpoint_type", - "type": "TypeString", - "description": "public or private", - "default_value": "public", - "optional": true - }, { "name": "key_rings", "type": "TypeList", @@ -62900,20 +63944,26 @@ "computed": true } } - } - ], - "ibm_kms_keys": [ + }, { - "name": "alias", + "name": "instance_id", "type": "TypeString", - "description": "The name of the key to be fetched", - "optional": true + "description": "Key protect or hpcs instance GUID", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:kms|hs-crypto" + ] }, { - "name": "key_id", + "name": "endpoint_type", "type": "TypeString", + "description": "public or private", + "default_value": "public", "optional": true - }, + } + ], + "ibm_kms_keys": [ { "name": "endpoint_type", "type": "TypeString", @@ -63087,6 +64137,17 @@ "type": "TypeInt", "description": "Limit till the keys to be fetched", "optional": true + }, + { + "name": "alias", + "type": "TypeString", + "description": "The name of the key to be fetched", + "optional": true + }, + { + "name": "key_id", + "type": "TypeString", + "optional": true } ], "ibm_kp_key": [ @@ -63129,6 +64190,31 @@ } ], "ibm_lbaas": [ + { + "name": "status", + "type": "TypeString", + "computed": true + }, + { + "name": "server_instances_up", + "type": "TypeInt", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "required": true + }, + { + "name": "description", + "type": "TypeString", + "computed": true + }, + { + "name": "active_connections", + "type": "TypeInt", + "computed": true + }, { "name": "ssl_ciphers", "type": "TypeSet", @@ -63137,6 +64223,48 @@ "type": "TypeString" } }, + { + "name": "type", + "type": "TypeString", + "computed": true + }, + { + "name": "vip", + "type": "TypeString", + "computed": true + }, + { + "name": "server_instances", + "type": "TypeList", + "computed": true, + "elem": { + "member_id": { + "name": "member_id", + "type": "TypeString", + "computed": true + }, + "private_ip_address": { + "name": "private_ip_address", + "type": "TypeString", + "computed": true + }, + "status": { + "name": "status", + "type": "TypeString", + "computed": true + }, + "weight": { + "name": "weight", + "type": "TypeInt", + "computed": true + } + } + }, + { + "name": "server_instances_down", + "type": "TypeInt", + "computed": true + }, { "name": "protocols", "type": "TypeList", @@ -63189,68 +64317,6 @@ } } }, - { - "name": "name", - "type": "TypeString", - "required": true - }, - { - "name": "description", - "type": "TypeString", - "computed": true - }, - { - "name": "server_instances_up", - "type": "TypeInt", - "computed": true - }, - { - "name": "server_instances", - "type": "TypeList", - "computed": true, - "elem": { - "member_id": { - "name": "member_id", - "type": "TypeString", - "computed": true - }, - "private_ip_address": { - "name": "private_ip_address", - "type": "TypeString", - "computed": true - }, - "status": { - "name": "status", - "type": "TypeString", - "computed": true - }, - "weight": { - "name": "weight", - "type": "TypeInt", - "computed": true - } - } - }, - { - "name": "datacenter", - "type": "TypeString", - "computed": true - }, - { - "name": "status", - "type": "TypeString", - "computed": true - }, - { - "name": "use_system_public_ip_pool", - "type": "TypeBool", - "computed": true - }, - { - "name": "server_instances_down", - "type": "TypeInt", - "computed": true - }, { "name": "health_monitors", "type": "TypeList", @@ -63294,18 +64360,13 @@ } }, { - "name": "type", - "type": "TypeString", - "computed": true - }, - { - "name": "vip", + "name": "datacenter", "type": "TypeString", "computed": true }, { - "name": "active_connections", - "type": "TypeInt", + "name": "use_system_public_ip_pool", + "type": "TypeBool", "computed": true } ], @@ -63458,7 +64519,7 @@ "destination_crn": { "name": "destination_crn", "type": "TypeString", - "description": "The CRN of the destination service instance or resource.", + "description": "The CRN of the destination service instance or resource. Ensure you have a service authorization between IBM Cloud Metrics Routing and your Cloud resource. Read [S2S authorization](https://cloud.ibm.com/docs/metrics-router?topic=metrics-router-target-monitoring\u0026interface=ui#target-monitoring-ui) for details.", "computed": true }, "id": { @@ -63580,48 +64641,24 @@ ], "ibm_org": [ { - "name": "org", + "name": "name", "type": "TypeString", "description": "Org name, for example myorg@domain", - "optional": true, - "deprecated": "use name instead" + "optional": true }, { - "name": "name", + "name": "org", "type": "TypeString", "description": "Org name, for example myorg@domain", - "optional": true + "optional": true, + "deprecated": "use name instead" } ], "ibm_org_quota": [ { - "name": "trial_db_allowed", - "type": "TypeBool", - "description": "Defines trial db are allowed for organization.", - "computed": true - }, - { - "name": "app_instance_limit", - "type": "TypeInt", - "description": "Defines the total app instance limit for organization.", - "computed": true - }, - { - "name": "app_tasks_limit", - "type": "TypeInt", - "description": "Defines the total app task limit for organization.", - "computed": true - }, - { - "name": "name", - "type": "TypeString", - "description": "Org quota name, for example qIBM", - "required": true - }, - { - "name": "total_routes", + "name": "memory_limit", "type": "TypeInt", - "description": "Defines the total route for organization.", + "description": "Defines the total memory limit for organization.", "computed": true }, { @@ -63648,6 +64685,12 @@ "description": "Defines the number of reserved route ports for organization.", "computed": true }, + { + "name": "total_services", + "type": "TypeInt", + "description": "Defines the total services for organization.", + "computed": true + }, { "name": "non_basic_services_allowed", "type": "TypeBool", @@ -63655,16 +64698,34 @@ "computed": true }, { - "name": "total_services", + "name": "total_routes", "type": "TypeInt", - "description": "Defines the total services for organization.", + "description": "Defines the total route for organization.", "computed": true }, { - "name": "memory_limit", + "name": "trial_db_allowed", + "type": "TypeBool", + "description": "Defines trial db are allowed for organization.", + "computed": true + }, + { + "name": "app_instance_limit", "type": "TypeInt", - "description": "Defines the total memory limit for organization.", + "description": "Defines the total app instance limit for organization.", + "computed": true + }, + { + "name": "app_tasks_limit", + "type": "TypeInt", + "description": "Defines the total app task limit for organization.", "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Org quota name, for example qIBM", + "required": true } ], "ibm_pi_catalog_images": [ @@ -63773,29 +64834,14 @@ ], "ibm_pi_cloud_connection": [ { - "name": "pi_cloud_connection_name", - "type": "TypeString", - "description": "Cloud Connection Name to be used", - "required": true - }, - { - "name": "metered", - "type": "TypeBool", - "computed": true - }, - { - "name": "ibm_ip_address", - "type": "TypeString", - "computed": true - }, - { - "name": "user_ip_address", + "name": "connection_mode", "type": "TypeString", + "description": "Type of service the gateway is attached to", "computed": true }, { - "name": "port", - "type": "TypeString", + "name": "speed", + "type": "TypeInt", "computed": true }, { @@ -63807,12 +64853,6 @@ "type": "TypeString" } }, - { - "name": "gre_source_address", - "type": "TypeString", - "description": "GRE auto-assigned source IP address", - "computed": true - }, { "name": "vpc_enabled", "type": "TypeBool", @@ -63820,8 +64860,9 @@ "computed": true }, { - "name": "status", - "type": "TypeString", + "name": "classic_enabled", + "type": "TypeBool", + "description": "Enable classic endpoint destination", "computed": true }, { @@ -63830,6 +64871,21 @@ "description": "GRE destination IP address", "computed": true }, + { + "name": "pi_cloud_instance_id", + "type": "TypeString", + "required": true + }, + { + "name": "ibm_ip_address", + "type": "TypeString", + "computed": true + }, + { + "name": "port", + "type": "TypeString", + "computed": true + }, { "name": "vpc_crns", "type": "TypeSet", @@ -63840,13 +64896,20 @@ } }, { - "name": "pi_cloud_instance_id", + "name": "pi_cloud_connection_name", "type": "TypeString", + "description": "Cloud Connection Name to be used", "required": true }, { - "name": "speed", - "type": "TypeInt", + "name": "status", + "type": "TypeString", + "computed": true + }, + { + "name": "gre_source_address", + "type": "TypeString", + "description": "GRE auto-assigned source IP address", "computed": true }, { @@ -63855,15 +64918,13 @@ "computed": true }, { - "name": "classic_enabled", + "name": "metered", "type": "TypeBool", - "description": "Enable classic endpoint destination", "computed": true }, { - "name": "connection_mode", + "name": "user_ip_address", "type": "TypeString", - "description": "Type of service the gateway is attached to", "computed": true } ], @@ -63975,16 +65036,6 @@ } ], "ibm_pi_cloud_instance": [ - { - "name": "total_standard_storage_consumed", - "type": "TypeFloat", - "computed": true - }, - { - "name": "enabled", - "type": "TypeBool", - "computed": true - }, { "name": "tenant_id", "type": "TypeString", @@ -63997,7 +65048,7 @@ "computed": true }, { - "name": "total_processors_consumed", + "name": "total_instances", "type": "TypeFloat", "computed": true }, @@ -64007,26 +65058,23 @@ "computed": true }, { - "name": "pi_cloud_instance_id", - "type": "TypeString", - "required": true - }, - { - "name": "capabilities", - "type": "TypeList", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "total_ssd_storage_consumed", + "type": "TypeFloat", + "computed": true }, { - "name": "total_instances", + "name": "total_standard_storage_consumed", "type": "TypeFloat", "computed": true }, { - "name": "total_ssd_storage_consumed", - "type": "TypeFloat", + "name": "pi_cloud_instance_id", + "type": "TypeString", + "required": true + }, + { + "name": "enabled", + "type": "TypeBool", "computed": true }, { @@ -64065,6 +65113,19 @@ "computed": true } } + }, + { + "name": "capabilities", + "type": "TypeList", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "total_processors_consumed", + "type": "TypeFloat", + "computed": true } ], "ibm_pi_console_languages": [ @@ -64099,6 +65160,88 @@ } } ], + "ibm_pi_datacenter": [ + { + "name": "pi_datacenter_location", + "type": "TypeMap", + "description": "Datacenter location", + "computed": true + }, + { + "name": "pi_datacenter_status", + "type": "TypeString", + "description": "Datacenter status", + "computed": true + }, + { + "name": "pi_datacenter_type", + "type": "TypeString", + "description": "Datacenter type", + "computed": true + }, + { + "name": "pi_datacenter_zone", + "type": "TypeString", + "optional": true + }, + { + "name": "pi_datacenter_capabilities", + "type": "TypeMap", + "description": "Datacenter Capabilities", + "computed": true, + "elem": { + "type": "TypeBool" + } + }, + { + "name": "pi_datacenter_href", + "type": "TypeString", + "description": "Datacenter href", + "computed": true + } + ], + "ibm_pi_datacenters": [ + { + "name": "datacenters", + "type": "TypeList", + "computed": true, + "elem": { + "pi_datacenter_capabilities": { + "name": "pi_datacenter_capabilities", + "type": "TypeMap", + "description": "Datacenter Capabilities", + "computed": true, + "elem": { + "type": "TypeBool" + } + }, + "pi_datacenter_href": { + "name": "pi_datacenter_href", + "type": "TypeString", + "description": "Datacenter href", + "computed": true + }, + "pi_datacenter_location": { + "name": "pi_datacenter_location", + "type": "TypeMap", + "description": "Datacenter location", + "computed": true + }, + "pi_datacenter_status": { + "name": "pi_datacenter_status", + "type": "TypeString", + "description": "Datacenter status", + "computed": true + }, + "pi_datacenter_type": { + "name": "pi_datacenter_type", + "type": "TypeString", + "description": "Datacenter type", + "computed": true + } + } + } + ], "ibm_pi_dhcp": [ { "name": "dhcp_id", @@ -64272,17 +65415,22 @@ ], "ibm_pi_image": [ { - "name": "hypervisor", + "name": "size", + "type": "TypeInt", + "computed": true + }, + { + "name": "architecture", "type": "TypeString", "computed": true }, { - "name": "storage_type", + "name": "hypervisor", "type": "TypeString", "computed": true }, { - "name": "storage_pool", + "name": "storage_type", "type": "TypeString", "computed": true }, @@ -64303,12 +65451,12 @@ "computed": true }, { - "name": "architecture", + "name": "operatingsystem", "type": "TypeString", "computed": true }, { - "name": "operatingsystem", + "name": "storage_pool", "type": "TypeString", "computed": true }, @@ -64316,11 +65464,6 @@ "name": "pi_cloud_instance_id", "type": "TypeString", "required": true - }, - { - "name": "size", - "type": "TypeInt", - "computed": true } ], "ibm_pi_images": [ @@ -64374,22 +65517,27 @@ ], "ibm_pi_instance": [ { - "name": "license_repository_capacity", + "name": "max_virtual_cores", "type": "TypeInt", "computed": true }, { - "name": "deployment_type", - "type": "TypeString", + "name": "min_virtual_cores", + "type": "TypeInt", "computed": true }, { - "name": "health_status", + "name": "pi_cloud_instance_id", "type": "TypeString", + "required": true + }, + { + "name": "processors", + "type": "TypeFloat", "computed": true }, { - "name": "networks", + "name": "addresses", "type": "TypeList", "computed": true, "elem": { @@ -64423,7 +65571,8 @@ "type": "TypeString", "computed": true } - } + }, + "deprecated": "This field is deprecated, use networks instead" }, { "name": "status", @@ -64436,28 +65585,8 @@ "computed": true }, { - "name": "maxmem", - "type": "TypeFloat", - "computed": true - }, - { - "name": "shared_processor_pool", - "type": "TypeString", - "computed": true - }, - { - "name": "memory", - "type": "TypeFloat", - "computed": true - }, - { - "name": "minproc", - "type": "TypeFloat", - "computed": true - }, - { - "name": "minmem", - "type": "TypeFloat", + "name": "virtual_cores_assigned", + "type": "TypeInt", "computed": true }, { @@ -64466,40 +65595,28 @@ "computed": true }, { - "name": "storage_pool_affinity", - "type": "TypeBool", - "computed": true - }, - { - "name": "min_virtual_cores", + "name": "license_repository_capacity", "type": "TypeInt", "computed": true }, { - "name": "placement_group_id", + "name": "deployment_type", "type": "TypeString", "computed": true }, { - "name": "shared_processor_pool_id", + "name": "shared_processor_pool", "type": "TypeString", "computed": true }, { - "name": "volumes", - "type": "TypeList", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "processors", - "type": "TypeFloat", - "computed": true + "name": "pi_instance_name", + "type": "TypeString", + "description": "Server Name to be used for pvminstances", + "required": true }, { - "name": "addresses", + "name": "networks", "type": "TypeList", "computed": true, "elem": { @@ -64533,72 +65650,98 @@ "type": "TypeString", "computed": true } - }, - "deprecated": "This field is deprecated, use networks instead" + } }, { "name": "proctype", "type": "TypeString", "computed": true }, + { + "name": "minproc", + "type": "TypeFloat", + "computed": true + }, { "name": "pin_policy", "type": "TypeString", "computed": true }, { - "name": "pi_instance_name", - "type": "TypeString", - "description": "Server Name to be used for pvminstances", - "required": true + "name": "volumes", + "type": "TypeList", + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "pi_cloud_instance_id", + "name": "memory", + "type": "TypeFloat", + "computed": true + }, + { + "name": "maxmem", + "type": "TypeFloat", + "computed": true + }, + { + "name": "storage_pool_affinity", + "type": "TypeBool", + "computed": true + }, + { + "name": "placement_group_id", "type": "TypeString", - "required": true + "computed": true }, { - "name": "virtual_cores_assigned", - "type": "TypeInt", + "name": "health_status", + "type": "TypeString", "computed": true }, { - "name": "max_virtual_cores", - "type": "TypeInt", + "name": "minmem", + "type": "TypeFloat", "computed": true }, { "name": "storage_type", "type": "TypeString", "computed": true + }, + { + "name": "shared_processor_pool_id", + "type": "TypeString", + "computed": true } ], "ibm_pi_instance_ip": [ { - "name": "pi_instance_name", + "name": "ipoctet", "type": "TypeString", - "description": "Server Name to be used for pvminstances", - "required": true + "computed": true }, { - "name": "pi_cloud_instance_id", + "name": "type", "type": "TypeString", - "required": true + "computed": true }, { - "name": "pi_network_name", + "name": "pi_instance_name", "type": "TypeString", + "description": "Server Name to be used for pvminstances", "required": true }, { - "name": "network_id", + "name": "pi_cloud_instance_id", "type": "TypeString", - "computed": true + "required": true }, { - "name": "external_ip", + "name": "pi_network_name", "type": "TypeString", - "computed": true + "required": true }, { "name": "ip", @@ -64606,17 +65749,17 @@ "computed": true }, { - "name": "ipoctet", + "name": "macaddress", "type": "TypeString", "computed": true }, { - "name": "macaddress", + "name": "network_id", "type": "TypeString", "computed": true }, { - "name": "type", + "name": "external_ip", "type": "TypeString", "computed": true } @@ -64930,6 +66073,12 @@ } ], "ibm_pi_keys": [ + { + "name": "pi_cloud_instance_id", + "type": "TypeString", + "description": "PI cloud instance ID", + "required": true + }, { "name": "keys", "type": "TypeList", @@ -64955,15 +66104,29 @@ "computed": true } } - }, - { - "name": "pi_cloud_instance_id", - "type": "TypeString", - "description": "PI cloud instance ID", - "required": true } ], "ibm_pi_network": [ + { + "name": "vlan_id", + "type": "TypeInt", + "computed": true + }, + { + "name": "available_ip_count", + "type": "TypeFloat", + "computed": true + }, + { + "name": "used_ip_percent", + "type": "TypeFloat", + "computed": true + }, + { + "name": "type", + "type": "TypeString", + "computed": true + }, { "name": "pi_cloud_instance_id", "type": "TypeString", @@ -64980,10 +66143,16 @@ "computed": true }, { - "name": "used_ip_percent", + "name": "used_ip_count", "type": "TypeFloat", "computed": true }, + { + "name": "name", + "type": "TypeString", + "computed": true, + "deprecated": "This value is deprecated in favor ofpi_network_name" + }, { "name": "dns", "type": "TypeSet", @@ -65002,32 +66171,6 @@ "type": "TypeString", "description": "Network Name to be used for pvminstances", "required": true - }, - { - "name": "type", - "type": "TypeString", - "computed": true - }, - { - "name": "vlan_id", - "type": "TypeInt", - "computed": true - }, - { - "name": "available_ip_count", - "type": "TypeFloat", - "computed": true - }, - { - "name": "used_ip_count", - "type": "TypeFloat", - "computed": true - }, - { - "name": "name", - "type": "TypeString", - "computed": true, - "deprecated": "This value is deprecated in favor ofpi_network_name" } ], "ibm_pi_network_port": [ @@ -65087,6 +66230,11 @@ } ], "ibm_pi_placement_group": [ + { + "name": "pi_placement_group_name", + "type": "TypeString", + "required": true + }, { "name": "policy", "type": "TypeString", @@ -65104,11 +66252,6 @@ "elem": { "type": "TypeString" } - }, - { - "name": "pi_placement_group_name", - "type": "TypeString", - "required": true } ], "ibm_pi_placement_groups": [ @@ -65150,11 +66293,6 @@ } ], "ibm_pi_public_network": [ - { - "name": "pi_cloud_instance_id", - "type": "TypeString", - "required": true - }, { "name": "name", "type": "TypeString", @@ -65169,6 +66307,11 @@ "name": "vlan_id", "type": "TypeInt", "computed": true + }, + { + "name": "pi_cloud_instance_id", + "type": "TypeString", + "required": true } ], "ibm_pi_pvm_snapshots": [ @@ -65236,6 +66379,18 @@ } ], "ibm_pi_sap_profile": [ + { + "name": "certified", + "type": "TypeBool", + "description": "Has certification been performed on profile", + "computed": true + }, + { + "name": "cores", + "type": "TypeInt", + "description": "Amount of cores", + "computed": true + }, { "name": "memory", "type": "TypeInt", @@ -65258,18 +66413,6 @@ "type": "TypeString", "description": "SAP Profile ID", "required": true - }, - { - "name": "certified", - "type": "TypeBool", - "description": "Has certification been performed on profile", - "computed": true - }, - { - "name": "cores", - "type": "TypeInt", - "description": "Amount of cores", - "computed": true } ], "ibm_pi_sap_profiles": [ @@ -65318,33 +66461,14 @@ ], "ibm_pi_shared_processor_pool": [ { - "name": "status", - "type": "TypeString", - "description": "The status of the shared processor pool", - "computed": true - }, - { - "name": "status_detail", - "type": "TypeString", - "description": "The status details of the shared processor pool", - "computed": true - }, - { - "name": "name", + "name": "pi_shared_processor_pool_id", "type": "TypeString", - "description": "Name of the shared processor pool", - "computed": true - }, - { - "name": "host_id", - "type": "TypeInt", - "description": "The host ID where the shared processor pool resides", - "computed": true + "required": true }, { - "name": "reserved_cores", - "type": "TypeInt", - "description": "The amount of reserved cores for the shared processor pool", + "name": "available_cores", + "type": "TypeFloat", + "description": "Shared processor pool available cores", "computed": true }, { @@ -65354,20 +66478,9 @@ "computed": true }, { - "name": "pi_shared_processor_pool_id", - "type": "TypeString", - "required": true - }, - { - "name": "pi_cloud_instance_id", + "name": "status_detail", "type": "TypeString", - "description": "PI cloud instance ID", - "required": true - }, - { - "name": "available_cores", - "type": "TypeFloat", - "description": "Shared processor pool available cores", + "description": "The status details of the shared processor pool", "computed": true }, { @@ -65433,15 +66546,39 @@ "computed": true } } - } - ], - "ibm_pi_shared_processor_pools": [ + }, { "name": "pi_cloud_instance_id", "type": "TypeString", "description": "PI cloud instance ID", "required": true }, + { + "name": "name", + "type": "TypeString", + "description": "Name of the shared processor pool", + "computed": true + }, + { + "name": "host_id", + "type": "TypeInt", + "description": "The host ID where the shared processor pool resides", + "computed": true + }, + { + "name": "reserved_cores", + "type": "TypeInt", + "description": "The amount of reserved cores for the shared processor pool", + "computed": true + }, + { + "name": "status", + "type": "TypeString", + "description": "The status of the shared processor pool", + "computed": true + } + ], + "ibm_pi_shared_processor_pools": [ { "name": "shared_processor_pools", "type": "TypeList", @@ -65488,6 +66625,12 @@ "computed": true } } + }, + { + "name": "pi_cloud_instance_id", + "type": "TypeString", + "description": "PI cloud instance ID", + "required": true } ], "ibm_pi_spp_placement_group": [ @@ -65521,12 +66664,6 @@ } ], "ibm_pi_spp_placement_groups": [ - { - "name": "pi_cloud_instance_id", - "type": "TypeString", - "description": "PI cloud instance ID", - "required": true - }, { "name": "spp_placement_groups", "type": "TypeList", @@ -65556,6 +66693,12 @@ "computed": true } } + }, + { + "name": "pi_cloud_instance_id", + "type": "TypeString", + "description": "PI cloud instance ID", + "required": true } ], "ibm_pi_storage_pool_capacity": [ @@ -65587,14 +66730,66 @@ "type": "TypeInt", "description": "Total pool capacity (GB)", "computed": true + }, + { + "name": "replication_enabled", + "type": "TypeBool", + "description": "Replication status of the storage pool", + "computed": true } ], "ibm_pi_storage_pools_capacity": [ + { + "name": "storage_pools_capacity", + "type": "TypeList", + "description": "Storage pools capacity", + "computed": true, + "elem": { + "max_allocation_size": { + "name": "max_allocation_size", + "type": "TypeInt", + "description": "Maximum allocation storage size (GB)", + "computed": true + }, + "pool_name": { + "name": "pool_name", + "type": "TypeString", + "description": "Pool name", + "computed": true + }, + "replication_enabled": { + "name": "replication_enabled", + "type": "TypeBool", + "description": "Replication status of the storage pool", + "computed": true + }, + "storage_type": { + "name": "storage_type", + "type": "TypeString", + "description": "Storage type of the storage pool", + "computed": true + }, + "total_capacity": { + "name": "total_capacity", + "type": "TypeInt", + "description": "Total pool capacity (GB)", + "computed": true + } + } + }, { "name": "pi_cloud_instance_id", "type": "TypeString", "required": true }, + { + "name": "maximum_storage_allocation", + "type": "TypeMap", + "description": "Maximum storage allocation", + "computed": true + } + ], + "ibm_pi_storage_type_capacity": [ { "name": "maximum_storage_allocation", "type": "TypeMap", @@ -65632,9 +66827,7 @@ "computed": true } } - } - ], - "ibm_pi_storage_type_capacity": [ + }, { "name": "pi_cloud_instance_id", "type": "TypeString", @@ -65645,6 +66838,13 @@ "type": "TypeString", "description": "Storage type name", "required": true + } + ], + "ibm_pi_storage_types_capacity": [ + { + "name": "pi_cloud_instance_id", + "type": "TypeString", + "required": true }, { "name": "maximum_storage_allocation", @@ -65652,40 +66852,6 @@ "description": "Maximum storage allocation", "computed": true }, - { - "name": "storage_pools_capacity", - "type": "TypeList", - "description": "Storage pools capacity", - "computed": true, - "elem": { - "max_allocation_size": { - "name": "max_allocation_size", - "type": "TypeInt", - "description": "Maximum allocation storage size (GB)", - "computed": true - }, - "pool_name": { - "name": "pool_name", - "type": "TypeString", - "description": "Pool name", - "computed": true - }, - "storage_type": { - "name": "storage_type", - "type": "TypeString", - "description": "Storage type of the storage pool", - "computed": true - }, - "total_capacity": { - "name": "total_capacity", - "type": "TypeInt", - "description": "Total pool capacity (GB)", - "computed": true - } - } - } - ], - "ibm_pi_storage_types_capacity": [ { "name": "storage_types_capacity", "type": "TypeList", @@ -65737,20 +66903,14 @@ "computed": true } } - }, + } + ], + "ibm_pi_system_pools": [ { "name": "pi_cloud_instance_id", "type": "TypeString", "required": true }, - { - "name": "maximum_storage_allocation", - "type": "TypeMap", - "description": "Maximum storage allocation", - "computed": true - } - ], - "ibm_pi_system_pools": [ { "name": "system_pools", "type": "TypeList", @@ -65832,14 +66992,19 @@ "computed": true } } - }, - { - "name": "pi_cloud_instance_id", - "type": "TypeString", - "required": true } ], "ibm_pi_tenant": [ + { + "name": "enabled", + "type": "TypeBool", + "computed": true + }, + { + "name": "tenant_name", + "type": "TypeString", + "computed": true + }, { "name": "cloud_instances", "type": "TypeSet", @@ -65866,23 +67031,25 @@ "name": "creation_date", "type": "TypeString", "computed": true - }, + } + ], + "ibm_pi_volume": [ { - "name": "enabled", - "type": "TypeBool", + "name": "group_id", + "type": "TypeString", + "description": "Volume Group ID", "computed": true }, { - "name": "tenant_name", + "name": "mirroring_state", "type": "TypeString", + "description": "Mirroring state for replication enabled volume", "computed": true - } - ], - "ibm_pi_volume": [ + }, { - "name": "auxiliary", - "type": "TypeBool", - "description": "true if volume is auxiliary otherwise false", + "name": "primary_role", + "type": "TypeString", + "description": "Indicates whether master/aux volume is playing the primary role", "computed": true }, { @@ -65892,8 +67059,8 @@ "computed": true }, { - "name": "size", - "type": "TypeInt", + "name": "state", + "type": "TypeString", "computed": true }, { @@ -65902,9 +67069,8 @@ "computed": true }, { - "name": "replication_type", + "name": "volume_pool", "type": "TypeString", - "description": "Replication type(metro,global)", "computed": true }, { @@ -65914,58 +67080,53 @@ "computed": true }, { - "name": "consistency_group_name", - "type": "TypeString", - "description": "Consistency Group Name if volume is a part of volume group", + "name": "auxiliary", + "type": "TypeBool", + "description": "true if volume is auxiliary otherwise false", "computed": true }, { - "name": "primary_role", + "name": "consistency_group_name", "type": "TypeString", - "description": "Indicates whether master/aux volume is playing the primary role", + "description": "Consistency Group Name if volume is a part of volume group", "computed": true }, { - "name": "pi_cloud_instance_id", - "type": "TypeString", - "required": true + "name": "size", + "type": "TypeInt", + "computed": true }, { - "name": "state", + "name": "disk_type", "type": "TypeString", "computed": true }, { - "name": "shareable", + "name": "replication_enabled", "type": "TypeBool", + "description": "Indicates if the volume should be replication enabled or not", "computed": true }, { - "name": "mirroring_state", + "name": "replication_type", "type": "TypeString", - "description": "Mirroring state for replication enabled volume", + "description": "Replication type(metro,global)", "computed": true }, { - "name": "volume_pool", + "name": "master_volume_name", "type": "TypeString", + "description": "Indicates master volume name", "computed": true }, { - "name": "wwn", + "name": "pi_cloud_instance_id", "type": "TypeString", - "computed": true - }, - { - "name": "replication_enabled", - "type": "TypeBool", - "description": "Indicates if the volume should be replication enabled or not", - "computed": true + "required": true }, { - "name": "master_volume_name", + "name": "wwn", "type": "TypeString", - "description": "Indicates master volume name", "computed": true }, { @@ -65975,18 +67136,17 @@ "required": true }, { - "name": "disk_type", - "type": "TypeString", - "computed": true - }, - { - "name": "group_id", - "type": "TypeString", - "description": "Volume Group ID", + "name": "shareable", + "type": "TypeBool", "computed": true } ], "ibm_pi_volume_flash_copy_mappings": [ + { + "name": "pi_cloud_instance_id", + "type": "TypeString", + "required": true + }, { "name": "flash_copy_mappings", "type": "TypeList", @@ -66041,14 +67201,19 @@ "type": "TypeString", "description": "Volume ID", "required": true - }, - { - "name": "pi_cloud_instance_id", - "type": "TypeString", - "required": true } ], "ibm_pi_volume_group": [ + { + "name": "replication_status", + "type": "TypeString", + "computed": true + }, + { + "name": "consistency_group_name", + "type": "TypeString", + "computed": true + }, { "name": "status_description_errors", "type": "TypeSet", @@ -66095,19 +67260,25 @@ "name": "status", "type": "TypeString", "computed": true + } + ], + "ibm_pi_volume_group_details": [ + { + "name": "volume_group_name", + "type": "TypeString", + "description": "Volume group name", + "computed": true }, { - "name": "replication_status", + "name": "status", "type": "TypeString", "computed": true }, { - "name": "consistency_group_name", + "name": "replication_status", "type": "TypeString", "computed": true - } - ], - "ibm_pi_volume_group_details": [ + }, { "name": "consistency_group_name", "type": "TypeString", @@ -66156,22 +67327,6 @@ "name": "pi_cloud_instance_id", "type": "TypeString", "required": true - }, - { - "name": "volume_group_name", - "type": "TypeString", - "description": "Volume group name", - "computed": true - }, - { - "name": "status", - "type": "TypeString", - "computed": true - }, - { - "name": "replication_status", - "type": "TypeString", - "computed": true } ], "ibm_pi_volume_group_remote_copy_relationships": [ @@ -66280,11 +67435,6 @@ } ], "ibm_pi_volume_group_storage_details": [ - { - "name": "pi_cloud_instance_id", - "type": "TypeString", - "required": true - }, { "name": "cycle_period_seconds", "type": "TypeInt", @@ -66292,9 +67442,9 @@ "computed": true }, { - "name": "primary_role", + "name": "cycling_mode", "type": "TypeString", - "description": "Indicates whether master/aux volume is playing the primary role", + "description": "Indicates the type of cycling mode used", "computed": true }, { @@ -66304,29 +67454,28 @@ "computed": true }, { - "name": "state", + "name": "consistency_group_name", "type": "TypeString", - "description": "Indicates the relationship state", + "description": "The name of consistency group at storage controller level", "computed": true }, { - "name": "pi_volume_group_id", + "name": "pi_cloud_instance_id", "type": "TypeString", - "description": "Volume group ID", "required": true }, - { - "name": "cycling_mode", - "type": "TypeString", - "description": "Indicates the type of cycling mode used", - "computed": true - }, { "name": "number_of_volumes", "type": "TypeInt", "description": "Number of volumes in volume group", "computed": true }, + { + "name": "primary_role", + "type": "TypeString", + "description": "Indicates whether master/aux volume is playing the primary role", + "computed": true + }, { "name": "remote_copy_relationship_names", "type": "TypeList", @@ -66336,6 +67485,12 @@ "type": "TypeString" } }, + { + "name": "state", + "type": "TypeString", + "description": "Indicates the relationship state", + "computed": true + }, { "name": "synchronized", "type": "TypeString", @@ -66343,10 +67498,10 @@ "computed": true }, { - "name": "consistency_group_name", + "name": "pi_volume_group_id", "type": "TypeString", - "description": "The name of consistency group at storage controller level", - "computed": true + "description": "Volume group ID", + "required": true } ], "ibm_pi_volume_groups": [ @@ -66487,57 +67642,40 @@ ], "ibm_pi_volume_onboarding": [ { - "name": "description", - "type": "TypeString", - "description": "Description of the volume onboarding operation", - "computed": true - }, - { - "name": "input_volumes", - "type": "TypeList", - "description": "List of volumes requested to be onboarded", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "progress", - "type": "TypeInt", - "description": "Indicates the progress of volume onboarding operation", - "computed": true - }, - { - "name": "results_onboarded_volumes", + "name": "input_volumes", "type": "TypeList", - "description": "List of volumes which are onboarded successfully", + "description": "List of volumes requested to be onboarded", "computed": true, "elem": { "type": "TypeString" } }, { - "name": "status", - "type": "TypeString", - "description": "Indicates the status of volume onboarding operation", + "name": "progress", + "type": "TypeInt", + "description": "Indicates the progress of volume onboarding operation", "computed": true }, { - "name": "pi_volume_onboarding_id", + "name": "create_time", "type": "TypeString", - "description": "Volume onboarding ID", - "required": true + "description": "Indicates the create time of volume onboarding operation", + "computed": true }, { - "name": "pi_cloud_instance_id", + "name": "description", "type": "TypeString", - "required": true + "description": "Description of the volume onboarding operation", + "computed": true }, { - "name": "create_time", - "type": "TypeString", - "description": "Indicates the create time of volume onboarding operation", - "computed": true + "name": "results_onboarded_volumes", + "type": "TypeList", + "description": "List of volumes which are onboarded successfully", + "computed": true, + "elem": { + "type": "TypeString" + } }, { "name": "results_volume_onboarding_failures", @@ -66560,6 +67698,23 @@ } } } + }, + { + "name": "status", + "type": "TypeString", + "description": "Indicates the status of volume onboarding operation", + "computed": true + }, + { + "name": "pi_volume_onboarding_id", + "type": "TypeString", + "description": "Volume onboarding ID", + "required": true + }, + { + "name": "pi_cloud_instance_id", + "type": "TypeString", + "required": true } ], "ibm_pi_volume_onboardings": [ @@ -66606,10 +67761,10 @@ ], "ibm_pi_volume_remote_copy_relationship": [ { - "name": "auxiliary_volume_name", + "name": "pi_volume_id", "type": "TypeString", - "description": "Auxiliary volume name at storage host level", - "computed": true + "description": "Volume name", + "required": true }, { "name": "copy_type", @@ -66617,6 +67772,17 @@ "description": "Indicates the copy type.", "computed": true }, + { + "name": "cycling_mode", + "type": "TypeString", + "description": "Indicates the type of cycling mode used.", + "computed": true + }, + { + "name": "pi_cloud_instance_id", + "type": "TypeString", + "required": true + }, { "name": "name", "type": "TypeString", @@ -66624,26 +67790,33 @@ "computed": true }, { - "name": "primary_role", - "type": "TypeString", - "description": "Indicates whether master/aux volume is playing the primary role", + "name": "cycle_period_seconds", + "type": "TypeInt", + "description": "Indicates the minimum period in seconds between multiple cycles", "computed": true }, { - "name": "pi_cloud_instance_id", + "name": "master_changed_volume_name", "type": "TypeString", - "required": true + "description": "Name of the volume that is acting as the master change volume for the relationship", + "computed": true }, { - "name": "cycling_mode", + "name": "master_volume_name", "type": "TypeString", - "description": "Indicates the type of cycling mode used.", + "description": "Master volume name at storage host level", "computed": true }, { - "name": "freeze_time", + "name": "progress", + "type": "TypeInt", + "description": "Indicates the relationship progress", + "computed": true + }, + { + "name": "synchronized", "type": "TypeString", - "description": "Freeze time of remote copy relationship", + "description": "Indicates whether the relationship is synchronized", "computed": true }, { @@ -66653,58 +67826,145 @@ "computed": true }, { - "name": "master_volume_name", + "name": "auxiliary_volume_name", "type": "TypeString", - "description": "Master volume name at storage host level", + "description": "Auxiliary volume name at storage host level", "computed": true }, { - "name": "state", + "name": "consistency_group_name", "type": "TypeString", - "description": "Indicates the relationship state", + "description": "Consistency Group Name if volume is a part of volume group", "computed": true }, { - "name": "synchronized", + "name": "freeze_time", "type": "TypeString", - "description": "Indicates whether the relationship is synchronized", + "description": "Freeze time of remote copy relationship", "computed": true }, { - "name": "pi_volume_id", + "name": "primary_role", "type": "TypeString", - "description": "Volume name", - "required": true + "description": "Indicates whether master/aux volume is playing the primary role", + "computed": true }, { - "name": "consistency_group_name", + "name": "remote_copy_id", "type": "TypeString", - "description": "Consistency Group Name if volume is a part of volume group", + "description": "Remote copy relationship ID", "computed": true }, { - "name": "cycle_period_seconds", - "type": "TypeInt", - "description": "Indicates the minimum period in seconds between multiple cycles", + "name": "state", + "type": "TypeString", + "description": "Indicates the relationship state", "computed": true + } + ], + "ibm_pi_workspace": [ + { + "name": "pi_workspace_capabilities", + "type": "TypeMap", + "description": "Workspace Capabilities", + "computed": true, + "elem": { + "type": "TypeBool" + } }, { - "name": "master_changed_volume_name", + "name": "pi_workspace_details", + "type": "TypeMap", + "description": "Workspace information", + "computed": true + }, + { + "name": "pi_workspace_location", + "type": "TypeMap", + "description": "Workspace location", + "computed": true + }, + { + "name": "pi_workspace_name", "type": "TypeString", - "description": "Name of the volume that is acting as the master change volume for the relationship", + "description": "Workspace name", "computed": true }, { - "name": "progress", - "type": "TypeInt", - "description": "Indicates the relationship progress", + "name": "pi_workspace_status", + "type": "TypeString", + "description": "Workspace status", "computed": true }, { - "name": "remote_copy_id", + "name": "pi_workspace_type", "type": "TypeString", - "description": "Remote copy relationship ID", + "description": "Workspace type", "computed": true + }, + { + "name": "pi_cloud_instance_id", + "type": "TypeString", + "required": true + } + ], + "ibm_pi_workspaces": [ + { + "name": "pi_cloud_instance_id", + "type": "TypeString", + "required": true + }, + { + "name": "workspaces", + "type": "TypeList", + "computed": true, + "elem": { + "pi_workspace_capabilities": { + "name": "pi_workspace_capabilities", + "type": "TypeMap", + "description": "Workspace Capabilities", + "computed": true, + "elem": { + "type": "TypeBool" + } + }, + "pi_workspace_details": { + "name": "pi_workspace_details", + "type": "TypeMap", + "description": "Workspace information", + "computed": true + }, + "pi_workspace_id": { + "name": "pi_workspace_id", + "type": "TypeString", + "description": "Workspace ID", + "computed": true + }, + "pi_workspace_location": { + "name": "pi_workspace_location", + "type": "TypeMap", + "description": "Workspace location", + "computed": true + }, + "pi_workspace_name": { + "name": "pi_workspace_name", + "type": "TypeString", + "description": "Workspace name", + "computed": true + }, + "pi_workspace_status": { + "name": "pi_workspace_status", + "type": "TypeString", + "description": "Workspace status", + "computed": true + }, + "pi_workspace_type": { + "name": "pi_workspace_type", + "type": "TypeString", + "description": "Workspace type", + "computed": true + } + } } ], "ibm_pn_application_chrome": [ @@ -66728,18 +67988,6 @@ } ], "ibm_project_event_notification": [ - { - "name": "project_id", - "type": "TypeString", - "description": "The unique project ID.", - "required": true - }, - { - "name": "name", - "type": "TypeString", - "description": "The project name.", - "computed": true - }, { "name": "description", "type": "TypeString", @@ -66959,22 +68207,21 @@ "computed": true } } - } - ], - "ibm_resource_group": [ + }, { - "name": "crn", + "name": "project_id", "type": "TypeString", - "description": "The full CRN associated with the resource group", - "cloud_data_type": "crn", - "computed": true + "description": "The unique project ID.", + "required": true }, { - "name": "teams_url", + "name": "name", "type": "TypeString", - "description": "The URL to access the team details that associated with the resource group.", + "description": "The project name.", "computed": true - }, + } + ], + "ibm_resource_group": [ { "name": "account_id", "type": "TypeString", @@ -67000,9 +68247,10 @@ "computed": true }, { - "name": "state", + "name": "crn", "type": "TypeString", - "description": "State of the resource group", + "description": "The full CRN associated with the resource group", + "cloud_data_type": "crn", "computed": true }, { @@ -67012,21 +68260,33 @@ "computed": true }, { - "name": "updated_at", + "name": "teams_url", "type": "TypeString", - "description": "The date when the resource group was last updated.", + "description": "The URL to access the team details that associated with the resource group.", "computed": true }, { - "name": "payment_methods_url", + "name": "quota_url", "type": "TypeString", - "description": "The URL to access the payment methods details that associated with the resource group.", + "description": "The URL to access the quota details that associated with the resource group.", "computed": true }, { - "name": "quota_url", + "name": "state", "type": "TypeString", - "description": "The URL to access the quota details that associated with the resource group.", + "description": "State of the resource group", + "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "The date when the resource group was last updated.", + "computed": true + }, + { + "name": "payment_methods_url", + "type": "TypeString", + "description": "The URL to access the payment methods details that associated with the resource group.", "computed": true }, { @@ -67047,20 +68307,10 @@ ], "ibm_resource_instance": [ { - "name": "resource_group_id", - "type": "TypeString", - "description": "The id of the resource group in which the instance is present", - "cloud_data_type": "resource_group", - "optional": true, - "computed": true, - "cloud_data_range": [ - "resolved_to:id" - ] - }, - { - "name": "service", + "name": "location", "type": "TypeString", - "description": "The service type of the instance", + "description": "The location or the environment in which instance exists", + "cloud_data_type": "region", "optional": true, "computed": true }, @@ -67081,9 +68331,21 @@ "computed": true }, { - "name": "resource_controller_url", + "name": "resource_group_id", "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about the resource", + "description": "The id of the resource group in which the instance is present", + "cloud_data_type": "resource_group", + "optional": true, + "computed": true, + "cloud_data_range": [ + "resolved_to:id" + ] + }, + { + "name": "service", + "type": "TypeString", + "description": "The service type of the instance", + "optional": true, "computed": true }, { @@ -67105,30 +68367,22 @@ "computed": true }, { - "name": "extensions", - "type": "TypeMap", - "description": "The extended metadata as a map associated with the resource instance.", - "computed": true - }, - { - "name": "name", + "name": "resource_status", "type": "TypeString", - "description": "Resource instance name for example, myobjectstorage", - "required": true + "description": "The status of the resource", + "computed": true }, { - "name": "guid", + "name": "resource_group_name", "type": "TypeString", - "description": "Guid of resource instance", + "description": "The resource group name in which resource is provisioned", "computed": true }, { - "name": "location", + "name": "name", "type": "TypeString", - "description": "The location or the environment in which instance exists", - "cloud_data_type": "region", - "optional": true, - "computed": true + "description": "Resource instance name for example, myobjectstorage", + "required": true }, { "name": "crn", @@ -67138,55 +68392,58 @@ "computed": true }, { - "name": "resource_status", + "name": "guid", "type": "TypeString", - "description": "The status of the resource", + "description": "Guid of resource instance", "computed": true }, { - "name": "resource_group_name", + "name": "resource_controller_url", "type": "TypeString", - "description": "The resource group name in which resource is provisioned", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about the resource", + "computed": true + }, + { + "name": "extensions", + "type": "TypeMap", + "description": "The extended metadata as a map associated with the resource instance.", "computed": true } ], "ibm_resource_key": [ { - "name": "crn", - "type": "TypeString", - "description": "crn of resource key", - "cloud_data_type": "crn", + "name": "credentials", + "type": "TypeMap", + "description": "Credentials asociated with the key", + "secure": true, "computed": true }, { - "name": "resource_instance_id", - "type": "TypeString", - "description": "The id of the resource instance", - "cloud_data_type": "resource_instance", - "optional": true, - "cloud_data_range": [ - "service:%s" - ] + "name": "most_recent", + "type": "TypeBool", + "description": "If true and multiple entries are found, the most recently created resource key is used. If false, an error is returned", + "default_value": false, + "optional": true }, { - "name": "role", + "name": "status", "type": "TypeString", - "description": "User role", + "description": "Status of resource key", "computed": true }, { - "name": "credentials", - "type": "TypeMap", - "description": "Credentials asociated with the key", + "name": "credentials_json", + "type": "TypeString", + "description": "Credentials asociated with the key in json string", "secure": true, "computed": true }, { - "name": "most_recent", - "type": "TypeBool", - "description": "If true and multiple entries are found, the most recently created resource key is used. If false, an error is returned", - "default_value": false, - "optional": true + "name": "crn", + "type": "TypeString", + "description": "crn of resource key", + "cloud_data_type": "crn", + "computed": true }, { "name": "name", @@ -67194,6 +68451,16 @@ "description": "The name of the resource key", "required": true }, + { + "name": "resource_instance_id", + "type": "TypeString", + "description": "The id of the resource instance", + "cloud_data_type": "resource_instance", + "optional": true, + "cloud_data_range": [ + "service:%s" + ] + }, { "name": "resource_alias_id", "type": "TypeString", @@ -67201,20 +68468,31 @@ "optional": true }, { - "name": "status", + "name": "role", "type": "TypeString", - "description": "Status of resource key", + "description": "User role", + "computed": true + } + ], + "ibm_resource_quota": [ + { + "name": "max_app_instance_memory", + "type": "TypeString", + "description": "Defines the total memory of app instance.", "computed": true }, { - "name": "credentials_json", + "name": "total_app_memory", "type": "TypeString", - "description": "Credentials asociated with the key in json string", - "secure": true, + "description": "Defines the total memory for app.", "computed": true - } - ], - "ibm_resource_quota": [ + }, + { + "name": "max_service_instances", + "type": "TypeInt", + "description": "Defines the total service instances limit.", + "computed": true + }, { "name": "vsi_limit", "type": "TypeInt", @@ -67244,24 +68522,6 @@ "type": "TypeInt", "description": "Defines the total instances limit per app.", "computed": true - }, - { - "name": "max_app_instance_memory", - "type": "TypeString", - "description": "Defines the total memory of app instance.", - "computed": true - }, - { - "name": "total_app_memory", - "type": "TypeString", - "description": "Defines the total memory for app.", - "computed": true - }, - { - "name": "max_service_instances", - "type": "TypeInt", - "description": "Defines the total service instances limit.", - "computed": true } ], "ibm_resource_tag": [ @@ -67297,29 +68557,16 @@ ], "ibm_satellite_attach_host_script": [ { - "name": "location", - "type": "TypeString", - "description": "A unique name for the new Satellite location", - "cloud_data_type": "region", - "required": true - }, - { - "name": "host_provider", - "type": "TypeString", - "optional": true - }, - { - "name": "script_dir", + "name": "host_script", "type": "TypeString", - "description": "The directory where the satellite attach host script to be downloaded. Default is home directory", - "optional": true, + "description": "Attach host script content", "computed": true }, { - "name": "host_script", + "name": "custom_script", "type": "TypeString", - "description": "Attach host script content", - "computed": true + "description": "The custom script that has to be appended to generated host script file", + "optional": true }, { "name": "description", @@ -67328,9 +68575,8 @@ "computed": true }, { - "name": "coreos_host", - "type": "TypeBool", - "description": "If true, returns a CoreOS ignition file for the host. Otherwise, returns a RHEL attach script", + "name": "host_provider", + "type": "TypeString", "optional": true }, { @@ -67342,6 +68588,13 @@ "type": "TypeString" } }, + { + "name": "script_dir", + "type": "TypeString", + "description": "The directory where the satellite attach host script to be downloaded. Default is home directory", + "optional": true, + "computed": true + }, { "name": "script_path", "type": "TypeString", @@ -67349,16 +68602,35 @@ "computed": true }, { - "name": "custom_script", + "name": "location", "type": "TypeString", - "description": "The custom script that has to be appended to generated host script file", + "description": "A unique name for the new Satellite location", + "cloud_data_type": "region", + "required": true + }, + { + "name": "coreos_host", + "type": "TypeBool", + "description": "If true, returns a CoreOS ignition file for the host. Otherwise, returns a RHEL attach script", "optional": true } ], "ibm_satellite_cluster": [ { - "name": "private_service_endpoint_url", + "name": "private_service_endpoint", + "type": "TypeBool", + "computed": true + }, + { + "name": "resource_group_name", + "type": "TypeString", + "description": "The resource group name in which resource is provisioned", + "computed": true + }, + { + "name": "infrastructure_topology", "type": "TypeString", + "description": "String value for single node cluster option.", "computed": true }, { @@ -67374,22 +68646,48 @@ "computed": true }, { - "name": "status", + "name": "kube_version", "type": "TypeString", - "description": "The status of the cluster", + "description": "Kubernetes version", "computed": true }, { - "name": "ingress_secret", + "name": "resource_group_id", "type": "TypeString", - "secure": true, + "description": "ID of the resource group.", + "cloud_data_type": "resource_group", + "optional": true, "computed": true }, { - "name": "crn", + "name": "server_url", "type": "TypeString", - "description": "CRN of resource instance", - "cloud_data_type": "crn", + "description": "The server URL", + "computed": true + }, + { + "name": "public_service_endpoint_url", + "type": "TypeString", + "computed": true + }, + { + "name": "private_service_endpoint_url", + "type": "TypeString", + "computed": true + }, + { + "name": "tags", + "type": "TypeSet", + "cloud_data_type": "tags", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "status", + "type": "TypeString", + "description": "The status of the cluster", "computed": true }, { @@ -67471,15 +68769,15 @@ } }, { - "name": "server_url", + "name": "crn", "type": "TypeString", - "description": "The server URL", + "description": "CRN of resource instance", + "cloud_data_type": "crn", "computed": true }, { - "name": "resource_group_name", - "type": "TypeString", - "description": "The resource group name in which resource is provisioned", + "name": "public_service_endpoint", + "type": "TypeBool", "computed": true }, { @@ -67489,31 +68787,6 @@ "cloud_data_type": "region", "computed": true }, - { - "name": "kube_version", - "type": "TypeString", - "description": "Kubernetes version", - "computed": true - }, - { - "name": "resource_group_id", - "type": "TypeString", - "description": "ID of the resource group.", - "cloud_data_type": "resource_group", - "optional": true, - "computed": true - }, - { - "name": "ingress_hostname", - "type": "TypeString", - "computed": true - }, - { - "name": "infrastructure_topology", - "type": "TypeString", - "description": "String value for single node cluster option.", - "computed": true - }, { "name": "workers", "type": "TypeList", @@ -67523,70 +68796,36 @@ } }, { - "name": "public_service_endpoint", - "type": "TypeBool", - "computed": true - }, - { - "name": "private_service_endpoint", - "type": "TypeBool", + "name": "ingress_hostname", + "type": "TypeString", "computed": true }, { - "name": "public_service_endpoint_url", + "name": "ingress_secret", "type": "TypeString", + "secure": true, "computed": true - }, - { - "name": "tags", - "type": "TypeSet", - "cloud_data_type": "tags", - "computed": true, - "elem": { - "type": "TypeString" - } } ], "ibm_satellite_cluster_worker_pool": [ { - "name": "host_labels", - "type": "TypeMap", - "description": "Host labels on the workers", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "region", + "name": "resource_group_id", "type": "TypeString", - "description": "Name of the region", - "cloud_data_type": "region", + "description": "ID of the resource group", + "cloud_data_type": "resource_group", "optional": true, "computed": true }, { - "name": "worker_count", - "type": "TypeInt", - "description": "The number of workers that are attached", - "computed": true - }, - { - "name": "isolation", - "type": "TypeString", - "description": "Isolation of the worker node", + "name": "auto_scale_enabled", + "type": "TypeBool", + "description": "Enable auto scalling for worker pool", "computed": true }, { - "name": "name", - "type": "TypeString", - "description": "worker pool name", - "required": true - }, - { - "name": "flavor", + "name": "state", "type": "TypeString", - "description": "The flavor of the satellite worker node", + "description": "The state of the worker pool", "computed": true }, { @@ -67606,6 +68845,15 @@ } } }, + { + "name": "host_labels", + "type": "TypeMap", + "description": "Host labels on the workers", + "computed": true, + "elem": { + "type": "TypeString" + } + }, { "name": "worker_pool_labels", "type": "TypeMap", @@ -67622,19 +68870,31 @@ "computed": true }, { - "name": "resource_group_id", + "name": "region", "type": "TypeString", - "description": "ID of the resource group", - "cloud_data_type": "resource_group", + "description": "Name of the region", + "cloud_data_type": "region", "optional": true, "computed": true }, { - "name": "auto_scale_enabled", - "type": "TypeBool", - "description": "Enable auto scalling for worker pool", + "name": "worker_count", + "type": "TypeInt", + "description": "The number of workers that are attached", + "computed": true + }, + { + "name": "isolation", + "type": "TypeString", + "description": "Isolation of the worker node", "computed": true }, + { + "name": "name", + "type": "TypeString", + "description": "worker pool name", + "required": true + }, { "name": "cluster", "type": "TypeString", @@ -67642,13 +68902,19 @@ "required": true }, { - "name": "state", + "name": "flavor", "type": "TypeString", - "description": "The state of the worker pool", + "description": "The flavor of the satellite worker node", "computed": true } ], "ibm_satellite_cluster_worker_pool_zone_attachment": [ + { + "name": "zone", + "type": "TypeString", + "description": "worker pool zone name", + "required": true + }, { "name": "resource_group_id", "type": "TypeString", @@ -67688,26 +68954,45 @@ "type": "TypeString", "description": "worker pool name", "required": true - }, - { - "name": "zone", - "type": "TypeString", - "description": "worker pool zone name", - "required": true } ], "ibm_satellite_endpoint": [ { - "name": "client_protocol", - "type": "TypeString", - "description": "The protocol in the client application side.", + "name": "timeout", + "type": "TypeInt", + "description": "The inactivity timeout in the Endpoint side.", "computed": true }, { - "name": "client_mutual_auth", - "type": "TypeBool", - "description": "Whether enable mutual auth in the client application side, when client_protocol is 'tls' or 'https', this field is required.", - "computed": true + "name": "sources", + "type": "TypeList", + "computed": true, + "elem": { + "enabled": { + "name": "enabled", + "type": "TypeBool", + "description": "Whether the source is enabled for the endpoint.", + "computed": true + }, + "last_change": { + "name": "last_change", + "type": "TypeString", + "description": "The last time modify the Endpoint configurations.", + "computed": true + }, + "pending": { + "name": "pending", + "type": "TypeBool", + "description": "Whether the source has been enabled on this endpoint.", + "computed": true + }, + "source_id": { + "name": "source_id", + "type": "TypeString", + "description": "The Source ID.", + "computed": true + } + } }, { "name": "certs", @@ -67798,28 +69083,21 @@ } }, { - "name": "created_by", - "type": "TypeString", - "description": "The service or person who created the endpoint. Must be 1000 characters or fewer.", - "computed": true - }, - { - "name": "crn", + "name": "display_name", "type": "TypeString", - "description": "Service instance associated with this location.", - "cloud_data_type": "crn", + "description": "The display name of the endpoint. Endpoint names must start with a letter and end with an alphanumeric character, can contain letters, numbers, and hyphen (-), and must be 63 characters or fewer.", "computed": true }, { - "name": "last_change", - "type": "TypeString", - "description": "The last time modify the Endpoint configurations.", + "name": "reject_unauth", + "type": "TypeBool", + "description": "Whether reject any connection to the server application which is not authorized with the list of supplied CAs in the fields certs.server_cert.", "computed": true }, { - "name": "server_host", - "type": "TypeString", - "description": "The host name or IP address of the server endpoint. For 'http-tunnel' protocol, server_host can start with '*.' , which means a wildcard to it's sub domains. Such as '*.example.com' can accept request to 'api.example.com' and 'www.example.com'.", + "name": "server_port", + "type": "TypeInt", + "description": "The port number of the server endpoint. For 'http-tunnel' protocol, server_port can be 0, which means any port. Such as 0 is good for 80 (http) and 443 (https).", "computed": true }, { @@ -67829,21 +69107,22 @@ "computed": true }, { - "name": "server_protocol", + "name": "client_protocol", "type": "TypeString", - "description": "The protocol in the server application side. This parameter will change to default value if it is omitted even when using PATCH API. If client_protocol is 'udp', server_protocol must be 'udp'. If client_protocol is 'tcp'/'http', server_protocol could be 'tcp'/'tls' and default to 'tcp'. If client_protocol is 'tls'/'https', server_protocol could be 'tcp'/'tls' and default to 'tls'. If client_protocol is 'http-tunnel', server_protocol must be 'tcp'.", + "description": "The protocol in the client application side.", "computed": true }, { - "name": "timeout", + "name": "connector_port", "type": "TypeInt", - "description": "The inactivity timeout in the Endpoint side.", + "description": "The connector port.", "computed": true }, { - "name": "service_name", + "name": "crn", "type": "TypeString", - "description": "The service name of the endpoint.", + "description": "Service instance associated with this location.", + "cloud_data_type": "crn", "computed": true }, { @@ -67853,76 +69132,16 @@ "computed": true }, { - "name": "created_at", - "type": "TypeString", - "description": "The time when the Endpoint is created.", - "computed": true - }, - { - "name": "endpoint_id", + "name": "location", "type": "TypeString", - "description": "The Endpoint ID.", + "description": "The Location ID.", + "cloud_data_type": "region", "required": true }, { - "name": "server_mutual_auth", - "type": "TypeBool", - "description": "Whether enable mutual auth in the server application side, when client_protocol is 'tls', this field is required.", - "computed": true - }, - { - "name": "sources", - "type": "TypeList", - "computed": true, - "elem": { - "enabled": { - "name": "enabled", - "type": "TypeBool", - "description": "Whether the source is enabled for the endpoint.", - "computed": true - }, - "last_change": { - "name": "last_change", - "type": "TypeString", - "description": "The last time modify the Endpoint configurations.", - "computed": true - }, - "pending": { - "name": "pending", - "type": "TypeBool", - "description": "Whether the source has been enabled on this endpoint.", - "computed": true - }, - "source_id": { - "name": "source_id", - "type": "TypeString", - "description": "The Source ID.", - "computed": true - } - } - }, - { - "name": "connector_port", - "type": "TypeInt", - "description": "The connector port.", - "computed": true - }, - { - "name": "reject_unauth", - "type": "TypeBool", - "description": "Whether reject any connection to the server application which is not authorized with the list of supplied CAs in the fields certs.server_cert.", - "computed": true - }, - { - "name": "client_host", + "name": "connection_type", "type": "TypeString", - "description": "The hostname which Satellite Link server listen on for the on-location endpoint, or the hostname which the connector server listen on for the on-cloud endpoint destiantion.", - "computed": true - }, - { - "name": "client_port", - "type": "TypeInt", - "description": "The port which Satellite Link server listen on for the on-location, or the port which the connector server listen on for the on-cloud endpoint destiantion.", + "description": "The type of the endpoint.", "computed": true }, { @@ -67990,32 +69209,80 @@ } }, { - "name": "location", + "name": "created_at", "type": "TypeString", - "description": "The Location ID.", - "cloud_data_type": "region", - "required": true + "description": "The time when the Endpoint is created.", + "computed": true }, { - "name": "connection_type", + "name": "last_change", "type": "TypeString", - "description": "The type of the endpoint.", + "description": "The last time modify the Endpoint configurations.", "computed": true }, { - "name": "display_name", + "name": "server_mutual_auth", + "type": "TypeBool", + "description": "Whether enable mutual auth in the server application side, when client_protocol is 'tls', this field is required.", + "computed": true + }, + { + "name": "created_by", "type": "TypeString", - "description": "The display name of the endpoint. Endpoint names must start with a letter and end with an alphanumeric character, can contain letters, numbers, and hyphen (-), and must be 63 characters or fewer.", + "description": "The service or person who created the endpoint. Must be 1000 characters or fewer.", "computed": true }, { - "name": "server_port", + "name": "service_name", + "type": "TypeString", + "description": "The service name of the endpoint.", + "computed": true + }, + { + "name": "client_port", "type": "TypeInt", - "description": "The port number of the server endpoint. For 'http-tunnel' protocol, server_port can be 0, which means any port. Such as 0 is good for 80 (http) and 443 (https).", + "description": "The port which Satellite Link server listen on for the on-location, or the port which the connector server listen on for the on-cloud endpoint destiantion.", + "computed": true + }, + { + "name": "endpoint_id", + "type": "TypeString", + "description": "The Endpoint ID.", + "required": true + }, + { + "name": "client_mutual_auth", + "type": "TypeBool", + "description": "Whether enable mutual auth in the client application side, when client_protocol is 'tls' or 'https', this field is required.", + "computed": true + }, + { + "name": "client_host", + "type": "TypeString", + "description": "The hostname which Satellite Link server listen on for the on-location endpoint, or the hostname which the connector server listen on for the on-cloud endpoint destiantion.", + "computed": true + }, + { + "name": "server_host", + "type": "TypeString", + "description": "The host name or IP address of the server endpoint. For 'http-tunnel' protocol, server_host can start with '*.' , which means a wildcard to it's sub domains. Such as '*.example.com' can accept request to 'api.example.com' and 'www.example.com'.", + "computed": true + }, + { + "name": "server_protocol", + "type": "TypeString", + "description": "The protocol in the server application side. This parameter will change to default value if it is omitted even when using PATCH API. If client_protocol is 'udp', server_protocol must be 'udp'. If client_protocol is 'tcp'/'http', server_protocol could be 'tcp'/'tls' and default to 'tcp'. If client_protocol is 'tls'/'https', server_protocol could be 'tcp'/'tls' and default to 'tls'. If client_protocol is 'http-tunnel', server_protocol must be 'tcp'.", "computed": true } ], "ibm_satellite_link": [ + { + "name": "location", + "type": "TypeString", + "description": "The Location ID.", + "cloud_data_type": "region", + "required": true + }, { "name": "crn", "type": "TypeString", @@ -68023,6 +69290,18 @@ "cloud_data_type": "crn", "computed": true }, + { + "name": "satellite_link_host", + "type": "TypeString", + "description": "Satellite Link hostname of the location.", + "computed": true + }, + { + "name": "ws_endpoint", + "type": "TypeString", + "description": "The ws endpoint of the location.", + "computed": true + }, { "name": "description", "type": "TypeString", @@ -68042,16 +69321,9 @@ "computed": true }, { - "name": "location", - "type": "TypeString", - "description": "The Location ID.", - "cloud_data_type": "region", - "required": true - }, - { - "name": "ws_endpoint", + "name": "last_change", "type": "TypeString", - "description": "The ws endpoint of the location.", + "description": "Timestamp of latest modification of location.", "computed": true }, { @@ -68129,59 +69401,9 @@ "computed": true } } - }, - { - "name": "satellite_link_host", - "type": "TypeString", - "description": "Satellite Link hostname of the location.", - "computed": true - }, - { - "name": "last_change", - "type": "TypeString", - "description": "Timestamp of latest modification of location.", - "computed": true } ], "ibm_satellite_location": [ - { - "name": "crn", - "type": "TypeString", - "description": "Location CRN", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "resource_group_id", - "type": "TypeString", - "description": "ID of the resource group", - "cloud_data_type": "resource_group", - "computed": true - }, - { - "name": "host_attached_count", - "type": "TypeInt", - "description": "The total number of hosts that are attached to the Satellite location.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "host_available_count", - "type": "TypeInt", - "description": "The available number of hosts that can be assigned to a cluster resource in the Satellite location.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "created_on", - "type": "TypeString", - "description": "Created Date", - "computed": true - }, { "name": "location", "type": "TypeString", @@ -68196,35 +69418,32 @@ "computed": true }, { - "name": "logging_account_id", + "name": "resource_group_name", "type": "TypeString", - "description": "The account ID for IBM Log Analysis with LogDNA log forwarding", + "description": "Name of the resource group", "computed": true }, { - "name": "ingress_secret", - "type": "TypeString", - "secure": true, + "name": "coreos_enabled", + "type": "TypeBool", + "description": "If Red Hat CoreOS features are enabled within the Satellite location", "computed": true }, { - "name": "zones", - "type": "TypeSet", - "description": "The names of at least three high availability zones to use for the location", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "logging_account_id", + "type": "TypeString", + "description": "The account ID for IBM Log Analysis with LogDNA log forwarding", + "computed": true }, { - "name": "resource_group_name", + "name": "ingress_hostname", "type": "TypeString", - "description": "Name of the resource group", "computed": true }, { - "name": "ingress_hostname", + "name": "ingress_secret", "type": "TypeString", + "secure": true, "computed": true }, { @@ -68273,15 +69492,19 @@ } }, { - "name": "managed_from", - "type": "TypeString", - "description": "The IBM Cloud metro from which the Satellite location is managed", - "computed": true + "name": "zones", + "type": "TypeSet", + "description": "The names of at least three high availability zones to use for the location", + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "coreos_enabled", - "type": "TypeBool", - "description": "If Red Hat CoreOS features are enabled within the Satellite location", + "name": "crn", + "type": "TypeString", + "description": "Location CRN", + "cloud_data_type": "crn", "computed": true }, { @@ -68292,6 +69515,43 @@ "elem": { "type": "TypeString" } + }, + { + "name": "host_attached_count", + "type": "TypeInt", + "description": "The total number of hosts that are attached to the Satellite location.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "host_available_count", + "type": "TypeInt", + "description": "The available number of hosts that can be assigned to a cluster resource in the Satellite location.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "managed_from", + "type": "TypeString", + "description": "The IBM Cloud metro from which the Satellite location is managed", + "computed": true + }, + { + "name": "resource_group_id", + "type": "TypeString", + "description": "ID of the resource group", + "cloud_data_type": "resource_group", + "computed": true + }, + { + "name": "created_on", + "type": "TypeString", + "description": "Created Date", + "computed": true } ], "ibm_satellite_location_nlb_dns": [ @@ -68370,51 +69630,54 @@ ], "ibm_satellite_storage_assignment": [ { - "name": "uuid", - "type": "TypeString", - "description": "The Universally Unique IDentifier (UUID) of the Assignment.", - "required": true - }, - { - "name": "config", + "name": "config_version_uuid", "type": "TypeString", - "description": "Storage Configuration Name or ID.", + "description": "The Universally Unique IDentifier (UUID) of the Storage Configuration Version.", "computed": true }, { - "name": "config_uuid", + "name": "sat_cluster", "type": "TypeString", - "description": "The Universally Unique IDentifier (UUID) of the Storage Configuration.", + "description": "ID of the Satellite cluster that you applied the configuration to.", "computed": true }, { - "name": "assignment_type", + "name": "owner", "type": "TypeString", - "description": "The Type of Assignment.", + "description": "The Owner of the Assignment.", "computed": true }, { - "name": "rollout_error_count", - "type": "TypeInt", - "description": "The Rollout Error Count of the Assignment.", + "name": "groups", + "type": "TypeList", + "description": "One or more cluster groups on which you want to apply the configuration. Note that at least one cluster group is required.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "cluster", + "type": "TypeString", + "description": "ID of the Satellite cluster or Service Cluster that you want to apply the configuration to.", "computed": true }, { - "name": "assignment_name", + "name": "svc_cluster", "type": "TypeString", - "description": "Name of the Assignment.", + "description": "ID of the Service Cluster that you applied the configuration to.", "computed": true }, { - "name": "config_version", + "name": "config_uuid", "type": "TypeString", - "description": "The Storage Configuration Version.", + "description": "The Universally Unique IDentifier (UUID) of the Storage Configuration.", "computed": true }, { - "name": "created", + "name": "config_version", "type": "TypeString", - "description": "The Time of Creation of the Assignment.", + "description": "The Storage Configuration Version.", "computed": true }, { @@ -68424,36 +69687,33 @@ "computed": true }, { - "name": "groups", - "type": "TypeList", - "description": "One or more cluster groups on which you want to apply the configuration. Note that at least one cluster group is required.", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "assignment_name", + "type": "TypeString", + "description": "Name of the Assignment.", + "computed": true }, { - "name": "cluster", + "name": "config", "type": "TypeString", - "description": "ID of the Satellite cluster or Service Cluster that you want to apply the configuration to.", + "description": "Storage Configuration Name or ID.", "computed": true }, { - "name": "svc_cluster", + "name": "assignment_type", "type": "TypeString", - "description": "ID of the Service Cluster that you applied the configuration to.", + "description": "The Type of Assignment.", "computed": true }, { - "name": "config_version_uuid", + "name": "created", "type": "TypeString", - "description": "The Universally Unique IDentifier (UUID) of the Storage Configuration Version.", + "description": "The Time of Creation of the Assignment.", "computed": true }, { - "name": "owner", - "type": "TypeString", - "description": "The Owner of the Assignment.", + "name": "rollout_error_count", + "type": "TypeInt", + "description": "The Rollout Error Count of the Assignment.", "computed": true }, { @@ -68463,10 +69723,10 @@ "computed": true }, { - "name": "sat_cluster", + "name": "uuid", "type": "TypeString", - "description": "ID of the Satellite cluster that you applied the configuration to.", - "computed": true + "description": "The Universally Unique IDentifier (UUID) of the Assignment.", + "required": true } ], "ibm_satellite_storage_configuration": [ @@ -68531,6 +69791,18 @@ "ibm_scc_account_locations": [], "ibm_scc_account_notification_settings": [], "ibm_scc_control_library": [ + { + "name": "created_on", + "type": "TypeString", + "description": "The date when the control library was created.", + "computed": true + }, + { + "name": "control_parents_count", + "type": "TypeInt", + "description": "The number of parent controls in the control library.", + "computed": true + }, { "name": "controls", "type": "TypeList", @@ -68724,6 +69996,12 @@ } } }, + { + "name": "controls_count", + "type": "TypeInt", + "description": "The number of controls.", + "computed": true + }, { "name": "account_id", "type": "TypeString", @@ -68731,36 +70009,34 @@ "computed": true }, { - "name": "control_library_description", + "name": "control_library_type", "type": "TypeString", - "description": "The control library description.", + "description": "The control library type.", "computed": true }, { - "name": "updated_by", + "name": "updated_on", "type": "TypeString", - "description": "The user who updated the control library.", + "description": "The date when the control library was updated.", "computed": true }, { - "name": "controls_count", - "type": "TypeInt", - "description": "The number of controls.", + "name": "hierarchy_enabled", + "type": "TypeBool", + "description": "The indication of whether hierarchy is enabled for the control library.", "computed": true }, { - "name": "created_by", + "name": "updated_by", "type": "TypeString", - "description": "The user who created the control library.", + "description": "The user who updated the control library.", "computed": true }, { - "name": "instance_id", - "type": "TypeString", - "description": "The ID of the Security and Compliance Center instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true + "name": "latest", + "type": "TypeBool", + "description": "The latest version of the control library.", + "computed": true }, { "name": "control_library_id", @@ -68769,58 +70045,42 @@ "required": true }, { - "name": "control_library_name", + "name": "control_library_description", "type": "TypeString", - "description": "The control library name.", + "description": "The control library description.", "computed": true }, { - "name": "control_library_version", + "name": "version_group_label", "type": "TypeString", - "description": "The control library version.", + "description": "The version group label.", "computed": true }, { - "name": "created_on", + "name": "created_by", "type": "TypeString", - "description": "The date when the control library was created.", - "computed": true - }, - { - "name": "latest", - "type": "TypeBool", - "description": "The latest version of the control library.", - "computed": true - }, - { - "name": "control_parents_count", - "type": "TypeInt", - "description": "The number of parent controls in the control library.", + "description": "The user who created the control library.", "computed": true }, { - "name": "control_library_type", + "name": "control_library_name", "type": "TypeString", - "description": "The control library type.", + "description": "The control library name.", "computed": true }, { - "name": "version_group_label", + "name": "control_library_version", "type": "TypeString", - "description": "The version group label.", + "description": "The control library version.", "computed": true }, { - "name": "updated_on", + "name": "instance_id", "type": "TypeString", - "description": "The date when the control library was updated.", - "computed": true - }, - { - "name": "hierarchy_enabled", - "type": "TypeBool", - "description": "The indication of whether hierarchy is enabled for the control library.", - "computed": true + "description": "The ID of the Security and Compliance Center instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true } ], "ibm_scc_instance_settings": [ @@ -68898,106 +70158,6 @@ } ], "ibm_scc_latest_reports": [ - { - "name": "sort", - "type": "TypeString", - "description": "This field sorts results by using a valid sort field. To learn more, see [Sorting](https://cloud.ibm.com/docs/api-handbook?topic=api-handbook-sorting).", - "optional": true - }, - { - "name": "home_account_id", - "type": "TypeString", - "description": "The ID of the home account.", - "computed": true - }, - { - "name": "controls_summary", - "type": "TypeList", - "description": "The compliance stats.", - "computed": true, - "elem": { - "compliant_count": { - "name": "compliant_count", - "type": "TypeInt", - "description": "The number of compliant checks.", - "computed": true - }, - "not_compliant_count": { - "name": "not_compliant_count", - "type": "TypeInt", - "description": "The number of checks that are not compliant.", - "computed": true - }, - "status": { - "name": "status", - "type": "TypeString", - "description": "The allowed values of an aggregated status for controls, specifications, assessments, and resources.", - "computed": true - }, - "total_count": { - "name": "total_count", - "type": "TypeInt", - "description": "The total number of checks.", - "computed": true - }, - "unable_to_perform_count": { - "name": "unable_to_perform_count", - "type": "TypeInt", - "description": "The number of checks that are unable to perform.", - "computed": true - }, - "user_evaluation_required_count": { - "name": "user_evaluation_required_count", - "type": "TypeInt", - "description": "The number of checks that require a user evaluation.", - "computed": true - } - } - }, - { - "name": "evaluations_summary", - "type": "TypeList", - "description": "The evaluation stats.", - "computed": true, - "elem": { - "completed_count": { - "name": "completed_count", - "type": "TypeInt", - "description": "The total number of completed evaluations.", - "computed": true - }, - "error_count": { - "name": "error_count", - "type": "TypeInt", - "description": "The number of evaluations that started, but did not finish, and ended with errors.", - "computed": true - }, - "failure_count": { - "name": "failure_count", - "type": "TypeInt", - "description": "The number of failed evaluations.", - "computed": true - }, - "pass_count": { - "name": "pass_count", - "type": "TypeInt", - "description": "The number of passed evaluations.", - "computed": true - }, - "status": { - "name": "status", - "type": "TypeString", - "description": "The allowed values of an aggregated status for controls, specifications, assessments, and resources.", - "computed": true - }, - "total_count": { - "name": "total_count", - "type": "TypeInt", - "description": "The total number of evaluations.", - "computed": true - } - } - }, { "name": "score", "type": "TypeList", @@ -69205,19 +70365,119 @@ "cloud_data_type": "resource_instance", "immutable": true, "required": true + }, + { + "name": "sort", + "type": "TypeString", + "description": "This field sorts results by using a valid sort field. To learn more, see [Sorting](https://cloud.ibm.com/docs/api-handbook?topic=api-handbook-sorting).", + "optional": true + }, + { + "name": "home_account_id", + "type": "TypeString", + "description": "The ID of the home account.", + "computed": true + }, + { + "name": "controls_summary", + "type": "TypeList", + "description": "The compliance stats.", + "computed": true, + "elem": { + "compliant_count": { + "name": "compliant_count", + "type": "TypeInt", + "description": "The number of compliant checks.", + "computed": true + }, + "not_compliant_count": { + "name": "not_compliant_count", + "type": "TypeInt", + "description": "The number of checks that are not compliant.", + "computed": true + }, + "status": { + "name": "status", + "type": "TypeString", + "description": "The allowed values of an aggregated status for controls, specifications, assessments, and resources.", + "computed": true + }, + "total_count": { + "name": "total_count", + "type": "TypeInt", + "description": "The total number of checks.", + "computed": true + }, + "unable_to_perform_count": { + "name": "unable_to_perform_count", + "type": "TypeInt", + "description": "The number of checks that are unable to perform.", + "computed": true + }, + "user_evaluation_required_count": { + "name": "user_evaluation_required_count", + "type": "TypeInt", + "description": "The number of checks that require a user evaluation.", + "computed": true + } + } + }, + { + "name": "evaluations_summary", + "type": "TypeList", + "description": "The evaluation stats.", + "computed": true, + "elem": { + "completed_count": { + "name": "completed_count", + "type": "TypeInt", + "description": "The total number of completed evaluations.", + "computed": true + }, + "error_count": { + "name": "error_count", + "type": "TypeInt", + "description": "The number of evaluations that started, but did not finish, and ended with errors.", + "computed": true + }, + "failure_count": { + "name": "failure_count", + "type": "TypeInt", + "description": "The number of failed evaluations.", + "computed": true + }, + "pass_count": { + "name": "pass_count", + "type": "TypeInt", + "description": "The number of passed evaluations.", + "computed": true + }, + "status": { + "name": "status", + "type": "TypeString", + "description": "The allowed values of an aggregated status for controls, specifications, assessments, and resources.", + "computed": true + }, + "total_count": { + "name": "total_count", + "type": "TypeInt", + "description": "The total number of evaluations.", + "computed": true + } + } } ], "ibm_scc_profile": [ { - "name": "created_by", + "name": "profile_name", "type": "TypeString", - "description": "The user who created the profile.", + "description": "The profile name.", "computed": true }, { - "name": "attachments_count", - "type": "TypeInt", - "description": "The number of attachments related to this profile.", + "name": "profile_version", + "type": "TypeString", + "description": "The version status of the profile.", "computed": true }, { @@ -69227,23 +70487,73 @@ "computed": true }, { - "name": "created_on", + "name": "updated_on", "type": "TypeString", - "description": "The date when the profile was created.", + "description": "The date when the profile was updated.", "computed": true }, { - "name": "profile_version", + "name": "updated_by", "type": "TypeString", - "description": "The version status of the profile.", + "description": "The user who updated the profile.", "computed": true }, + { + "name": "default_parameters", + "type": "TypeList", + "description": "The default parameters of the profile.", + "computed": true, + "elem": { + "assessment_id": { + "name": "assessment_id", + "type": "TypeString", + "description": "The implementation ID of the parameter.", + "computed": true + }, + "assessment_type": { + "name": "assessment_type", + "type": "TypeString", + "description": "The type of the implementation.", + "computed": true + }, + "parameter_default_value": { + "name": "parameter_default_value", + "type": "TypeString", + "description": "The default value of the parameter.", + "computed": true + }, + "parameter_display_name": { + "name": "parameter_display_name", + "type": "TypeString", + "description": "The parameter display name.", + "computed": true + }, + "parameter_name": { + "name": "parameter_name", + "type": "TypeString", + "description": "The parameter name.", + "computed": true + }, + "parameter_type": { + "name": "parameter_type", + "type": "TypeString", + "description": "The parameter type.", + "computed": true + } + } + }, { "name": "profile_type", "type": "TypeString", "description": "The profile type, such as custom or predefined.", "computed": true }, + { + "name": "version_group_label", + "type": "TypeString", + "description": "The version group label of the profile.", + "computed": true + }, { "name": "instance_id", "type": "TypeString", @@ -69259,10 +70569,10 @@ "computed": true }, { - "name": "updated_by", + "name": "profile_id", "type": "TypeString", - "description": "The user who updated the profile.", - "computed": true + "description": "The profile ID.", + "required": true }, { "name": "controls_count", @@ -69270,30 +70580,6 @@ "description": "The number of controls for the profile.", "computed": true }, - { - "name": "profile_name", - "type": "TypeString", - "description": "The profile name.", - "computed": true - }, - { - "name": "profile_description", - "type": "TypeString", - "description": "The profile description.", - "computed": true - }, - { - "name": "version_group_label", - "type": "TypeString", - "description": "The version group label of the profile.", - "computed": true - }, - { - "name": "updated_on", - "type": "TypeString", - "description": "The date when the profile was updated.", - "computed": true - }, { "name": "control_parents_count", "type": "TypeInt", @@ -69497,62 +70783,54 @@ } }, { - "name": "default_parameters", - "type": "TypeList", - "description": "The default parameters of the profile.", - "computed": true, - "elem": { - "assessment_id": { - "name": "assessment_id", - "type": "TypeString", - "description": "The implementation ID of the parameter.", - "computed": true - }, - "assessment_type": { - "name": "assessment_type", - "type": "TypeString", - "description": "The type of the implementation.", - "computed": true - }, - "parameter_default_value": { - "name": "parameter_default_value", - "type": "TypeString", - "description": "The default value of the parameter.", - "computed": true - }, - "parameter_display_name": { - "name": "parameter_display_name", - "type": "TypeString", - "description": "The parameter display name.", - "computed": true - }, - "parameter_name": { - "name": "parameter_name", - "type": "TypeString", - "description": "The parameter name.", - "computed": true - }, - "parameter_type": { - "name": "parameter_type", - "type": "TypeString", - "description": "The parameter type.", - "computed": true - } - } + "name": "profile_description", + "type": "TypeString", + "description": "The profile description.", + "computed": true }, { - "name": "profile_id", + "name": "created_by", "type": "TypeString", - "description": "The profile ID.", - "required": true + "description": "The user who created the profile.", + "computed": true + }, + { + "name": "created_on", + "type": "TypeString", + "description": "The date when the profile was created.", + "computed": true + }, + { + "name": "attachments_count", + "type": "TypeInt", + "description": "The number of attachments related to this profile.", + "computed": true } ], "ibm_scc_profile_attachment": [ { - "name": "profile_id", + "name": "attachment_item_id", "type": "TypeString", - "description": "The profile ID.", - "required": true + "description": "The ID of the attachment.", + "computed": true + }, + { + "name": "updated_by", + "type": "TypeString", + "description": "The user who updated the attachment.", + "computed": true + }, + { + "name": "next_scan_time", + "type": "TypeString", + "description": "The start time of the next scan.", + "computed": true + }, + { + "name": "description", + "type": "TypeString", + "description": "The description for the attachment.", + "computed": true }, { "name": "instance_id", @@ -69563,77 +70841,65 @@ "required": true }, { - "name": "updated_by", + "name": "status", "type": "TypeString", - "description": "The user who updated the attachment.", + "description": "The status of an attachment evaluation.", "computed": true }, { - "name": "attachment_parameters", + "name": "attachment_id", + "type": "TypeString", + "description": "The attachment ID.", + "required": true + }, + { + "name": "profile_id", + "type": "TypeString", + "description": "The profile ID.", + "required": true + }, + { + "name": "created_by", + "type": "TypeString", + "description": "The user who created the attachment.", + "computed": true + }, + { + "name": "updated_on", + "type": "TypeString", + "description": "The date when the attachment was updated.", + "computed": true + }, + { + "name": "last_scan", "type": "TypeList", - "description": "The profile parameters for the attachment.", + "description": "The details of the last scan of an attachment.", "computed": true, "elem": { - "assessment_id": { - "name": "assessment_id", - "type": "TypeString", - "description": "The implementation ID of the parameter.", - "computed": true - }, - "assessment_type": { - "name": "assessment_type", - "type": "TypeString", - "description": "The type of the implementation.", - "computed": true - }, - "parameter_display_name": { - "name": "parameter_display_name", - "type": "TypeString", - "description": "The parameter display name.", - "computed": true - }, - "parameter_name": { - "name": "parameter_name", + "id": { + "name": "id", "type": "TypeString", - "description": "The parameter name.", + "description": "The ID of the last scan of an attachment.", "computed": true }, - "parameter_type": { - "name": "parameter_type", + "status": { + "name": "status", "type": "TypeString", - "description": "The parameter type.", + "description": "The status of the last scan of an attachment.", "computed": true }, - "parameter_value": { - "name": "parameter_value", + "time": { + "name": "time", "type": "TypeString", - "description": "The value of the parameter.", + "description": "The time when the last scan started.", "computed": true } } }, { - "name": "attachment_item_id", - "type": "TypeString", - "description": "The ID of the attachment.", - "computed": true - }, - { - "name": "created_on", - "type": "TypeString", - "description": "The date when the attachment was created.", - "computed": true - }, - { - "name": "schedule", - "type": "TypeString", - "description": "The schedule of an attachment evaluation.", - "computed": true - }, - { - "name": "next_scan_time", + "name": "account_id", "type": "TypeString", - "description": "The start time of the next scan.", + "description": "The account ID that is associated to the attachment.", "computed": true }, { @@ -69671,15 +70937,15 @@ } }, { - "name": "created_by", + "name": "created_on", "type": "TypeString", - "description": "The user who created the attachment.", + "description": "The date when the attachment was created.", "computed": true }, { - "name": "updated_on", + "name": "schedule", "type": "TypeString", - "description": "The date when the attachment was updated.", + "description": "The schedule of an attachment evaluation.", "computed": true }, { @@ -69720,51 +70986,45 @@ } }, { - "name": "description", - "type": "TypeString", - "description": "The description for the attachment.", - "computed": true - }, - { - "name": "attachment_id", - "type": "TypeString", - "description": "The attachment ID.", - "required": true - }, - { - "name": "account_id", - "type": "TypeString", - "description": "The account ID that is associated to the attachment.", - "computed": true - }, - { - "name": "status", - "type": "TypeString", - "description": "The status of an attachment evaluation.", - "computed": true - }, - { - "name": "last_scan", + "name": "attachment_parameters", "type": "TypeList", - "description": "The details of the last scan of an attachment.", + "description": "The profile parameters for the attachment.", "computed": true, "elem": { - "id": { - "name": "id", + "assessment_id": { + "name": "assessment_id", "type": "TypeString", - "description": "The ID of the last scan of an attachment.", + "description": "The implementation ID of the parameter.", "computed": true }, - "status": { - "name": "status", + "assessment_type": { + "name": "assessment_type", "type": "TypeString", - "description": "The status of the last scan of an attachment.", + "description": "The type of the implementation.", "computed": true }, - "time": { - "name": "time", + "parameter_display_name": { + "name": "parameter_display_name", "type": "TypeString", - "description": "The time when the last scan started.", + "description": "The parameter display name.", + "computed": true + }, + "parameter_name": { + "name": "parameter_name", + "type": "TypeString", + "description": "The parameter name.", + "computed": true + }, + "parameter_type": { + "name": "parameter_type", + "type": "TypeString", + "description": "The parameter type.", + "computed": true + }, + "parameter_value": { + "name": "parameter_value", + "type": "TypeString", + "description": "The value of the parameter.", "computed": true } } @@ -69778,9 +71038,33 @@ ], "ibm_scc_provider_type": [ { - "name": "icon", + "name": "provider_type_id", "type": "TypeString", - "description": "The icon of a provider in .svg format that is encoded as a base64 string.", + "description": "The provider type ID.", + "required": true + }, + { + "name": "instance_limit", + "type": "TypeInt", + "description": "The maximum number of instances that can be created for the provider type.", + "computed": true + }, + { + "name": "id", + "type": "TypeString", + "description": "The unique identifier of the provider type.", + "computed": true + }, + { + "name": "s2s_enabled", + "type": "TypeBool", + "description": "A boolean that indicates whether the provider type is s2s-enabled.", + "computed": true + }, + { + "name": "data_type", + "type": "TypeString", + "description": "The format of the results that a provider supports.", "computed": true }, { @@ -69793,9 +71077,9 @@ } }, { - "name": "updated_at", + "name": "type", "type": "TypeString", - "description": "Time at which resource was updated.", + "description": "The type of the provider type.", "computed": true }, { @@ -69804,6 +71088,24 @@ "description": "The name of the provider type.", "computed": true }, + { + "name": "description", + "type": "TypeString", + "description": "The provider type description.", + "computed": true + }, + { + "name": "mode", + "type": "TypeString", + "description": "The mode that is used to get results from provider (`PUSH` or `PULL`).", + "computed": true + }, + { + "name": "icon", + "type": "TypeString", + "description": "The icon of a provider in .svg format that is encoded as a base64 string.", + "computed": true + }, { "name": "label", "type": "TypeList", @@ -69824,30 +71126,6 @@ } } }, - { - "name": "id", - "type": "TypeString", - "description": "The unique identifier of the provider type.", - "computed": true - }, - { - "name": "type", - "type": "TypeString", - "description": "The type of the provider type.", - "computed": true - }, - { - "name": "s2s_enabled", - "type": "TypeBool", - "description": "A boolean that indicates whether the provider type is s2s-enabled.", - "computed": true - }, - { - "name": "mode", - "type": "TypeString", - "description": "The mode that is used to get results from provider (`PUSH` or `PULL`).", - "computed": true - }, { "name": "created_at", "type": "TypeString", @@ -69855,27 +71133,9 @@ "computed": true }, { - "name": "provider_type_id", - "type": "TypeString", - "description": "The provider type ID.", - "required": true - }, - { - "name": "description", - "type": "TypeString", - "description": "The provider type description.", - "computed": true - }, - { - "name": "instance_limit", - "type": "TypeInt", - "description": "The maximum number of instances that can be created for the provider type.", - "computed": true - }, - { - "name": "data_type", + "name": "updated_at", "type": "TypeString", - "description": "The format of the results that a provider supports.", + "description": "Time at which resource was updated.", "computed": true } ], @@ -69982,32 +71242,17 @@ "computed": true } } - } - ], - "ibm_scc_provider_type_instance": [ - { - "name": "attributes", - "type": "TypeMap", - "computed": true - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Time at which resource was updated.", - "computed": true - }, - { - "name": "provider_type_id", - "type": "TypeString", - "description": "The provider type ID.", - "required": true }, { - "name": "provider_type_instance_id", + "name": "instance_id", "type": "TypeString", - "description": "The provider type instance ID.", + "description": "The ID of the Security and Compliance Center instance.", + "cloud_data_type": "resource_instance", + "immutable": true, "required": true - }, + } + ], + "ibm_scc_provider_type_instance": [ { "name": "provider_type_instance_item_id", "type": "TypeString", @@ -70039,13 +71284,48 @@ "cloud_data_type": "resource_instance", "immutable": true, "required": true + }, + { + "name": "provider_type_id", + "type": "TypeString", + "description": "The provider type ID.", + "required": true + }, + { + "name": "provider_type_instance_id", + "type": "TypeString", + "description": "The provider type instance ID.", + "required": true + }, + { + "name": "attributes", + "type": "TypeMap", + "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Time at which resource was updated.", + "computed": true } ], "ibm_scc_report": [ { - "name": "cos_object", + "name": "report_id", "type": "TypeString", - "description": "The Cloud Object Storage object that is associated with the report.", + "description": "The ID of the scan that is associated with a report.", + "required": true + }, + { + "name": "created_on", + "type": "TypeString", + "description": "The date when the report was created.", + "computed": true + }, + { + "name": "scan_time", + "type": "TypeString", + "description": "The date when the scan was run.", "computed": true }, { @@ -70056,32 +71336,6 @@ "immutable": true, "required": true }, - { - "name": "account", - "type": "TypeList", - "description": "The account that is associated with a report.", - "computed": true, - "elem": { - "id": { - "name": "id", - "type": "TypeString", - "description": "The account ID.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The account name.", - "computed": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "The account type.", - "computed": true - } - } - }, { "name": "profile", "type": "TypeList", @@ -70180,6 +71434,12 @@ } } }, + { + "name": "id", + "type": "TypeString", + "description": "The ID of the report.", + "computed": true + }, { "name": "group_id", "type": "TypeString", @@ -70187,15 +71447,67 @@ "computed": true }, { - "name": "created_on", + "name": "type", "type": "TypeString", - "description": "The date when the report was created.", + "description": "The type of the scan.", "computed": true }, { - "name": "scan_time", + "name": "cos_object", "type": "TypeString", - "description": "The date when the scan was run.", + "description": "The Cloud Object Storage object that is associated with the report.", + "computed": true + }, + { + "name": "account", + "type": "TypeList", + "description": "The account that is associated with a report.", + "computed": true, + "elem": { + "id": { + "name": "id", + "type": "TypeString", + "description": "The account ID.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The account name.", + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "The account type.", + "computed": true + } + } + } + ], + "ibm_scc_report_controls": [ + { + "name": "control_name", + "type": "TypeString", + "description": "The name of the control.", + "optional": true + }, + { + "name": "control_category", + "type": "TypeString", + "description": "A control category value.", + "optional": true + }, + { + "name": "home_account_id", + "type": "TypeString", + "description": "The ID of the home account.", + "computed": true + }, + { + "name": "user_evaluation_required_count", + "type": "TypeInt", + "description": "The number of checks that require a user evaluation.", "computed": true }, { @@ -70205,29 +71517,59 @@ "required": true }, { - "name": "id", + "name": "sort", "type": "TypeString", - "description": "The ID of the report.", + "description": "This field sorts controls by using a valid sort field. To learn more, see [Sorting](https://cloud.ibm.com/docs/api-handbook?topic=api-handbook-sorting).", + "optional": true + }, + { + "name": "total_count", + "type": "TypeInt", + "description": "The total number of checks.", "computed": true }, { - "name": "type", - "type": "TypeString", - "description": "The type of the scan.", + "name": "not_compliant_count", + "type": "TypeInt", + "description": "The number of checks that are not compliant.", "computed": true - } - ], - "ibm_scc_report_controls": [ + }, { - "name": "control_category", + "name": "unable_to_perform_count", + "type": "TypeInt", + "description": "The number of checks that are unable to perform.", + "computed": true + }, + { + "name": "control_id", "type": "TypeString", - "description": "A control category value.", + "description": "The ID of the control.", "optional": true }, { - "name": "total_count", + "name": "control_description", + "type": "TypeString", + "description": "The description of the control.", + "optional": true + }, + { + "name": "status", + "type": "TypeString", + "description": "The compliance status value.", + "optional": true + }, + { + "name": "instance_id", + "type": "TypeString", + "description": "The ID of the Security and Compliance Center instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true + }, + { + "name": "compliant_count", "type": "TypeInt", - "description": "The total number of checks.", + "description": "The number of compliant checks.", "computed": true }, { @@ -70459,135 +71801,9 @@ "computed": true } } - }, - { - "name": "report_id", - "type": "TypeString", - "description": "The ID of the scan that is associated with a report.", - "required": true - }, - { - "name": "control_name", - "type": "TypeString", - "description": "The name of the control.", - "optional": true - }, - { - "name": "control_description", - "type": "TypeString", - "description": "The description of the control.", - "optional": true - }, - { - "name": "control_id", - "type": "TypeString", - "description": "The ID of the control.", - "optional": true - }, - { - "name": "not_compliant_count", - "type": "TypeInt", - "description": "The number of checks that are not compliant.", - "computed": true - }, - { - "name": "home_account_id", - "type": "TypeString", - "description": "The ID of the home account.", - "computed": true - }, - { - "name": "instance_id", - "type": "TypeString", - "description": "The ID of the Security and Compliance Center instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true - }, - { - "name": "status", - "type": "TypeString", - "description": "The compliance status value.", - "optional": true - }, - { - "name": "compliant_count", - "type": "TypeInt", - "description": "The number of compliant checks.", - "computed": true - }, - { - "name": "unable_to_perform_count", - "type": "TypeInt", - "description": "The number of checks that are unable to perform.", - "computed": true - }, - { - "name": "user_evaluation_required_count", - "type": "TypeInt", - "description": "The number of checks that require a user evaluation.", - "computed": true - }, - { - "name": "sort", - "type": "TypeString", - "description": "This field sorts controls by using a valid sort field. To learn more, see [Sorting](https://cloud.ibm.com/docs/api-handbook?topic=api-handbook-sorting).", - "optional": true } ], "ibm_scc_report_evaluations": [ - { - "name": "assessment_id", - "type": "TypeString", - "description": "The ID of the assessment.", - "optional": true - }, - { - "name": "component_id", - "type": "TypeString", - "description": "The ID of component.", - "optional": true - }, - { - "name": "target_id", - "type": "TypeString", - "description": "The ID of the evaluation target.", - "optional": true - }, - { - "name": "status", - "type": "TypeString", - "description": "The evaluation status value.", - "optional": true - }, - { - "name": "instance_id", - "type": "TypeString", - "description": "The ID of the Security and Compliance Center instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true - }, - { - "name": "report_id", - "type": "TypeString", - "description": "The ID of the scan that is associated with a report.", - "required": true - }, - { - "name": "first", - "type": "TypeList", - "description": "The page reference.", - "computed": true, - "elem": { - "href": { - "name": "href", - "type": "TypeString", - "description": "The URL for the first and next page.", - "computed": true - } - } - }, { "name": "home_account_id", "type": "TypeString", @@ -70798,6 +72014,58 @@ } } }, + { + "name": "instance_id", + "type": "TypeString", + "description": "The ID of the Security and Compliance Center instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true + }, + { + "name": "report_id", + "type": "TypeString", + "description": "The ID of the scan that is associated with a report.", + "required": true + }, + { + "name": "assessment_id", + "type": "TypeString", + "description": "The ID of the assessment.", + "optional": true + }, + { + "name": "status", + "type": "TypeString", + "description": "The evaluation status value.", + "optional": true + }, + { + "name": "first", + "type": "TypeList", + "description": "The page reference.", + "computed": true, + "elem": { + "href": { + "name": "href", + "type": "TypeString", + "description": "The URL for the first and next page.", + "computed": true + } + } + }, + { + "name": "component_id", + "type": "TypeString", + "description": "The ID of component.", + "optional": true + }, + { + "name": "target_id", + "type": "TypeString", + "description": "The ID of the evaluation target.", + "optional": true + }, { "name": "target_name", "type": "TypeString", @@ -70806,6 +72074,12 @@ } ], "ibm_scc_report_resources": [ + { + "name": "sort", + "type": "TypeString", + "description": "This field sorts resources by using a valid sort field. To learn more, see [Sorting](https://cloud.ibm.com/docs/api-handbook?topic=api-handbook-sorting).", + "optional": true + }, { "name": "first", "type": "TypeList", @@ -70820,6 +72094,56 @@ } } }, + { + "name": "report_id", + "type": "TypeString", + "description": "The ID of the scan that is associated with a report.", + "required": true + }, + { + "name": "id", + "type": "TypeString", + "description": "The ID of the resource.", + "optional": true + }, + { + "name": "component_id", + "type": "TypeString", + "description": "The ID of component.", + "optional": true + }, + { + "name": "status", + "type": "TypeString", + "description": "The compliance status value.", + "optional": true + }, + { + "name": "instance_id", + "type": "TypeString", + "description": "The ID of the Security and Compliance Center instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true + }, + { + "name": "resource_name", + "type": "TypeString", + "description": "The name of the resource.", + "optional": true + }, + { + "name": "account_id", + "type": "TypeString", + "description": "The ID of the account owning a resource.", + "optional": true + }, + { + "name": "home_account_id", + "type": "TypeString", + "description": "The ID of the home account.", + "computed": true + }, { "name": "resources", "type": "TypeList", @@ -70906,88 +72230,26 @@ "description": "The resource name.", "computed": true }, - "status": { - "name": "status", - "type": "TypeString", - "description": "The allowed values of an aggregated status for controls, specifications, assessments, and resources.", - "computed": true - }, - "total_count": { - "name": "total_count", - "type": "TypeInt", - "description": "The total number of evaluations.", - "computed": true - } - } - }, - { - "name": "resource_name", - "type": "TypeString", - "description": "The name of the resource.", - "optional": true - }, - { - "name": "id", - "type": "TypeString", - "description": "The ID of the resource.", - "optional": true - }, - { - "name": "account_id", - "type": "TypeString", - "description": "The ID of the account owning a resource.", - "optional": true - }, - { - "name": "component_id", - "type": "TypeString", - "description": "The ID of component.", - "optional": true - }, - { - "name": "status", - "type": "TypeString", - "description": "The compliance status value.", - "optional": true - }, - { - "name": "sort", - "type": "TypeString", - "description": "This field sorts resources by using a valid sort field. To learn more, see [Sorting](https://cloud.ibm.com/docs/api-handbook?topic=api-handbook-sorting).", - "optional": true - }, - { - "name": "home_account_id", - "type": "TypeString", - "description": "The ID of the home account.", - "computed": true - }, - { - "name": "instance_id", - "type": "TypeString", - "description": "The ID of the Security and Compliance Center instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true - }, - { - "name": "report_id", - "type": "TypeString", - "description": "The ID of the scan that is associated with a report.", - "required": true + "status": { + "name": "status", + "type": "TypeString", + "description": "The allowed values of an aggregated status for controls, specifications, assessments, and resources.", + "computed": true + }, + "total_count": { + "name": "total_count", + "type": "TypeInt", + "description": "The total number of evaluations.", + "computed": true + } + } } ], "ibm_scc_report_rule": [ { - "name": "updated_by", - "type": "TypeString", - "description": "The ID of the user who updated the rule.", - "computed": true - }, - { - "name": "report_id", + "name": "rule_id", "type": "TypeString", - "description": "The ID of the scan that is associated with a report.", + "description": "The ID of a rule in a report.", "required": true }, { @@ -71003,21 +72265,15 @@ "computed": true }, { - "name": "account_id", - "type": "TypeString", - "description": "The rule account ID.", - "computed": true - }, - { - "name": "created_by", + "name": "version", "type": "TypeString", - "description": "The ID of the user who created the rule.", + "description": "The rule version.", "computed": true }, { - "name": "updated_on", + "name": "created_on", "type": "TypeString", - "description": "The date when the rule was updated.", + "description": "The date when the rule was created.", "computed": true }, { @@ -71038,9 +72294,9 @@ "required": true }, { - "name": "rule_id", + "name": "report_id", "type": "TypeString", - "description": "The ID of a rule in a report.", + "description": "The ID of the scan that is associated with a report.", "required": true }, { @@ -71050,57 +72306,31 @@ "computed": true }, { - "name": "version", + "name": "account_id", "type": "TypeString", - "description": "The rule version.", + "description": "The rule account ID.", "computed": true }, { - "name": "created_on", + "name": "created_by", "type": "TypeString", - "description": "The date when the rule was created.", + "description": "The ID of the user who created the rule.", "computed": true - } - ], - "ibm_scc_report_summary": [ - { - "name": "report_id", - "type": "TypeString", - "description": "The ID of the scan that is associated with a report.", - "required": true }, { - "name": "isntance_id", + "name": "updated_on", "type": "TypeString", - "description": "Instance ID.", + "description": "The date when the rule was updated.", "computed": true }, { - "name": "account", - "type": "TypeList", - "description": "The account that is associated with a report.", - "computed": true, - "elem": { - "id": { - "name": "id", - "type": "TypeString", - "description": "The account ID.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The account name.", - "computed": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "The account type.", - "computed": true - } - } - }, + "name": "updated_by", + "type": "TypeString", + "description": "The ID of the user who updated the rule.", + "computed": true + } + ], + "ibm_scc_report_summary": [ { "name": "score", "type": "TypeList", @@ -71369,6 +72599,44 @@ "cloud_data_type": "resource_instance", "immutable": true, "required": true + }, + { + "name": "report_id", + "type": "TypeString", + "description": "The ID of the scan that is associated with a report.", + "required": true + }, + { + "name": "isntance_id", + "type": "TypeString", + "description": "Instance ID.", + "computed": true + }, + { + "name": "account", + "type": "TypeList", + "description": "The account that is associated with a report.", + "computed": true, + "elem": { + "id": { + "name": "id", + "type": "TypeString", + "description": "The account ID.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The account name.", + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "The account type.", + "computed": true + } + } } ], "ibm_scc_report_tags": [ @@ -71424,6 +72692,12 @@ } ], "ibm_scc_report_violation_drift": [ + { + "name": "report_id", + "type": "TypeString", + "description": "The ID of the scan that is associated with a report.", + "required": true + }, { "name": "scan_time_duration", "type": "TypeInt", @@ -71514,53 +72788,34 @@ "cloud_data_type": "resource_instance", "immutable": true, "required": true + } + ], + "ibm_scc_rule": [ + { + "name": "created_by", + "type": "TypeString", + "description": "The user who created the rule.", + "computed": true }, { - "name": "report_id", + "name": "version", "type": "TypeString", - "description": "The ID of the scan that is associated with a report.", + "description": "The version number of a rule.", + "computed": true + }, + { + "name": "rule_id", + "type": "TypeString", + "description": "The ID of the corresponding rule.", "required": true - } - ], - "ibm_scc_rule": [ + }, { - "name": "import", + "name": "labels", "type": "TypeList", - "description": "The collection of import parameters.", + "description": "The list of labels.", "computed": true, "elem": { - "parameters": { - "name": "parameters", - "type": "TypeList", - "description": "The list of import parameters.", - "computed": true, - "elem": { - "description": { - "name": "description", - "type": "TypeString", - "description": "The propery description.", - "computed": true - }, - "display_name": { - "name": "display_name", - "type": "TypeString", - "description": "The display name of the property.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The import parameter name.", - "computed": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "The property type.", - "computed": true - } - } - } + "type": "TypeString" } }, { @@ -71715,273 +72970,1048 @@ } } }, - "description": { - "name": "description", - "type": "TypeString", - "description": "The required config description.", + "description": { + "name": "description", + "type": "TypeString", + "description": "The required config description.", + "computed": true + }, + "operator": { + "name": "operator", + "type": "TypeString", + "description": "The operator.", + "computed": true + }, + "or": { + "name": "or", + "type": "TypeList", + "description": "The `OR` required configurations.", + "computed": true, + "elem": { + "description": { + "name": "description", + "type": "TypeString", + "description": "The required config description.", + "computed": true + }, + "operator": { + "name": "operator", + "type": "TypeString", + "description": "The operator.", + "computed": true + }, + "property": { + "name": "property", + "type": "TypeString", + "description": "The property.", + "computed": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "Schema for any JSON type.", + "computed": true + } + } + }, + "property": { + "name": "property", + "type": "TypeString", + "description": "The property.", + "computed": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "Schema for any JSON type.", + "computed": true + } + } + }, + "property": { + "name": "property", + "type": "TypeString", + "description": "The property.", + "computed": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "Schema for any JSON type.", + "computed": true + } + } + }, + { + "name": "description", + "type": "TypeString", + "description": "The details of a rule's response.", + "computed": true + }, + { + "name": "import", + "type": "TypeList", + "description": "The collection of import parameters.", + "computed": true, + "elem": { + "parameters": { + "name": "parameters", + "type": "TypeList", + "description": "The list of import parameters.", + "computed": true, + "elem": { + "description": { + "name": "description", + "type": "TypeString", + "description": "The propery description.", + "computed": true + }, + "display_name": { + "name": "display_name", + "type": "TypeString", + "description": "The display name of the property.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The import parameter name.", + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "The property type.", + "computed": true + } + } + } + } + }, + { + "name": "target", + "type": "TypeList", + "description": "The rule target.", + "computed": true, + "elem": { + "additional_target_attributes": { + "name": "additional_target_attributes", + "type": "TypeList", + "description": "The list of targets supported properties.", + "computed": true, + "elem": { + "name": { + "name": "name", + "type": "TypeString", + "description": "The additional target attribute name.", + "computed": true + }, + "operator": { + "name": "operator", + "type": "TypeString", + "description": "The operator.", + "computed": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "The value.", + "computed": true + } + } + }, + "resource_kind": { + "name": "resource_kind", + "type": "TypeString", + "description": "The target resource kind.", + "computed": true + }, + "service_display_name": { + "name": "service_display_name", + "type": "TypeString", + "description": "The display name of the target service.", + "computed": true + }, + "service_name": { + "name": "service_name", + "type": "TypeString", + "description": "The target service name.", + "computed": true + } + } + }, + { + "name": "updated_by", + "type": "TypeString", + "description": "The user who modified the rule.", + "computed": true + }, + { + "name": "updated_on", + "type": "TypeString", + "description": "The date when the rule was modified.", + "computed": true + }, + { + "name": "id", + "type": "TypeString", + "description": "The rule ID.", + "computed": true + }, + { + "name": "account_id", + "type": "TypeString", + "description": "The account ID.", + "computed": true + }, + { + "name": "type", + "type": "TypeString", + "description": "The rule type (allowable values are `user_defined` or `system_defined`).", + "computed": true + }, + { + "name": "instance_id", + "type": "TypeString", + "description": "The ID of the Security and Compliance Center instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true + }, + { + "name": "created_on", + "type": "TypeString", + "description": "The date when the rule was created.", + "computed": true + } + ], + "ibm_schematics_action": [ + { + "name": "user_state", + "type": "TypeList", + "description": "User defined status of the Schematics object.", + "computed": true, + "elem": { + "set_at": { + "name": "set_at", + "type": "TypeString", + "description": "When the User who set the state of the Object.", + "computed": true + }, + "set_by": { + "name": "set_by", + "type": "TypeString", + "description": "Name of the User who set the state of the Object.", + "computed": true + }, + "state": { + "name": "state", + "type": "TypeString", + "description": "User-defined states * `draft` Object can be modified; can be used by Jobs run by the author, during execution * `live` Object can be modified; can be used by Jobs during execution * `locked` Object cannot be modified; can be used by Jobs during execution * `disable` Object can be modified. cannot be used by Jobs during execution.", + "computed": true + } + } + }, + { + "name": "bastion", + "type": "TypeList", + "description": "Describes a bastion resource.", + "computed": true, + "elem": { + "host": { + "name": "host", + "type": "TypeString", + "description": "Reference to the Inventory resource definition.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Bastion Name(Unique).", + "computed": true + } + } + }, + { + "name": "action_inputs", + "type": "TypeList", + "description": "Input variables for the Action.", + "computed": true, + "elem": { + "link": { + "name": "link", + "type": "TypeString", + "description": "Reference link to the variable value By default the expression will point to self.value.", + "computed": true + }, + "metadata": { + "name": "metadata", + "type": "TypeList", + "description": "User editable metadata for the variables.", + "computed": true, + "elem": { + "aliases": { + "name": "aliases", + "type": "TypeList", + "description": "List of aliases for the variable name.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "default_value": { + "name": "default_value", + "type": "TypeString", + "description": "Default value for the variable, if the override value is not specified.", + "computed": true + }, + "description": { + "name": "description", + "type": "TypeString", + "description": "Description of the meta data.", + "computed": true + }, + "group_by": { + "name": "group_by", + "type": "TypeString", + "description": "Display name of the group this variable belongs to.", + "computed": true + }, + "hidden": { + "name": "hidden", + "type": "TypeBool", + "description": "If true, the variable will not be displayed on UI or CLI.", + "computed": true + }, + "immutable": { + "name": "immutable", + "type": "TypeBool", + "description": "Is the variable readonly ?.", + "computed": true + }, + "matches": { + "name": "matches", + "type": "TypeString", + "description": "Regex for the variable value.", + "computed": true + }, + "max_length": { + "name": "max_length", + "type": "TypeInt", + "description": "Maximum length of the variable value. Applicable for string type.", + "computed": true + }, + "max_value": { + "name": "max_value", + "type": "TypeInt", + "description": "Maximum value of the variable. Applicable for integer type.", + "computed": true + }, + "min_length": { + "name": "min_length", + "type": "TypeInt", + "description": "Minimum length of the variable value. Applicable for string type.", + "computed": true + }, + "min_value": { + "name": "min_value", + "type": "TypeInt", + "description": "Minimum value of the variable. Applicable for integer type.", + "computed": true + }, + "options": { + "name": "options", + "type": "TypeList", + "description": "List of possible values for this variable. If type is integer or date, then the array of string will be converted to array of integers or date during runtime.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "position": { + "name": "position", + "type": "TypeInt", + "description": "Relative position of this variable in a list.", + "computed": true + }, + "secure": { + "name": "secure", + "type": "TypeBool", + "description": "Is the variable secure or sensitive ?.", + "computed": true + }, + "source": { + "name": "source", + "type": "TypeString", + "description": "Source of this meta-data.", + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "Type of the variable.", + "computed": true + } + } + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Name of the variable.", + "computed": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "Value for the variable or reference to the value.", + "computed": true + } + } + }, + { + "name": "id", + "type": "TypeString", + "description": "Action ID.", + "computed": true + }, + { + "name": "source_created_by", + "type": "TypeString", + "description": "E-mail address of user who created the Action Playbook Source.", + "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Action updation time.", + "computed": true + }, + { + "name": "description", + "type": "TypeString", + "description": "Action description.", + "computed": true + }, + { + "name": "resource_group", + "type": "TypeString", + "description": "Resource-group name for an action. By default, action is created in default resource group.", + "cloud_data_type": "resource_group", + "computed": true + }, + { + "name": "command_parameter", + "type": "TypeString", + "description": "Schematics job command parameter (playbook-name).", + "computed": true + }, + { + "name": "bastion_credential", + "type": "TypeList", + "description": "User editable variable data \u0026 system generated reference to value.", + "computed": true, + "elem": { + "link": { + "name": "link", + "type": "TypeString", + "description": "Reference link to the variable value By default the expression will point to self.value.", + "computed": true + }, + "metadata": { + "name": "metadata", + "type": "TypeList", + "description": "User editable metadata for the variables.", + "computed": true, + "elem": { + "aliases": { + "name": "aliases", + "type": "TypeList", + "description": "List of aliases for the variable name.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "default_value": { + "name": "default_value", + "type": "TypeString", + "description": "Default value for the variable, if the override value is not specified.", + "computed": true + }, + "description": { + "name": "description", + "type": "TypeString", + "description": "Description of the meta data.", + "computed": true + }, + "group_by": { + "name": "group_by", + "type": "TypeString", + "description": "Display name of the group this variable belongs to.", + "computed": true + }, + "hidden": { + "name": "hidden", + "type": "TypeBool", + "description": "If true, the variable will not be displayed on UI or CLI.", + "computed": true + }, + "immutable": { + "name": "immutable", + "type": "TypeBool", + "description": "Is the variable readonly ?.", + "computed": true + }, + "matches": { + "name": "matches", + "type": "TypeString", + "description": "Regex for the variable value.", + "computed": true + }, + "max_length": { + "name": "max_length", + "type": "TypeInt", + "description": "Maximum length of the variable value. Applicable for string type.", + "computed": true + }, + "max_value": { + "name": "max_value", + "type": "TypeInt", + "description": "Maximum value of the variable. Applicable for integer type.", + "computed": true + }, + "min_length": { + "name": "min_length", + "type": "TypeInt", + "description": "Minimum length of the variable value. Applicable for string type.", + "computed": true + }, + "min_value": { + "name": "min_value", + "type": "TypeInt", + "description": "Minimum value of the variable. Applicable for integer type.", + "computed": true + }, + "options": { + "name": "options", + "type": "TypeList", + "description": "List of possible values for this variable. If type is integer or date, then the array of string will be converted to array of integers or date during runtime.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "position": { + "name": "position", + "type": "TypeInt", + "description": "Relative position of this variable in a list.", + "computed": true + }, + "secure": { + "name": "secure", + "type": "TypeBool", + "description": "Is the variable secure or sensitive ?.", + "computed": true + }, + "source": { + "name": "source", + "type": "TypeString", + "description": "Source of this meta-data.", + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "Type of the variable.", + "computed": true + } + } + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Name of the variable.", + "computed": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "Value for the variable or reference to the value.", + "computed": true + } + } + }, + { + "name": "source_created_at", + "type": "TypeString", + "description": "Action Playbook Source creation time.", + "computed": true + }, + { + "name": "source_updated_by", + "type": "TypeString", + "description": "E-mail address of user who updated the action playbook source.", + "computed": true + }, + { + "name": "playbook_names", + "type": "TypeList", + "description": "Playbook names retrieved from the respository.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "sys_lock", + "type": "TypeList", + "description": "System lock status.", + "computed": true, + "elem": { + "sys_locked": { + "name": "sys_locked", + "type": "TypeBool", + "description": "Is the automation locked by a Schematic job ?.", + "computed": true + }, + "sys_locked_at": { + "name": "sys_locked_at", + "type": "TypeString", + "description": "When the User performed the job that lead to locking of the automation ?.", + "computed": true + }, + "sys_locked_by": { + "name": "sys_locked_by", + "type": "TypeString", + "description": "Name of the User who performed the job, that lead to the locking of the automation.", + "computed": true + } + } + }, + { + "name": "action_id", + "type": "TypeString", + "description": "Action Id. Use GET /actions API to look up the Action Ids in your IBM Cloud account.", + "required": true + }, + { + "name": "location", + "type": "TypeString", + "description": "List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics.", + "cloud_data_type": "region", + "optional": true, + "computed": true + }, + { + "name": "tags", + "type": "TypeList", + "description": "Action tags.", + "cloud_data_type": "tags", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "credentials", + "type": "TypeList", + "description": "credentials of the Action.", + "computed": true, + "elem": { + "link": { + "name": "link", + "type": "TypeString", + "description": "Reference link to the variable value By default the expression will point to self.value.", + "computed": true + }, + "metadata": { + "name": "metadata", + "type": "TypeList", + "description": "User editable metadata for the variables.", + "computed": true, + "elem": { + "aliases": { + "name": "aliases", + "type": "TypeList", + "description": "List of aliases for the variable name.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "default_value": { + "name": "default_value", + "type": "TypeString", + "description": "Default value for the variable, if the override value is not specified.", + "computed": true + }, + "description": { + "name": "description", + "type": "TypeString", + "description": "Description of the meta data.", + "computed": true + }, + "group_by": { + "name": "group_by", + "type": "TypeString", + "description": "Display name of the group this variable belongs to.", + "computed": true + }, + "hidden": { + "name": "hidden", + "type": "TypeBool", + "description": "If true, the variable will not be displayed on UI or CLI.", + "computed": true + }, + "immutable": { + "name": "immutable", + "type": "TypeBool", + "description": "Is the variable readonly ?.", + "computed": true + }, + "position": { + "name": "position", + "type": "TypeInt", + "description": "Relative position of this variable in a list.", + "computed": true + }, + "source": { + "name": "source", + "type": "TypeString", + "description": "Source of this meta-data.", + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "Type of the variable.", + "computed": true + } + } + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Name of the variable.", + "computed": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "Value for the variable or reference to the value.", + "computed": true + } + } + }, + { + "name": "crn", + "type": "TypeString", + "description": "Action Cloud Resource Name.", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "inventory", + "type": "TypeString", + "description": "Target inventory record ID, used by the action or ansible playbook.", + "computed": true + }, + { + "name": "targets_ini", + "type": "TypeString", + "description": "Inventory of host and host group for the playbook in `INI` file format. For example, `\"targets_ini\": \"[webserverhost] 172.22.192.6 [dbhost] 172.22.192.5\"`. For more information, about an inventory host group syntax, see [Inventory host groups](https://cloud.ibm.com/docs/schematics?topic=schematics-schematics-cli-reference#schematics-inventory-host-grps).", + "computed": true + }, + { + "name": "created_at", + "type": "TypeString", + "description": "Action creation time.", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The unique name of your action. The name can be up to 128 characters long and can include alphanumeric characters, spaces, dashes, and underscores. **Example** you can use the name to stop action.", + "computed": true + }, + { + "name": "settings", + "type": "TypeList", + "description": "Environment variables for the Action.", + "computed": true, + "elem": { + "link": { + "name": "link", + "type": "TypeString", + "description": "Reference link to the variable value By default the expression will point to self.value.", + "computed": true + }, + "metadata": { + "name": "metadata", + "type": "TypeList", + "description": "User editable metadata for the variables.", + "computed": true, + "elem": { + "aliases": { + "name": "aliases", + "type": "TypeList", + "description": "List of aliases for the variable name.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "default_value": { + "name": "default_value", + "type": "TypeString", + "description": "Default value for the variable, if the override value is not specified.", + "computed": true + }, + "description": { + "name": "description", + "type": "TypeString", + "description": "Description of the meta data.", + "computed": true + }, + "group_by": { + "name": "group_by", + "type": "TypeString", + "description": "Display name of the group this variable belongs to.", + "computed": true + }, + "hidden": { + "name": "hidden", + "type": "TypeBool", + "description": "If true, the variable will not be displayed on UI or CLI.", + "computed": true + }, + "immutable": { + "name": "immutable", + "type": "TypeBool", + "description": "Is the variable readonly ?.", + "computed": true + }, + "matches": { + "name": "matches", + "type": "TypeString", + "description": "Regex for the variable value.", + "computed": true + }, + "max_length": { + "name": "max_length", + "type": "TypeInt", + "description": "Maximum length of the variable value. Applicable for string type.", + "computed": true + }, + "max_value": { + "name": "max_value", + "type": "TypeInt", + "description": "Maximum value of the variable. Applicable for integer type.", "computed": true }, - "operator": { - "name": "operator", - "type": "TypeString", - "description": "The operator.", + "min_length": { + "name": "min_length", + "type": "TypeInt", + "description": "Minimum length of the variable value. Applicable for string type.", "computed": true }, - "or": { - "name": "or", + "min_value": { + "name": "min_value", + "type": "TypeInt", + "description": "Minimum value of the variable. Applicable for integer type.", + "computed": true + }, + "options": { + "name": "options", "type": "TypeList", - "description": "The `OR` required configurations.", + "description": "List of possible values for this variable. If type is integer or date, then the array of string will be converted to array of integers or date during runtime.", "computed": true, "elem": { - "description": { - "name": "description", - "type": "TypeString", - "description": "The required config description.", - "computed": true - }, - "operator": { - "name": "operator", - "type": "TypeString", - "description": "The operator.", - "computed": true - }, - "property": { - "name": "property", - "type": "TypeString", - "description": "The property.", - "computed": true - }, - "value": { - "name": "value", - "type": "TypeString", - "description": "Schema for any JSON type.", - "computed": true - } + "type": "TypeString" } }, - "property": { - "name": "property", + "position": { + "name": "position", + "type": "TypeInt", + "description": "Relative position of this variable in a list.", + "computed": true + }, + "secure": { + "name": "secure", + "type": "TypeBool", + "description": "Is the variable secure or sensitive ?.", + "computed": true + }, + "source": { + "name": "source", "type": "TypeString", - "description": "The property.", + "description": "Source of this meta-data.", "computed": true }, - "value": { - "name": "value", + "type": { + "name": "type", "type": "TypeString", - "description": "Schema for any JSON type.", + "description": "Type of the variable.", "computed": true } } }, - "property": { - "name": "property", + "name": { + "name": "name", "type": "TypeString", - "description": "The property.", + "description": "Name of the variable.", "computed": true }, "value": { "name": "value", "type": "TypeString", - "description": "Schema for any JSON type.", + "description": "Value for the variable or reference to the value.", "computed": true } } }, { - "name": "instance_id", - "type": "TypeString", - "description": "The ID of the Security and Compliance Center instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true - }, - { - "name": "updated_on", + "name": "created_by", "type": "TypeString", - "description": "The date when the rule was modified.", + "description": "E-mail address of the user who created an action.", "computed": true }, { - "name": "description", + "name": "source_readme_url", "type": "TypeString", - "description": "The details of a rule's response.", + "description": "URL of the `README` file, for the source URL.", "computed": true }, { - "name": "type", + "name": "account", "type": "TypeString", - "description": "The rule type (allowable values are `user_defined` or `system_defined`).", + "description": "Action account ID.", "computed": true }, - { - "name": "labels", - "type": "TypeList", - "description": "The list of labels.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "rule_id", - "type": "TypeString", - "description": "The ID of the corresponding rule.", - "required": true - }, { "name": "updated_by", "type": "TypeString", - "description": "The user who modified the rule.", - "computed": true - }, - { - "name": "created_by", - "type": "TypeString", - "description": "The user who created the rule.", - "computed": true - }, - { - "name": "account_id", - "type": "TypeString", - "description": "The account ID.", - "computed": true - }, - { - "name": "version", - "type": "TypeString", - "description": "The version number of a rule.", + "description": "E-mail address of the user who updated an action.", "computed": true }, { - "name": "target", + "name": "source", "type": "TypeList", - "description": "The rule target.", + "description": "Source of templates, playbooks, or controls.", "computed": true, "elem": { - "additional_target_attributes": { - "name": "additional_target_attributes", + "catalog": { + "name": "catalog", "type": "TypeList", - "description": "The list of targets supported properties.", + "description": "Connection details to IBM Cloud Catalog source.", "computed": true, "elem": { - "name": { - "name": "name", + "catalog_name": { + "name": "catalog_name", "type": "TypeString", - "description": "The additional target attribute name.", + "description": "name of the private catalog.", "computed": true }, - "operator": { - "name": "operator", + "offering_id": { + "name": "offering_id", "type": "TypeString", - "description": "The operator.", + "description": "Id of the offering the IBM Catalog.", "computed": true }, - "value": { - "name": "value", + "offering_kind": { + "name": "offering_kind", "type": "TypeString", - "description": "The value.", + "description": "Type of the offering, in the IBM Catalog.", + "computed": true + }, + "offering_name": { + "name": "offering_name", + "type": "TypeString", + "description": "Name of the offering in the IBM Catalog.", + "computed": true + }, + "offering_repo_url": { + "name": "offering_repo_url", + "type": "TypeString", + "description": "Repo Url of the offering, in the IBM Catalog.", + "computed": true + }, + "offering_version": { + "name": "offering_version", + "type": "TypeString", + "description": "Version string of the offering in the IBM Catalog.", + "computed": true + }, + "offering_version_id": { + "name": "offering_version_id", + "type": "TypeString", + "description": "Id of the offering version the IBM Catalog.", "computed": true } } }, - "resource_kind": { - "name": "resource_kind", - "type": "TypeString", - "description": "The target resource kind.", - "computed": true - }, - "service_display_name": { - "name": "service_display_name", - "type": "TypeString", - "description": "The display name of the target service.", - "computed": true - }, - "service_name": { - "name": "service_name", - "type": "TypeString", - "description": "The target service name.", - "computed": true - } - } - }, - { - "name": "created_on", - "type": "TypeString", - "description": "The date when the rule was created.", - "computed": true - }, - { - "name": "id", - "type": "TypeString", - "description": "The rule ID.", - "computed": true - } - ], - "ibm_schematics_action": [ - { - "name": "tags", - "type": "TypeList", - "description": "Action tags.", - "cloud_data_type": "tags", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "user_state", - "type": "TypeList", - "description": "User defined status of the Schematics object.", - "computed": true, - "elem": { - "set_at": { - "name": "set_at", - "type": "TypeString", - "description": "When the User who set the state of the Object.", - "computed": true - }, - "set_by": { - "name": "set_by", - "type": "TypeString", - "description": "Name of the User who set the state of the Object.", - "computed": true + "git": { + "name": "git", + "type": "TypeList", + "description": "Connection details to Git source.", + "computed": true, + "elem": { + "computed_git_repo_url": { + "name": "computed_git_repo_url", + "type": "TypeString", + "description": "The Complete URL which is computed by git_repo_url, git_repo_folder and branch.", + "computed": true + }, + "git_branch": { + "name": "git_branch", + "type": "TypeString", + "description": "Name of the branch, used to fetch the Git Repo.", + "computed": true + }, + "git_release": { + "name": "git_release", + "type": "TypeString", + "description": "Name of the release tag, used to fetch the Git Repo.", + "computed": true + }, + "git_repo_folder": { + "name": "git_repo_folder", + "type": "TypeString", + "description": "Name of the folder in the Git Repo, that contains the template.", + "computed": true + }, + "git_repo_url": { + "name": "git_repo_url", + "type": "TypeString", + "description": "URL to the GIT Repo that can be used to clone the template.", + "computed": true + }, + "git_token": { + "name": "git_token", + "type": "TypeString", + "description": "Personal Access Token to connect to Git URLs.", + "computed": true + } + } }, - "state": { - "name": "state", + "source_type": { + "name": "source_type", "type": "TypeString", - "description": "User-defined states * `draft` Object can be modified; can be used by Jobs run by the author, during execution * `live` Object can be modified; can be used by Jobs during execution * `locked` Object cannot be modified; can be used by Jobs during execution * `disable` Object can be modified. cannot be used by Jobs during execution.", + "description": "Type of source for the Template.", "computed": true } } }, { - "name": "source_created_at", - "type": "TypeString", - "description": "Action Playbook Source creation time.", - "computed": true - }, - { - "name": "action_id", - "type": "TypeString", - "description": "Action Id. Use GET /actions API to look up the Action Ids in your IBM Cloud account.", - "required": true - }, - { - "name": "name", - "type": "TypeString", - "description": "The unique name of your action. The name can be up to 128 characters long and can include alphanumeric characters, spaces, dashes, and underscores. **Example** you can use the name to stop action.", - "computed": true - }, - { - "name": "source_readme_url", + "name": "source_type", "type": "TypeString", - "description": "URL of the `README` file, for the source URL.", + "description": "Type of source for the Template.", "computed": true }, { - "name": "settings", + "name": "action_outputs", "type": "TypeList", - "description": "Environment variables for the Action.", + "description": "Output variables for the Action.", "computed": true, "elem": { "link": { @@ -72115,90 +74145,426 @@ } }, { - "name": "source_created_by", + "name": "source_updated_at", "type": "TypeString", - "description": "E-mail address of user who created the Action Playbook Source.", + "description": "The action playbook updation time.", "computed": true }, { - "name": "source_type", + "name": "state", + "type": "TypeList", + "description": "Computed state of the Action.", + "computed": true, + "elem": { + "status_code": { + "name": "status_code", + "type": "TypeString", + "description": "Status of automation (workspace or action).", + "computed": true + }, + "status_job_id": { + "name": "status_job_id", + "type": "TypeString", + "description": "Job id reference for this status.", + "computed": true + }, + "status_message": { + "name": "status_message", + "type": "TypeString", + "description": "Automation status message - to be displayed along with the status_code.", + "computed": true + } + } + } + ], + "ibm_schematics_agent": [ + { + "name": "resource_group", "type": "TypeString", - "description": "Type of source for the Template.", + "description": "The resource-group name for the agent. By default, agent will be registered in Default Resource Group.", + "cloud_data_type": "resource_group", "computed": true }, + { + "name": "schematics_location", + "type": "TypeString", + "description": "List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics.", + "computed": true + }, + { + "name": "agent_infrastructure", + "type": "TypeList", + "description": "The infrastructure parameters used by the agent.", + "computed": true, + "elem": { + "cluster_id": { + "name": "cluster_id", + "type": "TypeString", + "description": "The cluster ID where agent services will be running.", + "computed": true + }, + "cluster_resource_group": { + "name": "cluster_resource_group", + "type": "TypeString", + "description": "The resource group of the cluster (is it required?).", + "computed": true + }, + "cos_bucket_name": { + "name": "cos_bucket_name", + "type": "TypeString", + "description": "The COS bucket name used to store the logs.", + "computed": true + }, + "cos_bucket_region": { + "name": "cos_bucket_region", + "type": "TypeString", + "description": "The COS bucket region.", + "computed": true + }, + "cos_instance_name": { + "name": "cos_instance_name", + "type": "TypeString", + "description": "The COS instance name to store the agent logs.", + "computed": true + }, + "infra_type": { + "name": "infra_type", + "type": "TypeString", + "description": "Type of target agent infrastructure.", + "computed": true + } + } + }, { "name": "created_at", "type": "TypeString", - "description": "Action creation time.", + "description": "The agent creation date-time.", "computed": true }, { - "name": "updated_by", + "name": "system_state", + "type": "TypeList", + "description": "Computed state of the agent.", + "computed": true, + "elem": { + "status_code": { + "name": "status_code", + "type": "TypeString", + "description": "Agent Status.", + "computed": true + }, + "status_message": { + "name": "status_message", + "type": "TypeString", + "description": "The agent status message.", + "computed": true + } + } + }, + { + "name": "name", "type": "TypeString", - "description": "E-mail address of the user who updated an action.", + "description": "The name of the agent (must be unique, for an account).", "computed": true }, { "name": "description", "type": "TypeString", - "description": "Action description.", + "description": "Agent description.", "computed": true }, { - "name": "command_parameter", + "name": "agent_crn", "type": "TypeString", - "description": "Schematics job command parameter (playbook-name).", + "description": "The agent crn, obtained from the Schematics agent deployment configuration.", "computed": true }, { - "name": "bastion_credential", + "name": "updated_by", + "type": "TypeString", + "description": "Email address of user who updated the agent registration.", + "computed": true + }, + { + "name": "agent_kpi", "type": "TypeList", - "description": "User editable variable data \u0026 system generated reference to value.", + "description": "Schematics Agent key performance indicators.", + "computed": true, + "elem": { + "application_indicators": { + "name": "application_indicators", + "type": "TypeList", + "description": "Agent application key performance indicators.", + "computed": true, + "elem": { + "type": "TypeMap" + } + }, + "availability_indicator": { + "name": "availability_indicator", + "type": "TypeString", + "description": "Overall availability indicator reported by the agent.", + "computed": true + }, + "infra_indicators": { + "name": "infra_indicators", + "type": "TypeList", + "description": "Agent infrastructure key performance indicators.", + "computed": true, + "elem": { + "type": "TypeMap" + } + }, + "lifecycle_indicator": { + "name": "lifecycle_indicator", + "type": "TypeString", + "description": "Overall lifecycle indicator reported by the agents.", + "computed": true + }, + "percent_usage_indicator": { + "name": "percent_usage_indicator", + "type": "TypeString", + "description": "Percentage usage of the agent resources.", + "computed": true + } + } + }, + { + "name": "agent_id", + "type": "TypeString", + "description": "Agent ID to get the details of agent.", + "required": true + }, + { + "name": "agent_location", + "type": "TypeString", + "description": "The location where agent is deployed in the user environment.", + "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "The agent registration updation time.", + "computed": true + }, + { + "name": "recent_prs_job", + "type": "TypeList", + "description": "Run a pre-requisite scanner for deploying agent.", + "computed": true, + "elem": { + "agent_id": { + "name": "agent_id", + "type": "TypeString", + "description": "Id of the agent.", + "computed": true + }, + "agent_version": { + "name": "agent_version", + "type": "TypeString", + "description": "Agent version.", + "computed": true + }, + "job_id": { + "name": "job_id", + "type": "TypeString", + "description": "Job Id.", + "computed": true + }, + "log_url": { + "name": "log_url", + "type": "TypeString", + "description": "URL to the full pre-requisite scanner job logs.", + "computed": true + }, + "status_code": { + "name": "status_code", + "type": "TypeString", + "description": "Final result of the pre-requisite scanner job.", + "computed": true + }, + "status_message": { + "name": "status_message", + "type": "TypeString", + "description": "The outcome of the pre-requisite scanner job, in a formatted log string.", + "computed": true + }, + "updated_at": { + "name": "updated_at", + "type": "TypeString", + "description": "The agent prs job updation time.", + "computed": true + }, + "updated_by": { + "name": "updated_by", + "type": "TypeString", + "description": "Email address of user who ran the agent prs job.", + "computed": true + } + } + }, + { + "name": "creation_by", + "type": "TypeString", + "description": "The email address of an user who created the agent.", + "computed": true + }, + { + "name": "recent_deploy_job", + "type": "TypeList", + "description": "Post-installations checks for Agent health.", + "computed": true, + "elem": { + "agent_id": { + "name": "agent_id", + "type": "TypeString", + "description": "Id of the agent.", + "computed": true + }, + "agent_version": { + "name": "agent_version", + "type": "TypeString", + "description": "Agent version.", + "computed": true + }, + "is_redeployed": { + "name": "is_redeployed", + "type": "TypeBool", + "description": "True, when the same version of the agent was redeployed.", + "computed": true + }, + "job_id": { + "name": "job_id", + "type": "TypeString", + "description": "Job Id.", + "computed": true + }, + "log_url": { + "name": "log_url", + "type": "TypeString", + "description": "URL to the full agent deployment job logs.", + "computed": true + }, + "status_code": { + "name": "status_code", + "type": "TypeString", + "description": "Final result of the agent deployment job.", + "computed": true + }, + "status_message": { + "name": "status_message", + "type": "TypeString", + "description": "The outcome of the agent deployment job, in a formatted log string.", + "computed": true + }, + "updated_at": { + "name": "updated_at", + "type": "TypeString", + "description": "The agent deploy job updation time.", + "computed": true + }, + "updated_by": { + "name": "updated_by", + "type": "TypeString", + "description": "Email address of user who ran the agent deploy job.", + "computed": true + } + } + }, + { + "name": "tags", + "type": "TypeList", + "description": "Tags for the agent.", + "cloud_data_type": "tags", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "version", + "type": "TypeString", + "description": "Agent version.", + "computed": true + }, + { + "name": "agent_metadata", + "type": "TypeList", + "description": "The metadata of an agent.", + "computed": true, + "elem": { + "name": { + "name": "name", + "type": "TypeString", + "description": "Name of the metadata.", + "computed": true + }, + "value": { + "name": "value", + "type": "TypeList", + "description": "Value of the metadata name.", + "computed": true, + "elem": { + "type": "TypeString" + } + } + } + }, + { + "name": "agent_inputs", + "type": "TypeList", + "description": "Additional input variables for the agent.", "computed": true, "elem": { "link": { "name": "link", "type": "TypeString", - "description": "Reference link to the variable value By default the expression will point to self.value.", + "description": "The reference link to the variable value By default the expression points to `$self.value`.", "computed": true }, "metadata": { "name": "metadata", "type": "TypeList", - "description": "User editable metadata for the variables.", + "description": "An user editable metadata for the variables.", "computed": true, "elem": { "aliases": { "name": "aliases", "type": "TypeList", - "description": "List of aliases for the variable name.", + "description": "The list of aliases for the variable name.", "computed": true, "elem": { "type": "TypeString" } }, + "cloud_data_type": { + "name": "cloud_data_type", + "type": "TypeString", + "description": "Cloud data type of the variable. eg. resource_group_id, region, vpc_id.", + "computed": true + }, "default_value": { "name": "default_value", "type": "TypeString", - "description": "Default value for the variable, if the override value is not specified.", + "description": "Default value for the variable only if the override value is not specified.", "computed": true }, "description": { "name": "description", "type": "TypeString", - "description": "Description of the meta data.", + "description": "The description of the meta data.", "computed": true }, "group_by": { "name": "group_by", "type": "TypeString", - "description": "Display name of the group this variable belongs to.", + "description": "The display name of the group this variable belongs to.", "computed": true }, "hidden": { "name": "hidden", "type": "TypeBool", - "description": "If true, the variable will not be displayed on UI or CLI.", + "description": "If **true**, the variable is not displayed on UI or Command line.", "computed": true }, "immutable": { @@ -72207,40 +74573,46 @@ "description": "Is the variable readonly ?.", "computed": true }, + "link_status": { + "name": "link_status", + "type": "TypeString", + "description": "The status of the link.", + "computed": true + }, "matches": { "name": "matches", "type": "TypeString", - "description": "Regex for the variable value.", + "description": "The regex for the variable value.", "computed": true }, "max_length": { "name": "max_length", "type": "TypeInt", - "description": "Maximum length of the variable value. Applicable for string type.", + "description": "The maximum length of the variable value. Applicable for the string type.", "computed": true }, "max_value": { "name": "max_value", "type": "TypeInt", - "description": "Maximum value of the variable. Applicable for integer type.", + "description": "The maximum value of the variable. Applicable for the integer type.", "computed": true }, "min_length": { "name": "min_length", "type": "TypeInt", - "description": "Minimum length of the variable value. Applicable for string type.", + "description": "The minimum length of the variable value. Applicable for the string type.", "computed": true }, "min_value": { "name": "min_value", "type": "TypeInt", - "description": "Minimum value of the variable. Applicable for integer type.", + "description": "The minimum value of the variable. Applicable for the integer type.", "computed": true }, "options": { "name": "options", "type": "TypeList", - "description": "List of possible values for this variable. If type is integer or date, then the array of string will be converted to array of integers or date during runtime.", + "description": "The list of possible values for this variable. If type is **integer** or **date**, then the array of string is converted to array of integers or date during the runtime.", "computed": true, "elem": { "type": "TypeString" @@ -72249,7 +74621,13 @@ "position": { "name": "position", "type": "TypeInt", - "description": "Relative position of this variable in a list.", + "description": "The relative position of this variable in a list.", + "computed": true + }, + "required": { + "name": "required", + "type": "TypeBool", + "description": "If the variable required?.", "computed": true }, "secure": { @@ -72261,7 +74639,7 @@ "source": { "name": "source", "type": "TypeString", - "description": "Source of this meta-data.", + "description": "The source of this meta-data.", "computed": true }, "type": { @@ -72275,57 +74653,603 @@ "name": { "name": "name", "type": "TypeString", - "description": "Name of the variable.", + "description": "The name of the variable. For example, `name = \"inventory username\"`.", + "computed": true + }, + "use_default": { + "name": "use_default", + "type": "TypeBool", + "description": "True, will ignore the data in the value attribute, instead the data in metadata.default_value will be used.", "computed": true }, "value": { "name": "value", "type": "TypeString", - "description": "Value for the variable or reference to the value.", + "description": "The value for the variable or reference to the value. For example, `value = \"\u003cprovide your ssh_key_value with \n\u003e\"`. **Note** The SSH key should contain `\n` at the end of the key details in case of command line or API calls.", + "computed": true + } + } + }, + { + "name": "user_state", + "type": "TypeList", + "description": "User defined status of the agent.", + "computed": true, + "elem": { + "set_at": { + "name": "set_at", + "type": "TypeString", + "description": "When the User who set the state of the Object.", + "computed": true + }, + "set_by": { + "name": "set_by", + "type": "TypeString", + "description": "Name of the User who set the state of the Object.", + "computed": true + }, + "state": { + "name": "state", + "type": "TypeString", + "description": "User-defined states * `enable` Agent is enabled by the user. * `disable` Agent is disbaled by the user.", + "computed": true + } + } + }, + { + "name": "id", + "type": "TypeString", + "description": "The agent resource id.", + "computed": true + }, + { + "name": "recent_health_job", + "type": "TypeList", + "description": "Agent health check.", + "computed": true, + "elem": { + "agent_id": { + "name": "agent_id", + "type": "TypeString", + "description": "Id of the agent.", + "computed": true + }, + "agent_version": { + "name": "agent_version", + "type": "TypeString", + "description": "Agent version.", + "computed": true + }, + "job_id": { + "name": "job_id", + "type": "TypeString", + "description": "Job Id.", + "computed": true + }, + "log_url": { + "name": "log_url", + "type": "TypeString", + "description": "URL to the full health-check job logs.", + "computed": true + }, + "status_code": { + "name": "status_code", + "type": "TypeString", + "description": "Final result of the health-check job.", + "computed": true + }, + "status_message": { + "name": "status_message", + "type": "TypeString", + "description": "The outcome of the health-check job, in a formatted log string.", + "computed": true + }, + "updated_at": { + "name": "updated_at", + "type": "TypeString", + "description": "The agent health check job updation time.", + "computed": true + }, + "updated_by": { + "name": "updated_by", + "type": "TypeString", + "description": "Email address of user who ran the agent health check job.", + "computed": true + } + } + } + ], + "ibm_schematics_agent_deploy": [ + { + "name": "status_code", + "type": "TypeString", + "description": "Final result of the agent deployment job.", + "computed": true + }, + { + "name": "status_message", + "type": "TypeString", + "description": "The outcome of the agent deployment job, in a formatted log string.", + "computed": true + }, + { + "name": "log_url", + "type": "TypeString", + "description": "URL to the full agent deployment job logs.", + "computed": true + }, + { + "name": "agent_id", + "type": "TypeString", + "description": "Agent ID to get the details of agent.", + "required": true + }, + { + "name": "updated_by", + "type": "TypeString", + "description": "Email address of user who ran the agent deploy job.", + "computed": true + }, + { + "name": "is_redeployed", + "type": "TypeBool", + "description": "True, when the same version of the agent was redeployed.", + "computed": true + }, + { + "name": "agent_version", + "type": "TypeString", + "description": "Agent version.", + "computed": true + }, + { + "name": "job_id", + "type": "TypeString", + "description": "Job Id.", + "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "The agent deploy job updation time.", + "computed": true + } + ], + "ibm_schematics_agent_health": [ + { + "name": "status_message", + "type": "TypeString", + "description": "The outcome of the health-check job, in a formatted log string.", + "computed": true + }, + { + "name": "log_url", + "type": "TypeString", + "description": "URL to the full health-check job logs.", + "computed": true + }, + { + "name": "agent_id", + "type": "TypeString", + "description": "Agent ID to get the details of agent.", + "required": true + }, + { + "name": "job_id", + "type": "TypeString", + "description": "Job Id.", + "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "The agent health check job updation time.", + "computed": true + }, + { + "name": "updated_by", + "type": "TypeString", + "description": "Email address of user who ran the agent health check job.", + "computed": true + }, + { + "name": "agent_version", + "type": "TypeString", + "description": "Agent version.", + "computed": true + }, + { + "name": "status_code", + "type": "TypeString", + "description": "Final result of the health-check job.", + "computed": true + } + ], + "ibm_schematics_agent_prs": [ + { + "name": "job_id", + "type": "TypeString", + "description": "Job Id.", + "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "The agent prs job updation time.", + "computed": true + }, + { + "name": "updated_by", + "type": "TypeString", + "description": "Email address of user who ran the agent prs job.", + "computed": true + }, + { + "name": "agent_version", + "type": "TypeString", + "description": "Agent version.", + "computed": true + }, + { + "name": "status_code", + "type": "TypeString", + "description": "Final result of the pre-requisite scanner job.", + "computed": true + }, + { + "name": "status_message", + "type": "TypeString", + "description": "The outcome of the pre-requisite scanner job, in a formatted log string.", + "computed": true + }, + { + "name": "log_url", + "type": "TypeString", + "description": "URL to the full pre-requisite scanner job logs.", + "computed": true + }, + { + "name": "agent_id", + "type": "TypeString", + "description": "Agent ID to get the details of agent.", + "required": true + } + ], + "ibm_schematics_agents": [ + { + "name": "name", + "type": "TypeString", + "description": "The name of the agent (must be unique, for an account).", + "optional": true + }, + { + "name": "total_count", + "type": "TypeInt", + "description": "The total number of records.", + "computed": true + }, + { + "name": "limit", + "type": "TypeInt", + "description": "The number of records returned.", + "computed": true + }, + { + "name": "offset", + "type": "TypeInt", + "description": "The skipped number of records.", + "computed": true + }, + { + "name": "agents", + "type": "TypeList", + "description": "The list of agents in the account.", + "computed": true, + "elem": { + "agent_crn": { + "name": "agent_crn", + "type": "TypeString", + "description": "The Agent crn, obtained from the Schematics Agent deployment configuration.", + "computed": true + }, + "agent_location": { + "name": "agent_location", + "type": "TypeString", + "description": "The location where agent is deployed in the user environment.", + "computed": true + }, + "connection_state": { + "name": "connection_state", + "type": "TypeList", + "description": "Connection status of the agent.", + "computed": true, + "elem": { + "checked_at": { + "name": "checked_at", + "type": "TypeString", + "description": "When the connection state is modified.", + "computed": true + }, + "state": { + "name": "state", + "type": "TypeString", + "description": "Agent Connection Status * `Connected` When Schematics is able to connect to the agent. * `Disconnected` When Schematics is able not connect to the agent.", + "computed": true + } + } + }, + "description": { + "name": "description", + "type": "TypeString", + "description": "Agent description.", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "The Agent registration id.", + "computed": true + }, + "location": { + "name": "location", + "type": "TypeString", + "description": "List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The name of the agent (must be unique, for an account).", + "computed": true + }, + "profile_id": { + "name": "profile_id", + "type": "TypeString", + "description": "The IAM trusted profile id, used by the Agent instance.", + "computed": true + }, + "registered_at": { + "name": "registered_at", + "type": "TypeString", + "description": "The Agent registration date-time.", + "computed": true + }, + "registered_by": { + "name": "registered_by", + "type": "TypeString", + "description": "The email address of an user who registered the Agent.", + "computed": true + }, + "resource_group": { + "name": "resource_group", + "type": "TypeString", + "description": "The resource-group name for the agent. By default, Agent will be registered in Default Resource Group.", + "computed": true + }, + "system_state": { + "name": "system_state", + "type": "TypeList", + "description": "Computed state of the agent.", + "computed": true, + "elem": { + "message": { + "name": "message", + "type": "TypeString", + "description": "The Agent status message.", + "computed": true + }, + "state": { + "name": "state", + "type": "TypeString", + "description": "Agent Status.", + "computed": true + } + } + }, + "tags": { + "name": "tags", + "type": "TypeList", + "description": "Tags for the agent.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "updated_at": { + "name": "updated_at", + "type": "TypeString", + "description": "The Agent registration updation time.", + "computed": true + }, + "updated_by": { + "name": "updated_by", + "type": "TypeString", + "description": "Email address of user who updated the Agent registration.", "computed": true + }, + "user_state": { + "name": "user_state", + "type": "TypeList", + "description": "User defined status of the agent.", + "computed": true, + "elem": { + "set_at": { + "name": "set_at", + "type": "TypeString", + "description": "When the User who set the state of the Object.", + "computed": true + }, + "set_by": { + "name": "set_by", + "type": "TypeString", + "description": "Name of the User who set the state of the Object.", + "computed": true + }, + "state": { + "name": "state", + "type": "TypeString", + "description": "User-defined states * `enable` Agent is enabled by the user. * `disable` Agent is disbaled by the user.", + "computed": true + } + } } } + } + ], + "ibm_schematics_inventory": [ + { + "name": "id", + "type": "TypeString", + "description": "Inventory id.", + "computed": true + }, + { + "name": "description", + "type": "TypeString", + "description": "The description of your Inventory. The description can be up to 2048 characters long in size.", + "computed": true + }, + { + "name": "resource_group", + "type": "TypeString", + "description": "Resource-group name for the Inventory definition. By default, Inventory will be created in Default Resource Group.", + "cloud_data_type": "resource_group", + "computed": true + }, + { + "name": "created_at", + "type": "TypeString", + "description": "Inventory creation time.", + "computed": true + }, + { + "name": "resource_queries", + "type": "TypeList", + "description": "Input resource queries that is used to dynamically generate the inventory of host and host group for the playbook.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "inventory_id", + "type": "TypeString", + "description": "Resource Inventory Id. Use `GET /v2/inventories` API to look up the Resource Inventory definition Ids in your IBM Cloud account.", + "required": true + }, + { + "name": "location", + "type": "TypeString", + "description": "List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics.", + "cloud_data_type": "region", + "optional": true, + "computed": true + }, + { + "name": "created_by", + "type": "TypeString", + "description": "Email address of user who created the Inventory.", + "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Inventory updation time.", + "computed": true + }, + { + "name": "updated_by", + "type": "TypeString", + "description": "Email address of user who updated the Inventory.", + "computed": true + }, + { + "name": "inventories_ini", + "type": "TypeString", + "description": "Input inventory of host and host group for the playbook, in the .ini file format.", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The unique name of your Inventory. The name can be up to 128 characters long and can include alphanumeric characters, spaces, dashes, and underscores.", + "computed": true + } + ], + "ibm_schematics_job": [ + { + "name": "tags", + "type": "TypeList", + "description": "User defined tags, while running the job.", + "cloud_data_type": "tags", + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "account", + "name": "id", "type": "TypeString", - "description": "Action account ID.", + "description": "Job ID.", "computed": true }, { - "name": "source_updated_by", + "name": "name", "type": "TypeString", - "description": "E-mail address of user who updated the action playbook source.", + "description": "Job name, uniquely derived from the related Workspace or Action.", "computed": true }, { - "name": "created_by", + "name": "location", "type": "TypeString", - "description": "E-mail address of the user who created an action.", + "description": "List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics.", + "cloud_data_type": "region", + "optional": true, "computed": true }, { - "name": "sys_lock", + "name": "submitted_by", + "type": "TypeString", + "description": "Email address of user who submitted the job.", + "computed": true + }, + { + "name": "log_store_url", + "type": "TypeString", + "description": "Job log store URL.", + "computed": true + }, + { + "name": "command_options", "type": "TypeList", - "description": "System lock status.", + "description": "Command line options for the command.", "computed": true, "elem": { - "sys_locked": { - "name": "sys_locked", - "type": "TypeBool", - "description": "Is the automation locked by a Schematic job ?.", - "computed": true - }, - "sys_locked_at": { - "name": "sys_locked_at", + "type": "TypeString" + } + }, + { + "name": "duration", + "type": "TypeString", + "description": "Duration of job execution; example 40 sec.", + "computed": true + }, + { + "name": "bastion", + "type": "TypeList", + "description": "Describes a bastion resource.", + "computed": true, + "elem": { + "host": { + "name": "host", "type": "TypeString", - "description": "When the User performed the job that lead to locking of the automation ?.", + "description": "Reference to the Inventory resource definition.", "computed": true }, - "sys_locked_by": { - "name": "sys_locked_by", + "name": { + "name": "name", "type": "TypeString", - "description": "Name of the User who performed the job, that lead to the locking of the automation.", + "description": "Bastion Name(Unique).", "computed": true } } @@ -72333,273 +75257,358 @@ { "name": "resource_group", "type": "TypeString", - "description": "Resource-group name for an action. By default, action is created in default resource group.", + "description": "Resource-group name derived from the related Workspace or Action.", "cloud_data_type": "resource_group", "computed": true }, { - "name": "credentials", + "name": "updated_at", + "type": "TypeString", + "description": "Job status updation timestamp.", + "computed": true + }, + { + "name": "description", + "type": "TypeString", + "description": "The description of your job is derived from the related action or workspace. The description can be up to 2048 characters long in size.", + "computed": true + }, + { + "name": "end_at", + "type": "TypeString", + "description": "Job end time.", + "computed": true + }, + { + "name": "log_summary", "type": "TypeList", - "description": "credentials of the Action.", + "description": "Job log summary record.", "computed": true, "elem": { - "link": { - "name": "link", - "type": "TypeString", - "description": "Reference link to the variable value By default the expression will point to self.value.", - "computed": true - }, - "metadata": { - "name": "metadata", + "action_job": { + "name": "action_job", "type": "TypeList", - "description": "User editable metadata for the variables.", + "description": "Flow Job log summary.", "computed": true, "elem": { - "aliases": { - "name": "aliases", + "play_count": { + "name": "play_count", + "type": "TypeFloat", + "description": "number of plays in playbook.", + "computed": true + }, + "recap": { + "name": "recap", "type": "TypeList", - "description": "List of aliases for the variable name.", + "description": "Recap records.", "computed": true, "elem": { - "type": "TypeString" + "changed": { + "name": "changed", + "type": "TypeFloat", + "description": "Number of changed.", + "computed": true + }, + "failed": { + "name": "failed", + "type": "TypeFloat", + "description": "Number of failed.", + "computed": true + }, + "ok": { + "name": "ok", + "type": "TypeFloat", + "description": "Number of OK.", + "computed": true + }, + "skipped": { + "name": "skipped", + "type": "TypeFloat", + "description": "Number of skipped.", + "computed": true + }, + "target": { + "name": "target", + "type": "TypeList", + "description": "List of target or host name.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "unreachable": { + "name": "unreachable", + "type": "TypeFloat", + "description": "Number of unreachable.", + "computed": true + } } }, - "default_value": { - "name": "default_value", - "type": "TypeString", - "description": "Default value for the variable, if the override value is not specified.", - "computed": true - }, - "description": { - "name": "description", - "type": "TypeString", - "description": "Description of the meta data.", - "computed": true - }, - "group_by": { - "name": "group_by", - "type": "TypeString", - "description": "Display name of the group this variable belongs to.", - "computed": true - }, - "hidden": { - "name": "hidden", - "type": "TypeBool", - "description": "If true, the variable will not be displayed on UI or CLI.", + "target_count": { + "name": "target_count", + "type": "TypeFloat", + "description": "number of targets or hosts.", "computed": true }, - "immutable": { - "name": "immutable", - "type": "TypeBool", - "description": "Is the variable readonly ?.", + "task_count": { + "name": "task_count", + "type": "TypeFloat", + "description": "number of tasks in playbook.", "computed": true + } + } + }, + "elapsed_time": { + "name": "elapsed_time", + "type": "TypeFloat", + "description": "Job log elapsed time (log_analyzed_till - log_start_at).", + "computed": true + }, + "flow_job": { + "name": "flow_job", + "type": "TypeList", + "description": "Flow Job log summary.", + "computed": true, + "elem": { + "workitems": { + "name": "workitems", + "type": "TypeList", + "computed": true, + "elem": { + "job_id": { + "name": "job_id", + "type": "TypeString", + "description": "workspace JOB ID.", + "computed": true + }, + "log_url": { + "name": "log_url", + "type": "TypeString", + "description": "Log url for job.", + "computed": true + }, + "resources_add": { + "name": "resources_add", + "type": "TypeFloat", + "description": "Number of resources add.", + "computed": true + }, + "resources_destroy": { + "name": "resources_destroy", + "type": "TypeFloat", + "description": "Number of resources destroy.", + "computed": true + }, + "resources_modify": { + "name": "resources_modify", + "type": "TypeFloat", + "description": "Number of resources modify.", + "computed": true + }, + "workspace_id": { + "name": "workspace_id", + "type": "TypeString", + "description": "workspace ID.", + "computed": true + } + } }, - "position": { - "name": "position", - "type": "TypeInt", - "description": "Relative position of this variable in a list.", + "workitems_completed": { + "name": "workitems_completed", + "type": "TypeFloat", + "description": "Number of workitems completed successfully.", "computed": true }, - "source": { - "name": "source", - "type": "TypeString", - "description": "Source of this meta-data.", + "workitems_failed": { + "name": "workitems_failed", + "type": "TypeFloat", + "description": "Number of workitems failed.", "computed": true }, - "type": { - "name": "type", - "type": "TypeString", - "description": "Type of the variable.", + "workitems_pending": { + "name": "workitems_pending", + "type": "TypeFloat", + "description": "Number of workitems pending in the flow.", "computed": true } } }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Name of the variable.", - "computed": true - }, - "value": { - "name": "value", - "type": "TypeString", - "description": "Value for the variable or reference to the value.", - "computed": true - } - } - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Action updation time.", - "computed": true - }, - { - "name": "state", - "type": "TypeList", - "description": "Computed state of the Action.", - "computed": true, - "elem": { - "status_code": { - "name": "status_code", + "job_id": { + "name": "job_id", "type": "TypeString", - "description": "Status of automation (workspace or action).", + "description": "Workspace Id.", "computed": true }, - "status_job_id": { - "name": "status_job_id", + "job_type": { + "name": "job_type", "type": "TypeString", - "description": "Job id reference for this status.", + "description": "Type of Job.", "computed": true }, - "status_message": { - "name": "status_message", - "type": "TypeString", - "description": "Automation status message - to be displayed along with the status_code.", - "computed": true - } - } - }, - { - "name": "action_inputs", - "type": "TypeList", - "description": "Input variables for the Action.", - "computed": true, - "elem": { - "link": { - "name": "link", + "log_analyzed_till": { + "name": "log_analyzed_till", "type": "TypeString", - "description": "Reference link to the variable value By default the expression will point to self.value.", + "description": "Job log update timestamp.", "computed": true }, - "metadata": { - "name": "metadata", + "log_errors": { + "name": "log_errors", "type": "TypeList", - "description": "User editable metadata for the variables.", + "description": "Job log errors.", "computed": true, "elem": { - "aliases": { - "name": "aliases", - "type": "TypeList", - "description": "List of aliases for the variable name.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - "default_value": { - "name": "default_value", + "error_code": { + "name": "error_code", "type": "TypeString", - "description": "Default value for the variable, if the override value is not specified.", + "description": "Error code in the Log.", "computed": true }, - "description": { - "name": "description", - "type": "TypeString", - "description": "Description of the meta data.", + "error_count": { + "name": "error_count", + "type": "TypeFloat", + "description": "Number of occurrence.", "computed": true }, - "group_by": { - "name": "group_by", + "error_msg": { + "name": "error_msg", "type": "TypeString", - "description": "Display name of the group this variable belongs to.", + "description": "Summary error message in the log.", "computed": true - }, - "hidden": { - "name": "hidden", - "type": "TypeBool", - "description": "If true, the variable will not be displayed on UI or CLI.", + } + } + }, + "log_start_at": { + "name": "log_start_at", + "type": "TypeString", + "description": "Job log start timestamp.", + "computed": true + }, + "repo_download_job": { + "name": "repo_download_job", + "type": "TypeList", + "description": "Repo download Job log summary.", + "computed": true, + "elem": { + "detected_filetype": { + "name": "detected_filetype", + "type": "TypeString", + "description": "Detected template or data file type.", "computed": true }, - "immutable": { - "name": "immutable", - "type": "TypeBool", - "description": "Is the variable readonly ?.", + "inputs_count": { + "name": "inputs_count", + "type": "TypeString", + "description": "Number of inputs detected.", "computed": true }, - "matches": { - "name": "matches", + "outputs_count": { + "name": "outputs_count", "type": "TypeString", - "description": "Regex for the variable value.", + "description": "Number of outputs detected.", "computed": true }, - "max_length": { - "name": "max_length", - "type": "TypeInt", - "description": "Maximum length of the variable value. Applicable for string type.", + "quarantined_file_count": { + "name": "quarantined_file_count", + "type": "TypeFloat", + "description": "Number of files quarantined.", "computed": true }, - "max_value": { - "name": "max_value", - "type": "TypeInt", - "description": "Maximum value of the variable. Applicable for integer type.", + "scanned_file_count": { + "name": "scanned_file_count", + "type": "TypeFloat", + "description": "Number of files scanned.", "computed": true - }, - "min_length": { - "name": "min_length", - "type": "TypeInt", - "description": "Minimum length of the variable value. Applicable for string type.", + } + } + }, + "system_job": { + "name": "system_job", + "type": "TypeList", + "description": "System Job log summary.", + "computed": true, + "elem": { + "failed": { + "name": "failed", + "type": "TypeFloat", + "description": "Number of failed.", "computed": true }, - "min_value": { - "name": "min_value", - "type": "TypeInt", - "description": "Minimum value of the variable. Applicable for integer type.", + "success": { + "name": "success", + "type": "TypeFloat", + "description": "Number of passed.", "computed": true }, - "options": { - "name": "options", - "type": "TypeList", - "description": "List of possible values for this variable. If type is integer or date, then the array of string will be converted to array of integers or date during runtime.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - "position": { - "name": "position", - "type": "TypeInt", - "description": "Relative position of this variable in a list.", + "target_count": { + "name": "target_count", + "type": "TypeFloat", + "description": "number of targets or hosts.", "computed": true - }, - "secure": { - "name": "secure", - "type": "TypeBool", - "description": "Is the variable secure or sensitive ?.", + } + } + }, + "workspace_job": { + "name": "workspace_job", + "type": "TypeList", + "description": "Workspace Job log summary.", + "computed": true, + "elem": { + "resources_add": { + "name": "resources_add", + "type": "TypeFloat", + "description": "Number of resources add.", "computed": true }, - "source": { - "name": "source", - "type": "TypeString", - "description": "Source of this meta-data.", + "resources_destroy": { + "name": "resources_destroy", + "type": "TypeFloat", + "description": "Number of resources destroy.", "computed": true }, - "type": { - "name": "type", - "type": "TypeString", - "description": "Type of the variable.", + "resources_modify": { + "name": "resources_modify", + "type": "TypeFloat", + "description": "Number of resources modify.", "computed": true } } - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Name of the variable.", - "computed": true - }, - "value": { - "name": "value", - "type": "TypeString", - "description": "Value for the variable or reference to the value.", - "computed": true } } }, { - "name": "action_outputs", + "name": "results_url", + "type": "TypeString", + "description": "Job results store URL.", + "computed": true + }, + { + "name": "command_name", + "type": "TypeString", + "description": "Schematics job command name.", + "computed": true + }, + { + "name": "state_store_url", + "type": "TypeString", + "description": "Job state store URL.", + "computed": true + }, + { + "name": "start_at", + "type": "TypeString", + "description": "Job start time.", + "computed": true + }, + { + "name": "command_parameter", + "type": "TypeString", + "description": "Schematics job command parameter (playbook-name).", + "computed": true + }, + { + "name": "job_env_settings", "type": "TypeList", - "description": "Output variables for the Action.", + "description": "Environment variables used by the Job while performing Action or Workspace.", "computed": true, "elem": { "link": { @@ -72732,270 +75741,6 @@ } } }, - { - "name": "crn", - "type": "TypeString", - "description": "Action Cloud Resource Name.", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "source", - "type": "TypeList", - "description": "Source of templates, playbooks, or controls.", - "computed": true, - "elem": { - "catalog": { - "name": "catalog", - "type": "TypeList", - "description": "Connection details to IBM Cloud Catalog source.", - "computed": true, - "elem": { - "catalog_name": { - "name": "catalog_name", - "type": "TypeString", - "description": "name of the private catalog.", - "computed": true - }, - "offering_id": { - "name": "offering_id", - "type": "TypeString", - "description": "Id of the offering the IBM Catalog.", - "computed": true - }, - "offering_kind": { - "name": "offering_kind", - "type": "TypeString", - "description": "Type of the offering, in the IBM Catalog.", - "computed": true - }, - "offering_name": { - "name": "offering_name", - "type": "TypeString", - "description": "Name of the offering in the IBM Catalog.", - "computed": true - }, - "offering_repo_url": { - "name": "offering_repo_url", - "type": "TypeString", - "description": "Repo Url of the offering, in the IBM Catalog.", - "computed": true - }, - "offering_version": { - "name": "offering_version", - "type": "TypeString", - "description": "Version string of the offering in the IBM Catalog.", - "computed": true - }, - "offering_version_id": { - "name": "offering_version_id", - "type": "TypeString", - "description": "Id of the offering version the IBM Catalog.", - "computed": true - } - } - }, - "git": { - "name": "git", - "type": "TypeList", - "description": "Connection details to Git source.", - "computed": true, - "elem": { - "computed_git_repo_url": { - "name": "computed_git_repo_url", - "type": "TypeString", - "description": "The Complete URL which is computed by git_repo_url, git_repo_folder and branch.", - "computed": true - }, - "git_branch": { - "name": "git_branch", - "type": "TypeString", - "description": "Name of the branch, used to fetch the Git Repo.", - "computed": true - }, - "git_release": { - "name": "git_release", - "type": "TypeString", - "description": "Name of the release tag, used to fetch the Git Repo.", - "computed": true - }, - "git_repo_folder": { - "name": "git_repo_folder", - "type": "TypeString", - "description": "Name of the folder in the Git Repo, that contains the template.", - "computed": true - }, - "git_repo_url": { - "name": "git_repo_url", - "type": "TypeString", - "description": "URL to the GIT Repo that can be used to clone the template.", - "computed": true - }, - "git_token": { - "name": "git_token", - "type": "TypeString", - "description": "Personal Access Token to connect to Git URLs.", - "computed": true - } - } - }, - "source_type": { - "name": "source_type", - "type": "TypeString", - "description": "Type of source for the Template.", - "computed": true - } - } - }, - { - "name": "bastion", - "type": "TypeList", - "description": "Describes a bastion resource.", - "computed": true, - "elem": { - "host": { - "name": "host", - "type": "TypeString", - "description": "Reference to the Inventory resource definition.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Bastion Name(Unique).", - "computed": true - } - } - }, - { - "name": "targets_ini", - "type": "TypeString", - "description": "Inventory of host and host group for the playbook in `INI` file format. For example, `\"targets_ini\": \"[webserverhost] 172.22.192.6 [dbhost] 172.22.192.5\"`. For more information, about an inventory host group syntax, see [Inventory host groups](https://cloud.ibm.com/docs/schematics?topic=schematics-schematics-cli-reference#schematics-inventory-host-grps).", - "computed": true - }, - { - "name": "source_updated_at", - "type": "TypeString", - "description": "The action playbook updation time.", - "computed": true - }, - { - "name": "playbook_names", - "type": "TypeList", - "description": "Playbook names retrieved from the respository.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "location", - "type": "TypeString", - "description": "List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics.", - "cloud_data_type": "region", - "optional": true, - "computed": true - }, - { - "name": "inventory", - "type": "TypeString", - "description": "Target inventory record ID, used by the action or ansible playbook.", - "computed": true - }, - { - "name": "id", - "type": "TypeString", - "description": "Action ID.", - "computed": true - } - ], - "ibm_schematics_inventory": [ - { - "name": "updated_at", - "type": "TypeString", - "description": "Inventory updation time.", - "computed": true - }, - { - "name": "resource_queries", - "type": "TypeList", - "description": "Input resource queries that is used to dynamically generate the inventory of host and host group for the playbook.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "inventory_id", - "type": "TypeString", - "description": "Resource Inventory Id. Use `GET /v2/inventories` API to look up the Resource Inventory definition Ids in your IBM Cloud account.", - "required": true - }, - { - "name": "description", - "type": "TypeString", - "description": "The description of your Inventory. The description can be up to 2048 characters long in size.", - "computed": true - }, - { - "name": "resource_group", - "type": "TypeString", - "description": "Resource-group name for the Inventory definition. By default, Inventory will be created in Default Resource Group.", - "cloud_data_type": "resource_group", - "computed": true - }, - { - "name": "created_by", - "type": "TypeString", - "description": "Email address of user who created the Inventory.", - "computed": true - }, - { - "name": "updated_by", - "type": "TypeString", - "description": "Email address of user who updated the Inventory.", - "computed": true - }, - { - "name": "inventories_ini", - "type": "TypeString", - "description": "Input inventory of host and host group for the playbook, in the .ini file format.", - "computed": true - }, - { - "name": "name", - "type": "TypeString", - "description": "The unique name of your Inventory. The name can be up to 128 characters long and can include alphanumeric characters, spaces, dashes, and underscores.", - "computed": true - }, - { - "name": "id", - "type": "TypeString", - "description": "Inventory id.", - "computed": true - }, - { - "name": "location", - "type": "TypeString", - "description": "List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics.", - "cloud_data_type": "region", - "optional": true, - "computed": true - }, - { - "name": "created_at", - "type": "TypeString", - "description": "Inventory creation time.", - "computed": true - } - ], - "ibm_schematics_job": [ - { - "name": "command_object", - "type": "TypeString", - "description": "Name of the Schematics automation resource.", - "computed": true - }, { "name": "status", "type": "TypeList", @@ -73359,58 +76104,9 @@ } }, { - "name": "command_name", - "type": "TypeString", - "description": "Schematics job command name.", - "computed": true - }, - { - "name": "name", - "type": "TypeString", - "description": "Job name, uniquely derived from the related Workspace or Action.", - "computed": true - }, - { - "name": "submitted_by", - "type": "TypeString", - "description": "Email address of user who submitted the job.", - "computed": true - }, - { - "name": "command_parameter", - "type": "TypeString", - "description": "Schematics job command parameter (playbook-name).", - "computed": true - }, - { - "name": "id", - "type": "TypeString", - "description": "Job ID.", - "computed": true - }, - { - "name": "description", - "type": "TypeString", - "description": "The description of your job is derived from the related action or workspace. The description can be up to 2048 characters long in size.", - "computed": true - }, - { - "name": "start_at", - "type": "TypeString", - "description": "Job start time.", - "computed": true - }, - { - "name": "resource_group", - "type": "TypeString", - "description": "Resource-group name derived from the related Workspace or Action.", - "cloud_data_type": "resource_group", - "computed": true - }, - { - "name": "duration", + "name": "command_object", "type": "TypeString", - "description": "Duration of job execution; example 40 sec.", + "description": "Name of the Schematics automation resource.", "computed": true }, { @@ -73419,166 +76115,6 @@ "description": "Job command object id (workspace-id, action-id).", "computed": true }, - { - "name": "job_env_settings", - "type": "TypeList", - "description": "Environment variables used by the Job while performing Action or Workspace.", - "computed": true, - "elem": { - "link": { - "name": "link", - "type": "TypeString", - "description": "Reference link to the variable value By default the expression will point to self.value.", - "computed": true - }, - "metadata": { - "name": "metadata", - "type": "TypeList", - "description": "User editable metadata for the variables.", - "computed": true, - "elem": { - "aliases": { - "name": "aliases", - "type": "TypeList", - "description": "List of aliases for the variable name.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - "default_value": { - "name": "default_value", - "type": "TypeString", - "description": "Default value for the variable, if the override value is not specified.", - "computed": true - }, - "description": { - "name": "description", - "type": "TypeString", - "description": "Description of the meta data.", - "computed": true - }, - "group_by": { - "name": "group_by", - "type": "TypeString", - "description": "Display name of the group this variable belongs to.", - "computed": true - }, - "hidden": { - "name": "hidden", - "type": "TypeBool", - "description": "If true, the variable will not be displayed on UI or CLI.", - "computed": true - }, - "immutable": { - "name": "immutable", - "type": "TypeBool", - "description": "Is the variable readonly ?.", - "computed": true - }, - "matches": { - "name": "matches", - "type": "TypeString", - "description": "Regex for the variable value.", - "computed": true - }, - "max_length": { - "name": "max_length", - "type": "TypeInt", - "description": "Maximum length of the variable value. Applicable for string type.", - "computed": true - }, - "max_value": { - "name": "max_value", - "type": "TypeInt", - "description": "Maximum value of the variable. Applicable for integer type.", - "computed": true - }, - "min_length": { - "name": "min_length", - "type": "TypeInt", - "description": "Minimum length of the variable value. Applicable for string type.", - "computed": true - }, - "min_value": { - "name": "min_value", - "type": "TypeInt", - "description": "Minimum value of the variable. Applicable for integer type.", - "computed": true - }, - "options": { - "name": "options", - "type": "TypeList", - "description": "List of possible values for this variable. If type is integer or date, then the array of string will be converted to array of integers or date during runtime.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - "position": { - "name": "position", - "type": "TypeInt", - "description": "Relative position of this variable in a list.", - "computed": true - }, - "secure": { - "name": "secure", - "type": "TypeBool", - "description": "Is the variable secure or sensitive ?.", - "computed": true - }, - "source": { - "name": "source", - "type": "TypeString", - "description": "Source of this meta-data.", - "computed": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "Type of the variable.", - "computed": true - } - } - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Name of the variable.", - "computed": true - }, - "value": { - "name": "value", - "type": "TypeString", - "description": "Value for the variable or reference to the value.", - "computed": true - } - } - }, - { - "name": "submitted_at", - "type": "TypeString", - "description": "Job submission time.", - "computed": true - }, - { - "name": "log_store_url", - "type": "TypeString", - "description": "Job log store URL.", - "computed": true - }, - { - "name": "results_url", - "type": "TypeString", - "description": "Job results store URL.", - "computed": true - }, - { - "name": "job_id", - "type": "TypeString", - "description": "Job Id. Use `GET /v2/jobs` API to look up the Job Ids in your IBM Cloud account.", - "required": true - }, { "name": "job_inputs", "type": "TypeList", @@ -73716,11 +76252,9 @@ } }, { - "name": "location", + "name": "submitted_at", "type": "TypeString", - "description": "List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics.", - "cloud_data_type": "region", - "optional": true, + "description": "Job submission time.", "computed": true }, { @@ -75782,314 +78316,395 @@ } }, { - "name": "log_summary", + "name": "job_id", + "type": "TypeString", + "description": "Job Id. Use `GET /v2/jobs` API to look up the Job Ids in your IBM Cloud account.", + "required": true + } + ], + "ibm_schematics_output": [ + { + "name": "workspace_id", + "type": "TypeString", + "description": "The ID of the workspace for which you want to retrieve output values. To find the workspace ID, use the `GET /workspaces` API.", + "required": true + }, + { + "name": "location", + "type": "TypeString", + "description": "The Region of the workspace.", + "cloud_data_type": "region", + "optional": true + }, + { + "name": "template_id", + "type": "TypeString", + "description": "The id of template", + "required": true + }, + { + "name": "output_values", + "type": "TypeMap", + "computed": true + }, + { + "name": "output_json", + "type": "TypeString", + "description": "The json output in string", + "optional": true + }, + { + "name": "resource_controller_url", + "type": "TypeString", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this Workspace", + "computed": true + } + ], + "ibm_schematics_policies": [ + { + "name": "policies", "type": "TypeList", - "description": "Job log summary record.", + "description": "The list of Schematics policies.", "computed": true, "elem": { - "action_job": { - "name": "action_job", - "type": "TypeList", - "description": "Flow Job log summary.", - "computed": true, - "elem": { - "play_count": { - "name": "play_count", - "type": "TypeFloat", - "description": "number of plays in playbook.", - "computed": true - }, - "recap": { - "name": "recap", - "type": "TypeList", - "description": "Recap records.", - "computed": true, - "elem": { - "changed": { - "name": "changed", - "type": "TypeFloat", - "description": "Number of changed.", - "computed": true - }, - "failed": { - "name": "failed", - "type": "TypeFloat", - "description": "Number of failed.", - "computed": true - }, - "ok": { - "name": "ok", - "type": "TypeFloat", - "description": "Number of OK.", - "computed": true - }, - "skipped": { - "name": "skipped", - "type": "TypeFloat", - "description": "Number of skipped.", - "computed": true - }, - "target": { - "name": "target", - "type": "TypeList", - "description": "List of target or host name.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - "unreachable": { - "name": "unreachable", - "type": "TypeFloat", - "description": "Number of unreachable.", - "computed": true - } - } - }, - "target_count": { - "name": "target_count", - "type": "TypeFloat", - "description": "number of targets or hosts.", - "computed": true - }, - "task_count": { - "name": "task_count", - "type": "TypeFloat", - "description": "number of tasks in playbook.", - "computed": true - } - } + "account": { + "name": "account", + "type": "TypeString", + "description": "The Account id.", + "computed": true }, - "elapsed_time": { - "name": "elapsed_time", - "type": "TypeFloat", - "description": "Job log elapsed time (log_analyzed_till - log_start_at).", + "created_at": { + "name": "created_at", + "type": "TypeString", + "description": "The policy creation time.", "computed": true }, - "flow_job": { - "name": "flow_job", - "type": "TypeList", - "description": "Flow Job log summary.", - "computed": true, - "elem": { - "workitems": { - "name": "workitems", - "type": "TypeList", - "computed": true, - "elem": { - "job_id": { - "name": "job_id", - "type": "TypeString", - "description": "workspace JOB ID.", - "computed": true - }, - "log_url": { - "name": "log_url", - "type": "TypeString", - "description": "Log url for job.", - "computed": true - }, - "resources_add": { - "name": "resources_add", - "type": "TypeFloat", - "description": "Number of resources add.", - "computed": true - }, - "resources_destroy": { - "name": "resources_destroy", - "type": "TypeFloat", - "description": "Number of resources destroy.", - "computed": true - }, - "resources_modify": { - "name": "resources_modify", - "type": "TypeFloat", - "description": "Number of resources modify.", - "computed": true - }, - "workspace_id": { - "name": "workspace_id", - "type": "TypeString", - "description": "workspace ID.", - "computed": true - } - } - }, - "workitems_completed": { - "name": "workitems_completed", - "type": "TypeFloat", - "description": "Number of workitems completed successfully.", - "computed": true - }, - "workitems_failed": { - "name": "workitems_failed", - "type": "TypeFloat", - "description": "Number of workitems failed.", - "computed": true - }, - "workitems_pending": { - "name": "workitems_pending", - "type": "TypeFloat", - "description": "Number of workitems pending in the flow.", - "computed": true - } - } + "created_by": { + "name": "created_by", + "type": "TypeString", + "description": "The user who created the Policy.", + "computed": true }, - "job_id": { - "name": "job_id", + "crn": { + "name": "crn", "type": "TypeString", - "description": "Workspace Id.", + "description": "The policy CRN.", "computed": true }, - "job_type": { - "name": "job_type", + "description": { + "name": "description", "type": "TypeString", - "description": "Type of Job.", + "description": "The description of Schematics customization policy.", "computed": true }, - "log_analyzed_till": { - "name": "log_analyzed_till", + "id": { + "name": "id", "type": "TypeString", - "description": "Job log update timestamp.", + "description": "The system generated Policy Id.", "computed": true }, - "log_errors": { - "name": "log_errors", + "location": { + "name": "location", + "type": "TypeString", + "description": "List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The name of Schematics customization policy.", + "computed": true + }, + "policy_kind": { + "name": "policy_kind", + "type": "TypeString", + "description": "Policy kind or categories for managing and deriving policy decision * `agent_assignment_policy` Agent assignment policy for job execution.", + "computed": true + }, + "resource_group": { + "name": "resource_group", + "type": "TypeString", + "description": "Resource-group name for the Policy. By default, Policy will be created in Default Resource Group.", + "computed": true + }, + "state": { + "name": "state", "type": "TypeList", - "description": "Job log errors.", + "description": "User defined status of the Schematics object.", "computed": true, "elem": { - "error_code": { - "name": "error_code", + "set_at": { + "name": "set_at", "type": "TypeString", - "description": "Error code in the Log.", + "description": "When the User who set the state of the Object.", "computed": true }, - "error_count": { - "name": "error_count", - "type": "TypeFloat", - "description": "Number of occurrence.", + "set_by": { + "name": "set_by", + "type": "TypeString", + "description": "Name of the User who set the state of the Object.", "computed": true }, - "error_msg": { - "name": "error_msg", + "state": { + "name": "state", "type": "TypeString", - "description": "Summary error message in the log.", + "description": "User-defined states * `draft` Object can be modified; can be used by Jobs run by the author, during execution * `live` Object can be modified; can be used by Jobs during execution * `locked` Object cannot be modified; can be used by Jobs during execution * `disable` Object can be modified. cannot be used by Jobs during execution.", "computed": true } } }, - "log_start_at": { - "name": "log_start_at", + "tags": { + "name": "tags", + "type": "TypeList", + "description": "Tags for the Schematics customization policy.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "updated_at": { + "name": "updated_at", "type": "TypeString", - "description": "Job log start timestamp.", + "description": "The policy updation time.", "computed": true - }, - "repo_download_job": { - "name": "repo_download_job", + } + } + }, + { + "name": "policy_kind", + "type": "TypeString", + "description": "Policy kind or categories for managing and deriving policy decision * `agent_assignment_policy` Agent assignment policy for job execution.", + "optional": true + }, + { + "name": "total_count", + "type": "TypeInt", + "description": "The total number of policy records.", + "computed": true + }, + { + "name": "limit", + "type": "TypeInt", + "description": "The number of policy records returned.", + "computed": true + }, + { + "name": "offset", + "type": "TypeInt", + "description": "The skipped number of policy records.", + "computed": true + } + ], + "ibm_schematics_policy": [ + { + "name": "target", + "type": "TypeList", + "description": "The objects for the Schematics policy.", + "computed": true, + "elem": { + "selector_ids": { + "name": "selector_ids", "type": "TypeList", - "description": "Repo download Job log summary.", + "description": "Static selectors of schematics object ids (agent, workspace, action or blueprint) for the Schematics policy.", "computed": true, "elem": { - "detected_filetype": { - "name": "detected_filetype", - "type": "TypeString", - "description": "Detected template or data file type.", - "computed": true - }, - "inputs_count": { - "name": "inputs_count", - "type": "TypeString", - "description": "Number of inputs detected.", - "computed": true - }, - "outputs_count": { - "name": "outputs_count", - "type": "TypeString", - "description": "Number of outputs detected.", - "computed": true - }, - "quarantined_file_count": { - "name": "quarantined_file_count", - "type": "TypeFloat", - "description": "Number of files quarantined.", - "computed": true - }, - "scanned_file_count": { - "name": "scanned_file_count", - "type": "TypeFloat", - "description": "Number of files scanned.", - "computed": true - } + "type": "TypeString" } }, - "system_job": { - "name": "system_job", + "selector_kind": { + "name": "selector_kind", + "type": "TypeString", + "description": "Types of schematics object selector.", + "computed": true + }, + "selector_scope": { + "name": "selector_scope", "type": "TypeList", - "description": "System Job log summary.", + "description": "Selectors to dynamically list of schematics object ids (agent, workspace, action or blueprint) for the Schematics policy.", "computed": true, "elem": { - "failed": { - "name": "failed", - "type": "TypeFloat", - "description": "Number of failed.", + "kind": { + "name": "kind", + "type": "TypeString", + "description": "Name of the Schematics automation resource.", "computed": true }, - "success": { - "name": "success", - "type": "TypeFloat", - "description": "Number of passed.", - "computed": true + "locations": { + "name": "locations", + "type": "TypeList", + "description": "The location based selector.", + "computed": true, + "elem": { + "type": "TypeString" + } }, - "target_count": { - "name": "target_count", - "type": "TypeFloat", - "description": "number of targets or hosts.", - "computed": true + "resource_groups": { + "name": "resource_groups", + "type": "TypeList", + "description": "The resource group based selector.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "tags": { + "name": "tags", + "type": "TypeList", + "description": "The tag based selector.", + "computed": true, + "elem": { + "type": "TypeString" + } } } - }, - "workspace_job": { - "name": "workspace_job", + } + } + }, + { + "name": "created_at", + "type": "TypeString", + "description": "The policy creation time.", + "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "The policy updation time.", + "computed": true + }, + { + "name": "description", + "type": "TypeString", + "description": "The description of Schematics customization policy.", + "computed": true + }, + { + "name": "kind", + "type": "TypeString", + "description": "Policy kind or categories for managing and deriving policy decision * `agent_assignment_policy` Agent assignment policy for job execution.", + "computed": true + }, + { + "name": "parameter", + "type": "TypeList", + "description": "The parameter to tune the Schematics policy.", + "computed": true, + "elem": { + "agent_assignment_policy_parameter": { + "name": "agent_assignment_policy_parameter", "type": "TypeList", - "description": "Workspace Job log summary.", + "description": "Parameters for the `agent_assignment_policy`.", "computed": true, "elem": { - "resources_add": { - "name": "resources_add", - "type": "TypeFloat", - "description": "Number of resources add.", - "computed": true + "selector_ids": { + "name": "selector_ids", + "type": "TypeList", + "description": "The static selectors of schematics object ids (workspace, action or blueprint) for the Schematics policy.", + "computed": true, + "elem": { + "type": "TypeString" + } }, - "resources_destroy": { - "name": "resources_destroy", - "type": "TypeFloat", - "description": "Number of resources destroy.", + "selector_kind": { + "name": "selector_kind", + "type": "TypeString", + "description": "Types of schematics object selector.", "computed": true }, - "resources_modify": { - "name": "resources_modify", - "type": "TypeFloat", - "description": "Number of resources modify.", - "computed": true + "selector_scope": { + "name": "selector_scope", + "type": "TypeList", + "description": "The selectors to dynamically list of schematics object ids (workspace, action or blueprint) for the Schematics policy.", + "computed": true, + "elem": { + "kind": { + "name": "kind", + "type": "TypeString", + "description": "Name of the Schematics automation resource.", + "computed": true + }, + "locations": { + "name": "locations", + "type": "TypeList", + "description": "The location based selector.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "resource_groups": { + "name": "resource_groups", + "type": "TypeList", + "description": "The resource group based selector.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "tags": { + "name": "tags", + "type": "TypeList", + "description": "The tag based selector.", + "computed": true, + "elem": { + "type": "TypeString" + } + } + } } } } } }, { - "name": "command_options", - "type": "TypeList", - "description": "Command line options for the command.", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "account", + "type": "TypeString", + "description": "The Account id.", + "computed": true + }, + { + "name": "location", + "type": "TypeString", + "description": "List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics.", + "cloud_data_type": "region", + "computed": true + }, + { + "name": "id", + "type": "TypeString", + "description": "The system generated policy Id.", + "computed": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "The policy CRN.", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "policy_id", + "type": "TypeString", + "description": "ID to get the details of policy.", + "required": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Name of Schematics customization policy.", + "computed": true + }, + { + "name": "resource_group", + "type": "TypeString", + "description": "The resource group name for the policy. By default, Policy will be created in `default` Resource Group.", + "cloud_data_type": "resource_group", + "computed": true }, { "name": "tags", "type": "TypeList", - "description": "User defined tags, while running the job.", + "description": "Tags for the Schematics customization policy.", "cloud_data_type": "tags", "computed": true, "elem": { @@ -76097,83 +78712,102 @@ } }, { - "name": "end_at", - "type": "TypeString", - "description": "Job end time.", - "computed": true + "name": "state", + "type": "TypeList", + "description": "User defined status of the Schematics object.", + "computed": true, + "elem": { + "set_at": { + "name": "set_at", + "type": "TypeString", + "description": "When the User who set the state of the Object.", + "computed": true + }, + "set_by": { + "name": "set_by", + "type": "TypeString", + "description": "Name of the User who set the state of the Object.", + "computed": true + }, + "state": { + "name": "state", + "type": "TypeString", + "description": "User-defined states * `draft` Object can be modified; can be used by Jobs run by the author, during execution * `live` Object can be modified; can be used by Jobs during execution * `locked` Object cannot be modified; can be used by Jobs during execution * `disable` Object can be modified. cannot be used by Jobs during execution.", + "computed": true + } + } }, { - "name": "bastion", + "name": "scoped_resources", "type": "TypeList", - "description": "Describes a bastion resource.", + "description": "List of scoped Schematics resources targeted by the policy.", "computed": true, "elem": { - "host": { - "name": "host", + "id": { + "name": "id", "type": "TypeString", - "description": "Reference to the Inventory resource definition.", + "description": "Schematics resource Id.", "computed": true }, - "name": { - "name": "name", + "kind": { + "name": "kind", "type": "TypeString", - "description": "Bastion Name(Unique).", + "description": "Name of the Schematics automation resource.", "computed": true } } }, { - "name": "state_store_url", + "name": "created_by", "type": "TypeString", - "description": "Job state store URL.", + "description": "The user who created the policy.", "computed": true - }, + } + ], + "ibm_schematics_resource_query": [ { - "name": "updated_at", + "name": "id", "type": "TypeString", - "description": "Job status updation timestamp.", + "description": "Resource Query id.", "computed": true - } - ], - "ibm_schematics_output": [ + }, { - "name": "location", + "name": "created_at", "type": "TypeString", - "description": "The Region of the workspace.", - "cloud_data_type": "region", - "optional": true + "description": "Resource query creation time.", + "computed": true }, { - "name": "template_id", + "name": "created_by", "type": "TypeString", - "description": "The id of template", - "required": true + "description": "Email address of user who created the Resource query.", + "computed": true }, { - "name": "output_values", - "type": "TypeMap", + "name": "updated_at", + "type": "TypeString", + "description": "Resource query updation time.", "computed": true }, { - "name": "output_json", + "name": "location", "type": "TypeString", - "description": "The json output in string", + "description": "The Region of the workspace.", + "cloud_data_type": "region", "optional": true }, { - "name": "resource_controller_url", + "name": "type", "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this Workspace", + "description": "Resource type (cluster, vsi, icd, vpc).", "computed": true }, { - "name": "workspace_id", + "name": "name", "type": "TypeString", - "description": "The ID of the workspace for which you want to retrieve output values. To find the workspace ID, use the `GET /workspaces` API.", - "required": true - } - ], - "ibm_schematics_resource_query": [ + "description": "Resource query name.", + "computed": true + }, { "name": "updated_by", "type": "TypeString", @@ -76227,49 +78861,6 @@ } } }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Resource query updation time.", - "computed": true - }, - { - "name": "location", - "type": "TypeString", - "description": "The Region of the workspace.", - "cloud_data_type": "region", - "optional": true - }, - { - "name": "type", - "type": "TypeString", - "description": "Resource type (cluster, vsi, icd, vpc).", - "computed": true - }, - { - "name": "name", - "type": "TypeString", - "description": "Resource query name.", - "computed": true - }, - { - "name": "id", - "type": "TypeString", - "description": "Resource Query id.", - "computed": true - }, - { - "name": "created_at", - "type": "TypeString", - "description": "Resource query creation time.", - "computed": true - }, - { - "name": "created_by", - "type": "TypeString", - "description": "Email address of user who created the Resource query.", - "computed": true - }, { "name": "query_id", "type": "TypeString", @@ -76316,135 +78907,15 @@ ], "ibm_schematics_workspace": [ { - "name": "template_inputs", - "type": "TypeList", - "description": "Information about the input variables that your template uses.", - "computed": true, - "elem": { - "description": { - "name": "description", - "type": "TypeString", - "description": "The description of your input variable.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The name of the variable.", - "computed": true - }, - "secure": { - "name": "secure", - "type": "TypeBool", - "description": "If set to `true`, the value of your input variable is protected and not returned in your API response.", - "computed": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "`Terraform v0.11` supports `string`, `list`, `map` data type. For more information, about the syntax, see [Configuring input variables](https://www.terraform.io/docs/configuration-0-11/variables.html).\u003cbr\u003e `Terraform v0.12` additionally, supports `bool`, `number` and complex data types such as `list(type)`, `map(type)`,`object({attribute name=type,..})`, `set(type)`, `tuple([type])`. For more information, about the syntax to use the complex data type, see [Configuring variables](https://www.terraform.io/docs/configuration/variables.html#type-constraints).", - "computed": true - }, - "value": { - "name": "value", - "type": "TypeString", - "description": "Enter the value as a string for the primitive types such as `bool`, `number`, `string`, and `HCL` format for the complex variables, as you provide in a `.tfvars` file. **You need to enter escaped string of `HCL` format for the complex variable value**. For more information, about how to declare variables in a terraform configuration file and provide value to schematics, see [Providing values for the declared variables](https://cloud.ibm.com/docs/schematics?topic=schematics-create-tf-config#declare-variable).", - "computed": true - } - } - }, - { - "name": "frozen", - "type": "TypeBool", - "description": "If set to true, the workspace is frozen and changes to the workspace are disabled.", - "computed": true - }, - { - "name": "frozen_at", - "type": "TypeString", - "description": "The timestamp when the workspace was frozen.", - "computed": true - }, - { - "name": "locked_time", - "type": "TypeString", - "description": "The timestamp when the workspace was locked.", - "computed": true - }, - { - "name": "resource_controller_url", - "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this workspace", - "computed": true - }, - { - "name": "created_at", - "type": "TypeString", - "description": "The timestamp when the workspace was created.", - "computed": true - }, - { - "name": "last_health_check_at", - "type": "TypeString", - "description": "The timestamp when the last health check was performed by Schematics.", - "computed": true - }, - { - "name": "status", - "type": "TypeString", - "description": "The status of the workspace. **Active**: After you successfully ran your infrastructure code by applying your Terraform execution plan, the state of your workspace changes to `Active`. **Connecting**: Schematics tries to connect to the template in your source repo. If successfully connected, the template is downloaded and metadata, such as input parameters, is extracted. After the template is downloaded, the state of the workspace changes to `Scanning`. **Draft**: The workspace is created without a reference to a GitHub or GitLab repository. **Failed**: If errors occur during the execution of your infrastructure code in IBM Cloud Schematics, your workspace status is set to `Failed`. **Inactive**: The Terraform template was scanned successfully and the workspace creation is complete. You can now start running Schematics plan and apply jobs to provision the IBM Cloud resources that you specified in your template. If you have an `Active` workspace and decide to remove all your resources, your workspace is set to `Inactive` after all your resources are removed. **In progress**: When you instruct IBM Cloud Schematics to run your infrastructure code by applying your Terraform execution plan, the status of our workspace changes to `In progress`. **Scanning**: The download of the Terraform template is complete and vulnerability scanning started. If the scan is successful, the workspace state changes to `Inactive`. If errors in your template are found, the state changes to `Template Error`. **Stopped**: The Schematics plan, apply, or destroy job was cancelled manually. **Template Error**: The Schematics template contains errors and cannot be processed.", - "computed": true - }, - { - "name": "template_env_settings", - "type": "TypeList", - "description": "List of environment values.", - "computed": true, - "elem": { - "hidden": { - "name": "hidden", - "type": "TypeBool", - "description": "If set to `true`, the value of your input variable is protected and not returned in your API response.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The name of the variable.", - "computed": true - }, - "secure": { - "name": "secure", - "type": "TypeBool", - "description": "If set to `true`, the value of your input variable is protected and not returned in your API response.", - "computed": true - }, - "value": { - "name": "value", - "type": "TypeString", - "description": "Enter the value as a string for the primitive types such as `bool`, `number`, `string`, and `HCL` format for the complex variables, as you provide in a `.tfvars` file. **You need to enter escaped string of `HCL` format for the complex variable value**. For more information, about how to declare variables in a terraform configuration file and provide value to schematics, see [Providing values for the declared variables](/docs/schematics?topic=schematics-create-tf-config#declare-variable).", - "computed": true - } - } - }, - { - "name": "template_git_full_url", + "name": "workspace_id", "type": "TypeString", - "description": "Full repository URL.", - "computed": true - }, - { - "name": "is_frozen", - "type": "TypeBool", - "computed": true, - "deprecated": "use frozen instead" + "description": "The ID of the workspace. To find the workspace ID, use the `GET /v1/workspaces` API.", + "required": true }, { - "name": "location", + "name": "description", "type": "TypeString", - "description": "The IBM Cloud location where your workspace was provisioned.", - "cloud_data_type": "region", - "optional": true, + "description": "The description of the workspace.", "computed": true }, { @@ -76495,34 +78966,45 @@ } }, { - "name": "template_git_release", - "type": "TypeString", - "description": "The repository release.", + "name": "template_git_has_uploadedgitrepotar", + "type": "TypeBool", + "description": "Has uploaded Git repository tar.", + "optional": true, "computed": true }, { - "name": "template_git_repo_url", + "name": "frozen_by", "type": "TypeString", - "description": "The repository URL.", + "description": "The user ID that froze the workspace.", "computed": true }, { - "name": "frozen_by", + "name": "resource_group", "type": "TypeString", - "description": "The user ID that froze the workspace.", + "description": "The resource group the workspace was provisioned in.", + "cloud_data_type": "resource_group", "computed": true }, { - "name": "crn", + "name": "tags", + "type": "TypeList", + "description": "A list of tags that are associated with the workspace.", + "cloud_data_type": "tags", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "template_init_state_file", "type": "TypeString", - "description": "The workspace CRN.", - "cloud_data_type": "crn", + "description": "Init state file.", "computed": true }, { - "name": "description", + "name": "template_git_repo_url", "type": "TypeString", - "description": "The description of the workspace.", + "description": "The repository URL.", "computed": true }, { @@ -76532,11 +79014,32 @@ "computed": true }, { - "name": "locked_by", + "name": "resource_controller_url", "type": "TypeString", - "description": "The user ID that initiated a resource-related job, such as applying or destroying resources, that locked the workspace.", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this workspace", + "computed": true + }, + { + "name": "frozen", + "type": "TypeBool", + "description": "If set to true, the workspace is frozen and changes to the workspace are disabled.", + "computed": true + }, + { + "name": "status_code", + "type": "TypeString", + "description": "The success or error code that was returned for the last plan, apply, or destroy job that ran against your workspace.", "computed": true }, + { + "name": "applied_shareddata_ids", + "type": "TypeList", + "description": "List of applied shared dataset ID.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, { "name": "catalog_ref", "type": "TypeList", @@ -76662,67 +79165,37 @@ } }, { - "name": "tags", - "type": "TypeList", - "description": "A list of tags that are associated with the workspace.", - "cloud_data_type": "tags", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "template_git_branch", - "type": "TypeString", - "description": "The repository branch.", - "computed": true - }, - { - "name": "template_git_url", - "type": "TypeString", - "description": "The source URL.", - "computed": true - }, - { - "name": "is_locked", - "type": "TypeBool", - "description": "If set to true, the workspace is locked and disabled for changes.", - "computed": true, - "deprecated": "Use locked instead" - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "The timestamp when the workspace was last updated.", - "computed": true - }, - { - "name": "locked", - "type": "TypeBool", - "description": "If set to true, the workspace is locked and disabled for changes.", - "computed": true - }, - { - "name": "applied_shareddata_ids", + "name": "template_env_settings", "type": "TypeList", - "description": "List of applied shared dataset ID.", + "description": "List of environment values.", "computed": true, "elem": { - "type": "TypeString" + "hidden": { + "name": "hidden", + "type": "TypeBool", + "description": "If set to `true`, the value of your input variable is protected and not returned in your API response.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The name of the variable.", + "computed": true + }, + "secure": { + "name": "secure", + "type": "TypeBool", + "description": "If set to `true`, the value of your input variable is protected and not returned in your API response.", + "computed": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "Enter the value as a string for the primitive types such as `bool`, `number`, `string`, and `HCL` format for the complex variables, as you provide in a `.tfvars` file. **You need to enter escaped string of `HCL` format for the complex variable value**. For more information, about how to declare variables in a terraform configuration file and provide value to schematics, see [Providing values for the declared variables](/docs/schematics?topic=schematics-create-tf-config#declare-variable).", + "computed": true + } } }, - { - "name": "template_git_folder", - "type": "TypeString", - "description": "The subfolder in your GitHub or GitLab repository where your Terraform template is stored. If your template is stored in the root directory, `.` is returned.", - "computed": true - }, - { - "name": "template_values", - "type": "TypeString", - "description": "A list of variable values that you want to apply during the Helm chart installation. The list must be provided in JSON format, such as `\"\"autoscaling: enabled: true minReplicas: 2\"`. The values that you define here override the default Helm chart values. This field is supported only for IBM Cloud catalog offerings that are provisioned by using the Terraform Helm provider.", - "computed": true - }, { "name": "template_values_metadata", "type": "TypeList", @@ -76853,9 +79326,9 @@ } }, { - "name": "template_ref", + "name": "template_git_full_url", "type": "TypeString", - "description": "Workspace template ref.", + "description": "Full repository URL.", "computed": true }, { @@ -76865,151 +79338,187 @@ "computed": true }, { - "name": "name", + "name": "template_git_url", "type": "TypeString", - "description": "The name of the workspace.", + "description": "The source URL.", "computed": true }, { - "name": "template_uninstall_script_name", + "name": "is_frozen", + "type": "TypeBool", + "computed": true, + "deprecated": "use frozen instead" + }, + { + "name": "frozen_at", "type": "TypeString", - "description": "Uninstall script name.", + "description": "The timestamp when the workspace was frozen.", "computed": true }, { - "name": "template_git_has_uploadedgitrepotar", + "name": "is_locked", "type": "TypeBool", - "description": "Has uploaded Git repository tar.", - "optional": true, - "computed": true + "description": "If set to true, the workspace is locked and disabled for changes.", + "computed": true, + "deprecated": "Use locked instead" }, { - "name": "status_code", - "type": "TypeString", - "description": "The success or error code that was returned for the last plan, apply, or destroy job that ran against your workspace.", + "name": "locked", + "type": "TypeBool", + "description": "If set to true, the workspace is locked and disabled for changes.", "computed": true }, { - "name": "workspace_id", - "type": "TypeString", - "description": "The ID of the workspace. To find the workspace ID, use the `GET /v1/workspaces` API.", - "required": true + "name": "template_inputs", + "type": "TypeList", + "description": "Information about the input variables that your template uses.", + "computed": true, + "elem": { + "description": { + "name": "description", + "type": "TypeString", + "description": "The description of your input variable.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The name of the variable.", + "computed": true + }, + "secure": { + "name": "secure", + "type": "TypeBool", + "description": "If set to `true`, the value of your input variable is protected and not returned in your API response.", + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "`Terraform v0.11` supports `string`, `list`, `map` data type. For more information, about the syntax, see [Configuring input variables](https://www.terraform.io/docs/configuration-0-11/variables.html).\u003cbr\u003e `Terraform v0.12` additionally, supports `bool`, `number` and complex data types such as `list(type)`, `map(type)`,`object({attribute name=type,..})`, `set(type)`, `tuple([type])`. For more information, about the syntax to use the complex data type, see [Configuring variables](https://www.terraform.io/docs/configuration/variables.html#type-constraints).", + "computed": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "Enter the value as a string for the primitive types such as `bool`, `number`, `string`, and `HCL` format for the complex variables, as you provide in a `.tfvars` file. **You need to enter escaped string of `HCL` format for the complex variable value**. For more information, about how to declare variables in a terraform configuration file and provide value to schematics, see [Providing values for the declared variables](https://cloud.ibm.com/docs/schematics?topic=schematics-create-tf-config#declare-variable).", + "computed": true + } + } }, { - "name": "created_by", + "name": "template_ref", "type": "TypeString", - "description": "The user ID that created the workspace.", + "description": "Workspace template ref.", "computed": true }, { - "name": "resource_group", + "name": "updated_by", "type": "TypeString", - "description": "The resource group the workspace was provisioned in.", - "cloud_data_type": "resource_group", + "description": "The user ID that updated the workspace.", "computed": true }, { - "name": "template_init_state_file", + "name": "locked_by", "type": "TypeString", - "description": "Init state file.", + "description": "The user ID that initiated a resource-related job, such as applying or destroying resources, that locked the workspace.", "computed": true }, { - "name": "template_type", + "name": "name", "type": "TypeString", - "description": "The Terraform version that was used to run your Terraform code.", + "description": "The name of the workspace.", "computed": true }, { - "name": "updated_by", + "name": "template_git_folder", "type": "TypeString", - "description": "The user ID that updated the workspace.", + "description": "The subfolder in your GitHub or GitLab repository where your Terraform template is stored. If your template is stored in the root directory, `.` is returned.", "computed": true - } - ], - "ibm_secrets_manager_secret": [ + }, { - "name": "api_key", + "name": "template_values", "type": "TypeString", - "description": "The API key that is generated for this secret.After the secret reaches the end of its lease (see the `ttl` field), the API key is deleted automatically. If you want to continue to use the same API key for future read operations, see the `reuse_api_key` field.", - "secure": true, + "description": "A list of variable values that you want to apply during the Helm chart installation. The list must be provided in JSON format, such as `\"\"autoscaling: enabled: true minReplicas: 2\"`. The values that you define here override the default Helm chart values. This field is supported only for IBM Cloud catalog offerings that are provisioned by using the Terraform Helm provider.", "computed": true }, { - "name": "instance_id", + "name": "updated_at", "type": "TypeString", - "description": "Secrets Manager instance GUID", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:secrets-manager" - ] + "description": "The timestamp when the workspace was last updated.", + "computed": true }, { - "name": "creation_date", + "name": "created_by", "type": "TypeString", - "description": "The date the secret was created. The date format follows RFC 3339.", + "description": "The user ID that created the workspace.", "computed": true }, { - "name": "secret_data", - "type": "TypeMap", - "description": "The secret data object", - "secure": true, + "name": "crn", + "type": "TypeString", + "description": "The workspace CRN.", + "cloud_data_type": "crn", "computed": true }, { - "name": "password", + "name": "location", "type": "TypeString", - "description": "The password to assign to this secret.", - "secure": true, + "description": "The IBM Cloud location where your workspace was provisioned.", + "cloud_data_type": "region", + "optional": true, "computed": true }, { - "name": "access_groups", - "type": "TypeList", - "description": "The access groups that define the capabilities of the service ID and API key that are generated for an`iam_credentials` secret.**Tip:** To find the ID of an access group, go to **Manage \u003e Access (IAM) \u003e Access groups** in the IBM Cloud console. Select the access group to inspect, and click **Details** to view its ID.", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "template_type", + "type": "TypeString", + "description": "The Terraform version that was used to run your Terraform code.", + "computed": true }, { - "name": "secret_id", + "name": "template_uninstall_script_name", "type": "TypeString", - "description": "The v4 UUID that uniquely identifies the secret.", - "required": true + "description": "Uninstall script name.", + "computed": true }, { - "name": "next_rotation_date", + "name": "template_git_release", "type": "TypeString", - "description": "The date that the secret is scheduled for automatic rotation.The service automatically creates a new version of the secret on its next rotation date. This field exists only for secrets that can be auto-rotated and have an existing rotation policy.", + "description": "The repository release.", "computed": true }, { - "name": "name", + "name": "created_at", "type": "TypeString", - "description": "A human-readable alias to assign to your secret.To protect your privacy, do not use personal data, such as your name or location, as an alias for your secret.", + "description": "The timestamp when the workspace was created.", "computed": true }, { - "name": "state_description", + "name": "last_health_check_at", "type": "TypeString", - "description": "A text representation of the secret state.", + "description": "The timestamp when the last health check was performed by Schematics.", "computed": true }, { - "name": "last_update_date", + "name": "status", "type": "TypeString", - "description": "Updates when the actual secret is modified. The date format follows RFC 3339.", + "description": "The status of the workspace. **Active**: After you successfully ran your infrastructure code by applying your Terraform execution plan, the state of your workspace changes to `Active`. **Connecting**: Schematics tries to connect to the template in your source repo. If successfully connected, the template is downloaded and metadata, such as input parameters, is extracted. After the template is downloaded, the state of the workspace changes to `Scanning`. **Draft**: The workspace is created without a reference to a GitHub or GitLab repository. **Failed**: If errors occur during the execution of your infrastructure code in IBM Cloud Schematics, your workspace status is set to `Failed`. **Inactive**: The Terraform template was scanned successfully and the workspace creation is complete. You can now start running Schematics plan and apply jobs to provision the IBM Cloud resources that you specified in your template. If you have an `Active` workspace and decide to remove all your resources, your workspace is set to `Inactive` after all your resources are removed. **In progress**: When you instruct IBM Cloud Schematics to run your infrastructure code by applying your Terraform execution plan, the status of our workspace changes to `In progress`. **Scanning**: The download of the Terraform template is complete and vulnerability scanning started. If the scan is successful, the workspace state changes to `Inactive`. If errors in your template are found, the state changes to `Template Error`. **Stopped**: The Schematics plan, apply, or destroy job was cancelled manually. **Template Error**: The Schematics template contains errors and cannot be processed.", "computed": true }, { - "name": "expiration_date", + "name": "template_git_branch", "type": "TypeString", - "description": "The date the secret material expires. The date format follows RFC 3339.You can set an expiration date on supported secret types at their creation. If you create a secret without specifying an expiration date, the secret does not expire. The `expiration_date` field is supported for the following secret types:- `arbitrary`- `username_password`.", + "description": "The repository branch.", "computed": true }, + { + "name": "locked_time", + "type": "TypeString", + "description": "The timestamp when the workspace was locked.", + "computed": true + } + ], + "ibm_secrets_manager_secret": [ { "name": "service_id", "type": "TypeString", @@ -77017,31 +79526,66 @@ "computed": true }, { - "name": "endpoint_type", + "name": "labels", + "type": "TypeList", + "description": "Labels that you can use to filter for secrets in your instance.Up to 30 labels can be created. Labels can be between 2-30 characters, including spaces. Special characters not permitted include the angled bracket, comma, colon, ampersand, and vertical pipe character (|).To protect your privacy, do not use personal data, such as your name or location, as a label for your secret.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "state_description", "type": "TypeString", - "description": "Endpoint Type. 'public' or 'private'", - "default_value": "public", - "options": "public, private", - "optional": true + "description": "A text representation of the secret state.", + "computed": true }, { - "name": "type", + "name": "creation_date", "type": "TypeString", - "description": "The MIME type that represents the secret.", + "description": "The date the secret was created. The date format follows RFC 3339.", "computed": true }, { - "name": "secret_group_id", + "name": "crn", "type": "TypeString", - "description": "The v4 UUID that uniquely identifies the secret group to assign to this secret.If you omit this parameter, your secret is assigned to the `default` secret group.", + "description": "The Cloud Resource Name (CRN) that uniquely identifies your Secrets Manager resource.", + "cloud_data_type": "crn", "computed": true }, { - "name": "created_by", + "name": "payload", "type": "TypeString", - "description": "The unique identifier for the entity that created the secret.", + "description": "The new secret data to assign to an `arbitrary` secret.", + "secure": true, + "computed": true + }, + { + "name": "reuse_api_key", + "type": "TypeBool", + "description": "(IAM credentials) Reuse the service ID and API key for future read operations.", "computed": true }, + { + "name": "metadata", + "type": "TypeList", + "description": "The metadata that describes the resource array.", + "computed": true, + "elem": { + "collection_total": { + "name": "collection_total", + "type": "TypeInt", + "description": "The number of elements in the resource array.", + "computed": true + }, + "collection_type": { + "name": "collection_type", + "type": "TypeString", + "description": "The type of resources in the resource array.", + "computed": true + } + } + }, { "name": "versions", "type": "TypeList", @@ -77075,64 +79619,78 @@ } }, { - "name": "username", - "type": "TypeString", - "description": "The username to assign to this secret.", + "name": "secret_data", + "type": "TypeMap", + "description": "The secret data object", "secure": true, "computed": true }, { - "name": "crn", + "name": "secret_type", "type": "TypeString", - "description": "The Cloud Resource Name (CRN) that uniquely identifies your Secrets Manager resource.", - "cloud_data_type": "crn", + "description": "The secret type. Supported options include: arbitrary, iam_credentials, username_password.", + "required": true, + "options": "arbitrary,iam_credentials,imported_cert,public_cert,private_cert,username_password,kv" + }, + { + "name": "next_rotation_date", + "type": "TypeString", + "description": "The date that the secret is scheduled for automatic rotation.The service automatically creates a new version of the secret on its next rotation date. This field exists only for secrets that can be auto-rotated and have an existing rotation policy.", "computed": true }, { - "name": "metadata", + "name": "created_by", + "type": "TypeString", + "description": "The unique identifier for the entity that created the secret.", + "computed": true + }, + { + "name": "password", + "type": "TypeString", + "description": "The password to assign to this secret.", + "secure": true, + "computed": true + }, + { + "name": "access_groups", "type": "TypeList", - "description": "The metadata that describes the resource array.", + "description": "The access groups that define the capabilities of the service ID and API key that are generated for an`iam_credentials` secret.**Tip:** To find the ID of an access group, go to **Manage \u003e Access (IAM) \u003e Access groups** in the IBM Cloud console. Select the access group to inspect, and click **Details** to view its ID.", "computed": true, "elem": { - "collection_total": { - "name": "collection_total", - "type": "TypeInt", - "description": "The number of elements in the resource array.", - "computed": true - }, - "collection_type": { - "name": "collection_type", - "type": "TypeString", - "description": "The type of resources in the resource array.", - "computed": true - } + "type": "TypeString" } }, { - "name": "state", - "type": "TypeInt", - "description": "The secret state based on NIST SP 800-57. States are integers and correspond to the Pre-activation = 0, Active = 1, Suspended = 2, Deactivated = 3, and Destroyed = 5 values.", + "name": "username", + "type": "TypeString", + "description": "The username to assign to this secret.", + "secure": true, "computed": true }, { - "name": "payload", + "name": "api_key", "type": "TypeString", - "description": "The new secret data to assign to an `arbitrary` secret.", + "description": "The API key that is generated for this secret.After the secret reaches the end of its lease (see the `ttl` field), the API key is deleted automatically. If you want to continue to use the same API key for future read operations, see the `reuse_api_key` field.", "secure": true, "computed": true }, { - "name": "reuse_api_key", - "type": "TypeBool", - "description": "(IAM credentials) Reuse the service ID and API key for future read operations.", + "name": "secret_id", + "type": "TypeString", + "description": "The v4 UUID that uniquely identifies the secret.", + "required": true + }, + { + "name": "state", + "type": "TypeInt", + "description": "The secret state based on NIST SP 800-57. States are integers and correspond to the Pre-activation = 0, Active = 1, Suspended = 2, Deactivated = 3, and Destroyed = 5 values.", "computed": true }, { - "name": "secret_type", + "name": "expiration_date", "type": "TypeString", - "description": "The secret type. Supported options include: arbitrary, iam_credentials, username_password.", - "required": true, - "options": "arbitrary,iam_credentials,imported_cert,public_cert,private_cert,username_password,kv" + "description": "The date the secret material expires. The date format follows RFC 3339.You can set an expiration date on supported secret types at their creation. If you create a secret without specifying an expiration date, the secret does not expire. The `expiration_date` field is supported for the following secret types:- `arbitrary`- `username_password`.", + "computed": true }, { "name": "description", @@ -77141,22 +79699,17 @@ "computed": true }, { - "name": "labels", - "type": "TypeList", - "description": "Labels that you can use to filter for secrets in your instance.Up to 30 labels can be created. Labels can be between 2-30 characters, including spaces. Special characters not permitted include the angled bracket, comma, colon, ampersand, and vertical pipe character (|).To protect your privacy, do not use personal data, such as your name or location, as a label for your secret.", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "last_update_date", + "type": "TypeString", + "description": "Updates when the actual secret is modified. The date format follows RFC 3339.", + "computed": true }, { "name": "ttl", "type": "TypeString", "description": "The time-to-live (TTL) or lease duration to assign to generated credentials.For `iam_credentials` secrets, the TTL defines for how long each generated API key remains valid. The value can be either an integer that specifies the number of seconds, or the string representation of a duration, such as `120m` or `24h`.", "computed": true - } - ], - "ibm_secrets_manager_secrets": [ + }, { "name": "instance_id", "type": "TypeString", @@ -77167,13 +79720,6 @@ "service:secrets-manager" ] }, - { - "name": "secret_type", - "type": "TypeString", - "description": "The secret type. Supported options include: arbitrary, iam_credentials, username_password.", - "options": "arbitrary, iam_credentials, username_password", - "optional": true - }, { "name": "endpoint_type", "type": "TypeString", @@ -77182,6 +79728,26 @@ "options": "public, private", "optional": true }, + { + "name": "type", + "type": "TypeString", + "description": "The MIME type that represents the secret.", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "A human-readable alias to assign to your secret.To protect your privacy, do not use personal data, such as your name or location, as an alias for your secret.", + "computed": true + }, + { + "name": "secret_group_id", + "type": "TypeString", + "description": "The v4 UUID that uniquely identifies the secret group to assign to this secret.If you omit this parameter, your secret is assigned to the `default` secret group.", + "computed": true + } + ], + "ibm_secrets_manager_secrets": [ { "name": "metadata", "type": "TypeList", @@ -77396,6 +79962,31 @@ } } } + }, + { + "name": "instance_id", + "type": "TypeString", + "description": "Secrets Manager instance GUID", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:secrets-manager" + ] + }, + { + "name": "secret_type", + "type": "TypeString", + "description": "The secret type. Supported options include: arbitrary, iam_credentials, username_password.", + "options": "arbitrary, iam_credentials, username_password", + "optional": true + }, + { + "name": "endpoint_type", + "type": "TypeString", + "description": "Endpoint Type. 'public' or 'private'", + "default_value": "public", + "options": "public, private", + "optional": true } ], "ibm_security_group": [ @@ -77421,6 +80012,12 @@ } ], "ibm_service_instance": [ + { + "name": "service_plan_guid", + "type": "TypeString", + "description": "The uniquie identifier of the service offering plan type", + "computed": true + }, { "name": "name", "type": "TypeString", @@ -77460,15 +80057,21 @@ "computed": true } } - }, - { - "name": "service_plan_guid", - "type": "TypeString", - "description": "The uniquie identifier of the service offering plan type", - "computed": true } ], "ibm_service_key": [ + { + "name": "name", + "type": "TypeString", + "description": "The name of the service key", + "required": true + }, + { + "name": "service_instance_name", + "type": "TypeString", + "description": "Service instance name for example, speech_to_text", + "required": true + }, { "name": "space_guid", "type": "TypeString", @@ -77481,35 +80084,35 @@ "description": "Credentials asociated with the key", "secure": true, "computed": true - }, - { - "name": "name", - "type": "TypeString", - "description": "The name of the service key", - "required": true - }, - { - "name": "service_instance_name", - "type": "TypeString", - "description": "Service instance name for example, speech_to_text", - "required": true } ], "ibm_service_plan": [ { - "name": "plan", + "name": "service", "type": "TypeString", - "description": "The plan type ex- shared", + "description": "Service name for example, cloudantNoSQLDB", "required": true }, { - "name": "service", + "name": "plan", "type": "TypeString", - "description": "Service name for example, cloudantNoSQLDB", + "description": "The plan type ex- shared", "required": true } ], "ibm_sm_arbitrary_secret": [ + { + "name": "locks_total", + "type": "TypeInt", + "description": "The number of locks of the secret.", + "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "The date when a resource was recently modified. The date format follows RFC 3339.", + "computed": true + }, { "name": "expiration_date", "type": "TypeString", @@ -77517,10 +80120,19 @@ "computed": true }, { - "name": "endpoint_type", + "name": "payload", "type": "TypeString", - "description": "public or private.", - "optional": true + "description": "The arbitrary secret's data payload.", + "secure": true, + "computed": true + }, + { + "name": "instance_id", + "type": "TypeString", + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true }, { "name": "created_at", @@ -77529,57 +80141,63 @@ "computed": true }, { - "name": "custom_metadata", - "type": "TypeMap", - "description": "The secret metadata that a user can customize.", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "created_by", + "type": "TypeString", + "description": "The unique identifier that is associated with the entity that created the secret.", + "computed": true }, { - "name": "secret_type", + "name": "crn", "type": "TypeString", - "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", + "description": "A CRN that uniquely identifies an IBM Cloud resource.", + "cloud_data_type": "crn", "computed": true }, { - "name": "updated_at", + "name": "secret_group_name", "type": "TypeString", - "description": "The date when a resource was recently modified. The date format follows RFC 3339.", - "computed": true + "description": "The human-readable name of your secret group.", + "optional": true }, { - "name": "downloaded", - "type": "TypeBool", - "description": "Indicates whether the secret data that is associated with a secret version was retrieved in a call to the service API.", + "name": "secret_id", + "type": "TypeString", + "description": "The ID of the secret.", + "optional": true, "computed": true }, { - "name": "secret_group_id", + "name": "description", "type": "TypeString", - "description": "A v4 UUID identifier, or `default` secret group.", + "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", "computed": true }, { - "name": "payload", - "type": "TypeString", - "description": "The arbitrary secret's data payload.", - "secure": true, + "name": "downloaded", + "type": "TypeBool", + "description": "Indicates whether the secret data that is associated with a secret version was retrieved in a call to the service API.", "computed": true }, { - "name": "instance_id", - "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true + "name": "labels", + "type": "TypeList", + "description": "Labels that you can use to search for secrets in your instance.Up to 30 labels can be created.", + "computed": true, + "elem": { + "type": "TypeString" + } }, { "name": "name", "type": "TypeString", "description": "The human-readable name of your secret.", + "optional": true, + "computed": true + }, + { + "name": "secret_group_id", + "type": "TypeString", + "description": "A v4 UUID identifier, or `default` secret group.", "computed": true }, { @@ -77595,9 +80213,53 @@ "computed": true }, { - "name": "created_by", + "name": "custom_metadata", + "type": "TypeMap", + "description": "The secret metadata that a user can customize.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "region", "type": "TypeString", - "description": "The unique identifier that is associated with the entity that created the secret.", + "description": "The region of the Secrets Manager instance.", + "cloud_data_type": "region", + "immutable": true, + "optional": true, + "computed": true + }, + { + "name": "state_description", + "type": "TypeString", + "description": "A text representation of the secret state.", + "computed": true + }, + { + "name": "endpoint_type", + "type": "TypeString", + "description": "public or private.", + "optional": true + }, + { + "name": "secret_type", + "type": "TypeString", + "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", + "computed": true + } + ], + "ibm_sm_arbitrary_secret_metadata": [ + { + "name": "secret_group_id", + "type": "TypeString", + "description": "A v4 UUID identifier, or `default` secret group.", + "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "The date when a resource was recently modified. The date format follows RFC 3339.", "computed": true }, { @@ -77629,32 +80291,21 @@ "required": true }, { - "name": "description", + "name": "name", "type": "TypeString", - "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", + "description": "The human-readable name of your secret.", "computed": true }, { - "name": "state_description", + "name": "endpoint_type", "type": "TypeString", - "description": "A text representation of the secret state.", - "computed": true + "description": "public or private.", + "optional": true }, { - "name": "region", - "type": "TypeString", - "description": "The region of the Secrets Manager instance.", - "cloud_data_type": "region", - "immutable": true, - "optional": true, - "computed": true - } - ], - "ibm_sm_arbitrary_secret_metadata": [ - { - "name": "name", - "type": "TypeString", - "description": "The human-readable name of your secret.", + "name": "downloaded", + "type": "TypeBool", + "description": "Indicates whether the secret data that is associated with a secret version was retrieved in a call to the service API.", "computed": true }, { @@ -77664,26 +80315,9 @@ "computed": true }, { - "name": "instance_id", - "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true - }, - { - "name": "region", - "type": "TypeString", - "description": "The region of the Secrets Manager instance.", - "cloud_data_type": "region", - "immutable": true, - "optional": true, - "computed": true - }, - { - "name": "locks_total", + "name": "versions_total", "type": "TypeInt", - "description": "The number of locks of the secret.", + "description": "The number of versions of the secret.", "computed": true }, { @@ -77693,55 +80327,53 @@ "computed": true }, { - "name": "crn", + "name": "instance_id", "type": "TypeString", - "description": "A CRN that uniquely identifies an IBM Cloud resource.", - "cloud_data_type": "crn", - "computed": true + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true }, { - "name": "description", + "name": "created_at", "type": "TypeString", - "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", - "computed": true - }, - { - "name": "downloaded", - "type": "TypeBool", - "description": "Indicates whether the secret data that is associated with a secret version was retrieved in a call to the service API.", + "description": "The date when a resource was created. The date format follows RFC 3339.", "computed": true }, { - "name": "labels", - "type": "TypeList", - "description": "Labels that you can use to search for secrets in your instance.Up to 30 labels can be created.", + "name": "custom_metadata", + "type": "TypeMap", + "description": "The secret metadata that a user can customize.", "computed": true, "elem": { "type": "TypeString" } }, { - "name": "versions_total", - "type": "TypeInt", - "description": "The number of versions of the secret.", + "name": "description", + "type": "TypeString", + "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", "computed": true }, { - "name": "endpoint_type", + "name": "region", "type": "TypeString", - "description": "public or private.", - "optional": true + "description": "The region of the Secrets Manager instance.", + "cloud_data_type": "region", + "immutable": true, + "optional": true, + "computed": true }, { - "name": "secret_id", + "name": "created_by", "type": "TypeString", - "description": "The ID of the secret.", - "required": true + "description": "The unique identifier that is associated with the entity that created the secret.", + "computed": true }, { - "name": "created_at", + "name": "secret_type", "type": "TypeString", - "description": "The date when a resource was created. The date format follows RFC 3339.", + "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", "computed": true }, { @@ -77749,42 +80381,44 @@ "type": "TypeInt", "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", "computed": true - }, + } + ], + "ibm_sm_configurations": [ { - "name": "updated_at", + "name": "instance_id", "type": "TypeString", - "description": "The date when a resource was recently modified. The date format follows RFC 3339.", - "computed": true + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true }, { - "name": "created_by", + "name": "region", "type": "TypeString", - "description": "The unique identifier that is associated with the entity that created the secret.", + "description": "The region of the Secrets Manager instance.", + "cloud_data_type": "region", + "immutable": true, + "optional": true, "computed": true }, { - "name": "custom_metadata", - "type": "TypeMap", - "description": "The secret metadata that a user can customize.", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "endpoint_type", + "type": "TypeString", + "description": "public or private.", + "optional": true }, { - "name": "secret_group_id", + "name": "sort", "type": "TypeString", - "description": "A v4 UUID identifier, or `default` secret group.", - "computed": true + "description": "Sort a collection of secrets by the specified field in ascending order. To sort in descending order use the `-` character. Available values: id | created_at | updated_at | expiration_date | secret_type | name", + "optional": true }, { - "name": "secret_type", + "name": "search", "type": "TypeString", - "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", - "computed": true - } - ], - "ibm_sm_configurations": [ + "description": "Obtain a collection of secrets that contain the specified string in one or more of the fields: `id`, `name`, `description`,\n `labels`, `secret_type`.", + "optional": true + }, { "name": "groups", "type": "TypeString", @@ -77906,6 +80540,14 @@ "computed": true } } + } + ], + "ibm_sm_en_registration": [ + { + "name": "event_notifications_instance_crn", + "type": "TypeString", + "description": "A CRN that uniquely identifies an IBM Cloud resource.", + "computed": true }, { "name": "instance_id", @@ -77929,34 +80571,20 @@ "type": "TypeString", "description": "public or private.", "optional": true - }, - { - "name": "sort", - "type": "TypeString", - "description": "Sort a collection of secrets by the specified field in ascending order. To sort in descending order use the `-` character. Available values: id | created_at | updated_at | expiration_date | secret_type | name", - "optional": true - }, - { - "name": "search", - "type": "TypeString", - "description": "Obtain a collection of secrets that contain the specified string in one or more of the fields: `id`, `name`, `description`,\n `labels`, `secret_type`.", - "optional": true } ], - "ibm_sm_en_registration": [ + "ibm_sm_iam_credentials_configuration": [ { - "name": "event_notifications_instance_crn", + "name": "secret_type", "type": "TypeString", - "description": "A CRN that uniquely identifies an IBM Cloud resource.", + "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", "computed": true }, { - "name": "instance_id", + "name": "created_at", "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true + "description": "The date when a resource was created. The date format follows RFC 3339.", + "computed": true }, { "name": "region", @@ -77968,33 +80596,25 @@ "computed": true }, { - "name": "endpoint_type", - "type": "TypeString", - "description": "public or private.", - "optional": true - } - ], - "ibm_sm_iam_credentials_configuration": [ - { - "name": "name", + "name": "updated_at", "type": "TypeString", - "description": "The name of the configuration.", - "required": true + "description": "The date when a resource was recently modified. The date format follows RFC 3339.", + "computed": true }, { - "name": "secret_type", + "name": "api_key", "type": "TypeString", - "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", + "description": "An IBM Cloud API key that can create and manage service IDs. The API key must be assigned the Editor platform role on the Access Groups Service and the Operator platform role on the IAM Identity Service. For more information, see the [docs](https://cloud.ibm.com/docs/secrets-manager?topic=secrets-manager-configure-iam-engine).", + "secure": true, "computed": true }, { - "name": "region", + "name": "instance_id", "type": "TypeString", - "description": "The region of the Secrets Manager instance.", - "cloud_data_type": "region", + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", "immutable": true, - "optional": true, - "computed": true + "required": true }, { "name": "endpoint_type", @@ -78002,6 +80622,12 @@ "description": "public or private.", "optional": true }, + { + "name": "name", + "type": "TypeString", + "description": "The name of the configuration.", + "required": true + }, { "name": "config_type", "type": "TypeString", @@ -78013,23 +80639,40 @@ "type": "TypeString", "description": "The unique identifier that is associated with the entity that created the secret.", "computed": true + } + ], + "ibm_sm_iam_credentials_secret": [ + { + "name": "secret_group_name", + "type": "TypeString", + "description": "The human-readable name of your secret group.", + "optional": true }, { - "name": "created_at", + "name": "access_groups", + "type": "TypeList", + "description": "Access Groups that you can use for an `iam_credentials` secret.Up to 10 Access Groups can be used for each secret.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "description", "type": "TypeString", - "description": "The date when a resource was created. The date format follows RFC 3339.", + "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", "computed": true }, { - "name": "updated_at", - "type": "TypeString", - "description": "The date when a resource was recently modified. The date format follows RFC 3339.", + "name": "versions_total", + "type": "TypeInt", + "description": "The number of versions of the secret.", "computed": true }, { "name": "api_key", "type": "TypeString", - "description": "An IBM Cloud API key that can create and manage service IDs. The API key must be assigned the Editor platform role on the Access Groups Service and the Operator platform role on the IAM Identity Service. For more information, see the [docs](https://cloud.ibm.com/docs/secrets-manager?topic=secrets-manager-configure-iam-engine).", + "description": "The API key that is generated for this secret.After the secret reaches the end of its lease (see the `ttl` field), the API key is deleted automatically.", "secure": true, "computed": true }, @@ -78040,28 +80683,27 @@ "cloud_data_type": "resource_instance", "immutable": true, "required": true - } - ], - "ibm_sm_iam_credentials_secret": [ + }, { - "name": "secret_id", + "name": "region", "type": "TypeString", - "description": "The ID of the secret.", - "required": true + "description": "The region of the Secrets Manager instance.", + "cloud_data_type": "region", + "immutable": true, + "optional": true, + "computed": true }, { - "name": "custom_metadata", - "type": "TypeMap", - "description": "The secret metadata that a user can customize.", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "endpoint_type", + "type": "TypeString", + "description": "public or private.", + "optional": true }, { - "name": "description", + "name": "name", "type": "TypeString", - "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", + "description": "The human-readable name of your secret.", + "optional": true, "computed": true }, { @@ -78071,69 +80713,89 @@ "computed": true }, { - "name": "state", - "type": "TypeInt", - "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", + "name": "created_at", + "type": "TypeString", + "description": "The date when a resource was created. The date format follows RFC 3339.", "computed": true }, { - "name": "name", + "name": "crn", "type": "TypeString", - "description": "The human-readable name of your secret.", + "description": "A CRN that uniquely identifies an IBM Cloud resource.", + "cloud_data_type": "crn", "computed": true }, { - "name": "versions_total", + "name": "labels", + "type": "TypeList", + "description": "Labels that you can use to search for secrets in your instance.Up to 30 labels can be created.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "secret_type", + "type": "TypeString", + "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", + "computed": true + }, + { + "name": "state", "type": "TypeInt", - "description": "The number of versions of the secret.", + "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", "computed": true }, { - "name": "reuse_api_key", - "type": "TypeBool", - "description": "Determines whether to use the same service ID and API key for future read operations on an`iam_credentials` secret. The value is always `true` for IAM credentials secrets managed by Terraform.", + "name": "secret_id", + "type": "TypeString", + "description": "The ID of the secret.", + "optional": true, "computed": true }, { - "name": "created_at", + "name": "ttl", "type": "TypeString", - "description": "The date when a resource was created. The date format follows RFC 3339.", + "description": "The time-to-live (TTL) or lease duration to assign to generated credentials.For `iam_credentials` secrets, the TTL defines for how long each generated API key remains valid. The value can be either an integer that specifies the number of seconds, or the string representation of a duration, such as `120m` or `24h`.Minimum duration is 1 minute. Maximum is 90 days.", "computed": true }, { - "name": "labels", - "type": "TypeList", - "description": "Labels that you can use to search for secrets in your instance.Up to 30 labels can be created.", + "name": "custom_metadata", + "type": "TypeMap", + "description": "The secret metadata that a user can customize.", "computed": true, "elem": { "type": "TypeString" } }, { - "name": "api_key_id", + "name": "secret_group_id", "type": "TypeString", - "description": "The ID of the API key that is generated for this secret.", + "description": "A v4 UUID identifier, or `default` secret group.", "computed": true }, { - "name": "service_id_is_static", - "type": "TypeBool", - "description": "Indicates whether an `iam_credentials` secret was created with a static service ID.If it is set to `true`, the service ID for the secret was provided by the user at secret creation. If it is set to `false`, the service ID was generated by Secrets Manager.", + "name": "state_description", + "type": "TypeString", + "description": "A text representation of the secret state.", "computed": true }, { - "name": "region", + "name": "service_id", "type": "TypeString", - "description": "The region of the Secrets Manager instance.", - "cloud_data_type": "region", - "immutable": true, - "optional": true, + "description": "The service ID under which the API key (see the `api_key` field) is created.If you omit this parameter, Secrets Manager generates a new service ID for your secret at its creation and adds it to the access groups that you assign.Optionally, you can use this field to provide your own service ID if you prefer to manage its access directly or retain the service ID after your secret expires, is rotated, or deleted. If you provide a service ID, do not include the `access_groups` parameter.", "computed": true }, { - "name": "created_by", - "type": "TypeString", - "description": "The unique identifier that is associated with the entity that created the secret.", + "name": "service_id_is_static", + "type": "TypeBool", + "description": "Indicates whether an `iam_credentials` secret was created with a static service ID.If it is set to `true`, the service ID for the secret was provided by the user at secret creation. If it is set to `false`, the service ID was generated by Secrets Manager.", + "computed": true + }, + { + "name": "reuse_api_key", + "type": "TypeBool", + "description": "Determines whether to use the same service ID and API key for future read operations on an`iam_credentials` secret. The value is always `true` for IAM credentials secrets managed by Terraform.", "computed": true }, { @@ -78143,15 +80805,21 @@ "computed": true }, { - "name": "secret_type", + "name": "updated_at", "type": "TypeString", - "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", + "description": "The date when a resource was recently modified. The date format follows RFC 3339.", "computed": true }, { - "name": "state_description", + "name": "next_rotation_date", "type": "TypeString", - "description": "A text representation of the secret state.", + "description": "The date that the secret is scheduled for automatic rotation.The service automatically creates a new version of the secret on its next rotation date. This field exists only for secrets that have an existing rotation policy.", + "computed": true + }, + { + "name": "created_by", + "type": "TypeString", + "description": "The unique identifier that is associated with the entity that created the secret.", "computed": true }, { @@ -78187,40 +80855,24 @@ } }, { - "name": "instance_id", - "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true - }, - { - "name": "crn", + "name": "api_key_id", "type": "TypeString", - "description": "A CRN that uniquely identifies an IBM Cloud resource.", - "cloud_data_type": "crn", + "description": "The ID of the API key that is generated for this secret.", "computed": true - }, + } + ], + "ibm_sm_iam_credentials_secret_metadata": [ { - "name": "ttl", + "name": "name", "type": "TypeString", - "description": "The time-to-live (TTL) or lease duration to assign to generated credentials.For `iam_credentials` secrets, the TTL defines for how long each generated API key remains valid. The value can be either an integer that specifies the number of seconds, or the string representation of a duration, such as `120m` or `24h`.Minimum duration is 1 minute. Maximum is 90 days.", + "description": "The human-readable name of your secret.", "computed": true }, { - "name": "access_groups", - "type": "TypeList", - "description": "Access Groups that you can use for an `iam_credentials` secret.Up to 10 Access Groups can be used for each secret.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "endpoint_type", + "name": "api_key_id", "type": "TypeString", - "description": "public or private.", - "optional": true + "description": "The ID of the API key that is generated for this secret.", + "computed": true }, { "name": "secret_group_id", @@ -78235,91 +80887,102 @@ "computed": true }, { - "name": "service_id", - "type": "TypeString", - "description": "The service ID under which the API key (see the `api_key` field) is created.If you omit this parameter, Secrets Manager generates a new service ID for your secret at its creation and adds it to the access groups that you assign.Optionally, you can use this field to provide your own service ID if you prefer to manage its access directly or retain the service ID after your secret expires, is rotated, or deleted. If you provide a service ID, do not include the `access_groups` parameter.", + "name": "versions_total", + "type": "TypeInt", + "description": "The number of versions of the secret.", "computed": true }, { - "name": "next_rotation_date", - "type": "TypeString", - "description": "The date that the secret is scheduled for automatic rotation.The service automatically creates a new version of the secret on its next rotation date. This field exists only for secrets that have an existing rotation policy.", - "computed": true + "name": "rotation", + "type": "TypeList", + "description": "Determines whether Secrets Manager rotates your secrets automatically.", + "computed": true, + "elem": { + "auto_rotate": { + "name": "auto_rotate", + "type": "TypeBool", + "description": "Determines whether Secrets Manager rotates your secret automatically.Default is `false`. If `auto_rotate` is set to `true` the service rotates your secret based on the defined interval.", + "computed": true + }, + "interval": { + "name": "interval", + "type": "TypeInt", + "description": "The length of the secret rotation time interval.", + "computed": true + }, + "rotate_keys": { + "name": "rotate_keys", + "type": "TypeBool", + "description": "Determines whether Secrets Manager rotates the private key for your public certificate automatically.Default is `false`. If it is set to `true`, the service generates and stores a new private key for your rotated certificate.", + "computed": true + }, + "unit": { + "name": "unit", + "type": "TypeString", + "description": "The units for the secret rotation time interval.", + "computed": true + } + } }, { - "name": "api_key", + "name": "created_by", "type": "TypeString", - "description": "The API key that is generated for this secret.After the secret reaches the end of its lease (see the `ttl` field), the API key is deleted automatically.", - "secure": true, - "computed": true - } - ], - "ibm_sm_iam_credentials_secret_metadata": [ - { - "name": "locks_total", - "type": "TypeInt", - "description": "The number of locks of the secret.", + "description": "The unique identifier that is associated with the entity that created the secret.", "computed": true }, { - "name": "state_description", + "name": "created_at", "type": "TypeString", - "description": "A text representation of the secret state.", + "description": "The date when a resource was created. The date format follows RFC 3339.", "computed": true }, { - "name": "service_id", - "type": "TypeString", - "description": "The service ID under which the API key (see the `api_key` field) is created.If you omit this parameter, Secrets Manager generates a new service ID for your secret at its creation and adds it to the access groups that you assign.Optionally, you can use this field to provide your own service ID if you prefer to manage its access directly or retain the service ID after your secret expires, is rotated, or deleted. If you provide a service ID, do not include the `access_groups` parameter.", - "computed": true + "name": "custom_metadata", + "type": "TypeMap", + "description": "The secret metadata that a user can customize.", + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "service_id_is_static", + "name": "downloaded", "type": "TypeBool", - "description": "Indicates whether an `iam_credentials` secret was created with a static service ID.If it is set to `true`, the service ID for the secret was provided by the user at secret creation. If it is set to `false`, the service ID was generated by Secrets Manager.", + "description": "Indicates whether the secret data that is associated with a secret version was retrieved in a call to the service API.", "computed": true }, { - "name": "next_rotation_date", - "type": "TypeString", - "description": "The date that the secret is scheduled for automatic rotation.The service automatically creates a new version of the secret on its next rotation date. This field exists only for secrets that have an existing rotation policy.", + "name": "locks_total", + "type": "TypeInt", + "description": "The number of locks of the secret.", "computed": true }, { - "name": "state", - "type": "TypeInt", - "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", - "computed": true + "name": "access_groups", + "type": "TypeList", + "description": "Access Groups that you can use for an `iam_credentials` secret.Up to 10 Access Groups can be used for each secret.", + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "updated_at", + "name": "next_rotation_date", "type": "TypeString", - "description": "The date when a resource was recently modified. The date format follows RFC 3339.", + "description": "The date that the secret is scheduled for automatic rotation.The service automatically creates a new version of the secret on its next rotation date. This field exists only for secrets that have an existing rotation policy.", "computed": true }, { - "name": "region", + "name": "ttl", "type": "TypeString", - "description": "The region of the Secrets Manager instance.", - "cloud_data_type": "region", - "immutable": true, - "optional": true, + "description": "The time-to-live (TTL) or lease duration to assign to generated credentials.For `iam_credentials` secrets, the TTL defines for how long each generated API key remains valid. The value can be either an integer that specifies the number of seconds, or the string representation of a duration, such as `120m` or `24h`.Minimum duration is 1 minute. Maximum is 90 days.", "computed": true }, { - "name": "custom_metadata", - "type": "TypeMap", - "description": "The secret metadata that a user can customize.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "endpoint_type", + "name": "secret_id", "type": "TypeString", - "description": "public or private.", - "optional": true + "description": "The ID of the secret.", + "required": true }, { "name": "crn", @@ -78329,104 +80992,92 @@ "computed": true }, { - "name": "downloaded", - "type": "TypeBool", - "description": "Indicates whether the secret data that is associated with a secret version was retrieved in a call to the service API.", - "computed": true - }, - { - "name": "secret_type", + "name": "description", "type": "TypeString", - "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", + "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", "computed": true }, { - "name": "api_key_id", + "name": "service_id", "type": "TypeString", - "description": "The ID of the API key that is generated for this secret.", + "description": "The service ID under which the API key (see the `api_key` field) is created.If you omit this parameter, Secrets Manager generates a new service ID for your secret at its creation and adds it to the access groups that you assign.Optionally, you can use this field to provide your own service ID if you prefer to manage its access directly or retain the service ID after your secret expires, is rotated, or deleted. If you provide a service ID, do not include the `access_groups` parameter.", "computed": true }, { - "name": "rotation", + "name": "labels", "type": "TypeList", - "description": "Determines whether Secrets Manager rotates your secrets automatically.", + "description": "Labels that you can use to search for secrets in your instance.Up to 30 labels can be created.", "computed": true, "elem": { - "auto_rotate": { - "name": "auto_rotate", - "type": "TypeBool", - "description": "Determines whether Secrets Manager rotates your secret automatically.Default is `false`. If `auto_rotate` is set to `true` the service rotates your secret based on the defined interval.", - "computed": true - }, - "interval": { - "name": "interval", - "type": "TypeInt", - "description": "The length of the secret rotation time interval.", - "computed": true - }, - "rotate_keys": { - "name": "rotate_keys", - "type": "TypeBool", - "description": "Determines whether Secrets Manager rotates the private key for your public certificate automatically.Default is `false`. If it is set to `true`, the service generates and stores a new private key for your rotated certificate.", - "computed": true - }, - "unit": { - "name": "unit", - "type": "TypeString", - "description": "The units for the secret rotation time interval.", - "computed": true - } + "type": "TypeString" } }, { - "name": "secret_id", - "type": "TypeString", - "description": "The ID of the secret.", - "required": true + "name": "reuse_api_key", + "type": "TypeBool", + "description": "Determines whether to use the same service ID and API key for future read operations on an`iam_credentials` secret. The value is always `true` for IAM credentials secrets managed by Terraform.", + "computed": true }, { - "name": "description", + "name": "region", "type": "TypeString", - "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", + "description": "The region of the Secrets Manager instance.", + "cloud_data_type": "region", + "immutable": true, + "optional": true, "computed": true }, { - "name": "secret_group_id", + "name": "endpoint_type", "type": "TypeString", - "description": "A v4 UUID identifier, or `default` secret group.", + "description": "public or private.", + "optional": true + }, + { + "name": "secret_type", + "type": "TypeString", + "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", "computed": true }, { - "name": "reuse_api_key", + "name": "instance_id", + "type": "TypeString", + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true + }, + { + "name": "service_id_is_static", "type": "TypeBool", - "description": "Determines whether to use the same service ID and API key for future read operations on an`iam_credentials` secret. The value is always `true` for IAM credentials secrets managed by Terraform.", + "description": "Indicates whether an `iam_credentials` secret was created with a static service ID.If it is set to `true`, the service ID for the secret was provided by the user at secret creation. If it is set to `false`, the service ID was generated by Secrets Manager.", "computed": true }, { - "name": "versions_total", + "name": "state", "type": "TypeInt", - "description": "The number of versions of the secret.", + "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", "computed": true }, { - "name": "created_by", + "name": "state_description", "type": "TypeString", - "description": "The unique identifier that is associated with the entity that created the secret.", + "description": "A text representation of the secret state.", "computed": true - }, + } + ], + "ibm_sm_imported_certificate": [ { - "name": "created_at", - "type": "TypeString", - "description": "The date when a resource was created. The date format follows RFC 3339.", + "name": "private_key_included", + "type": "TypeBool", + "description": "Indicates whether the certificate was imported with an associated private key.", "computed": true }, { - "name": "instance_id", - "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true + "name": "downloaded", + "type": "TypeBool", + "description": "Indicates whether the secret data that is associated with a secret version was retrieved in a call to the service API.", + "computed": true }, { "name": "labels", @@ -78438,38 +81089,51 @@ } }, { - "name": "name", + "name": "secret_group_id", "type": "TypeString", - "description": "The human-readable name of your secret.", + "description": "A v4 UUID identifier, or `default` secret group.", "computed": true }, { - "name": "ttl", + "name": "intermediate_included", + "type": "TypeBool", + "description": "Indicates whether the certificate was imported with an associated intermediate certificate.", + "computed": true + }, + { + "name": "key_algorithm", "type": "TypeString", - "description": "The time-to-live (TTL) or lease duration to assign to generated credentials.For `iam_credentials` secrets, the TTL defines for how long each generated API key remains valid. The value can be either an integer that specifies the number of seconds, or the string representation of a duration, such as `120m` or `24h`.Minimum duration is 1 minute. Maximum is 90 days.", + "description": "The identifier for the cryptographic algorithm used to generate the public key that is associated with the certificate.", "computed": true }, { - "name": "access_groups", - "type": "TypeList", - "description": "Access Groups that you can use for an `iam_credentials` secret.Up to 10 Access Groups can be used for each secret.", - "computed": true, - "elem": { - "type": "TypeString" - } - } - ], - "ibm_sm_imported_certificate": [ + "name": "created_by", + "type": "TypeString", + "description": "The unique identifier that is associated with the entity that created the secret.", + "computed": true + }, { - "name": "secret_group_id", + "name": "signing_algorithm", "type": "TypeString", - "description": "A v4 UUID identifier, or `default` secret group.", + "description": "The identifier for the cryptographic algorithm that was used by the issuing certificate authority to sign a certificate.", "computed": true }, { - "name": "state_description", + "name": "serial_number", "type": "TypeString", - "description": "A text representation of the secret state.", + "description": "The unique serial number that was assigned to a certificate by the issuing certificate authority.", + "computed": true + }, + { + "name": "endpoint_type", + "type": "TypeString", + "description": "public or private.", + "optional": true + }, + { + "name": "description", + "type": "TypeString", + "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", "computed": true }, { @@ -78483,6 +81147,7 @@ "name": "name", "type": "TypeString", "description": "The human-readable name of your secret.", + "optional": true, "computed": true }, { @@ -78492,21 +81157,21 @@ "computed": true }, { - "name": "endpoint_type", - "type": "TypeString", - "description": "public or private.", - "optional": true + "name": "state", + "type": "TypeInt", + "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", + "computed": true }, { - "name": "created_at", + "name": "updated_at", "type": "TypeString", - "description": "The date when a resource was created. The date format follows RFC 3339.", + "description": "The date when a resource was recently modified. The date format follows RFC 3339.", "computed": true }, { - "name": "expiration_date", + "name": "common_name", "type": "TypeString", - "description": "The date a secret is expired. The date format follows RFC 3339.", + "description": "The Common Name (AKA CN) represents the server name protected by the SSL certificate.", "computed": true }, { @@ -78516,9 +81181,31 @@ "computed": true }, { - "name": "key_algorithm", + "name": "secret_id", "type": "TypeString", - "description": "The identifier for the cryptographic algorithm used to generate the public key that is associated with the certificate.", + "description": "The ID of the secret.", + "optional": true, + "computed": true + }, + { + "name": "custom_metadata", + "type": "TypeMap", + "description": "The secret metadata that a user can customize.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "secret_group_name", + "type": "TypeString", + "description": "The human-readable name of your secret group.", + "optional": true + }, + { + "name": "versions_total", + "type": "TypeInt", + "description": "The number of versions of the secret.", "computed": true }, { @@ -78531,12 +81218,11 @@ } }, { - "name": "instance_id", + "name": "private_key", "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true + "description": "(Optional) The PEM-encoded private key to associate with the certificate.", + "secure": true, + "computed": true }, { "name": "region", @@ -78548,49 +81234,36 @@ "computed": true }, { - "name": "secret_id", + "name": "created_at", "type": "TypeString", - "description": "The ID of the secret.", - "required": true - }, - { - "name": "custom_metadata", - "type": "TypeMap", - "description": "The secret metadata that a user can customize.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "downloaded", - "type": "TypeBool", - "description": "Indicates whether the secret data that is associated with a secret version was retrieved in a call to the service API.", + "description": "The date when a resource was created. The date format follows RFC 3339.", "computed": true }, { - "name": "versions_total", - "type": "TypeInt", - "description": "The number of versions of the secret.", + "name": "certificate", + "type": "TypeString", + "description": "The PEM-encoded contents of your certificate.", + "secure": true, "computed": true }, { - "name": "common_name", + "name": "instance_id", "type": "TypeString", - "description": "The Common Name (AKA CN) represents the server name protected by the SSL certificate.", - "computed": true + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true }, { - "name": "intermediate_included", - "type": "TypeBool", - "description": "Indicates whether the certificate was imported with an associated intermediate certificate.", + "name": "locks_total", + "type": "TypeInt", + "description": "The number of locks of the secret.", "computed": true }, { - "name": "private_key", + "name": "expiration_date", "type": "TypeString", - "description": "(Optional) The PEM-encoded private key to associate with the certificate.", - "secure": true, + "description": "The date a secret is expired. The date format follows RFC 3339.", "computed": true }, { @@ -78614,31 +81287,25 @@ } }, { - "name": "created_by", + "name": "intermediate", "type": "TypeString", - "description": "The unique identifier that is associated with the entity that created the secret.", + "description": "(Optional) The PEM-encoded intermediate certificate to associate with the root certificate.", + "secure": true, "computed": true }, { - "name": "description", + "name": "state_description", "type": "TypeString", - "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", + "description": "A text representation of the secret state.", "computed": true - }, - { - "name": "labels", - "type": "TypeList", - "description": "Labels that you can use to search for secrets in your instance.Up to 30 labels can be created.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, + } + ], + "ibm_sm_imported_certificate_metadata": [ { - "name": "signing_algorithm", + "name": "endpoint_type", "type": "TypeString", - "description": "The identifier for the cryptographic algorithm that was used by the issuing certificate authority to sign a certificate.", - "computed": true + "description": "public or private.", + "optional": true }, { "name": "locks_total", @@ -78647,29 +81314,25 @@ "computed": true }, { - "name": "updated_at", + "name": "secret_type", "type": "TypeString", - "description": "The date when a resource was recently modified. The date format follows RFC 3339.", + "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", "computed": true }, { - "name": "intermediate", + "name": "updated_at", "type": "TypeString", - "description": "(Optional) The PEM-encoded intermediate certificate to associate with the root certificate.", - "secure": true, - "computed": true - }, - { - "name": "state", - "type": "TypeInt", - "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", + "description": "The date when a resource was recently modified. The date format follows RFC 3339.", "computed": true }, { - "name": "private_key_included", - "type": "TypeBool", - "description": "Indicates whether the certificate was imported with an associated private key.", - "computed": true + "name": "alt_names", + "type": "TypeList", + "description": "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", + "computed": true, + "elem": { + "type": "TypeString" + } }, { "name": "serial_number", @@ -78678,18 +81341,12 @@ "computed": true }, { - "name": "certificate", - "type": "TypeString", - "description": "The PEM-encoded contents of your certificate.", - "secure": true, - "computed": true - } - ], - "ibm_sm_imported_certificate_metadata": [ - { - "name": "created_at", + "name": "region", "type": "TypeString", - "description": "The date when a resource was created. The date format follows RFC 3339.", + "description": "The region of the Secrets Manager instance.", + "cloud_data_type": "region", + "immutable": true, + "optional": true, "computed": true }, { @@ -78699,60 +81356,44 @@ "computed": true }, { - "name": "expiration_date", + "name": "name", "type": "TypeString", - "description": "The date a secret is expired. The date format follows RFC 3339.", + "description": "The human-readable name of your secret.", "computed": true }, { - "name": "issuer", + "name": "expiration_date", "type": "TypeString", - "description": "The distinguished name that identifies the entity that signed and issued the certificate.", + "description": "The date a secret is expired. The date format follows RFC 3339.", "computed": true }, { - "name": "state_description", - "type": "TypeString", - "description": "A text representation of the secret state.", + "name": "intermediate_included", + "type": "TypeBool", + "description": "Indicates whether the certificate was imported with an associated intermediate certificate.", "computed": true }, { - "name": "key_algorithm", + "name": "instance_id", "type": "TypeString", - "description": "The identifier for the cryptographic algorithm used to generate the public key that is associated with the certificate.", - "computed": true + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true }, { - "name": "validity", - "type": "TypeList", - "description": "The date and time that the certificate validity period begins and ends.", + "name": "custom_metadata", + "type": "TypeMap", + "description": "The secret metadata that a user can customize.", "computed": true, "elem": { - "not_after": { - "name": "not_after", - "type": "TypeString", - "description": "The date-time format follows RFC 3339.", - "computed": true - }, - "not_before": { - "name": "not_before", - "type": "TypeString", - "description": "The date-time format follows RFC 3339.", - "computed": true - } + "type": "TypeString" } }, { - "name": "created_by", - "type": "TypeString", - "description": "The unique identifier that is associated with the entity that created the secret.", - "computed": true - }, - { - "name": "crn", + "name": "description", "type": "TypeString", - "description": "A CRN that uniquely identifies an IBM Cloud resource.", - "cloud_data_type": "crn", + "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", "computed": true }, { @@ -78762,30 +81403,21 @@ "computed": true }, { - "name": "state", + "name": "versions_total", "type": "TypeInt", - "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", + "description": "The number of versions of the secret.", "computed": true }, { - "name": "custom_metadata", - "type": "TypeMap", - "description": "The secret metadata that a user can customize.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "locks_total", - "type": "TypeInt", - "description": "The number of locks of the secret.", + "name": "common_name", + "type": "TypeString", + "description": "The Common Name (AKA CN) represents the server name protected by the SSL certificate.", "computed": true }, { - "name": "name", - "type": "TypeString", - "description": "The human-readable name of your secret.", + "name": "private_key_included", + "type": "TypeBool", + "description": "Indicates whether the certificate was imported with an associated private key.", "computed": true }, { @@ -78798,103 +81430,99 @@ } }, { - "name": "secret_id", + "name": "state_description", "type": "TypeString", - "description": "The ID of the secret.", - "required": true + "description": "A text representation of the secret state.", + "computed": true }, { - "name": "instance_id", + "name": "signing_algorithm", "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true + "description": "The identifier for the cryptographic algorithm that was used by the issuing certificate authority to sign a certificate.", + "computed": true }, { - "name": "alt_names", + "name": "validity", "type": "TypeList", - "description": "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", + "description": "The date and time that the certificate validity period begins and ends.", "computed": true, "elem": { - "type": "TypeString" + "not_after": { + "name": "not_after", + "type": "TypeString", + "description": "The date-time format follows RFC 3339.", + "computed": true + }, + "not_before": { + "name": "not_before", + "type": "TypeString", + "description": "The date-time format follows RFC 3339.", + "computed": true + } } }, { - "name": "intermediate_included", - "type": "TypeBool", - "description": "Indicates whether the certificate was imported with an associated intermediate certificate.", - "computed": true - }, - { - "name": "private_key_included", - "type": "TypeBool", - "description": "Indicates whether the certificate was imported with an associated private key.", - "computed": true - }, - { - "name": "serial_number", + "name": "secret_id", "type": "TypeString", - "description": "The unique serial number that was assigned to a certificate by the issuing certificate authority.", - "computed": true + "description": "The ID of the secret.", + "required": true }, { - "name": "region", + "name": "crn", "type": "TypeString", - "description": "The region of the Secrets Manager instance.", - "cloud_data_type": "region", - "immutable": true, - "optional": true, + "description": "A CRN that uniquely identifies an IBM Cloud resource.", + "cloud_data_type": "crn", "computed": true }, { - "name": "description", - "type": "TypeString", - "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", + "name": "state", + "type": "TypeInt", + "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", "computed": true }, { - "name": "updated_at", + "name": "created_by", "type": "TypeString", - "description": "The date when a resource was recently modified. The date format follows RFC 3339.", + "description": "The unique identifier that is associated with the entity that created the secret.", "computed": true }, { - "name": "versions_total", - "type": "TypeInt", - "description": "The number of versions of the secret.", + "name": "key_algorithm", + "type": "TypeString", + "description": "The identifier for the cryptographic algorithm used to generate the public key that is associated with the certificate.", "computed": true }, { - "name": "endpoint_type", + "name": "issuer", "type": "TypeString", - "description": "public or private.", - "optional": true + "description": "The distinguished name that identifies the entity that signed and issued the certificate.", + "computed": true }, { - "name": "secret_type", + "name": "created_at", "type": "TypeString", - "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", + "description": "The date when a resource was created. The date format follows RFC 3339.", "computed": true - }, + } + ], + "ibm_sm_kv_secret": [ { - "name": "signing_algorithm", + "name": "updated_at", "type": "TypeString", - "description": "The identifier for the cryptographic algorithm that was used by the issuing certificate authority to sign a certificate.", + "description": "The date when a resource was recently modified. The date format follows RFC 3339.", "computed": true }, { - "name": "common_name", + "name": "secret_id", "type": "TypeString", - "description": "The Common Name (AKA CN) represents the server name protected by the SSL certificate.", + "description": "The ID of the secret.", + "optional": true, "computed": true - } - ], - "ibm_sm_kv_secret": [ + }, { - "name": "name", + "name": "created_by", "type": "TypeString", - "description": "The human-readable name of your secret.", + "description": "The unique identifier that is associated with the entity that created the secret.", "computed": true }, { @@ -78904,16 +81532,9 @@ "computed": true }, { - "name": "state_description", - "type": "TypeString", - "description": "A text representation of the secret state.", - "computed": true - }, - { - "name": "crn", + "name": "description", "type": "TypeString", - "description": "A CRN that uniquely identifies an IBM Cloud resource.", - "cloud_data_type": "crn", + "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", "computed": true }, { @@ -78923,30 +81544,27 @@ "computed": true }, { - "name": "labels", - "type": "TypeList", - "description": "Labels that you can use to search for secrets in your instance.Up to 30 labels can be created.", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "secret_group_name", + "type": "TypeString", + "description": "The human-readable name of your secret group.", + "optional": true }, { - "name": "created_by", + "name": "secret_type", "type": "TypeString", - "description": "The unique identifier that is associated with the entity that created the secret.", + "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", "computed": true }, { - "name": "created_at", + "name": "state_description", "type": "TypeString", - "description": "The date when a resource was created. The date format follows RFC 3339.", + "description": "A text representation of the secret state.", "computed": true }, { - "name": "secret_group_id", - "type": "TypeString", - "description": "A v4 UUID identifier, or `default` secret group.", + "name": "versions_total", + "type": "TypeInt", + "description": "The number of versions of the secret.", "computed": true }, { @@ -78960,18 +81578,11 @@ } }, { - "name": "region", + "name": "instance_id", "type": "TypeString", - "description": "The region of the Secrets Manager instance.", - "cloud_data_type": "region", + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", "immutable": true, - "optional": true, - "computed": true - }, - { - "name": "secret_id", - "type": "TypeString", - "description": "The ID of the secret.", "required": true }, { @@ -78984,37 +81595,63 @@ } }, { - "name": "versions_total", - "type": "TypeInt", - "description": "The number of versions of the secret.", + "name": "labels", + "type": "TypeList", + "description": "Labels that you can use to search for secrets in your instance.Up to 30 labels can be created.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "name", + "type": "TypeString", + "description": "The human-readable name of your secret.", + "optional": true, "computed": true }, { - "name": "updated_at", + "name": "endpoint_type", "type": "TypeString", - "description": "The date when a resource was recently modified. The date format follows RFC 3339.", + "description": "public or private.", + "optional": true + }, + { + "name": "secret_group_id", + "type": "TypeString", + "description": "A v4 UUID identifier, or `default` secret group.", "computed": true }, { - "name": "instance_id", + "name": "region", "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", + "description": "The region of the Secrets Manager instance.", + "cloud_data_type": "region", "immutable": true, - "required": true + "optional": true, + "computed": true }, { - "name": "endpoint_type", + "name": "created_at", "type": "TypeString", - "description": "public or private.", - "optional": true + "description": "The date when a resource was created. The date format follows RFC 3339.", + "computed": true }, { - "name": "description", + "name": "crn", "type": "TypeString", - "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", + "description": "A CRN that uniquely identifies an IBM Cloud resource.", + "cloud_data_type": "crn", "computed": true }, + { + "name": "locks_total", + "type": "TypeInt", + "description": "The number of locks of the secret.", + "computed": true + } + ], + "ibm_sm_kv_secret_metadata": [ { "name": "locks_total", "type": "TypeInt", @@ -79022,39 +81659,37 @@ "computed": true }, { - "name": "secret_type", + "name": "name", "type": "TypeString", - "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", + "description": "The human-readable name of your secret.", "computed": true - } - ], - "ibm_sm_kv_secret_metadata": [ + }, { - "name": "labels", - "type": "TypeList", - "description": "Labels that you can use to search for secrets in your instance.Up to 30 labels can be created.", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "endpoint_type", + "type": "TypeString", + "description": "public or private.", + "optional": true }, { - "name": "secret_group_id", + "name": "instance_id", "type": "TypeString", - "description": "A v4 UUID identifier, or `default` secret group.", - "computed": true + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true }, { - "name": "versions_total", - "type": "TypeInt", - "description": "The number of versions of the secret.", - "computed": true + "name": "secret_id", + "type": "TypeString", + "description": "The ID of the secret.", + "required": true }, { - "name": "endpoint_type", + "name": "crn", "type": "TypeString", - "description": "public or private.", - "optional": true + "description": "A CRN that uniquely identifies an IBM Cloud resource.", + "cloud_data_type": "crn", + "computed": true }, { "name": "custom_metadata", @@ -79066,53 +81701,55 @@ } }, { - "name": "secret_type", + "name": "description", "type": "TypeString", - "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", + "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", "computed": true }, { - "name": "state_description", + "name": "secret_group_id", "type": "TypeString", - "description": "A text representation of the secret state.", + "description": "A v4 UUID identifier, or `default` secret group.", "computed": true }, { - "name": "crn", + "name": "secret_type", "type": "TypeString", - "description": "A CRN that uniquely identifies an IBM Cloud resource.", - "cloud_data_type": "crn", + "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", "computed": true }, { - "name": "description", - "type": "TypeString", - "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", + "name": "state", + "type": "TypeInt", + "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", "computed": true }, { - "name": "locks_total", - "type": "TypeInt", - "description": "The number of locks of the secret.", + "name": "region", + "type": "TypeString", + "description": "The region of the Secrets Manager instance.", + "cloud_data_type": "region", + "immutable": true, + "optional": true, "computed": true }, { - "name": "name", + "name": "created_at", "type": "TypeString", - "description": "The human-readable name of your secret.", + "description": "The date when a resource was created. The date format follows RFC 3339.", "computed": true }, { - "name": "state", - "type": "TypeInt", - "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", + "name": "downloaded", + "type": "TypeBool", + "description": "Indicates whether the secret data that is associated with a secret version was retrieved in a call to the service API.", "computed": true }, { - "name": "secret_id", - "type": "TypeString", - "description": "The ID of the secret.", - "required": true + "name": "versions_total", + "type": "TypeInt", + "description": "The number of versions of the secret.", + "computed": true }, { "name": "created_by", @@ -79121,9 +81758,18 @@ "computed": true }, { - "name": "created_at", + "name": "labels", + "type": "TypeList", + "description": "Labels that you can use to search for secrets in your instance.Up to 30 labels can be created.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "state_description", "type": "TypeString", - "description": "The date when a resource was created. The date format follows RFC 3339.", + "description": "A text representation of the secret state.", "computed": true }, { @@ -79131,60 +81777,56 @@ "type": "TypeString", "description": "The date when a resource was recently modified. The date format follows RFC 3339.", "computed": true - }, + } + ], + "ibm_sm_private_certificate": [ { - "name": "region", + "name": "issuer", "type": "TypeString", - "description": "The region of the Secrets Manager instance.", - "cloud_data_type": "region", - "immutable": true, - "optional": true, + "description": "The distinguished name that identifies the entity that signed and issued the certificate.", "computed": true }, { - "name": "downloaded", - "type": "TypeBool", - "description": "Indicates whether the secret data that is associated with a secret version was retrieved in a call to the service API.", + "name": "private_key", + "type": "TypeString", + "description": "(Optional) The PEM-encoded private key to associate with the certificate.", + "secure": true, "computed": true }, { - "name": "instance_id", + "name": "endpoint_type", "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true - } - ], - "ibm_sm_private_certificate": [ + "description": "public or private.", + "optional": true + }, { - "name": "downloaded", - "type": "TypeBool", - "description": "Indicates whether the secret data that is associated with a secret version was retrieved in a call to the service API.", + "name": "created_at", + "type": "TypeString", + "description": "The date when a resource was created. The date format follows RFC 3339.", "computed": true }, { - "name": "certificate_authority", + "name": "secret_group_id", "type": "TypeString", - "description": "The intermediate certificate authority that signed this certificate.", + "description": "A v4 UUID identifier, or `default` secret group.", "computed": true }, { - "name": "secret_id", + "name": "state_description", "type": "TypeString", - "description": "The ID of the secret.", - "required": true + "description": "A text representation of the secret state.", + "computed": true }, { - "name": "created_by", + "name": "secret_type", "type": "TypeString", - "description": "The unique identifier that is associated with the entity that created the secret.", + "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", "computed": true }, { - "name": "issuer", + "name": "key_algorithm", "type": "TypeString", - "description": "The distinguished name that identifies the entity that signed and issued the certificate.", + "description": "The identifier for the cryptographic algorithm used to generate the public key that is associated with the certificate.", "computed": true }, { @@ -79208,15 +81850,24 @@ } }, { - "name": "revocation_time_rfc3339", + "name": "issuing_ca", "type": "TypeString", - "description": "The date and time that the certificate was revoked. The date format follows RFC 3339.", + "description": "The PEM-encoded certificate of the certificate authority that signed and issued this certificate.", + "secure": true, "computed": true }, { - "name": "certificate_template", + "name": "secret_id", "type": "TypeString", - "description": "The name of the certificate template.", + "description": "The ID of the secret.", + "optional": true, + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The human-readable name of your secret.", + "optional": true, "computed": true }, { @@ -79232,41 +81883,27 @@ "computed": true }, { - "name": "endpoint_type", + "name": "secret_group_name", "type": "TypeString", - "description": "public or private.", + "description": "The human-readable name of your secret group.", "optional": true }, { - "name": "secret_group_id", - "type": "TypeString", - "description": "A v4 UUID identifier, or `default` secret group.", - "computed": true - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "The date when a resource was recently modified. The date format follows RFC 3339.", - "computed": true - }, - { - "name": "key_algorithm", - "type": "TypeString", - "description": "The identifier for the cryptographic algorithm used to generate the public key that is associated with the certificate.", + "name": "state", + "type": "TypeInt", + "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", "computed": true }, { - "name": "certificate", + "name": "signing_algorithm", "type": "TypeString", - "description": "The PEM-encoded contents of your certificate.", - "secure": true, + "description": "The identifier for the cryptographic algorithm that was used by the issuing certificate authority to sign a certificate.", "computed": true }, { - "name": "ca_chain", + "name": "alt_names", "type": "TypeList", - "description": "The chain of certificate authorities that are associated with the certificate.", - "secure": true, + "description": "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", "computed": true, "elem": { "type": "TypeString" @@ -79280,27 +81917,45 @@ "computed": true }, { - "name": "name", + "name": "description", "type": "TypeString", - "description": "The human-readable name of your secret.", + "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", "computed": true }, { - "name": "secret_type", + "name": "downloaded", + "type": "TypeBool", + "description": "Indicates whether the secret data that is associated with a secret version was retrieved in a call to the service API.", + "computed": true + }, + { + "name": "common_name", "type": "TypeString", - "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", + "description": "The Common Name (AKA CN) represents the server name that is protected by the SSL certificate.", "computed": true }, { - "name": "state_description", + "name": "serial_number", "type": "TypeString", - "description": "A text representation of the secret state.", + "description": "The unique serial number that was assigned to a certificate by the issuing certificate authority.", "computed": true }, { - "name": "signing_algorithm", + "name": "revocation_time_seconds", + "type": "TypeInt", + "description": "The timestamp of the certificate revocation.", + "computed": true + }, + { + "name": "certificate_template", "type": "TypeString", - "description": "The identifier for the cryptographic algorithm that was used by the issuing certificate authority to sign a certificate.", + "description": "The name of the certificate template.", + "computed": true + }, + { + "name": "next_rotation_date", + "type": "TypeString", + "description": "The date that the secret is scheduled for automatic rotation.The service automatically creates a new version of the secret on its next rotation date. This field exists only for secrets that have an existing rotation policy.", "computed": true }, { @@ -79336,10 +81991,9 @@ } }, { - "name": "issuing_ca", + "name": "created_by", "type": "TypeString", - "description": "The PEM-encoded certificate of the certificate authority that signed and issued this certificate.", - "secure": true, + "description": "The unique identifier that is associated with the entity that created the secret.", "computed": true }, { @@ -79352,16 +82006,20 @@ } }, { - "name": "description", - "type": "TypeString", - "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", + "name": "versions_total", + "type": "TypeInt", + "description": "The number of versions of the secret.", "computed": true }, { - "name": "next_rotation_date", - "type": "TypeString", - "description": "The date that the secret is scheduled for automatic rotation.The service automatically creates a new version of the secret on its next rotation date. This field exists only for secrets that have an existing rotation policy.", - "computed": true + "name": "ca_chain", + "type": "TypeList", + "description": "The chain of certificate authorities that are associated with the certificate.", + "secure": true, + "computed": true, + "elem": { + "type": "TypeString" + } }, { "name": "instance_id", @@ -79372,36 +82030,21 @@ "required": true }, { - "name": "created_at", + "name": "updated_at", "type": "TypeString", - "description": "The date when a resource was created. The date format follows RFC 3339.", - "computed": true - }, - { - "name": "state", - "type": "TypeInt", - "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", + "description": "The date when a resource was recently modified. The date format follows RFC 3339.", "computed": true }, { - "name": "alt_names", - "type": "TypeList", - "description": "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "common_name", + "name": "certificate_authority", "type": "TypeString", - "description": "The Common Name (AKA CN) represents the server name that is protected by the SSL certificate.", + "description": "The intermediate certificate authority that signed this certificate.", "computed": true }, { - "name": "revocation_time_seconds", - "type": "TypeInt", - "description": "The timestamp of the certificate revocation.", + "name": "revocation_time_rfc3339", + "type": "TypeString", + "description": "The date and time that the certificate was revoked. The date format follows RFC 3339.", "computed": true }, { @@ -79414,9 +82057,10 @@ } }, { - "name": "versions_total", - "type": "TypeInt", - "description": "The number of versions of the secret.", + "name": "certificate", + "type": "TypeString", + "description": "The PEM-encoded contents of your certificate.", + "secure": true, "computed": true }, { @@ -79427,149 +82071,117 @@ "immutable": true, "optional": true, "computed": true - }, - { - "name": "serial_number", - "type": "TypeString", - "description": "The unique serial number that was assigned to a certificate by the issuing certificate authority.", - "computed": true - }, - { - "name": "private_key", - "type": "TypeString", - "description": "(Optional) The PEM-encoded private key to associate with the certificate.", - "secure": true, - "computed": true } ], "ibm_sm_private_certificate_configuration_intermediate_ca": [ { - "name": "crl_distribution_points_encoded", + "name": "issuing_certificates_urls_encoded", "type": "TypeBool", - "description": "Determines whether to encode the certificate revocation list (CRL) distribution points in the certificates that are issued by this certificate authority.", + "description": "Determines whether to encode the URL of the issuing certificate in the certificates that are issued by this certificate authority.", "computed": true }, { - "name": "key_type", + "name": "common_name", "type": "TypeString", - "description": "The type of private key to generate.", + "description": "The Common Name (AKA CN) represents the server name that is protected by the SSL certificate.", "computed": true }, { - "name": "exclude_cn_from_sans", - "type": "TypeBool", - "description": "Controls whether the common name is excluded from Subject Alternative Names (SANs).If the common name set to `true`, it is not included in DNS or Email SANs if they apply. This field can be useful if the common name is a human-readable identifier, instead of a hostname or an email address.", + "name": "private_key_format", + "type": "TypeString", + "description": "The format of the generated private key.", "computed": true }, { - "name": "ou", - "type": "TypeList", - "description": "The Organizational Unit (OU) values to define in the subject field of the resulting certificate.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "country", + "name": "postal_code", "type": "TypeList", - "description": "The Country (C) values to define in the subject field of the resulting certificate.", + "description": "The postal code values to define in the subject field of the resulting certificate.", "computed": true, "elem": { "type": "TypeString" } }, { - "name": "config_type", + "name": "instance_id", "type": "TypeString", - "description": "Th configuration type.", - "computed": true + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true }, { - "name": "issuer", - "type": "TypeString", - "description": "The distinguished name that identifies the entity that signed and issued the certificate.", + "name": "crl_disable", + "type": "TypeBool", + "description": "Disables or enables certificate revocation list (CRL) building.If CRL building is disabled, a signed but zero-length CRL is returned when downloading the CRL. If CRL building is enabled, it will rebuild the CRL.", "computed": true }, { - "name": "private_key_format", + "name": "key_type", "type": "TypeString", - "description": "The format of the generated private key.", + "description": "The type of private key to generate.", "computed": true }, { - "name": "postal_code", + "name": "organization", "type": "TypeList", - "description": "The postal code values to define in the subject field of the resulting certificate.", + "description": "The Organization (O) values to define in the subject field of the resulting certificate.", "computed": true, "elem": { "type": "TypeString" } }, { - "name": "status", + "name": "ip_sans", "type": "TypeString", - "description": "The status of the certificate authority. The status of a root certificate authority is either `configured` or `expired`. For intermediate certificate authorities, possible statuses include `signing_required`,`signed_certificate_required`, `certificate_template_required`, `configured`, `expired` or `revoked`.", + "description": "The IP Subject Alternative Names to define for the CA certificate, in a comma-delimited list.", "computed": true }, { - "name": "expiration_date", + "name": "status", "type": "TypeString", - "description": "The date a secret is expired. The date format follows RFC 3339.", + "description": "The status of the certificate authority. The status of a root certificate authority is either `configured` or `expired`. For intermediate certificate authorities, possible statuses include `signing_required`,`signed_certificate_required`, `certificate_template_required`, `configured`, `expired` or `revoked`.", "computed": true }, { - "name": "common_name", + "name": "endpoint_type", "type": "TypeString", - "description": "The Common Name (AKA CN) represents the server name that is protected by the SSL certificate.", - "computed": true + "description": "public or private.", + "optional": true }, { - "name": "alt_names", - "type": "TypeList", - "description": "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "name", + "type": "TypeString", + "description": "The name of the configuration.", + "required": true }, { - "name": "street_address", - "type": "TypeList", - "description": "The street address values to define in the subject field of the resulting certificate.", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "config_type", + "type": "TypeString", + "description": "Th configuration type.", + "computed": true }, { - "name": "organization", - "type": "TypeList", - "description": "The Organization (O) values to define in the subject field of the resulting certificate.", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "signing_method", + "type": "TypeString", + "description": "The signing method to use with this certificate authority to generate private certificates.You can choose between internal or externally signed options. For more information, see the [docs](https://cloud.ibm.com/docs/secrets-manager?topic=secrets-manager-intermediate-certificate-authorities).", + "computed": true }, { - "name": "province", + "name": "other_sans", "type": "TypeList", - "description": "The Province (ST) values to define in the subject field of the resulting certificate.", + "description": "The custom Object Identifier (OID) or UTF8-string Subject Alternative Names to define for the CA certificate.The alternative names must match the values that are specified in the `allowed_other_sans` field in the associated certificate template. The format is the same as OpenSSL: `\u003coid\u003e:\u003ctype\u003e:\u003cvalue\u003e` where the current valid type is `UTF8`.", "computed": true, "elem": { "type": "TypeString" } }, { - "name": "crl_expiry_seconds", - "type": "TypeInt", - "description": "The time until the certificate revocation list (CRL) expires, in seconds.", - "computed": true - }, - { - "name": "uri_sans", + "name": "region", "type": "TypeString", - "description": "The URI Subject Alternative Names to define for the CA certificate, in a comma-delimited list.", + "description": "The region of the Secrets Manager instance.", + "cloud_data_type": "region", + "immutable": true, + "optional": true, "computed": true }, { @@ -79582,9 +82194,21 @@ } }, { - "name": "ip_sans", + "name": "serial_number", "type": "TypeString", - "description": "The IP Subject Alternative Names to define for the CA certificate, in a comma-delimited list.", + "description": "The serial number to assign to the generated certificate. To assign a random serial number, you can omit this field.", + "computed": true + }, + { + "name": "max_ttl_seconds", + "type": "TypeInt", + "description": "The maximum time-to-live (TTL) for certificates that are created by this CA in seconds.", + "computed": true + }, + { + "name": "issuer", + "type": "TypeString", + "description": "The distinguished name that identifies the entity that signed and issued the certificate.", "computed": true }, { @@ -79594,30 +82218,27 @@ "computed": true }, { - "name": "other_sans", + "name": "ou", "type": "TypeList", - "description": "The custom Object Identifier (OID) or UTF8-string Subject Alternative Names to define for the CA certificate.The alternative names must match the values that are specified in the `allowed_other_sans` field in the associated certificate template. The format is the same as OpenSSL: `\u003coid\u003e:\u003ctype\u003e:\u003cvalue\u003e` where the current valid type is `UTF8`.", + "description": "The Organizational Unit (OU) values to define in the subject field of the resulting certificate.", "computed": true, "elem": { "type": "TypeString" } }, { - "name": "serial_number", - "type": "TypeString", - "description": "The serial number to assign to the generated certificate. To assign a random serial number, you can omit this field.", - "computed": true + "name": "alt_names", + "type": "TypeList", + "description": "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "secret_type", + "name": "uri_sans", "type": "TypeString", - "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", - "computed": true - }, - { - "name": "issuing_certificates_urls_encoded", - "type": "TypeBool", - "description": "Determines whether to encode the URL of the issuing certificate in the certificates that are issued by this certificate authority.", + "description": "The URI Subject Alternative Names to define for the CA certificate, in a comma-delimited list.", "computed": true }, { @@ -79627,30 +82248,27 @@ "computed": true }, { - "name": "region", - "type": "TypeString", - "description": "The region of the Secrets Manager instance.", - "cloud_data_type": "region", - "immutable": true, - "optional": true, - "computed": true - }, - { - "name": "endpoint_type", - "type": "TypeString", - "description": "public or private.", - "optional": true + "name": "province", + "type": "TypeList", + "description": "The Province (ST) values to define in the subject field of the resulting certificate.", + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "name", - "type": "TypeString", - "description": "The name of the configuration.", - "required": true + "name": "street_address", + "type": "TypeList", + "description": "The street address values to define in the subject field of the resulting certificate.", + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "signing_method", + "name": "expiration_date", "type": "TypeString", - "description": "The signing method to use with this certificate authority to generate private certificates.You can choose between internal or externally signed options. For more information, see the [docs](https://cloud.ibm.com/docs/secrets-manager?topic=secrets-manager-intermediate-certificate-authorities).", + "description": "The date a secret is expired. The date format follows RFC 3339.", "computed": true }, { @@ -79711,55 +82329,53 @@ } }, { - "name": "instance_id", - "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true - }, - { - "name": "max_ttl_seconds", + "name": "crl_expiry_seconds", "type": "TypeInt", - "description": "The maximum time-to-live (TTL) for certificates that are created by this CA in seconds.", + "description": "The time until the certificate revocation list (CRL) expires, in seconds.", "computed": true }, { - "name": "crl_disable", + "name": "exclude_cn_from_sans", "type": "TypeBool", - "description": "Disables or enables certificate revocation list (CRL) building.If CRL building is disabled, a signed but zero-length CRL is returned when downloading the CRL. If CRL building is enabled, it will rebuild the CRL.", + "description": "Controls whether the common name is excluded from Subject Alternative Names (SANs).If the common name set to `true`, it is not included in DNS or Email SANs if they apply. This field can be useful if the common name is a human-readable identifier, instead of a hostname or an email address.", "computed": true - } - ], - "ibm_sm_private_certificate_configuration_root_ca": [ + }, { - "name": "created_by", - "type": "TypeString", - "description": "The unique identifier that is associated with the entity that created the secret.", - "computed": true + "name": "country", + "type": "TypeList", + "description": "The Country (C) values to define in the subject field of the resulting certificate.", + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "updated_at", + "name": "secret_type", "type": "TypeString", - "description": "The date when a resource was recently modified. The date format follows RFC 3339.", + "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", "computed": true }, { - "name": "max_ttl_seconds", - "type": "TypeInt", - "description": "The maximum time-to-live (TTL) for certificates that are created by this CA in seconds.", + "name": "crl_distribution_points_encoded", + "type": "TypeBool", + "description": "Determines whether to encode the certificate revocation list (CRL) distribution points in the certificates that are issued by this certificate authority.", "computed": true - }, + } + ], + "ibm_sm_private_certificate_configuration_root_ca": [ { - "name": "common_name", + "name": "updated_at", "type": "TypeString", - "description": "The Common Name (AKA CN) represents the server name that is protected by the SSL certificate.", + "description": "The date when a resource was recently modified. The date format follows RFC 3339.", "computed": true }, { - "name": "max_path_length", - "type": "TypeInt", - "description": "The maximum path length to encode in the generated certificate. `-1` means no limit.If the signing certificate has a maximum path length set, the path length is set to one less than that of the signing certificate. A limit of `0` means a literal path length of zero.", + "name": "region", + "type": "TypeString", + "description": "The region of the Secrets Manager instance.", + "cloud_data_type": "region", + "immutable": true, + "optional": true, "computed": true }, { @@ -79781,39 +82397,42 @@ } }, { - "name": "endpoint_type", - "type": "TypeString", - "description": "public or private.", - "optional": true - }, - { - "name": "name", + "name": "created_at", "type": "TypeString", - "description": "The name of the configuration.", - "required": true + "description": "The date when a resource was created. The date format follows RFC 3339.", + "computed": true }, { - "name": "secret_type", - "type": "TypeString", - "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", + "name": "crl_disable", + "type": "TypeBool", + "description": "Disables or enables certificate revocation list (CRL) building.If CRL building is disabled, a signed but zero-length CRL is returned when downloading the CRL. If CRL building is enabled, it will rebuild the CRL.", "computed": true }, { - "name": "issuing_certificates_urls_encoded", + "name": "crl_distribution_points_encoded", "type": "TypeBool", - "description": "Determines whether to encode the URL of the issuing certificate in the certificates that are issued by this certificate authority.", + "description": "Determines whether to encode the certificate revocation list (CRL) distribution points in the certificates that are issued by this certificate authority.", "computed": true }, { - "name": "format", + "name": "alt_names", + "type": "TypeList", + "description": "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "ip_sans", "type": "TypeString", - "description": "The format of the returned data.", + "description": "The IP Subject Alternative Names to define for the CA certificate, in a comma-delimited list.", "computed": true }, { - "name": "key_bits", + "name": "ttl_seconds", "type": "TypeInt", - "description": "The number of bits to use to generate the private key.Allowable values for RSA keys are: `2048` and `4096`. Allowable values for EC keys are: `224`, `256`, `384`, and `521`. The default for RSA keys is `2048`. The default for EC keys is `256`.", + "description": "The requested time-to-live (TTL) for certificates that are created by this CA. This field's value cannot be longer than the `max_ttl` limit.The value can be supplied as a string representation of a duration in hours, for example '8760h'. In the API response, this value is returned in seconds (integer).", "computed": true }, { @@ -79826,59 +82445,133 @@ } }, { - "name": "alt_names", + "name": "postal_code", "type": "TypeList", - "description": "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", + "description": "The postal code values to define in the subject field of the resulting certificate.", "computed": true, "elem": { "type": "TypeString" } }, { - "name": "uri_sans", + "name": "status", "type": "TypeString", - "description": "The URI Subject Alternative Names to define for the CA certificate, in a comma-delimited list.", + "description": "The status of the certificate authority. The status of a root certificate authority is either `configured` or `expired`. For intermediate certificate authorities, possible statuses include `signing_required`,`signed_certificate_required`, `certificate_template_required`, `configured`, `expired` or `revoked`.", "computed": true }, { - "name": "postal_code", + "name": "endpoint_type", + "type": "TypeString", + "description": "public or private.", + "optional": true + }, + { + "name": "secret_type", + "type": "TypeString", + "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", + "computed": true + }, + { + "name": "key_type", + "type": "TypeString", + "description": "The type of private key to generate.", + "computed": true + }, + { + "name": "country", "type": "TypeList", - "description": "The postal code values to define in the subject field of the resulting certificate.", + "description": "The Country (C) values to define in the subject field of the resulting certificate.", "computed": true, "elem": { "type": "TypeString" } }, { - "name": "region", + "name": "province", + "type": "TypeList", + "description": "The Province (ST) values to define in the subject field of the resulting certificate.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "serial_number", "type": "TypeString", - "description": "The region of the Secrets Manager instance.", - "cloud_data_type": "region", + "description": "The serial number to assign to the generated certificate. To assign a random serial number, you can omit this field.", + "computed": true + }, + { + "name": "instance_id", + "type": "TypeString", + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", "immutable": true, - "optional": true, + "required": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The name of the configuration.", + "required": true + }, + { + "name": "config_type", + "type": "TypeString", + "description": "The configuration type.", "computed": true }, { - "name": "private_key_format", + "name": "crl_expiry_seconds", + "type": "TypeInt", + "description": "The time until the certificate revocation list (CRL) expires, in seconds.", + "computed": true + }, + { + "name": "uri_sans", "type": "TypeString", - "description": "The format of the generated private key.", + "description": "The URI Subject Alternative Names to define for the CA certificate, in a comma-delimited list.", "computed": true }, { - "name": "country", + "name": "other_sans", "type": "TypeList", - "description": "The Country (C) values to define in the subject field of the resulting certificate.", + "description": "The custom Object Identifier (OID) or UTF8-string Subject Alternative Names to define for the CA certificate.The alternative names must match the values that are specified in the `allowed_other_sans` field in the associated certificate template. The format is the same as OpenSSL: `\u003coid\u003e:\u003ctype\u003e:\u003cvalue\u003e` where the current valid type is `UTF8`.", "computed": true, "elem": { "type": "TypeString" } }, { - "name": "status", + "name": "format", "type": "TypeString", - "description": "The status of the certificate authority. The status of a root certificate authority is either `configured` or `expired`. For intermediate certificate authorities, possible statuses include `signing_required`,`signed_certificate_required`, `certificate_template_required`, `configured`, `expired` or `revoked`.", + "description": "The format of the returned data.", "computed": true }, + { + "name": "exclude_cn_from_sans", + "type": "TypeBool", + "description": "Controls whether the common name is excluded from Subject Alternative Names (SANs).If the common name set to `true`, it is not included in DNS or Email SANs if they apply. This field can be useful if the common name is a human-readable identifier, instead of a hostname or an email address.", + "computed": true + }, + { + "name": "ou", + "type": "TypeList", + "description": "The Organizational Unit (OU) values to define in the subject field of the resulting certificate.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "organization", + "type": "TypeList", + "description": "The Organization (O) values to define in the subject field of the resulting certificate.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, { "name": "data", "type": "TypeList", @@ -79938,86 +82631,59 @@ } }, { - "name": "other_sans", - "type": "TypeList", - "description": "The custom Object Identifier (OID) or UTF8-string Subject Alternative Names to define for the CA certificate.The alternative names must match the values that are specified in the `allowed_other_sans` field in the associated certificate template. The format is the same as OpenSSL: `\u003coid\u003e:\u003ctype\u003e:\u003cvalue\u003e` where the current valid type is `UTF8`.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "province", - "type": "TypeList", - "description": "The Province (ST) values to define in the subject field of the resulting certificate.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "serial_number", + "name": "common_name", "type": "TypeString", - "description": "The serial number to assign to the generated certificate. To assign a random serial number, you can omit this field.", + "description": "The Common Name (AKA CN) represents the server name that is protected by the SSL certificate.", "computed": true }, { - "name": "created_at", + "name": "created_by", "type": "TypeString", - "description": "The date when a resource was created. The date format follows RFC 3339.", + "description": "The unique identifier that is associated with the entity that created the secret.", "computed": true }, { - "name": "crl_distribution_points_encoded", - "type": "TypeBool", - "description": "Determines whether to encode the certificate revocation list (CRL) distribution points in the certificates that are issued by this certificate authority.", + "name": "private_key_format", + "type": "TypeString", + "description": "The format of the generated private key.", "computed": true }, { - "name": "ip_sans", - "type": "TypeString", - "description": "The IP Subject Alternative Names to define for the CA certificate, in a comma-delimited list.", + "name": "key_bits", + "type": "TypeInt", + "description": "The number of bits to use to generate the private key.Allowable values for RSA keys are: `2048` and `4096`. Allowable values for EC keys are: `224`, `256`, `384`, and `521`. The default for RSA keys is `2048`. The default for EC keys is `256`.", "computed": true }, { - "name": "key_type", - "type": "TypeString", - "description": "The type of private key to generate.", + "name": "max_ttl_seconds", + "type": "TypeInt", + "description": "The maximum time-to-live (TTL) for certificates that are created by this CA in seconds.", "computed": true }, { - "name": "exclude_cn_from_sans", + "name": "issuing_certificates_urls_encoded", "type": "TypeBool", - "description": "Controls whether the common name is excluded from Subject Alternative Names (SANs).If the common name set to `true`, it is not included in DNS or Email SANs if they apply. This field can be useful if the common name is a human-readable identifier, instead of a hostname or an email address.", + "description": "Determines whether to encode the URL of the issuing certificate in the certificates that are issued by this certificate authority.", "computed": true }, { - "name": "organization", - "type": "TypeList", - "description": "The Organization (O) values to define in the subject field of the resulting certificate.", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "max_path_length", + "type": "TypeInt", + "description": "The maximum path length to encode in the generated certificate. `-1` means no limit.If the signing certificate has a maximum path length set, the path length is set to one less than that of the signing certificate. A limit of `0` means a literal path length of zero.", + "computed": true }, { "name": "expiration_date", "type": "TypeString", "description": "The date a secret is expired. The date format follows RFC 3339.", "computed": true - }, - { - "name": "instance_id", - "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true - }, + } + ], + "ibm_sm_private_certificate_configuration_template": [ { - "name": "crl_expiry_seconds", - "type": "TypeInt", - "description": "The time until the certificate revocation list (CRL) expires, in seconds.", + "name": "use_csr_common_name", + "type": "TypeBool", + "description": "When used with the `private_cert_configuration_action_sign_csr` action, this field determines whether to use the common name (CN) from a certificate signing request (CSR) instead of the CN that's included in the data of the certificate.Does not include any requested Subject Alternative Names (SANs) in the CSR. To use the alternative names, include the `use_csr_sans` property.", "computed": true }, { @@ -80030,78 +82696,96 @@ } }, { - "name": "config_type", + "name": "serial_number", "type": "TypeString", - "description": "The configuration type.", + "description": "The serial number to assign to the generated certificate. To assign a random serial number, you can omit this field.", "computed": true }, { - "name": "crl_disable", + "name": "allow_localhost", "type": "TypeBool", - "description": "Disables or enables certificate revocation list (CRL) building.If CRL building is disabled, a signed but zero-length CRL is returned when downloading the CRL. If CRL building is enabled, it will rebuild the CRL.", + "description": "Determines whether to allow `localhost` to be included as one of the requested common names.", "computed": true }, { - "name": "ttl_seconds", - "type": "TypeInt", - "description": "The requested time-to-live (TTL) for certificates that are created by this CA. This field's value cannot be longer than the `max_ttl` limit.The value can be supplied as a string representation of a duration in hours, for example '8760h'. In the API response, this value is returned in seconds (integer).", + "name": "allowed_domains_template", + "type": "TypeBool", + "description": "Determines whether to allow the domains that are supplied in the `allowed_domains` field to contain access control list (ACL) templates.", "computed": true - } - ], - "ibm_sm_private_certificate_configuration_template": [ + }, { - "name": "allow_localhost", + "name": "allow_any_name", "type": "TypeBool", - "description": "Determines whether to allow `localhost` to be included as one of the requested common names.", + "description": "Determines whether to allow clients to request a private certificate that matches any common name.", "computed": true }, { - "name": "allowed_domains", + "name": "key_bits", + "type": "TypeInt", + "description": "The number of bits to use to generate the private key.Allowable values for RSA keys are: `2048` and `4096`. Allowable values for EC keys are: `224`, `256`, `384`, and `521`. The default for RSA keys is `2048`. The default for EC keys is `256`.", + "computed": true + }, + { + "name": "key_usage", "type": "TypeList", - "description": "The domains to define for the certificate template. This property is used along with the `allow_bare_domains` and `allow_subdomains` options.", + "description": "The allowed key usage constraint to define for private certificates.You can find valid values in the [Go x509 package documentation](https://pkg.go.dev/crypto/x509#KeyUsage). Omit the `KeyUsage` part of the value. Values are not case-sensitive. To specify no key usage constraints, set this field to an empty list.", "computed": true, "elem": { "type": "TypeString" } }, { - "name": "server_flag", + "name": "endpoint_type", + "type": "TypeString", + "description": "public or private.", + "optional": true + }, + { + "name": "enforce_hostnames", "type": "TypeBool", - "description": "Determines whether private certificates are flagged for server use.", + "description": "Determines whether to enforce only valid host names for common names, DNS Subject Alternative Names, and the host section of email addresses.", "computed": true }, { - "name": "key_usage", + "name": "use_csr_sans", + "type": "TypeBool", + "description": "When used with the `private_cert_configuration_action_sign_csr` action, this field determines whether to use the Subject Alternative Names(SANs) from a certificate signing request (CSR) instead of the SANs that are included in the data of the certificate.Does not include the common name in the CSR. To use the common name, include the `use_csr_common_name` property.", + "computed": true + }, + { + "name": "locality", "type": "TypeList", - "description": "The allowed key usage constraint to define for private certificates.You can find valid values in the [Go x509 package documentation](https://pkg.go.dev/crypto/x509#KeyUsage). Omit the `KeyUsage` part of the value. Values are not case-sensitive. To specify no key usage constraints, set this field to an empty list.", + "description": "The Locality (L) values to define in the subject field of the resulting certificate.", "computed": true, "elem": { "type": "TypeString" } }, { - "name": "ext_key_usage_oids", + "name": "policy_identifiers", "type": "TypeList", - "description": "A list of extended key usage Object Identifiers (OIDs).", + "description": "A list of policy Object Identifiers (OIDs).", "computed": true, "elem": { "type": "TypeString" } }, { - "name": "locality", + "name": "postal_code", "type": "TypeList", - "description": "The Locality (L) values to define in the subject field of the resulting certificate.", + "description": "The postal code values to define in the subject field of the resulting certificate.", "computed": true, "elem": { "type": "TypeString" } }, { - "name": "created_at", + "name": "instance_id", "type": "TypeString", - "description": "The date when a resource was created. The date format follows RFC 3339.", - "computed": true + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true }, { "name": "certificate_authority", @@ -80110,9 +82794,9 @@ "computed": true }, { - "name": "not_before_duration_seconds", - "type": "TypeInt", - "description": "The duration in seconds by which to backdate the `not_before` property of an issued private certificate.", + "name": "allow_bare_domains", + "type": "TypeBool", + "description": "Determines whether to allow clients to request private certificates that match the value of the actual domains on the final certificate.For example, if you specify `example.com` in the `allowed_domains` field, you grant clients the ability to request a certificate that contains the name `example.com` as one of the DNS values on the final certificate.**Important:** In some scenarios, allowing bare domains can be considered a security risk.", "computed": true }, { @@ -80122,32 +82806,29 @@ "computed": true }, { - "name": "allow_ip_sans", - "type": "TypeBool", - "description": "Determines whether to allow clients to request a private certificate with IP Subject Alternative Names.", - "computed": true + "name": "ext_key_usage_oids", + "type": "TypeList", + "description": "A list of extended key usage Object Identifiers (OIDs).", + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "country", + "name": "organization", "type": "TypeList", - "description": "The Country (C) values to define in the subject field of the resulting certificate.", + "description": "The Organization (O) values to define in the subject field of the resulting certificate.", "computed": true, "elem": { "type": "TypeString" } }, { - "name": "serial_number", + "name": "config_type", "type": "TypeString", - "description": "The serial number to assign to the generated certificate. To assign a random serial number, you can omit this field.", + "description": "Th configuration type.", "computed": true }, - { - "name": "endpoint_type", - "type": "TypeString", - "description": "public or private.", - "optional": true - }, { "name": "created_by", "type": "TypeString", @@ -80155,20 +82836,29 @@ "computed": true }, { - "name": "allow_bare_domains", - "type": "TypeBool", - "description": "Determines whether to allow clients to request private certificates that match the value of the actual domains on the final certificate.For example, if you specify `example.com` in the `allowed_domains` field, you grant clients the ability to request a certificate that contains the name `example.com` as one of the DNS values on the final certificate.**Important:** In some scenarios, allowing bare domains can be considered a security risk.", - "computed": true + "name": "ext_key_usage", + "type": "TypeList", + "description": "The allowed extended key usage constraint on private certificates.You can find valid values in the [Go x509 package documentation](https://golang.org/pkg/crypto/x509/#ExtKeyUsage). Omit the `ExtKeyUsage` part of the value. Values are not case-sensitive. To specify no key usage constraints, set this field to an empty list.", + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "allowed_uri_sans", + "name": "country", "type": "TypeList", - "description": "The URI Subject Alternative Names to allow for private certificates.Values can contain glob patterns, for example `spiffe://hostname/_*`.", + "description": "The Country (C) values to define in the subject field of the resulting certificate.", "computed": true, "elem": { "type": "TypeString" } }, + { + "name": "created_at", + "type": "TypeString", + "description": "The date when a resource was created. The date format follows RFC 3339.", + "computed": true + }, { "name": "client_flag", "type": "TypeBool", @@ -80182,51 +82872,9 @@ "computed": true }, { - "name": "use_csr_sans", - "type": "TypeBool", - "description": "When used with the `private_cert_configuration_action_sign_csr` action, this field determines whether to use the Subject Alternative Names(SANs) from a certificate signing request (CSR) instead of the SANs that are included in the data of the certificate.Does not include the common name in the CSR. To use the common name, include the `use_csr_common_name` property.", - "computed": true - }, - { - "name": "secret_type", + "name": "key_type", "type": "TypeString", - "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", - "computed": true - }, - { - "name": "allow_subdomains", - "type": "TypeBool", - "description": "Determines whether to allow clients to request private certificates with common names (CN) that are subdomains of the CNs that are allowed by the other certificate template options. This includes wildcard subdomains.For example, if `allowed_domains` has a value of `example.com` and `allow_subdomains`is set to `true`, then the following subdomains are allowed: `foo.example.com`, `bar.example.com`, `*.example.com`.**Note:** This field is redundant if you use the `allow_any_name` option.", - "computed": true - }, - { - "name": "street_address", - "type": "TypeList", - "description": "The street address values to define in the subject field of the resulting certificate.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "allowed_other_sans", - "type": "TypeList", - "description": "The custom Object Identifier (OID) or UTF8-string Subject Alternative Names (SANs) to allow for private certificates.The format for each element in the list is the same as OpenSSL: `\u003coid\u003e:\u003ctype\u003e:\u003cvalue\u003e` where the current valid type is `UTF8`. To allow any value for an OID, use `*` as its value. Alternatively, specify a single `*` to allow any `other_sans` input.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "key_bits", - "type": "TypeInt", - "description": "The number of bits to use to generate the private key.Allowable values for RSA keys are: `2048` and `4096`. Allowable values for EC keys are: `224`, `256`, `384`, and `521`. The default for RSA keys is `2048`. The default for EC keys is `256`.", - "computed": true - }, - { - "name": "use_csr_common_name", - "type": "TypeBool", - "description": "When used with the `private_cert_configuration_action_sign_csr` action, this field determines whether to use the common name (CN) from a certificate signing request (CSR) instead of the CN that's included in the data of the certificate.Does not include any requested Subject Alternative Names (SANs) in the CSR. To use the alternative names, include the `use_csr_sans` property.", + "description": "The type of private key to generate.", "computed": true }, { @@ -80238,6 +82886,12 @@ "optional": true, "computed": true }, + { + "name": "name", + "type": "TypeString", + "description": "The name of the configuration.", + "required": true + }, { "name": "max_ttl_seconds", "type": "TypeInt", @@ -80245,28 +82899,25 @@ "computed": true }, { - "name": "code_signing_flag", - "type": "TypeBool", - "description": "Determines whether private certificates are flagged for code signing use.", + "name": "ttl_seconds", + "type": "TypeInt", + "description": "The requested Time To Live, after which the certificate will be expired.", "computed": true }, { - "name": "organization", + "name": "allowed_uri_sans", "type": "TypeList", - "description": "The Organization (O) values to define in the subject field of the resulting certificate.", + "description": "The URI Subject Alternative Names to allow for private certificates.Values can contain glob patterns, for example `spiffe://hostname/_*`.", "computed": true, "elem": { "type": "TypeString" } }, { - "name": "policy_identifiers", - "type": "TypeList", - "description": "A list of policy Object Identifiers (OIDs).", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "require_cn", + "type": "TypeBool", + "description": "Determines whether to require a common name to create a private certificate.By default, a common name is required to generate a certificate. To make the `common_name` field optional, set the `require_cn` option to `false`.", + "computed": true }, { "name": "basic_constraints_valid_for_non_ca", @@ -80275,18 +82926,16 @@ "computed": true }, { - "name": "instance_id", - "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true + "name": "not_before_duration_seconds", + "type": "TypeInt", + "description": "The duration in seconds by which to backdate the `not_before` property of an issued private certificate.", + "computed": true }, { - "name": "name", + "name": "secret_type", "type": "TypeString", - "description": "The name of the configuration.", - "required": true + "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", + "computed": true }, { "name": "updated_at", @@ -80295,68 +82944,62 @@ "computed": true }, { - "name": "key_type", - "type": "TypeString", - "description": "The type of private key to generate.", - "computed": true - }, - { - "name": "ou", - "type": "TypeList", - "description": "The Organizational Unit (OU) values to define in the subject field of the resulting certificate.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "postal_code", + "name": "allowed_domains", "type": "TypeList", - "description": "The postal code values to define in the subject field of the resulting certificate.", + "description": "The domains to define for the certificate template. This property is used along with the `allow_bare_domains` and `allow_subdomains` options.", "computed": true, "elem": { "type": "TypeString" } }, { - "name": "require_cn", + "name": "allow_ip_sans", "type": "TypeBool", - "description": "Determines whether to require a common name to create a private certificate.By default, a common name is required to generate a certificate. To make the `common_name` field optional, set the `require_cn` option to `false`.", + "description": "Determines whether to allow clients to request a private certificate with IP Subject Alternative Names.", "computed": true }, { - "name": "allowed_domains_template", + "name": "server_flag", "type": "TypeBool", - "description": "Determines whether to allow the domains that are supplied in the `allowed_domains` field to contain access control list (ACL) templates.", + "description": "Determines whether private certificates are flagged for server use.", "computed": true }, { - "name": "enforce_hostnames", - "type": "TypeBool", - "description": "Determines whether to enforce only valid host names for common names, DNS Subject Alternative Names, and the host section of email addresses.", - "computed": true + "name": "street_address", + "type": "TypeList", + "description": "The street address values to define in the subject field of the resulting certificate.", + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "ttl_seconds", - "type": "TypeInt", - "description": "The requested Time To Live, after which the certificate will be expired.", + "name": "allowed_secret_groups", + "type": "TypeString", + "description": "Scopes the creation of private certificates to only the secret groups that you specify.This field can be supplied as a comma-delimited list of secret group IDs.", "computed": true }, { - "name": "allow_any_name", + "name": "allow_subdomains", "type": "TypeBool", - "description": "Determines whether to allow clients to request a private certificate that matches any common name.", + "description": "Determines whether to allow clients to request private certificates with common names (CN) that are subdomains of the CNs that are allowed by the other certificate template options. This includes wildcard subdomains.For example, if `allowed_domains` has a value of `example.com` and `allow_subdomains`is set to `true`, then the following subdomains are allowed: `foo.example.com`, `bar.example.com`, `*.example.com`.**Note:** This field is redundant if you use the `allow_any_name` option.", "computed": true }, { - "name": "ext_key_usage", + "name": "allowed_other_sans", "type": "TypeList", - "description": "The allowed extended key usage constraint on private certificates.You can find valid values in the [Go x509 package documentation](https://golang.org/pkg/crypto/x509/#ExtKeyUsage). Omit the `ExtKeyUsage` part of the value. Values are not case-sensitive. To specify no key usage constraints, set this field to an empty list.", + "description": "The custom Object Identifier (OID) or UTF8-string Subject Alternative Names (SANs) to allow for private certificates.The format for each element in the list is the same as OpenSSL: `\u003coid\u003e:\u003ctype\u003e:\u003cvalue\u003e` where the current valid type is `UTF8`. To allow any value for an OID, use `*` as its value. Alternatively, specify a single `*` to allow any `other_sans` input.", "computed": true, "elem": { "type": "TypeString" } }, + { + "name": "code_signing_flag", + "type": "TypeBool", + "description": "Determines whether private certificates are flagged for code signing use.", + "computed": true + }, { "name": "province", "type": "TypeList", @@ -80365,40 +83008,58 @@ "elem": { "type": "TypeString" } + } + ], + "ibm_sm_private_certificate_metadata": [ + { + "name": "signing_algorithm", + "type": "TypeString", + "description": "The identifier for the cryptographic algorithm that was used by the issuing certificate authority to sign a certificate.", + "computed": true }, { - "name": "config_type", + "name": "key_algorithm", "type": "TypeString", - "description": "Th configuration type.", + "description": "The identifier for the cryptographic algorithm used to generate the public key that is associated with the certificate.", "computed": true }, { - "name": "allowed_secret_groups", + "name": "serial_number", "type": "TypeString", - "description": "Scopes the creation of private certificates to only the secret groups that you specify.This field can be supplied as a comma-delimited list of secret group IDs.", + "description": "The unique serial number that was assigned to a certificate by the issuing certificate authority.", "computed": true - } - ], - "ibm_sm_private_certificate_metadata": [ + }, { - "name": "created_by", + "name": "region", "type": "TypeString", - "description": "The unique identifier that is associated with the entity that created the secret.", + "description": "The region of the Secrets Manager instance.", + "cloud_data_type": "region", + "immutable": true, + "optional": true, "computed": true }, { - "name": "custom_metadata", - "type": "TypeMap", - "description": "The secret metadata that a user can customize.", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "created_at", + "type": "TypeString", + "description": "The date when a resource was created. The date format follows RFC 3339.", + "computed": true }, { - "name": "next_rotation_date", + "name": "locks_total", + "type": "TypeInt", + "description": "The number of locks of the secret.", + "computed": true + }, + { + "name": "secret_group_id", "type": "TypeString", - "description": "The date that the secret is scheduled for automatic rotation.The service automatically creates a new version of the secret on its next rotation date. This field exists only for secrets that have an existing rotation policy.", + "description": "A v4 UUID identifier, or `default` secret group.", + "computed": true + }, + { + "name": "issuer", + "type": "TypeString", + "description": "The distinguished name that identifies the entity that signed and issued the certificate.", "computed": true }, { @@ -80422,11 +83083,20 @@ } }, { - "name": "downloaded", - "type": "TypeBool", - "description": "Indicates whether the secret data that is associated with a secret version was retrieved in a call to the service API.", + "name": "revocation_time_rfc3339", + "type": "TypeString", + "description": "The date and time that the certificate was revoked. The date format follows RFC 3339.", "computed": true }, + { + "name": "labels", + "type": "TypeList", + "description": "Labels that you can use to search for secrets in your instance.Up to 30 labels can be created.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, { "name": "secret_type", "type": "TypeString", @@ -80440,93 +83110,89 @@ "computed": true }, { - "name": "versions_total", - "type": "TypeInt", - "description": "The number of versions of the secret.", - "computed": true + "name": "alt_names", + "type": "TypeList", + "description": "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "crn", + "name": "updated_at", "type": "TypeString", - "description": "A CRN that uniquely identifies an IBM Cloud resource.", - "cloud_data_type": "crn", + "description": "The date when a resource was recently modified. The date format follows RFC 3339.", "computed": true }, { - "name": "locks_total", - "type": "TypeInt", - "description": "The number of locks of the secret.", + "name": "certificate_authority", + "type": "TypeString", + "description": "The intermediate certificate authority that signed this certificate.", "computed": true }, { - "name": "region", + "name": "instance_id", "type": "TypeString", - "description": "The region of the Secrets Manager instance.", - "cloud_data_type": "region", + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", "immutable": true, - "optional": true, - "computed": true + "required": true }, { - "name": "updated_at", + "name": "created_by", "type": "TypeString", - "description": "The date when a resource was recently modified. The date format follows RFC 3339.", + "description": "The unique identifier that is associated with the entity that created the secret.", "computed": true }, { - "name": "expiration_date", - "type": "TypeString", - "description": "The date a secret is expired. The date format follows RFC 3339.", - "computed": true + "name": "custom_metadata", + "type": "TypeMap", + "description": "The secret metadata that a user can customize.", + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "issuer", - "type": "TypeString", - "description": "The distinguished name that identifies the entity that signed and issued the certificate.", + "name": "downloaded", + "type": "TypeBool", + "description": "Indicates whether the secret data that is associated with a secret version was retrieved in a call to the service API.", "computed": true }, { - "name": "serial_number", - "type": "TypeString", - "description": "The unique serial number that was assigned to a certificate by the issuing certificate authority.", + "name": "versions_total", + "type": "TypeInt", + "description": "The number of versions of the secret.", "computed": true }, { - "name": "endpoint_type", + "name": "secret_id", "type": "TypeString", - "description": "public or private.", - "optional": true + "description": "The ID of the secret.", + "required": true }, { - "name": "created_at", - "type": "TypeString", - "description": "The date when a resource was created. The date format follows RFC 3339.", + "name": "state", + "type": "TypeInt", + "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", "computed": true }, { - "name": "secret_group_id", + "name": "certificate_template", "type": "TypeString", - "description": "A v4 UUID identifier, or `default` secret group.", + "description": "The name of the certificate template.", "computed": true }, { - "name": "key_algorithm", - "type": "TypeString", - "description": "The identifier for the cryptographic algorithm used to generate the public key that is associated with the certificate.", + "name": "revocation_time_seconds", + "type": "TypeInt", + "description": "The timestamp of the certificate revocation.", "computed": true }, { - "name": "instance_id", - "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true - }, - { - "name": "common_name", + "name": "next_rotation_date", "type": "TypeString", - "description": "The Common Name (AKA CN) represents the server name that is protected by the SSL certificate.", + "description": "The date that the secret is scheduled for automatic rotation.The service automatically creates a new version of the secret on its next rotation date. This field exists only for secrets that have an existing rotation policy.", "computed": true }, { @@ -80562,9 +83228,10 @@ } }, { - "name": "revocation_time_rfc3339", + "name": "crn", "type": "TypeString", - "description": "The date and time that the certificate was revoked. The date format follows RFC 3339.", + "description": "A CRN that uniquely identifies an IBM Cloud resource.", + "cloud_data_type": "crn", "computed": true }, { @@ -80573,6 +83240,18 @@ "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", "computed": true }, + { + "name": "common_name", + "type": "TypeString", + "description": "The Common Name (AKA CN) represents the server name that is protected by the SSL certificate.", + "computed": true + }, + { + "name": "expiration_date", + "type": "TypeString", + "description": "The date a secret is expired. The date format follows RFC 3339.", + "computed": true + }, { "name": "name", "type": "TypeString", @@ -80580,65 +83259,101 @@ "computed": true }, { - "name": "alt_names", - "type": "TypeList", - "description": "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "endpoint_type", + "type": "TypeString", + "description": "public or private.", + "optional": true + } + ], + "ibm_sm_public_certificate": [ + { + "name": "key_algorithm", + "type": "TypeString", + "description": "The identifier for the cryptographic algorithm to be used to generate the public key that is associated with the certificate.The algorithm that you select determines the encryption algorithm (`RSA` or `ECDSA`) and key size to be used to generate keys and sign certificates. For longer living certificates, it is recommended to use longer keys to provide more encryption protection. Allowed values: RSA2048, RSA4096, EC256, EC384.", + "computed": true }, { - "name": "certificate_template", + "name": "region", "type": "TypeString", - "description": "The name of the certificate template.", + "description": "The region of the Secrets Manager instance.", + "cloud_data_type": "region", + "immutable": true, + "optional": true, + "computed": true + }, + { + "name": "description", + "type": "TypeString", + "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", + "computed": true + }, + { + "name": "versions_total", + "type": "TypeInt", + "description": "The number of versions of the secret.", + "computed": true + }, + { + "name": "bundle_certs", + "type": "TypeBool", + "description": "Indicates whether the issued certificate is bundled with intermediate certificates.", + "computed": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "A CRN that uniquely identifies an IBM Cloud resource.", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "private_key", + "type": "TypeString", + "description": "(Optional) The PEM-encoded private key to associate with the certificate.", + "secure": true, "computed": true }, { "name": "secret_id", "type": "TypeString", "description": "The ID of the secret.", - "required": true + "optional": true, + "computed": true }, { - "name": "signing_algorithm", + "name": "serial_number", "type": "TypeString", - "description": "The identifier for the cryptographic algorithm that was used by the issuing certificate authority to sign a certificate.", + "description": "The unique serial number that was assigned to a certificate by the issuing certificate authority.", "computed": true }, { - "name": "certificate_authority", + "name": "secret_group_id", "type": "TypeString", - "description": "The intermediate certificate authority that signed this certificate.", + "description": "A v4 UUID identifier, or `default` secret group.", "computed": true }, { - "name": "revocation_time_seconds", - "type": "TypeInt", - "description": "The timestamp of the certificate revocation.", + "name": "secret_type", + "type": "TypeString", + "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", "computed": true }, { - "name": "labels", - "type": "TypeList", - "description": "Labels that you can use to search for secrets in your instance.Up to 30 labels can be created.", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "updated_at", + "type": "TypeString", + "description": "The date when a resource was recently modified. The date format follows RFC 3339.", + "computed": true }, { - "name": "state", - "type": "TypeInt", - "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", + "name": "common_name", + "type": "TypeString", + "description": "The Common Name (AKA CN) represents the server name protected by the SSL certificate.", "computed": true - } - ], - "ibm_sm_public_certificate": [ + }, { - "name": "name", + "name": "expiration_date", "type": "TypeString", - "description": "The human-readable name of your secret.", + "description": "The date a secret is expired. The date format follows RFC 3339.", "computed": true }, { @@ -80647,6 +83362,39 @@ "description": "The distinguished name that identifies the entity that signed and issued the certificate.", "computed": true }, + { + "name": "downloaded", + "type": "TypeBool", + "description": "Indicates whether the secret data that is associated with a secret version was retrieved in a call to the service API.", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The human-readable name of your secret.", + "optional": true, + "computed": true + }, + { + "name": "rotation", + "type": "TypeList", + "description": "Determines whether Secrets Manager rotates your secrets automatically.", + "computed": true, + "elem": { + "auto_rotate": { + "name": "auto_rotate", + "type": "TypeBool", + "description": "Determines whether Secrets Manager rotates your secret automatically.Default is `false`. If `auto_rotate` is set to `true` the service rotates your secret based on the defined interval.", + "computed": true + }, + "rotate_keys": { + "name": "rotate_keys", + "type": "TypeBool", + "description": "Determines whether Secrets Manager rotates the private key for your public certificate automatically.Default is `false`. If it is set to `true`, the service generates and stores a new private key for your rotated certificate.", + "computed": true + } + } + }, { "name": "intermediate", "type": "TypeString", @@ -80655,31 +83403,49 @@ "computed": true }, { - "name": "private_key", + "name": "created_by", "type": "TypeString", - "description": "(Optional) The PEM-encoded private key to associate with the certificate.", - "secure": true, + "description": "The unique identifier that is associated with the entity that created the secret.", "computed": true }, { - "name": "secret_id", + "name": "created_at", "type": "TypeString", - "description": "The ID of the secret.", - "required": true + "description": "The date when a resource was created. The date format follows RFC 3339.", + "computed": true }, { - "name": "custom_metadata", - "type": "TypeMap", - "description": "The secret metadata that a user can customize.", + "name": "signing_algorithm", + "type": "TypeString", + "description": "The identifier for the cryptographic algorithm that was used by the issuing certificate authority to sign a certificate.", + "computed": true + }, + { + "name": "alt_names", + "type": "TypeList", + "description": "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", "computed": true, "elem": { "type": "TypeString" } }, { - "name": "description", + "name": "ca", "type": "TypeString", - "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", + "description": "The name of the certificate authority configuration.", + "computed": true + }, + { + "name": "dns", + "type": "TypeString", + "description": "The name of the DNS provider configuration.", + "computed": true + }, + { + "name": "certificate", + "type": "TypeString", + "description": "The PEM-encoded contents of your certificate.", + "secure": true, "computed": true }, { @@ -80689,26 +83455,21 @@ "computed": true }, { - "name": "instance_id", + "name": "secret_group_name", "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true + "description": "The human-readable name of your secret group.", + "optional": true }, { - "name": "region", - "type": "TypeString", - "description": "The region of the Secrets Manager instance.", - "cloud_data_type": "region", - "immutable": true, - "optional": true, + "name": "state", + "type": "TypeInt", + "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", "computed": true }, { - "name": "bundle_certs", - "type": "TypeBool", - "description": "Indicates whether the issued certificate is bundled with intermediate certificates.", + "name": "state_description", + "type": "TypeString", + "description": "A text representation of the secret state.", "computed": true }, { @@ -80800,52 +83561,32 @@ } }, { - "name": "key_algorithm", - "type": "TypeString", - "description": "The identifier for the cryptographic algorithm to be used to generate the public key that is associated with the certificate.The algorithm that you select determines the encryption algorithm (`RSA` or `ECDSA`) and key size to be used to generate keys and sign certificates. For longer living certificates, it is recommended to use longer keys to provide more encryption protection. Allowed values: RSA2048, RSA4096, EC256, EC384.", - "computed": true - }, - { - "name": "state", - "type": "TypeInt", - "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", - "computed": true - }, - { - "name": "state_description", - "type": "TypeString", - "description": "A text representation of the secret state.", - "computed": true - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "The date when a resource was recently modified. The date format follows RFC 3339.", - "computed": true - }, - { - "name": "versions_total", - "type": "TypeInt", - "description": "The number of versions of the secret.", - "computed": true - }, - { - "name": "created_at", - "type": "TypeString", - "description": "The date when a resource was created. The date format follows RFC 3339.", - "computed": true - }, - { - "name": "expiration_date", - "type": "TypeString", - "description": "The date a secret is expired. The date format follows RFC 3339.", - "computed": true + "name": "validity", + "type": "TypeList", + "description": "The date and time that the certificate validity period begins and ends.", + "computed": true, + "elem": { + "not_after": { + "name": "not_after", + "type": "TypeString", + "description": "The date-time format follows RFC 3339.", + "computed": true + }, + "not_before": { + "name": "not_before", + "type": "TypeString", + "description": "The date-time format follows RFC 3339.", + "computed": true + } + } }, { - "name": "serial_number", + "name": "instance_id", "type": "TypeString", - "description": "The unique serial number that was assigned to a certificate by the issuing certificate authority.", - "computed": true + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true }, { "name": "endpoint_type", @@ -80854,34 +83595,14 @@ "optional": true }, { - "name": "alt_names", - "type": "TypeList", - "description": "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", + "name": "custom_metadata", + "type": "TypeMap", + "description": "The secret metadata that a user can customize.", "computed": true, "elem": { "type": "TypeString" } }, - { - "name": "rotation", - "type": "TypeList", - "description": "Determines whether Secrets Manager rotates your secrets automatically.", - "computed": true, - "elem": { - "auto_rotate": { - "name": "auto_rotate", - "type": "TypeBool", - "description": "Determines whether Secrets Manager rotates your secret automatically.Default is `false`. If `auto_rotate` is set to `true` the service rotates your secret based on the defined interval.", - "computed": true - }, - "rotate_keys": { - "name": "rotate_keys", - "type": "TypeBool", - "description": "Determines whether Secrets Manager rotates the private key for your public certificate automatically.Default is `false`. If it is set to `true`, the service generates and stores a new private key for your rotated certificate.", - "computed": true - } - } - }, { "name": "labels", "type": "TypeList", @@ -80890,57 +83611,14 @@ "elem": { "type": "TypeString" } - }, - { - "name": "secret_group_id", - "type": "TypeString", - "description": "A v4 UUID identifier, or `default` secret group.", - "computed": true - }, - { - "name": "secret_type", - "type": "TypeString", - "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", - "computed": true - }, - { - "name": "signing_algorithm", - "type": "TypeString", - "description": "The identifier for the cryptographic algorithm that was used by the issuing certificate authority to sign a certificate.", - "computed": true - }, - { - "name": "validity", - "type": "TypeList", - "description": "The date and time that the certificate validity period begins and ends.", - "computed": true, - "elem": { - "not_after": { - "name": "not_after", - "type": "TypeString", - "description": "The date-time format follows RFC 3339.", - "computed": true - }, - "not_before": { - "name": "not_before", - "type": "TypeString", - "description": "The date-time format follows RFC 3339.", - "computed": true - } - } - }, - { - "name": "dns", - "type": "TypeString", - "description": "The name of the DNS provider configuration.", - "computed": true - }, + } + ], + "ibm_sm_public_certificate_configuration_ca_lets_encrypt": [ { - "name": "certificate", + "name": "name", "type": "TypeString", - "description": "The PEM-encoded contents of your certificate.", - "secure": true, - "computed": true + "description": "The name of the configuration.", + "required": true }, { "name": "created_by", @@ -80949,32 +83627,17 @@ "computed": true }, { - "name": "crn", + "name": "created_at", "type": "TypeString", - "description": "A CRN that uniquely identifies an IBM Cloud resource.", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "downloaded", - "type": "TypeBool", - "description": "Indicates whether the secret data that is associated with a secret version was retrieved in a call to the service API.", + "description": "The date when a resource was created. The date format follows RFC 3339.", "computed": true }, { - "name": "common_name", + "name": "lets_encrypt_environment", "type": "TypeString", - "description": "The Common Name (AKA CN) represents the server name protected by the SSL certificate.", + "description": "The configuration of the Let's Encrypt CA environment.", "computed": true }, - { - "name": "ca", - "type": "TypeString", - "description": "The name of the certificate authority configuration.", - "computed": true - } - ], - "ibm_sm_public_certificate_configuration_ca_lets_encrypt": [ { "name": "lets_encrypt_private_key", "type": "TypeString", @@ -80988,30 +83651,12 @@ "description": "Prefer the chain with an issuer matching this Subject Common Name.", "computed": true }, - { - "name": "endpoint_type", - "type": "TypeString", - "description": "public or private.", - "optional": true - }, - { - "name": "created_by", - "type": "TypeString", - "description": "The unique identifier that is associated with the entity that created the secret.", - "computed": true - }, { "name": "updated_at", "type": "TypeString", "description": "The date when a resource was recently modified. The date format follows RFC 3339.", "computed": true }, - { - "name": "lets_encrypt_environment", - "type": "TypeString", - "description": "The configuration of the Let's Encrypt CA environment.", - "computed": true - }, { "name": "instance_id", "type": "TypeString", @@ -81030,35 +83675,23 @@ "computed": true }, { - "name": "name", - "type": "TypeString", - "description": "The name of the configuration.", - "required": true - }, - { - "name": "created_at", + "name": "endpoint_type", "type": "TypeString", - "description": "The date when a resource was created. The date format follows RFC 3339.", - "computed": true + "description": "public or private.", + "optional": true } ], "ibm_sm_public_certificate_configuration_dns_cis": [ { - "name": "created_by", - "type": "TypeString", - "description": "The unique identifier that is associated with the entity that created the secret.", - "computed": true - }, - { - "name": "created_at", + "name": "cloud_internet_services_apikey", "type": "TypeString", - "description": "The date when a resource was created. The date format follows RFC 3339.", + "description": "An IBM Cloud API key that can to list domains in your Cloud Internet Services instance.To grant Secrets Manager the ability to view the Cloud Internet Services instance and all of its domains, the API key must be assigned the Reader service role on Internet Services (`internet-svcs`).If you need to manage specific domains, you can assign the Manager role. For production environments, it is recommended that you assign the Reader access role, and then use the[IAM Policy Management API](https://cloud.ibm.com/apidocs/iam-policy-management#create-policy) to control specific domains. For more information, see the [docs](https://cloud.ibm.com/docs/secrets-manager?topic=secrets-manager-prepare-order-certificates#authorize-specific-domains).", "computed": true }, { - "name": "cloud_internet_services_apikey", + "name": "cloud_internet_services_crn", "type": "TypeString", - "description": "An IBM Cloud API key that can to list domains in your Cloud Internet Services instance.To grant Secrets Manager the ability to view the Cloud Internet Services instance and all of its domains, the API key must be assigned the Reader service role on Internet Services (`internet-svcs`).If you need to manage specific domains, you can assign the Manager role. For production environments, it is recommended that you assign the Reader access role, and then use the[IAM Policy Management API](https://cloud.ibm.com/apidocs/iam-policy-management#create-policy) to control specific domains. For more information, see the [docs](https://cloud.ibm.com/docs/secrets-manager?topic=secrets-manager-prepare-order-certificates#authorize-specific-domains).", + "description": "A CRN that uniquely identifies an IBM Cloud resource.", "computed": true }, { @@ -81095,15 +83728,21 @@ "computed": true }, { - "name": "updated_at", + "name": "created_by", "type": "TypeString", - "description": "The date when a resource was recently modified. The date format follows RFC 3339.", + "description": "The unique identifier that is associated with the entity that created the secret.", "computed": true }, { - "name": "cloud_internet_services_crn", + "name": "created_at", "type": "TypeString", - "description": "A CRN that uniquely identifies an IBM Cloud resource.", + "description": "The date when a resource was created. The date format follows RFC 3339.", + "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "The date when a resource was recently modified. The date format follows RFC 3339.", "computed": true }, { @@ -81123,76 +83762,100 @@ "computed": true }, { - "name": "created_at", + "name": "updated_at", "type": "TypeString", - "description": "The date when a resource was created. The date format follows RFC 3339.", + "description": "The date when a resource was recently modified. The date format follows RFC 3339.", "computed": true }, { - "name": "classic_infrastructure_password", + "name": "region", "type": "TypeString", - "description": "Your classic infrastructure API key.For information about viewing and accessing your classic infrastructure API key, see the [docs](https://cloud.ibm.com/docs/account?topic=account-classic_keys).", + "description": "The region of the Secrets Manager instance.", + "cloud_data_type": "region", + "immutable": true, + "optional": true, "computed": true }, { - "name": "secret_type", + "name": "endpoint_type", "type": "TypeString", - "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", - "computed": true + "description": "public or private.", + "optional": true }, { - "name": "config_type", + "name": "classic_infrastructure_password", "type": "TypeString", - "description": "Th configuration type.", + "description": "Your classic infrastructure API key.For information about viewing and accessing your classic infrastructure API key, see the [docs](https://cloud.ibm.com/docs/account?topic=account-classic_keys).", "computed": true }, { - "name": "updated_at", + "name": "instance_id", "type": "TypeString", - "description": "The date when a resource was recently modified. The date format follows RFC 3339.", - "computed": true + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true }, { - "name": "classic_infrastructure_username", + "name": "name", "type": "TypeString", - "description": "The username that is associated with your classic infrastructure account.In most cases, your classic infrastructure username is your `\u003caccount_id\u003e_\u003cemail_address\u003e`. For more information, see the [docs](https://cloud.ibm.com/docs/account?topic=account-classic_keys).", - "computed": true + "description": "The name of the configuration.", + "required": true }, { - "name": "instance_id", + "name": "config_type", "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true + "description": "Th configuration type.", + "computed": true }, { - "name": "region", + "name": "secret_type", "type": "TypeString", - "description": "The region of the Secrets Manager instance.", - "cloud_data_type": "region", - "immutable": true, - "optional": true, + "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", "computed": true }, { - "name": "endpoint_type", + "name": "created_at", "type": "TypeString", - "description": "public or private.", - "optional": true + "description": "The date when a resource was created. The date format follows RFC 3339.", + "computed": true }, { - "name": "name", + "name": "classic_infrastructure_username", "type": "TypeString", - "description": "The name of the configuration.", - "required": true + "description": "The username that is associated with your classic infrastructure account.In most cases, your classic infrastructure username is your `\u003caccount_id\u003e_\u003cemail_address\u003e`. For more information, see the [docs](https://cloud.ibm.com/docs/account?topic=account-classic_keys).", + "computed": true } ], "ibm_sm_public_certificate_metadata": [ { - "name": "common_name", + "name": "downloaded", + "type": "TypeBool", + "description": "Indicates whether the secret data that is associated with a secret version was retrieved in a call to the service API.", + "computed": true + }, + { + "name": "versions_total", + "type": "TypeInt", + "description": "The number of versions of the secret.", + "computed": true + }, + { + "name": "bundle_certs", + "type": "TypeBool", + "description": "Indicates whether the issued certificate is bundled with intermediate certificates.", + "computed": true + }, + { + "name": "locks_total", + "type": "TypeInt", + "description": "The number of locks of the secret.", + "computed": true + }, + { + "name": "secret_group_id", "type": "TypeString", - "description": "The Common Name (AKA CN) represents the server name protected by the SSL certificate.", + "description": "A v4 UUID identifier, or `default` secret group.", "computed": true }, { @@ -81202,91 +83865,90 @@ "computed": true }, { - "name": "downloaded", - "type": "TypeBool", - "description": "Indicates whether the secret data that is associated with a secret version was retrieved in a call to the service API.", - "computed": true + "name": "instance_id", + "type": "TypeString", + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true }, { - "name": "secret_type", + "name": "ca", "type": "TypeString", - "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", + "description": "The name of the certificate authority configuration.", "computed": true }, { - "name": "secret_group_id", + "name": "region", "type": "TypeString", - "description": "A v4 UUID identifier, or `default` secret group.", + "description": "The region of the Secrets Manager instance.", + "cloud_data_type": "region", + "immutable": true, + "optional": true, "computed": true }, { - "name": "state_description", + "name": "secret_id", "type": "TypeString", - "description": "A text representation of the secret state.", + "description": "The ID of the secret.", + "required": true + }, + { + "name": "created_by", + "type": "TypeString", + "description": "The unique identifier that is associated with the entity that created the secret.", "computed": true }, { - "name": "signing_algorithm", + "name": "key_algorithm", "type": "TypeString", - "description": "The identifier for the cryptographic algorithm that was used by the issuing certificate authority to sign a certificate.", + "description": "The identifier for the cryptographic algorithm to be used to generate the public key that is associated with the certificate.The algorithm that you select determines the encryption algorithm (`RSA` or `ECDSA`) and key size to be used to generate keys and sign certificates. For longer living certificates, it is recommended to use longer keys to provide more encryption protection. Allowed values: RSA2048, RSA4096, EC256, EC384.", "computed": true }, { - "name": "validity", - "type": "TypeList", - "description": "The date and time that the certificate validity period begins and ends.", + "name": "custom_metadata", + "type": "TypeMap", + "description": "The secret metadata that a user can customize.", "computed": true, "elem": { - "not_after": { - "name": "not_after", - "type": "TypeString", - "description": "The date-time format follows RFC 3339.", - "computed": true - }, - "not_before": { - "name": "not_before", - "type": "TypeString", - "description": "The date-time format follows RFC 3339.", - "computed": true - } + "type": "TypeString" } }, { - "name": "crn", + "name": "description", "type": "TypeString", - "description": "A CRN that uniquely identifies an IBM Cloud resource.", - "cloud_data_type": "crn", + "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", "computed": true }, { - "name": "locks_total", - "type": "TypeInt", - "description": "The number of locks of the secret.", + "name": "name", + "type": "TypeString", + "description": "The human-readable name of your secret.", "computed": true }, { - "name": "issuer", + "name": "secret_type", "type": "TypeString", - "description": "The distinguished name that identifies the entity that signed and issued the certificate.", + "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", "computed": true }, { - "name": "region", + "name": "state", + "type": "TypeInt", + "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", + "computed": true + }, + { + "name": "updated_at", "type": "TypeString", - "description": "The region of the Secrets Manager instance.", - "cloud_data_type": "region", - "immutable": true, - "optional": true, + "description": "The date when a resource was recently modified. The date format follows RFC 3339.", "computed": true }, { - "name": "alt_names", - "type": "TypeList", - "description": "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "common_name", + "type": "TypeString", + "description": "The Common Name (AKA CN) represents the server name protected by the SSL certificate.", + "computed": true }, { "name": "issuance_info", @@ -81377,83 +84039,16 @@ } }, { - "name": "updated_at", - "type": "TypeString", - "description": "The date when a resource was recently modified. The date format follows RFC 3339.", - "computed": true - }, - { - "name": "state", - "type": "TypeInt", - "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", - "computed": true - }, - { - "name": "bundle_certs", - "type": "TypeBool", - "description": "Indicates whether the issued certificate is bundled with intermediate certificates.", - "computed": true - }, - { - "name": "name", - "type": "TypeString", - "description": "The human-readable name of your secret.", - "computed": true - }, - { - "name": "expiration_date", - "type": "TypeString", - "description": "The date a secret is expired. The date format follows RFC 3339.", - "computed": true - }, - { - "name": "key_algorithm", - "type": "TypeString", - "description": "The identifier for the cryptographic algorithm to be used to generate the public key that is associated with the certificate.The algorithm that you select determines the encryption algorithm (`RSA` or `ECDSA`) and key size to be used to generate keys and sign certificates. For longer living certificates, it is recommended to use longer keys to provide more encryption protection. Allowed values: RSA2048, RSA4096, EC256, EC384.", - "computed": true - }, - { - "name": "secret_id", - "type": "TypeString", - "description": "The ID of the secret.", - "required": true - }, - { - "name": "description", - "type": "TypeString", - "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", - "computed": true - }, - { - "name": "versions_total", - "type": "TypeInt", - "description": "The number of versions of the secret.", - "computed": true - }, - { - "name": "serial_number", - "type": "TypeString", - "description": "The unique serial number that was assigned to a certificate by the issuing certificate authority.", - "computed": true - }, - { - "name": "ca", + "name": "issuer", "type": "TypeString", - "description": "The name of the certificate authority configuration.", + "description": "The distinguished name that identifies the entity that signed and issued the certificate.", "computed": true }, { - "name": "instance_id", - "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true - }, - { - "name": "created_by", + "name": "crn", "type": "TypeString", - "description": "The unique identifier that is associated with the entity that created the secret.", + "description": "A CRN that uniquely identifies an IBM Cloud resource.", + "cloud_data_type": "crn", "computed": true }, { @@ -81465,6 +84060,12 @@ "type": "TypeString" } }, + { + "name": "state_description", + "type": "TypeString", + "description": "A text representation of the secret state.", + "computed": true + }, { "name": "rotation", "type": "TypeList", @@ -81498,16 +84099,74 @@ "computed": true }, { - "name": "custom_metadata", - "type": "TypeMap", - "description": "The secret metadata that a user can customize.", + "name": "signing_algorithm", + "type": "TypeString", + "description": "The identifier for the cryptographic algorithm that was used by the issuing certificate authority to sign a certificate.", + "computed": true + }, + { + "name": "alt_names", + "type": "TypeList", + "description": "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", "computed": true, "elem": { "type": "TypeString" } + }, + { + "name": "expiration_date", + "type": "TypeString", + "description": "The date a secret is expired. The date format follows RFC 3339.", + "computed": true + }, + { + "name": "serial_number", + "type": "TypeString", + "description": "The unique serial number that was assigned to a certificate by the issuing certificate authority.", + "computed": true + }, + { + "name": "validity", + "type": "TypeList", + "description": "The date and time that the certificate validity period begins and ends.", + "computed": true, + "elem": { + "not_after": { + "name": "not_after", + "type": "TypeString", + "description": "The date-time format follows RFC 3339.", + "computed": true + }, + "not_before": { + "name": "not_before", + "type": "TypeString", + "description": "The date-time format follows RFC 3339.", + "computed": true + } + } } ], "ibm_sm_secret_group": [ + { + "name": "created_at", + "type": "TypeString", + "description": "The date that a resource was created. The date format follows RFC 3339.", + "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "The date that a resource was recently modified. The date format follows RFC 3339.", + "computed": true + }, + { + "name": "instance_id", + "type": "TypeString", + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true + }, { "name": "region", "type": "TypeString", @@ -81540,29 +84199,24 @@ "type": "TypeString", "description": "An extended description of your secret group.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", "computed": true - }, + } + ], + "ibm_sm_secret_groups": [ { - "name": "created_at", + "name": "region", "type": "TypeString", - "description": "The date that a resource was created. The date format follows RFC 3339.", + "description": "The region of the Secrets Manager instance.", + "cloud_data_type": "region", + "immutable": true, + "optional": true, "computed": true }, { - "name": "updated_at", + "name": "endpoint_type", "type": "TypeString", - "description": "The date that a resource was recently modified. The date format follows RFC 3339.", - "computed": true + "description": "public or private.", + "optional": true }, - { - "name": "instance_id", - "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true - } - ], - "ibm_sm_secret_groups": [ { "name": "secret_groups", "type": "TypeList", @@ -81614,51 +84268,9 @@ "cloud_data_type": "resource_instance", "immutable": true, "required": true - }, - { - "name": "region", - "type": "TypeString", - "description": "The region of the Secrets Manager instance.", - "cloud_data_type": "region", - "immutable": true, - "optional": true, - "computed": true - }, - { - "name": "endpoint_type", - "type": "TypeString", - "description": "public or private.", - "optional": true } ], "ibm_sm_secrets": [ - { - "name": "region", - "type": "TypeString", - "description": "The region of the Secrets Manager instance.", - "cloud_data_type": "region", - "immutable": true, - "optional": true, - "computed": true - }, - { - "name": "endpoint_type", - "type": "TypeString", - "description": "public or private.", - "optional": true - }, - { - "name": "sort", - "type": "TypeString", - "description": "Sort a collection of secrets by the specified field in ascending order. To sort in descending order use the `-` character. Available values: id | created_at | updated_at | expiration_date | secret_type | name", - "optional": true - }, - { - "name": "search", - "type": "TypeString", - "description": "Obtain a collection of secrets that contain the specified string in one or more of the fields: `id`, `name`, `description`,\n `labels`, `secret_type`.", - "optional": true - }, { "name": "groups", "type": "TypeString", @@ -82072,95 +84684,82 @@ "cloud_data_type": "resource_instance", "immutable": true, "required": true - } - ], - "ibm_sm_username_password_secret": [ + }, { - "name": "description", + "name": "region", "type": "TypeString", - "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", + "description": "The region of the Secrets Manager instance.", + "cloud_data_type": "region", + "immutable": true, + "optional": true, "computed": true }, { - "name": "locks_total", - "type": "TypeInt", - "description": "The number of locks of the secret.", - "computed": true + "name": "endpoint_type", + "type": "TypeString", + "description": "public or private.", + "optional": true }, { - "name": "state", - "type": "TypeInt", - "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", - "computed": true + "name": "sort", + "type": "TypeString", + "description": "Sort a collection of secrets by the specified field in ascending order. To sort in descending order use the `-` character. Available values: id | created_at | updated_at | expiration_date | secret_type | name", + "optional": true }, { - "name": "rotation", - "type": "TypeList", - "description": "Determines whether Secrets Manager rotates your secrets automatically.", - "computed": true, - "elem": { - "auto_rotate": { - "name": "auto_rotate", - "type": "TypeBool", - "description": "Determines whether Secrets Manager rotates your secret automatically.Default is `false`. If `auto_rotate` is set to `true` the service rotates your secret based on the defined interval.", - "computed": true - }, - "interval": { - "name": "interval", - "type": "TypeInt", - "description": "The length of the secret rotation time interval.", - "computed": true - }, - "rotate_keys": { - "name": "rotate_keys", - "type": "TypeBool", - "description": "Determines whether Secrets Manager rotates the private key for your public certificate automatically.Default is `false`. If it is set to `true`, the service generates and stores a new private key for your rotated certificate.", - "computed": true - }, - "unit": { - "name": "unit", - "type": "TypeString", - "description": "The units for the secret rotation time interval.", - "computed": true - } - } + "name": "search", + "type": "TypeString", + "description": "Obtain a collection of secrets that contain the specified string in one or more of the fields: `id`, `name`, `description`,\n `labels`, `secret_type`.", + "optional": true + } + ], + "ibm_sm_username_password_secret": [ + { + "name": "downloaded", + "type": "TypeBool", + "description": "Indicates whether the secret data that is associated with a secret version was retrieved in a call to the service API.", + "computed": true }, { - "name": "next_rotation_date", + "name": "name", "type": "TypeString", - "description": "The date that the secret is scheduled for automatic rotation.The service automatically creates a new version of the secret on its next rotation date. This field exists only for secrets that have an existing rotation policy.", + "description": "The human-readable name of your secret.", + "optional": true, "computed": true }, { - "name": "endpoint_type", + "name": "secret_group_name", "type": "TypeString", - "description": "public or private.", + "description": "The human-readable name of your secret group.", "optional": true }, { - "name": "crn", - "type": "TypeString", - "description": "A CRN that uniquely identifies an IBM Cloud resource.", - "cloud_data_type": "crn", + "name": "state", + "type": "TypeInt", + "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", "computed": true }, { - "name": "downloaded", - "type": "TypeBool", - "description": "Indicates whether the secret data that is associated with a secret version was retrieved in a call to the service API.", - "computed": true + "name": "endpoint_type", + "type": "TypeString", + "description": "public or private.", + "optional": true }, { - "name": "secret_type", + "name": "instance_id", "type": "TypeString", - "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", - "computed": true + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true }, { - "name": "password", + "name": "region", "type": "TypeString", - "description": "The password that is assigned to the secret.", - "secure": true, + "description": "The region of the Secrets Manager instance.", + "cloud_data_type": "region", + "immutable": true, + "optional": true, "computed": true }, { @@ -82173,63 +84772,88 @@ } }, { - "name": "created_by", - "type": "TypeString", - "description": "The unique identifier that is associated with the entity that created the secret.", + "name": "locks_total", + "type": "TypeInt", + "description": "The number of locks of the secret.", "computed": true }, { - "name": "created_at", + "name": "state_description", "type": "TypeString", - "description": "The date when a resource was created. The date format follows RFC 3339.", + "description": "A text representation of the secret state.", "computed": true }, { - "name": "name", + "name": "expiration_date", "type": "TypeString", - "description": "The human-readable name of your secret.", + "description": "The date a secret is expired. The date format follows RFC 3339.", "computed": true }, { - "name": "state_description", + "name": "username", "type": "TypeString", - "description": "A text representation of the secret state.", + "description": "The username that is assigned to the secret.", "computed": true }, { - "name": "updated_at", + "name": "secret_id", "type": "TypeString", - "description": "The date when a resource was recently modified. The date format follows RFC 3339.", + "description": "The ID of the secret.", + "optional": true, "computed": true }, { - "name": "instance_id", - "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true + "name": "labels", + "type": "TypeList", + "description": "Labels that you can use to search for secrets in your instance.Up to 30 labels can be created.", + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "region", + "name": "secret_group_id", "type": "TypeString", - "description": "The region of the Secrets Manager instance.", - "cloud_data_type": "region", - "immutable": true, - "optional": true, + "description": "A v4 UUID identifier, or `default` secret group.", "computed": true }, { - "name": "secret_id", + "name": "updated_at", "type": "TypeString", - "description": "The ID of the secret.", - "required": true + "description": "The date when a resource was recently modified. The date format follows RFC 3339.", + "computed": true }, { - "name": "secret_group_id", - "type": "TypeString", - "description": "A v4 UUID identifier, or `default` secret group.", - "computed": true + "name": "rotation", + "type": "TypeList", + "description": "Determines whether Secrets Manager rotates your secrets automatically.", + "computed": true, + "elem": { + "auto_rotate": { + "name": "auto_rotate", + "type": "TypeBool", + "description": "Determines whether Secrets Manager rotates your secret automatically.Default is `false`. If `auto_rotate` is set to `true` the service rotates your secret based on the defined interval.", + "computed": true + }, + "interval": { + "name": "interval", + "type": "TypeInt", + "description": "The length of the secret rotation time interval.", + "computed": true + }, + "rotate_keys": { + "name": "rotate_keys", + "type": "TypeBool", + "description": "Determines whether Secrets Manager rotates the private key for your public certificate automatically.Default is `false`. If it is set to `true`, the service generates and stores a new private key for your rotated certificate.", + "computed": true + }, + "unit": { + "name": "unit", + "type": "TypeString", + "description": "The units for the secret rotation time interval.", + "computed": true + } + } }, { "name": "versions_total", @@ -82238,28 +84862,30 @@ "computed": true }, { - "name": "expiration_date", + "name": "next_rotation_date", "type": "TypeString", - "description": "The date a secret is expired. The date format follows RFC 3339.", + "description": "The date that the secret is scheduled for automatic rotation.The service automatically creates a new version of the secret on its next rotation date. This field exists only for secrets that have an existing rotation policy.", "computed": true }, { - "name": "username", + "name": "password", "type": "TypeString", - "description": "The username that is assigned to the secret.", + "description": "The password that is assigned to the secret.", + "secure": true, "computed": true }, { - "name": "labels", - "type": "TypeList", - "description": "Labels that you can use to search for secrets in your instance.Up to 30 labels can be created.", - "computed": true, - "elem": { - "type": "TypeString" - } - } - ], - "ibm_sm_username_password_secret_metadata": [ + "name": "created_by", + "type": "TypeString", + "description": "The unique identifier that is associated with the entity that created the secret.", + "computed": true + }, + { + "name": "created_at", + "type": "TypeString", + "description": "The date when a resource was created. The date format follows RFC 3339.", + "computed": true + }, { "name": "crn", "type": "TypeString", @@ -82274,30 +84900,39 @@ "computed": true }, { - "name": "name", + "name": "secret_type", "type": "TypeString", - "description": "The human-readable name of your secret.", + "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", "computed": true - }, + } + ], + "ibm_sm_username_password_secret_metadata": [ { - "name": "secret_type", + "name": "expiration_date", "type": "TypeString", - "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", + "description": "The date a secret is expired. The date format follows RFC 3339.", "computed": true }, { - "name": "state_description", + "name": "next_rotation_date", "type": "TypeString", - "description": "A text representation of the secret state.", + "description": "The date that the secret is scheduled for automatic rotation.The service automatically creates a new version of the secret on its next rotation date. This field exists only for secrets that have an existing rotation policy.", "computed": true }, { - "name": "instance_id", + "name": "region", "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", + "description": "The region of the Secrets Manager instance.", + "cloud_data_type": "region", "immutable": true, - "required": true + "optional": true, + "computed": true + }, + { + "name": "endpoint_type", + "type": "TypeString", + "description": "public or private.", + "optional": true }, { "name": "secret_id", @@ -82306,65 +84941,44 @@ "required": true }, { - "name": "labels", - "type": "TypeList", - "description": "Labels that you can use to search for secrets in your instance.Up to 30 labels can be created.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "updated_at", + "name": "created_by", "type": "TypeString", - "description": "The date when a resource was recently modified. The date format follows RFC 3339.", - "computed": true - }, - { - "name": "versions_total", - "type": "TypeInt", - "description": "The number of versions of the secret.", + "description": "The unique identifier that is associated with the entity that created the secret.", "computed": true }, { - "name": "expiration_date", + "name": "name", "type": "TypeString", - "description": "The date a secret is expired. The date format follows RFC 3339.", + "description": "The human-readable name of your secret.", "computed": true }, { - "name": "endpoint_type", + "name": "secret_group_id", "type": "TypeString", - "description": "public or private.", - "optional": true + "description": "A v4 UUID identifier, or `default` secret group.", + "computed": true }, { - "name": "created_by", - "type": "TypeString", - "description": "The unique identifier that is associated with the entity that created the secret.", + "name": "versions_total", + "type": "TypeInt", + "description": "The number of versions of the secret.", "computed": true }, { - "name": "created_at", + "name": "description", "type": "TypeString", - "description": "The date when a resource was created. The date format follows RFC 3339.", + "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", "computed": true }, { - "name": "custom_metadata", - "type": "TypeMap", - "description": "The secret metadata that a user can customize.", + "name": "labels", + "type": "TypeList", + "description": "Labels that you can use to search for secrets in your instance.Up to 30 labels can be created.", "computed": true, "elem": { "type": "TypeString" } }, - { - "name": "downloaded", - "type": "TypeBool", - "description": "Indicates whether the secret data that is associated with a secret version was retrieved in a call to the service API.", - "computed": true - }, { "name": "state", "type": "TypeInt", @@ -82372,30 +84986,15 @@ "computed": true }, { - "name": "next_rotation_date", - "type": "TypeString", - "description": "The date that the secret is scheduled for automatic rotation.The service automatically creates a new version of the secret on its next rotation date. This field exists only for secrets that have an existing rotation policy.", - "computed": true - }, - { - "name": "region", + "name": "updated_at", "type": "TypeString", - "description": "The region of the Secrets Manager instance.", - "cloud_data_type": "region", - "immutable": true, - "optional": true, - "computed": true - }, - { - "name": "locks_total", - "type": "TypeInt", - "description": "The number of locks of the secret.", + "description": "The date when a resource was recently modified. The date format follows RFC 3339.", "computed": true }, { - "name": "secret_group_id", + "name": "secret_type", "type": "TypeString", - "description": "A v4 UUID identifier, or `default` secret group.", + "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", "computed": true }, { @@ -82429,28 +85028,57 @@ "computed": true } } - } - ], - "ibm_space": [ + }, { - "name": "space", - "type": "TypeString", - "description": "Space name, for example dev", - "optional": true, - "deprecated": "use name instead" + "name": "locks_total", + "type": "TypeInt", + "description": "The number of locks of the secret.", + "computed": true }, { - "name": "name", + "name": "state_description", "type": "TypeString", - "description": "Space name, for example dev", - "optional": true + "description": "A text representation of the secret state.", + "computed": true }, { - "name": "org", + "name": "instance_id", "type": "TypeString", - "description": "The org this space belongs to", + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", + "immutable": true, "required": true }, + { + "name": "created_at", + "type": "TypeString", + "description": "The date when a resource was created. The date format follows RFC 3339.", + "computed": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "A CRN that uniquely identifies an IBM Cloud resource.", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "custom_metadata", + "type": "TypeMap", + "description": "The secret metadata that a user can customize.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "downloaded", + "type": "TypeBool", + "description": "Indicates whether the secret data that is associated with a secret version was retrieved in a call to the service API.", + "computed": true + } + ], + "ibm_space": [ { "name": "auditors", "type": "TypeSet", @@ -82477,15 +85105,28 @@ "elem": { "type": "TypeString" } + }, + { + "name": "space", + "type": "TypeString", + "description": "Space name, for example dev", + "optional": true, + "deprecated": "use name instead" + }, + { + "name": "name", + "type": "TypeString", + "description": "Space name, for example dev", + "optional": true + }, + { + "name": "org", + "type": "TypeString", + "description": "The org this space belongs to", + "required": true } ], "ibm_tg_connection_prefix_filter": [ - { - "name": "le", - "type": "TypeInt", - "description": "IP Prefix LE", - "computed": true - }, { "name": "connection_id", "type": "TypeString", @@ -82499,15 +85140,21 @@ "computed": true }, { - "name": "before", - "type": "TypeString", - "description": "Identifier of prefix filter that handles ordering", + "name": "ge", + "type": "TypeInt", + "description": "IP Prefix GE", "computed": true }, { - "name": "created_at", + "name": "le", + "type": "TypeInt", + "description": "IP Prefix LE", + "computed": true + }, + { + "name": "prefix", "type": "TypeString", - "description": "The date and time that this prefix filter was created", + "description": "IP Prefix", "computed": true }, { @@ -82529,19 +85176,25 @@ "required": true }, { - "name": "ge", - "type": "TypeInt", - "description": "IP Prefix GE", + "name": "before", + "type": "TypeString", + "description": "Identifier of prefix filter that handles ordering", "computed": true }, { - "name": "prefix", + "name": "created_at", "type": "TypeString", - "description": "IP Prefix", + "description": "The date and time that this prefix filter was created", "computed": true } ], "ibm_tg_connection_prefix_filters": [ + { + "name": "connection_id", + "type": "TypeString", + "description": "The Transit Gateway Connection identifier", + "required": true + }, { "name": "prefix_filters", "type": "TypeList", @@ -82602,40 +85255,35 @@ "type": "TypeString", "description": "The Transit Gateway identifier", "required": true - }, - { - "name": "connection_id", - "type": "TypeString", - "description": "The Transit Gateway Connection identifier", - "required": true } ], "ibm_tg_gateway": [ { - "name": "updated_at", + "name": "crn", "type": "TypeString", + "cloud_data_type": "crn", "computed": true }, { - "name": "resource_group", + "name": "location", "type": "TypeString", - "cloud_data_type": "resource_group", + "cloud_data_type": "region", "computed": true }, { - "name": "crn", - "type": "TypeString", - "cloud_data_type": "crn", + "name": "global", + "type": "TypeBool", "computed": true }, { - "name": "created_at", + "name": "name", "type": "TypeString", - "computed": true + "description": "The Transit Gateway identifier", + "required": true }, { - "name": "global", - "type": "TypeBool", + "name": "created_at", + "type": "TypeString", "computed": true }, { @@ -82644,15 +85292,14 @@ "computed": true }, { - "name": "name", + "name": "updated_at", "type": "TypeString", - "description": "The Transit Gateway identifier", - "required": true + "computed": true }, { - "name": "location", + "name": "resource_group", "type": "TypeString", - "cloud_data_type": "region", + "cloud_data_type": "resource_group", "computed": true }, { @@ -82811,24 +85458,6 @@ } ], "ibm_tg_location": [ - { - "name": "name", - "type": "TypeString", - "description": "Name of the Location.", - "required": true - }, - { - "name": "type", - "type": "TypeString", - "description": "The type of the location, determining is this a multi-zone region, a single data center, or a point of presence.", - "computed": true - }, - { - "name": "billing_location", - "type": "TypeString", - "description": "The geographical location of this location, used for billing purposes.", - "computed": true - }, { "name": "local_connection_locations", "type": "TypeList", @@ -82854,6 +85483,24 @@ "computed": true } } + }, + { + "name": "name", + "type": "TypeString", + "description": "Name of the Location.", + "required": true + }, + { + "name": "type", + "type": "TypeString", + "description": "The type of the location, determining is this a multi-zone region, a single data center, or a point of presence.", + "computed": true + }, + { + "name": "billing_location", + "type": "TypeString", + "description": "The geographical location of this location, used for billing purposes.", + "computed": true } ], "ibm_tg_locations": [ @@ -82885,12 +85532,6 @@ } ], "ibm_tg_route_report": [ - { - "name": "route_report", - "type": "TypeString", - "description": "The Transit Gateway Route Report identifier", - "required": true - }, { "name": "connections", "type": "TypeList", @@ -83001,6 +85642,12 @@ "type": "TypeString", "description": "The Transit Gateway identifier", "required": true + }, + { + "name": "route_report", + "type": "TypeString", + "description": "The Transit Gateway Route Report identifier", + "required": true } ], "ibm_tg_route_reports": [ @@ -83133,24 +85780,22 @@ "Resources": { "ibm_api_gateway_endpoint": [ { - "name": "provider_id", + "name": "endpoint_id", "type": "TypeString", - "description": "Provider ID of an endpoint allowable values user-defined and whisk", - "default_value": "user-defined", - "optional": true + "description": "Endpoint ID", + "computed": true }, { - "name": "endpoint_id", + "name": "base_path", "type": "TypeString", - "description": "Endpoint ID", + "description": "Base path of an endpoint", "computed": true }, { - "name": "type", + "name": "open_api_doc_name", "type": "TypeString", - "description": "Action type of Endpoint ALoowable values are share, unshare, manage, unmanage", - "default_value": "unshare", - "optional": true + "description": "Json File path", + "required": true }, { "name": "name", @@ -83167,6 +85812,13 @@ "type": "TypeString" } }, + { + "name": "managed", + "type": "TypeBool", + "description": "Managed indicates if endpoint is online or offline.", + "default_value": false, + "optional": true + }, { "name": "shared", "type": "TypeBool", @@ -83174,39 +85826,28 @@ "computed": true }, { - "name": "base_path", + "name": "provider_id", "type": "TypeString", - "description": "Base path of an endpoint", - "computed": true + "description": "Provider ID of an endpoint allowable values user-defined and whisk", + "default_value": "user-defined", + "optional": true }, { - "name": "service_instance_crn", + "name": "type", "type": "TypeString", - "description": "Api Gateway Service Instance Crn", - "immutable": true, - "required": true + "description": "Action type of Endpoint ALoowable values are share, unshare, manage, unmanage", + "default_value": "unshare", + "optional": true }, { - "name": "open_api_doc_name", + "name": "service_instance_crn", "type": "TypeString", - "description": "Json File path", + "description": "Api Gateway Service Instance Crn", + "immutable": true, "required": true - }, - { - "name": "managed", - "type": "TypeBool", - "description": "Managed indicates if endpoint is online or offline.", - "default_value": false, - "optional": true } ], "ibm_api_gateway_endpoint_subscription": [ - { - "name": "type", - "type": "TypeString", - "description": "Subscription type. Allowable values are external, internal", - "required": true - }, { "name": "client_secret", "type": "TypeString", @@ -83245,37 +85886,39 @@ "type": "TypeString", "description": "Subscription name", "required": true + }, + { + "name": "type", + "type": "TypeString", + "description": "Subscription type. Allowable values are external, internal", + "required": true } ], "ibm_app": [ { - "name": "memory", - "type": "TypeInt", - "description": "The amount of memory each instance should have. In megabytes.", - "optional": true, - "computed": true + "name": "buildpack", + "type": "TypeString", + "description": "Buildpack to build the app. 3 options: a) Blank means autodetection; b) A Git Url pointing to a buildpack; c) Name of an installed buildpack.", + "optional": true }, { - "name": "space_guid", + "name": "app_version", "type": "TypeString", - "description": "Define space guid to which app belongs", - "immutable": true, - "required": true + "description": "Version of the application", + "optional": true }, { - "name": "environment_json", - "type": "TypeMap", - "description": "Key/value pairs of all the environment variables to run in your app. Does not include any system or service variables.", + "name": "health_check_timeout", + "type": "TypeInt", + "description": "Timeout in seconds for health checking of an staged app when starting up.", "optional": true }, { - "name": "tags", - "type": "TypeSet", - "cloud_data_type": "tags", - "optional": true, - "elem": { - "type": "TypeString" - } + "name": "space_guid", + "type": "TypeString", + "description": "Define space guid to which app belongs", + "immutable": true, + "required": true }, { "name": "service_instance_guid", @@ -83286,6 +85929,18 @@ "type": "TypeString" } }, + { + "name": "command", + "type": "TypeString", + "description": "The initial command for the app", + "optional": true + }, + { + "name": "health_check_http_endpoint", + "type": "TypeString", + "description": "Endpoint called to determine if the app is healthy.", + "optional": true + }, { "name": "health_check_type", "type": "TypeString", @@ -83294,17 +85949,41 @@ "optional": true }, { - "name": "health_check_timeout", + "name": "disk_quota", "type": "TypeInt", - "description": "Timeout in seconds for health checking of an staged app when starting up.", + "description": "The maximum amount of disk available to an instance of an app. In megabytes.", + "optional": true, + "computed": true + }, + { + "name": "wait_time_minutes", + "type": "TypeInt", + "description": "Define timeout to wait for the app instances to start/update/restage etc.", + "default_value": 20, "optional": true }, + { + "name": "tags", + "type": "TypeSet", + "cloud_data_type": "tags", + "optional": true, + "elem": { + "type": "TypeString" + } + }, { "name": "name", "type": "TypeString", "description": "The name for the app", "required": true }, + { + "name": "memory", + "type": "TypeInt", + "description": "The amount of memory each instance should have. In megabytes.", + "optional": true, + "computed": true + }, { "name": "instances", "type": "TypeInt", @@ -83313,9 +85992,9 @@ "optional": true }, { - "name": "buildpack", - "type": "TypeString", - "description": "Buildpack to build the app. 3 options: a) Blank means autodetection; b) A Git Url pointing to a buildpack; c) Name of an installed buildpack.", + "name": "environment_json", + "type": "TypeMap", + "description": "Key/value pairs of all the environment variables to run in your app. Does not include any system or service variables.", "optional": true }, { @@ -83327,53 +86006,14 @@ "type": "TypeString" } }, - { - "name": "command", - "type": "TypeString", - "description": "The initial command for the app", - "optional": true - }, - { - "name": "health_check_http_endpoint", - "type": "TypeString", - "description": "Endpoint called to determine if the app is healthy.", - "optional": true - }, - { - "name": "disk_quota", - "type": "TypeInt", - "description": "The maximum amount of disk available to an instance of an app. In megabytes.", - "optional": true, - "computed": true - }, { "name": "app_path", "type": "TypeString", "description": "Define the path of the zip file of the application.", "required": true - }, - { - "name": "app_version", - "type": "TypeString", - "description": "Version of the application", - "optional": true - }, - { - "name": "wait_time_minutes", - "type": "TypeInt", - "description": "Define timeout to wait for the app instances to start/update/restage etc.", - "default_value": 20, - "optional": true } ], "ibm_app_config_collection": [ - { - "name": "guid", - "type": "TypeString", - "description": "GUID of the App Configuration service. Get it from the service instance credentials section of the dashboard.", - "immutable": true, - "required": true - }, { "name": "collection_id", "type": "TypeString", @@ -83393,6 +86033,12 @@ "description": "Creation time of the collection.", "computed": true }, + { + "name": "updated_time", + "type": "TypeString", + "description": "Last modified time of the collection data.", + "computed": true + }, { "name": "href", "type": "TypeString", @@ -83406,9 +86052,10 @@ "computed": true }, { - "name": "name", + "name": "guid", "type": "TypeString", - "description": "Collection name.", + "description": "GUID of the App Configuration service. Get it from the service instance credentials section of the dashboard.", + "immutable": true, "required": true }, { @@ -83418,25 +86065,31 @@ "optional": true }, { - "name": "updated_time", + "name": "features_count", "type": "TypeString", - "description": "Last modified time of the collection data.", + "description": "Number of features associated with the collection.", "computed": true }, { - "name": "features_count", + "name": "name", "type": "TypeString", - "description": "Number of features associated with the collection.", - "computed": true + "description": "Collection name.", + "required": true } ], "ibm_app_config_environment": [ { - "name": "name", + "name": "environment_id", "type": "TypeString", - "description": "Environment name.", + "description": "Environment Id.", "required": true }, + { + "name": "description", + "type": "TypeString", + "description": "Environment description", + "optional": true + }, { "name": "tags", "type": "TypeString", @@ -83451,30 +86104,18 @@ "optional": true }, { - "name": "guid", + "name": "created_time", "type": "TypeString", - "description": "GUID of the App Configuration service. Get it from the service instance credentials section of the dashboard.", - "immutable": true, - "required": true + "description": "Creation time of the environment.", + "computed": true }, { - "name": "environment_id", + "name": "guid", "type": "TypeString", - "description": "Environment Id.", + "description": "GUID of the App Configuration service. Get it from the service instance credentials section of the dashboard.", + "immutable": true, "required": true }, - { - "name": "description", - "type": "TypeString", - "description": "Environment description", - "optional": true - }, - { - "name": "created_time", - "type": "TypeString", - "description": "Creation time of the environment.", - "computed": true - }, { "name": "updated_time", "type": "TypeString", @@ -83486,22 +86127,21 @@ "type": "TypeString", "description": "Environment URL.", "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Environment name.", + "required": true } ], "ibm_app_config_feature": [ { - "name": "feature_id", + "name": "environment_id", "type": "TypeString", - "description": "Feature id.", + "description": "Environment Id.", "required": true }, - { - "name": "type", - "type": "TypeString", - "description": "Type of the feature (BOOLEAN, STRING, NUMERIC).", - "required": true, - "options": "BOOLEAN, NUMERIC, STRING" - }, { "name": "tags", "type": "TypeString", @@ -83510,66 +86150,67 @@ "optional": true }, { - "name": "collections", - "type": "TypeList", - "description": "List of collection id representing the collections that are associated with the specified feature flag.", - "optional": true, - "elem": { - "collection_id": { - "name": "collection_id", - "type": "TypeString", - "description": "Collection id.", - "required": true - } - } - }, - { - "name": "enabled", - "type": "TypeBool", - "description": "The state of the feature flag.", - "computed": true + "name": "rollout_percentage", + "type": "TypeInt", + "description": "Rollout percentage of the feature.", + "optional": true }, { - "name": "disabled_value", + "name": "name", "type": "TypeString", - "description": "Value of the feature when it is disabled. The value can be BOOLEAN, STRING or a NUMERIC value as per the `type` attribute.", + "description": "Feature name.", "required": true }, { - "name": "updated_time", + "name": "type", "type": "TypeString", - "description": "Last modified time of the feature flag data.", - "computed": true + "description": "Type of the feature (BOOLEAN, STRING, NUMERIC).", + "required": true, + "options": "BOOLEAN, NUMERIC, STRING" }, { - "name": "href", + "name": "created_time", "type": "TypeString", - "description": "Feature flag URL.", + "description": "Creation time of the feature flag.", "computed": true }, { - "name": "created_time", + "name": "updated_time", "type": "TypeString", - "description": "Creation time of the feature flag.", + "description": "Last modified time of the feature flag data.", "computed": true }, { - "name": "guid", + "name": "feature_id", "type": "TypeString", - "description": "GUID of the App Configuration service. Get it from the service instance credentials section of the dashboard.", + "description": "Feature id.", "required": true }, { - "name": "enabled_value", - "type": "TypeString", - "description": "Value of the feature when it is enabled. The value can be BOOLEAN, STRING or a NUMERIC value as per the `type` attribute.", - "required": true + "name": "collections", + "type": "TypeList", + "description": "List of collection id representing the collections that are associated with the specified feature flag.", + "optional": true, + "elem": { + "collection_id": { + "name": "collection_id", + "type": "TypeString", + "description": "Collection id.", + "required": true + } + } }, { - "name": "description", - "type": "TypeString", - "description": "Feature description.", - "optional": true + "name": "segment_exists", + "type": "TypeBool", + "description": "Denotes if the targeting rules are specified for the feature flag.", + "computed": true + }, + { + "name": "enabled", + "type": "TypeBool", + "description": "The state of the feature flag.", + "computed": true }, { "name": "segment_rules", @@ -83615,43 +86256,37 @@ } }, { - "name": "segment_exists", - "type": "TypeBool", - "description": "Denotes if the targeting rules are specified for the feature flag.", + "name": "href", + "type": "TypeString", + "description": "Feature flag URL.", "computed": true }, { - "name": "environment_id", + "name": "guid", "type": "TypeString", - "description": "Environment Id.", + "description": "GUID of the App Configuration service. Get it from the service instance credentials section of the dashboard.", "required": true }, { - "name": "name", + "name": "enabled_value", "type": "TypeString", - "description": "Feature name.", + "description": "Value of the feature when it is enabled. The value can be BOOLEAN, STRING or a NUMERIC value as per the `type` attribute.", "required": true }, { - "name": "rollout_percentage", - "type": "TypeInt", - "description": "Rollout percentage of the feature.", - "optional": true - } - ], - "ibm_app_config_property": [ - { - "name": "href", + "name": "disabled_value", "type": "TypeString", - "description": "Property URL.", - "computed": true + "description": "Value of the feature when it is disabled. The value can be BOOLEAN, STRING or a NUMERIC value as per the `type` attribute.", + "required": true }, { - "name": "name", + "name": "description", "type": "TypeString", - "description": "Property name.", - "required": true - }, + "description": "Feature description.", + "optional": true + } + ], + "ibm_app_config_property": [ { "name": "tags", "type": "TypeString", @@ -83660,39 +86295,65 @@ "optional": true }, { - "name": "updated_time", + "name": "segment_exists", + "type": "TypeBool", + "description": "Denotes if the targeting rules are specified for the property.", + "computed": true + }, + { + "name": "created_time", "type": "TypeString", - "description": "Last modified time of the property data.", + "description": "Creation time of the property.", "computed": true }, { - "name": "evaluation_time", + "name": "href", "type": "TypeString", - "description": "The last occurrence of the property value evaluation.", + "description": "Property URL.", "computed": true }, { - "name": "description", + "name": "environment_id", "type": "TypeString", - "description": "Property description.", - "optional": true + "description": "Environment Id.", + "required": true }, { - "name": "value", + "name": "type", "type": "TypeString", - "description": "Value of the Property. The value can be Boolean, String or a Numeric value as per the `type` attribute.", + "description": "Type of the Property (BOOLEAN, STRING, NUMERIC).", "required": true }, { - "name": "segment_exists", - "type": "TypeBool", - "description": "Denotes if the targeting rules are specified for the property.", - "computed": true + "name": "format", + "type": "TypeString", + "description": "Format of the feature (TEXT, JSON, YAML).", + "optional": true }, { - "name": "environment_id", + "name": "collections", + "type": "TypeList", + "description": "List of collection id representing the collections that are associated with the specified property.", + "optional": true, + "elem": { + "collection_id": { + "name": "collection_id", + "type": "TypeString", + "description": "Collection id.", + "required": true + } + } + }, + { + "name": "guid", "type": "TypeString", - "description": "Environment Id.", + "description": "GUID of the App Configuration service. Get it from the service instance credentials section of the dashboard.", + "required": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Property name.", "required": true }, { @@ -83702,15 +86363,21 @@ "required": true }, { - "name": "type", + "name": "updated_time", "type": "TypeString", - "description": "Type of the Property (BOOLEAN, STRING, NUMERIC).", + "description": "Last modified time of the property data.", + "computed": true + }, + { + "name": "value", + "type": "TypeString", + "description": "Value of the Property. The value can be Boolean, String or a Numeric value as per the `type` attribute.", "required": true }, { - "name": "format", + "name": "description", "type": "TypeString", - "description": "Format of the feature (TEXT, JSON, YAML).", + "description": "Property description.", "optional": true }, { @@ -83751,64 +86418,13 @@ } }, { - "name": "collections", - "type": "TypeList", - "description": "List of collection id representing the collections that are associated with the specified property.", - "optional": true, - "elem": { - "collection_id": { - "name": "collection_id", - "type": "TypeString", - "description": "Collection id.", - "required": true - } - } - }, - { - "name": "created_time", + "name": "evaluation_time", "type": "TypeString", - "description": "Creation time of the property.", + "description": "The last occurrence of the property value evaluation.", "computed": true - }, - { - "name": "guid", - "type": "TypeString", - "description": "GUID of the App Configuration service. Get it from the service instance credentials section of the dashboard.", - "required": true } ], "ibm_app_config_segment": [ - { - "name": "tags", - "type": "TypeString", - "description": "Tags associated with the segments.", - "cloud_data_type": "tags", - "optional": true - }, - { - "name": "created_time", - "type": "TypeString", - "description": "Creation time of the segment.", - "computed": true - }, - { - "name": "href", - "type": "TypeString", - "description": "Segment URL.", - "computed": true - }, - { - "name": "segment_id", - "type": "TypeString", - "description": "Segment id.", - "required": true - }, - { - "name": "name", - "type": "TypeString", - "description": "Segment name.", - "required": true - }, { "name": "description", "type": "TypeString", @@ -83816,9 +86432,9 @@ "optional": true }, { - "name": "updated_time", + "name": "href", "type": "TypeString", - "description": "Last modified time of the segment data.", + "description": "Segment URL.", "computed": true }, { @@ -83855,51 +86471,57 @@ "type": "TypeString", "description": "GUID of the App Configuration service. Get it from the service instance credentials section of the dashboard.", "required": true - } - ], - "ibm_app_config_snapshot": [ + }, { - "name": "git_branch", + "name": "name", "type": "TypeString", - "description": "Branch name to which you need to write or update the configuration.", + "description": "Segment name.", "required": true }, { - "name": "git_token", + "name": "segment_id", "type": "TypeString", - "description": "Git token, this needs to be provided with enough permission to write and update the file.", - "secure": true, + "description": "Segment id.", "required": true }, + { + "name": "tags", + "type": "TypeString", + "description": "Tags associated with the segments.", + "cloud_data_type": "tags", + "optional": true + }, { "name": "created_time", "type": "TypeString", - "description": "Creation time of the git config.", + "description": "Creation time of the segment.", "computed": true }, { "name": "updated_time", "type": "TypeString", - "description": "Last modified time of the git config data.", + "description": "Last modified time of the segment data.", "computed": true - }, + } + ], + "ibm_app_config_snapshot": [ { - "name": "guid", + "name": "git_branch", "type": "TypeString", - "description": "GUID of the App Configuration service. Get it from the service instance credentials section of the dashboard.", + "description": "Branch name to which you need to write or update the configuration.", "required": true }, { - "name": "git_config_id", + "name": "git_file_path", "type": "TypeString", - "description": "Git config id. Allowed special characters are dot ( . ), hyphen( - ), underscore ( _ ) only", + "description": "Git file path, this is a path where your configuration file will be written.", "required": true }, { - "name": "action", + "name": "created_time", "type": "TypeString", - "description": "action promote", - "optional": true + "description": "Creation time of the git config.", + "computed": true }, { "name": "href", @@ -83907,26 +86529,6 @@ "description": "Git config URL.", "computed": true }, - { - "name": "collection", - "type": "TypeList", - "description": "Collection object.", - "computed": true, - "elem": { - "collection_id": { - "name": "collection_id", - "type": "TypeString", - "description": "Collection id.", - "computed": true - }, - "collection_name": { - "name": "collection_name", - "type": "TypeString", - "description": "Collection name.", - "computed": true - } - } - }, { "name": "environment", "type": "TypeList", @@ -83954,9 +86556,15 @@ } }, { - "name": "collection_id", + "name": "guid", "type": "TypeString", - "description": "Collection id.", + "description": "GUID of the App Configuration service. Get it from the service instance credentials section of the dashboard.", + "required": true + }, + { + "name": "git_config_id", + "type": "TypeString", + "description": "Git config id. Allowed special characters are dot ( . ), hyphen( - ), underscore ( _ ) only", "required": true }, { @@ -83972,28 +86580,58 @@ "required": true }, { - "name": "git_file_path", + "name": "git_token", "type": "TypeString", - "description": "Git file path, this is a path where your configuration file will be written.", + "description": "Git token, this needs to be provided with enough permission to write and update the file.", + "secure": true, "required": true }, + { + "name": "updated_time", + "type": "TypeString", + "description": "Last modified time of the git config data.", + "computed": true + }, + { + "name": "collection_id", + "type": "TypeString", + "description": "Collection id.", + "required": true + }, + { + "name": "action", + "type": "TypeString", + "description": "action promote", + "optional": true + }, { "name": "environment_id", "type": "TypeString", "description": "Environment id.", "required": true - } - ], - "ibm_app_domain_private": [ + }, { - "name": "tags", - "type": "TypeSet", - "cloud_data_type": "tags", - "optional": true, + "name": "collection", + "type": "TypeList", + "description": "Collection object.", + "computed": true, "elem": { - "type": "TypeString" + "collection_id": { + "name": "collection_id", + "type": "TypeString", + "description": "Collection id.", + "computed": true + }, + "collection_name": { + "name": "collection_name", + "type": "TypeString", + "description": "Collection name.", + "computed": true + } } - }, + } + ], + "ibm_app_domain_private": [ { "name": "name", "type": "TypeString", @@ -84007,9 +86645,27 @@ "description": "The organization that owns the domain.", "immutable": true, "required": true + }, + { + "name": "tags", + "type": "TypeSet", + "cloud_data_type": "tags", + "optional": true, + "elem": { + "type": "TypeString" + } } ], "ibm_app_domain_shared": [ + { + "name": "tags", + "type": "TypeSet", + "cloud_data_type": "tags", + "optional": true, + "elem": { + "type": "TypeString" + } + }, { "name": "name", "type": "TypeString", @@ -84023,7 +86679,9 @@ "description": "The guid of the router group.", "immutable": true, "optional": true - }, + } + ], + "ibm_app_route": [ { "name": "tags", "type": "TypeSet", @@ -84032,9 +86690,7 @@ "elem": { "type": "TypeString" } - } - ], - "ibm_app_route": [ + }, { "name": "host", "type": "TypeString", @@ -84066,15 +86722,6 @@ "type": "TypeString", "description": "The path for a route as raw text.Paths must be between 2 and 128 characters.Paths must start with a forward slash '/'.Paths must not contain a '?'", "optional": true - }, - { - "name": "tags", - "type": "TypeSet", - "cloud_data_type": "tags", - "optional": true, - "elem": { - "type": "TypeString" - } } ], "ibm_appid_action_url": [ @@ -84100,19 +86747,6 @@ } ], "ibm_appid_apm": [ - { - "name": "tenant_id", - "type": "TypeString", - "description": "The AppID instance GUID", - "immutable": true, - "required": true - }, - { - "name": "enabled", - "type": "TypeBool", - "description": "`true` if APM is enabled", - "required": true - }, { "name": "prevent_password_with_username", "type": "TypeBool", @@ -84200,6 +86834,19 @@ } }, "max_items": 1 + }, + { + "name": "tenant_id", + "type": "TypeString", + "description": "The AppID instance GUID", + "immutable": true, + "required": true + }, + { + "name": "enabled", + "type": "TypeBool", + "description": "`true` if APM is enabled", + "required": true } ], "ibm_appid_application": [ @@ -84281,15 +86928,6 @@ } ], "ibm_appid_application_scopes": [ - { - "name": "scopes", - "type": "TypeList", - "description": "A `scope` is a runtime action in your application that you register with IBM Cloud App ID to create an access permission", - "required": true, - "elem": { - "type": "TypeString" - } - }, { "name": "tenant_id", "type": "TypeString", @@ -84303,24 +86941,39 @@ "description": "The `client_id` is a public identifier for applications", "immutable": true, "required": true + }, + { + "name": "scopes", + "type": "TypeList", + "description": "A `scope` is a runtime action in your application that you register with IBM Cloud App ID to create an access permission", + "required": true, + "elem": { + "type": "TypeString" + } } ], "ibm_appid_audit_status": [ + { + "name": "is_active", + "type": "TypeBool", + "description": "The auditing status of the tenant.", + "required": true + }, { "name": "tenant_id", "type": "TypeString", "description": "The AppID instance GUID", "immutable": true, "required": true - }, - { - "name": "is_active", - "type": "TypeBool", - "description": "The auditing status of the tenant.", - "required": true } ], "ibm_appid_cloud_directory_template": [ + { + "name": "html_body", + "type": "TypeString", + "description": "The HTML body of the email", + "optional": true + }, { "name": "base64_encoded_html_body", "type": "TypeString", @@ -84360,12 +87013,6 @@ "type": "TypeString", "description": "The subject of the email", "required": true - }, - { - "name": "html_body", - "type": "TypeString", - "description": "The HTML body of the email", - "optional": true } ], "ibm_appid_cloud_directory_user": [ @@ -84383,11 +87030,31 @@ "optional": true }, { - "name": "status", + "name": "password", "type": "TypeString", - "description": "Accepted values `PENDING` or `CONFIRMED`", - "default_value": "PENDING", - "optional": true + "description": "User password", + "secure": true, + "required": true + }, + { + "name": "email", + "type": "TypeSet", + "description": "A set of user emails", + "required": true, + "elem": { + "primary": { + "name": "primary", + "type": "TypeBool", + "description": "`true` if this is primary email", + "optional": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "User email", + "required": true + } + } }, { "name": "meta", @@ -84410,11 +87077,11 @@ } }, { - "name": "active", - "type": "TypeBool", - "description": "Determines if the user account is active or not", - "default_value": true, - "optional": true + "name": "tenant_id", + "type": "TypeString", + "description": "The AppID instance GUID", + "immutable": true, + "required": true }, { "name": "locked_until", @@ -84429,38 +87096,24 @@ "computed": true }, { - "name": "password", + "name": "subject", "type": "TypeString", - "description": "User password", - "secure": true, - "required": true + "description": "The user's identifier ('subject' in identity token)", + "computed": true }, { - "name": "email", - "type": "TypeSet", - "description": "A set of user emails", - "required": true, - "elem": { - "primary": { - "name": "primary", - "type": "TypeBool", - "description": "`true` if this is primary email", - "optional": true - }, - "value": { - "name": "value", - "type": "TypeString", - "description": "User email", - "required": true - } - } + "name": "status", + "type": "TypeString", + "description": "Accepted values `PENDING` or `CONFIRMED`", + "default_value": "PENDING", + "optional": true }, { - "name": "tenant_id", - "type": "TypeString", - "description": "The AppID instance GUID", - "immutable": true, - "required": true + "name": "active", + "type": "TypeBool", + "description": "Determines if the user account is active or not", + "default_value": true, + "optional": true }, { "name": "create_profile", @@ -84469,35 +87122,28 @@ "default_value": true, "immutable": true, "optional": true - }, - { - "name": "subject", - "type": "TypeString", - "description": "The user's identifier ('subject' in identity token)", - "computed": true } ], "ibm_appid_idp_cloud_directory": [ { - "name": "self_service_enabled", + "name": "tenant_id", + "type": "TypeString", + "immutable": true, + "required": true + }, + { + "name": "is_active", "type": "TypeBool", - "default_value": true, - "optional": true + "required": true }, { - "name": "reset_password_notification_enabled", + "name": "signup_enabled", "type": "TypeBool", "default_value": true, "optional": true }, { - "name": "tenant_id", - "type": "TypeString", - "immutable": true, - "required": true - }, - { - "name": "signup_enabled", + "name": "self_service_enabled", "type": "TypeBool", "default_value": true, "optional": true @@ -84514,6 +87160,12 @@ "default_value": true, "optional": true }, + { + "name": "reset_password_notification_enabled", + "type": "TypeBool", + "default_value": true, + "optional": true + }, { "name": "identity_confirm_access_mode", "type": "TypeString", @@ -84532,11 +87184,6 @@ "name": "identity_field", "type": "TypeString", "optional": true - }, - { - "name": "is_active", - "type": "TypeBool", - "required": true } ], "ibm_appid_idp_custom": [ @@ -84646,6 +87293,12 @@ } ], "ibm_appid_idp_saml": [ + { + "name": "is_active", + "type": "TypeBool", + "description": "SAML IDP activation", + "required": true + }, { "name": "config", "type": "TypeList", @@ -84733,15 +87386,16 @@ "description": "The AppID instance GUID", "immutable": true, "required": true - }, - { - "name": "is_active", - "type": "TypeBool", - "description": "SAML IDP activation", - "required": true } ], "ibm_appid_languages": [ + { + "name": "tenant_id", + "type": "TypeString", + "description": "The service `tenantId`", + "immutable": true, + "required": true + }, { "name": "languages", "type": "TypeList", @@ -84750,13 +87404,6 @@ "elem": { "type": "TypeString" } - }, - { - "name": "tenant_id", - "type": "TypeString", - "description": "The service `tenantId`", - "immutable": true, - "required": true } ], "ibm_appid_mfa": [ @@ -84819,12 +87466,6 @@ } ], "ibm_appid_password_regex": [ - { - "name": "error_message", - "type": "TypeString", - "description": "Custom error message", - "optional": true - }, { "name": "regex", "type": "TypeString", @@ -84843,6 +87484,12 @@ "type": "TypeString", "description": "The regex expression rule for acceptable password encoded in base64", "computed": true + }, + { + "name": "error_message", + "type": "TypeString", + "description": "Custom error message", + "optional": true } ], "ibm_appid_redirect_urls": [ @@ -84864,6 +87511,12 @@ } ], "ibm_appid_role": [ + { + "name": "role_id", + "type": "TypeString", + "description": "Role ID", + "computed": true + }, { "name": "tenant_id", "type": "TypeString", @@ -84903,12 +87556,6 @@ } } } - }, - { - "name": "role_id", - "type": "TypeString", - "description": "Role ID", - "computed": true } ], "ibm_appid_theme_color": [ @@ -84926,13 +87573,6 @@ } ], "ibm_appid_theme_text": [ - { - "name": "tenant_id", - "type": "TypeString", - "description": "The AppID instance GUID", - "immutable": true, - "required": true - }, { "name": "tab_title", "type": "TypeString", @@ -84942,48 +87582,16 @@ "name": "footnote", "type": "TypeString", "optional": true + }, + { + "name": "tenant_id", + "type": "TypeString", + "description": "The AppID instance GUID", + "immutable": true, + "required": true } ], "ibm_appid_token_config": [ - { - "name": "anonymous_access_enabled", - "type": "TypeBool", - "description": "The length of time for which an anonymous token is valid in seconds", - "optional": true, - "computed": true - }, - { - "name": "refresh_token_enabled", - "type": "TypeBool", - "optional": true, - "computed": true - }, - { - "name": "access_token_claim", - "type": "TypeSet", - "description": "A set of objects that are created when claims that are related to access tokens are mapped", - "optional": true, - "elem": { - "destination_claim": { - "name": "destination_claim", - "type": "TypeString", - "description": "Optional: Defines the custom attribute that can override the current claim in token.", - "optional": true - }, - "source": { - "name": "source", - "type": "TypeString", - "description": "Defines the source of the claim. Options include: `saml`, `cloud_directory`, `facebook`, `google`, `appid_custom`, and `attributes`.", - "required": true - }, - "source_claim": { - "name": "source_claim", - "type": "TypeString", - "description": "Defines the claim as provided by the source. It can refer to the identity provider's user information or the user's App ID custom attributes.", - "optional": true - } - } - }, { "name": "id_token_claim", "type": "TypeSet", @@ -85033,16 +87641,48 @@ "type": "TypeInt", "default_value": 2592000, "optional": true + }, + { + "name": "anonymous_access_enabled", + "type": "TypeBool", + "description": "The length of time for which an anonymous token is valid in seconds", + "optional": true, + "computed": true + }, + { + "name": "refresh_token_enabled", + "type": "TypeBool", + "optional": true, + "computed": true + }, + { + "name": "access_token_claim", + "type": "TypeSet", + "description": "A set of objects that are created when claims that are related to access tokens are mapped", + "optional": true, + "elem": { + "destination_claim": { + "name": "destination_claim", + "type": "TypeString", + "description": "Optional: Defines the custom attribute that can override the current claim in token.", + "optional": true + }, + "source": { + "name": "source", + "type": "TypeString", + "description": "Defines the source of the claim. Options include: `saml`, `cloud_directory`, `facebook`, `google`, `appid_custom`, and `attributes`.", + "required": true + }, + "source_claim": { + "name": "source_claim", + "type": "TypeString", + "description": "Defines the claim as provided by the source. It can refer to the identity provider's user information or the user's App ID custom attributes.", + "optional": true + } + } } ], "ibm_appid_user_roles": [ - { - "name": "tenant_id", - "type": "TypeString", - "description": "The AppID instance GUID", - "immutable": true, - "required": true - }, { "name": "subject", "type": "TypeString", @@ -85058,41 +87698,16 @@ "elem": { "type": "TypeString" } - } - ], - "ibm_atracker_route": [ - { - "name": "api_version", - "type": "TypeInt", - "description": "The API version of the route.", - "computed": true }, { - "name": "receive_global_events", - "type": "TypeBool", - "description": "Indicates whether or not all global events should be forwarded to this region.", - "optional": true, - "deprecated": "use rules.locations instead" - }, - { - "name": "created", - "type": "TypeString", - "description": "The timestamp of the route creation time.", - "computed": true, - "deprecated": "use created_at instead" - }, - { - "name": "created_at", - "type": "TypeString", - "description": "The timestamp of the route creation time.", - "computed": true - }, - { - "name": "updated_at", + "name": "tenant_id", "type": "TypeString", - "description": "The timestamp of the route last updated time.", - "computed": true - }, + "description": "The AppID instance GUID", + "immutable": true, + "required": true + } + ], + "ibm_atracker_route": [ { "name": "updated", "type": "TypeString", @@ -85100,6 +87715,12 @@ "computed": true, "deprecated": "use updated_at instead" }, + { + "name": "api_version", + "type": "TypeInt", + "description": "The API version of the route.", + "computed": true + }, { "name": "name", "type": "TypeString", @@ -85147,23 +87768,35 @@ "type": "TypeInt", "description": "The version of the route.", "computed": true - } - ], - "ibm_atracker_settings": [ + }, { - "name": "metadata_region_backup", + "name": "created", "type": "TypeString", - "description": "Provide a back up region to store meta data.", - "max_length": 256, - "matches": "^[a-zA-Z0-9 -_]*", - "optional": true + "description": "The timestamp of the route creation time.", + "computed": true, + "deprecated": "use created_at instead" }, { - "name": "api_version", - "type": "TypeInt", - "description": "The lowest API version of targets or routes that customer might have under his or her account.", + "name": "created_at", + "type": "TypeString", + "description": "The timestamp of the route creation time.", "computed": true }, + { + "name": "receive_global_events", + "type": "TypeBool", + "description": "Indicates whether or not all global events should be forwarded to this region.", + "optional": true, + "deprecated": "use rules.locations instead" + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "The timestamp of the route last updated time.", + "computed": true + } + ], + "ibm_atracker_settings": [ { "name": "metadata_region_primary", "type": "TypeString", @@ -85196,9 +87829,124 @@ "elem": { "type": "TypeString" } + }, + { + "name": "metadata_region_backup", + "type": "TypeString", + "description": "Provide a back up region to store meta data.", + "max_length": 256, + "matches": "^[a-zA-Z0-9 -_]*", + "optional": true + }, + { + "name": "api_version", + "type": "TypeInt", + "description": "The lowest API version of targets or routes that customer might have under his or her account.", + "computed": true } ], "ibm_atracker_target": [ + { + "name": "eventstreams_endpoint", + "type": "TypeList", + "description": "Property values for an Event Streams Endpoint in requests.", + "optional": true, + "elem": { + "api_key": { + "name": "api_key", + "type": "TypeString", + "description": "The user password (api key) for the message hub topic in the Event Streams instance.", + "secure": true, + "required": true + }, + "brokers": { + "name": "brokers", + "type": "TypeList", + "description": "List of broker endpoints.", + "required": true, + "elem": { + "type": "TypeString" + } + }, + "target_crn": { + "name": "target_crn", + "type": "TypeString", + "description": "The CRN of the Event Streams instance.", + "required": true + }, + "topic": { + "name": "topic", + "type": "TypeString", + "description": "The messsage hub topic defined in the Event Streams instance.", + "required": true + } + }, + "max_items": 1 + }, + { + "name": "encryption_key", + "type": "TypeString", + "description": "The encryption key that is used to encrypt events before Activity Tracker services buffer them on storage. This credential is masked in the response.", + "computed": true + }, + { + "name": "created_at", + "type": "TypeString", + "description": "The timestamp of the target creation time.", + "computed": true + }, + { + "name": "logdna_endpoint", + "type": "TypeList", + "description": "Property values for a LogDNA Endpoint.", + "optional": true, + "elem": { + "ingestion_key": { + "name": "ingestion_key", + "type": "TypeString", + "description": "The LogDNA ingestion key is used for routing logs to a specific LogDNA instance.", + "secure": true, + "required": true + }, + "target_crn": { + "name": "target_crn", + "type": "TypeString", + "description": "The CRN of the LogDNA instance.", + "required": true + } + }, + "max_items": 1 + }, + { + "name": "encrypt_key", + "type": "TypeString", + "description": "The encryption key that is used to encrypt events before Activity Tracker services buffer them on storage. This credential is masked in the response.", + "computed": true, + "deprecated": "use encryption_key instead" + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "The timestamp of the target last updated time.", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The name of the target. The name must be 1000 characters or less, and cannot include any special characters other than `(space) - . _ :`.", + "required": true, + "min_length": 1, + "max_length": 1000, + "matches": "^[a-zA-Z0-9 -._:]+$" + }, + { + "name": "target_type", + "type": "TypeString", + "description": "The type of the target. It can be cloud_object_storage, logdna or event_streams. Based on this type you must include cos_endpoint, logdna_endpoint or eventstreams_endpoint.", + "immutable": true, + "required": true, + "options": "cloud_object_storage, logdna, event_streams" + }, { "name": "cos_endpoint", "type": "TypeList", @@ -85224,20 +87972,76 @@ "description": "The host name of the Cloud Object Storage endpoint.", "required": true }, - "service_to_service_enabled": { - "name": "service_to_service_enabled", - "type": "TypeBool", - "description": "ATracker service is enabled to support service to service authentication. If service to service is enabled then set this flag is true and do not supply apikey.", + "service_to_service_enabled": { + "name": "service_to_service_enabled", + "type": "TypeBool", + "description": "ATracker service is enabled to support service to service authentication. If service to service is enabled then set this flag is true and do not supply apikey.", + "optional": true + }, + "target_crn": { + "name": "target_crn", + "type": "TypeString", + "description": "The CRN of the Cloud Object Storage instance.", + "required": true + } + }, + "max_items": 1 + }, + { + "name": "region", + "type": "TypeString", + "description": "Include this optional field if you want to create a target in a different region other than the one you are connected.", + "immutable": true, + "min_length": 3, + "max_length": 1000, + "matches": "^[a-zA-Z0-9 -._:]+$", + "optional": true + }, + { + "name": "write_status", + "type": "TypeList", + "description": "The status of the write attempt to the target with the provided endpoint parameters.", + "computed": true, + "elem": { + "last_failure": { + "name": "last_failure", + "type": "TypeString", + "description": "The timestamp of the failure.", + "optional": true + }, + "reason_for_last_failure": { + "name": "reason_for_last_failure", + "type": "TypeString", + "description": "Detailed description of the cause of the failure.", "optional": true }, - "target_crn": { - "name": "target_crn", + "status": { + "name": "status", "type": "TypeString", - "description": "The CRN of the Cloud Object Storage instance.", + "description": "The status such as failed or success.", "required": true } - }, - "max_items": 1 + } + }, + { + "name": "updated", + "type": "TypeString", + "description": "The timestamp of the target last updated time.", + "computed": true, + "deprecated": "use updated_at instead" + }, + { + "name": "api_version", + "type": "TypeInt", + "description": "The API version of the target.", + "computed": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "The crn of the target resource.", + "cloud_data_type": "crn", + "computed": true }, { "name": "cos_write_status", @@ -85272,233 +88076,239 @@ "description": "The timestamp of the target creation time.", "computed": true, "deprecated": "use created_at instead" - }, + } + ], + "ibm_billing_report_snapshot": [ { - "name": "target_type", + "name": "versioning", "type": "TypeString", - "description": "The type of the target. It can be cloud_object_storage, logdna or event_streams. Based on this type you must include cos_endpoint, logdna_endpoint or eventstreams_endpoint.", - "immutable": true, - "required": true, - "options": "cloud_object_storage, logdna, event_streams" + "description": "A new version of report is created or the existing report version is overwritten with every update.", + "default_value": "new", + "options": "new, overwrite", + "optional": true }, { - "name": "encryption_key", + "name": "cos_bucket", "type": "TypeString", - "description": "The encryption key that is used to encrypt events before Activity Tracker services buffer them on storage. This credential is masked in the response.", - "computed": true + "description": "The name of the COS bucket to store the snapshot of the billing reports.", + "required": true }, { - "name": "created_at", + "name": "compression", "type": "TypeString", - "description": "The timestamp of the target creation time.", - "computed": true - }, - { - "name": "api_version", - "type": "TypeInt", - "description": "The API version of the target.", + "description": "Compression format of the snapshot report.", "computed": true }, { - "name": "name", + "name": "interval", "type": "TypeString", - "description": "The name of the target. The name must be 1000 characters or less, and cannot include any special characters other than `(space) - . _ :`.", + "description": "Frequency of taking the snapshot of the billing reports.", "required": true, - "min_length": 1, - "max_length": 1000, - "matches": "^[a-zA-Z0-9 -._:]+$" + "options": "daily" }, { - "name": "crn", + "name": "content_type", "type": "TypeString", - "description": "The crn of the target resource.", - "cloud_data_type": "crn", + "description": "Type of content stored in snapshot report.", "computed": true }, { - "name": "encrypt_key", + "name": "cos_location", "type": "TypeString", - "description": "The encryption key that is used to encrypt events before Activity Tracker services buffer them on storage. This credential is masked in the response.", - "computed": true, - "deprecated": "use encryption_key instead" + "description": "Region of the COS instance.", + "required": true }, { - "name": "write_status", + "name": "history", "type": "TypeList", - "description": "The status of the write attempt to the target with the provided endpoint parameters.", + "description": "List of previous versions of the snapshot configurations.", "computed": true, "elem": { - "last_failure": { - "name": "last_failure", + "account_id": { + "name": "account_id", "type": "TypeString", - "description": "The timestamp of the failure.", - "optional": true + "description": "Account ID for which billing report snapshot is configured.", + "computed": true }, - "reason_for_last_failure": { - "name": "reason_for_last_failure", + "account_type": { + "name": "account_type", "type": "TypeString", - "description": "Detailed description of the cause of the failure.", - "optional": true + "description": "Type of account. Possible values [enterprise, account].", + "computed": true }, - "status": { - "name": "status", + "compression": { + "name": "compression", "type": "TypeString", - "description": "The status such as failed or success.", - "required": true - } - } - }, - { - "name": "updated", - "type": "TypeString", - "description": "The timestamp of the target last updated time.", - "computed": true, - "deprecated": "use updated_at instead" - }, - { - "name": "logdna_endpoint", - "type": "TypeList", - "description": "Property values for a LogDNA Endpoint.", - "optional": true, - "elem": { - "ingestion_key": { - "name": "ingestion_key", + "description": "Compression format of the snapshot report.", + "computed": true + }, + "content_type": { + "name": "content_type", "type": "TypeString", - "description": "The LogDNA ingestion key is used for routing logs to a specific LogDNA instance.", - "secure": true, - "required": true + "description": "Type of content stored in snapshot report.", + "computed": true }, - "target_crn": { - "name": "target_crn", + "cos_bucket": { + "name": "cos_bucket", "type": "TypeString", - "description": "The CRN of the LogDNA instance.", - "required": true - } - }, - "max_items": 1 - }, - { - "name": "eventstreams_endpoint", - "type": "TypeList", - "description": "Property values for an Event Streams Endpoint in requests.", - "optional": true, - "elem": { - "api_key": { - "name": "api_key", + "description": "The name of the COS bucket to store the snapshot of the billing reports.", + "computed": true + }, + "cos_endpoint": { + "name": "cos_endpoint", "type": "TypeString", - "description": "The user password (api key) for the message hub topic in the Event Streams instance.", - "secure": true, - "required": true + "description": "The endpoint of the COS instance.", + "computed": true }, - "brokers": { - "name": "brokers", + "cos_location": { + "name": "cos_location", + "type": "TypeString", + "description": "Region of the COS instance.", + "computed": true + }, + "cos_reports_folder": { + "name": "cos_reports_folder", + "type": "TypeString", + "description": "The billing reports root folder to store the billing reports snapshots. Defaults to \"IBMCloud-Billing-Reports\".", + "computed": true + }, + "end_time": { + "name": "end_time", + "type": "TypeInt", + "description": "Timestamp in milliseconds when the snapshot configuration ends.", + "computed": true + }, + "interval": { + "name": "interval", + "type": "TypeString", + "description": "Frequency of taking the snapshot of the billing reports.", + "computed": true + }, + "report_types": { + "name": "report_types", "type": "TypeList", - "description": "List of broker endpoints.", - "required": true, + "description": "The type of billing reports to take snapshot of. Possible values are [account_summary, enterprise_summary, account_resource_instance_usage].", + "computed": true, "elem": { "type": "TypeString" } }, - "target_crn": { - "name": "target_crn", + "start_time": { + "name": "start_time", + "type": "TypeInt", + "description": "Timestamp in milliseconds when the snapshot configuration was created.", + "computed": true + }, + "state": { + "name": "state", "type": "TypeString", - "description": "The CRN of the Event Streams instance.", - "required": true + "description": "Status of the billing snapshot configuration. Possible values are [enabled, disabled].", + "computed": true }, - "topic": { - "name": "topic", + "updated_by": { + "name": "updated_by", "type": "TypeString", - "description": "The messsage hub topic defined in the Event Streams instance.", - "required": true + "description": "Account that updated the billing snapshot configuration.", + "computed": true + }, + "versioning": { + "name": "versioning", + "type": "TypeString", + "description": "A new version of report is created or the existing report version is overwritten with every update.", + "computed": true } - }, - "max_items": 1 + } }, { - "name": "region", + "name": "cos_endpoint", "type": "TypeString", - "description": "Include this optional field if you want to create a target in a different region other than the one you are connected.", - "immutable": true, - "min_length": 3, - "max_length": 1000, - "matches": "^[a-zA-Z0-9 -._:]+$", + "description": "The endpoint of the COS instance.", + "computed": true + }, + { + "name": "cos_reports_folder", + "type": "TypeString", + "description": "The billing reports root folder to store the billing reports snapshots. Defaults to \"IBMCloud-Billing-Reports\".", + "default_value": "IBMCloud-Billing-Reports", "optional": true }, { - "name": "updated_at", + "name": "state", "type": "TypeString", - "description": "The timestamp of the target last updated time.", + "description": "Status of the billing snapshot configuration. Possible values are [enabled, disabled].", "computed": true - } - ], - "ibm_cbr_rule": [ + }, { - "name": "last_modified_by_id", + "name": "account_type", "type": "TypeString", - "description": "IAM ID of the user or service which modified the resource.", + "description": "Type of account. Possible values are [enterprise, account].", "computed": true }, { - "name": "version", - "type": "TypeString", + "name": "created_at", + "type": "TypeInt", + "description": "Timestamp in milliseconds when the snapshot configuration was created.", "computed": true }, { - "name": "contexts", + "name": "last_updated_at", + "type": "TypeInt", + "description": "Timestamp in milliseconds when the snapshot configuration was last updated.", + "computed": true + }, + { + "name": "report_types", "type": "TypeList", - "description": "The contexts this rule applies to.", - "required": true, + "description": "The type of billing reports to take snapshot of. Possible values are [account_summary, enterprise_summary, account_resource_instance_usage].", + "optional": true, "elem": { - "attributes": { - "name": "attributes", - "type": "TypeList", - "description": "The attributes.", - "required": true, - "elem": { - "name": { - "name": "name", - "type": "TypeString", - "description": "The attribute name.", - "required": true - }, - "value": { - "name": "value", - "type": "TypeString", - "description": "The attribute value.", - "required": true - } - } - } + "type": "TypeString" } - }, + } + ], + "ibm_cbr_rule": [ { - "name": "crn", + "name": "enforcement_mode", "type": "TypeString", - "description": "The rule CRN.", - "cloud_data_type": "crn", - "computed": true + "description": "The rule enforcement mode: * `enabled` - The restrictions are enforced and reported. This is the default. * `disabled` - The restrictions are disabled. Nothing is enforced or reported. * `report` - The restrictions are evaluated and reported, but not enforced.", + "default_value": "enabled", + "options": "disabled, enabled, report", + "optional": true }, { - "name": "x_correlation_id", + "name": "transaction_id", "type": "TypeString", - "description": "The supplied or generated value of this header is logged for a request and repeated in a response header for the corresponding response. The same value is used for downstream requests and retries of those requests. If a value of this headers is not supplied in a request, the service generates a random (version 4) UUID.", + "description": "The `Transaction-Id` header behaves as the `X-Correlation-Id` header. It is supported for backward compatibility with other IBM platform services that support the `Transaction-Id` header only. If both `X-Correlation-Id` and `Transaction-Id` are provided, `X-Correlation-Id` has the precedence over `Transaction-Id`.", "min_length": 1, "max_length": 1024, "matches": "^[a-zA-Z0-9 ,\\-_]+$", "optional": true }, { - "name": "href", + "name": "created_by_id", "type": "TypeString", - "description": "The href link to the resource.", + "description": "IAM ID of the user or service which created the resource.", "computed": true }, + { + "name": "description", + "type": "TypeString", + "description": "The description of the rule.", + "max_length": 300, + "matches": "^[\\x20-\\xFE]*$", + "optional": true + }, { "name": "created_at", "type": "TypeString", "description": "The time the resource was created.", "computed": true }, + { + "name": "version", + "type": "TypeString", + "computed": true + }, { "name": "operations", "type": "TypeList", @@ -85522,41 +88332,66 @@ "max_items": 1 }, { - "name": "enforcement_mode", + "name": "x_correlation_id", "type": "TypeString", - "description": "The rule enforcement mode: * `enabled` - The restrictions are enforced and reported. This is the default. * `disabled` - The restrictions are disabled. Nothing is enforced or reported. * `report` - The restrictions are evaluated and reported, but not enforced.", - "default_value": "enabled", - "options": "disabled, enabled, report", + "description": "The supplied or generated value of this header is logged for a request and repeated in a response header for the corresponding response. The same value is used for downstream requests and retries of those requests. If a value of this headers is not supplied in a request, the service generates a random (version 4) UUID.", + "min_length": 1, + "max_length": 1024, + "matches": "^[a-zA-Z0-9 ,\\-_]+$", "optional": true }, { - "name": "created_by_id", + "name": "href", "type": "TypeString", - "description": "IAM ID of the user or service which created the resource.", + "description": "The href link to the resource.", "computed": true }, { - "name": "transaction_id", + "name": "last_modified_at", "type": "TypeString", - "description": "The `Transaction-Id` header behaves as the `X-Correlation-Id` header. It is supported for backward compatibility with other IBM platform services that support the `Transaction-Id` header only. If both `X-Correlation-Id` and `Transaction-Id` are provided, `X-Correlation-Id` has the precedence over `Transaction-Id`.", - "min_length": 1, - "max_length": 1024, - "matches": "^[a-zA-Z0-9 ,\\-_]+$", - "optional": true + "description": "The last time the resource was modified.", + "computed": true }, { - "name": "last_modified_at", + "name": "last_modified_by_id", "type": "TypeString", - "description": "The last time the resource was modified.", + "description": "IAM ID of the user or service which modified the resource.", "computed": true }, { - "name": "description", + "name": "contexts", + "type": "TypeList", + "description": "The contexts this rule applies to.", + "required": true, + "elem": { + "attributes": { + "name": "attributes", + "type": "TypeList", + "description": "The attributes.", + "required": true, + "elem": { + "name": { + "name": "name", + "type": "TypeString", + "description": "The attribute name.", + "required": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "The attribute value.", + "required": true + } + } + } + } + }, + { + "name": "crn", "type": "TypeString", - "description": "The description of the rule.", - "max_length": 300, - "matches": "^[\\x20-\\xFE]*$", - "optional": true + "description": "The rule CRN.", + "cloud_data_type": "crn", + "computed": true }, { "name": "resources", @@ -85620,12 +88455,6 @@ } ], "ibm_cbr_zone": [ - { - "name": "address_count", - "type": "TypeInt", - "description": "The number of addresses in the zone.", - "computed": true - }, { "name": "created_by_id", "type": "TypeString", @@ -85633,13 +88462,29 @@ "computed": true }, { - "name": "account_id", + "name": "version", "type": "TypeString", - "description": "The id of the account owning this zone.", - "required": true, - "min_length": 1, - "max_length": 128, - "matches": "^[a-zA-Z0-9\\-]+$" + "computed": true + }, + { + "name": "excluded", + "type": "TypeList", + "description": "The list of excluded addresses in the zone. Only addresses of type `ipAddress`, `ipRange`, and `subnet` can be excluded.", + "optional": true, + "elem": { + "type": { + "name": "type", + "type": "TypeString", + "description": "The type of address.", + "required": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "The IP address.", + "optional": true + } + } }, { "name": "transaction_id", @@ -85651,32 +88496,36 @@ "optional": true }, { - "name": "created_at", + "name": "last_modified_at", "type": "TypeString", - "description": "The time the resource was created.", + "description": "The last time the resource was modified.", "computed": true }, { - "name": "last_modified_at", + "name": "name", "type": "TypeString", - "description": "The last time the resource was modified.", - "computed": true + "description": "The name of the zone.", + "required": true, + "min_length": 1, + "max_length": 128, + "matches": "^[a-zA-Z0-9 \\-_]+$" }, { - "name": "x_correlation_id", + "name": "account_id", "type": "TypeString", - "description": "The supplied or generated value of this header is logged for a request and repeated in a response header for the corresponding response. The same value is used for downstream requests and retries of those requests. If a value of this headers is not supplied in a request, the service generates a random (version 4) UUID.", + "description": "The id of the account owning this zone.", + "required": true, "min_length": 1, - "max_length": 1024, - "matches": "^[a-zA-Z0-9 ,\\-_]+$", - "optional": true + "max_length": 128, + "matches": "^[a-zA-Z0-9\\-]+$" }, { - "name": "crn", + "name": "description", "type": "TypeString", - "description": "The zone CRN.", - "cloud_data_type": "crn", - "computed": true + "description": "The description of the zone.", + "max_length": 300, + "matches": "^[\\x20-\\xFE]*$", + "optional": true }, { "name": "addresses", @@ -85738,214 +88587,53 @@ } }, { - "name": "excluded", - "type": "TypeList", - "description": "The list of excluded addresses in the zone. Only addresses of type `ipAddress`, `ipRange`, and `subnet` can be excluded.", - "optional": true, - "elem": { - "type": { - "name": "type", - "type": "TypeString", - "description": "The type of address.", - "required": true - }, - "value": { - "name": "value", - "type": "TypeString", - "description": "The IP address.", - "optional": true - } - } - }, - { - "name": "excluded_count", - "type": "TypeInt", - "description": "The number of excluded addresses in the zone.", - "computed": true - }, - { - "name": "href", - "type": "TypeString", - "description": "The href link to the resource.", - "computed": true - }, - { - "name": "name", + "name": "x_correlation_id", "type": "TypeString", - "description": "The name of the zone.", - "required": true, + "description": "The supplied or generated value of this header is logged for a request and repeated in a response header for the corresponding response. The same value is used for downstream requests and retries of those requests. If a value of this headers is not supplied in a request, the service generates a random (version 4) UUID.", "min_length": 1, - "max_length": 128, - "matches": "^[a-zA-Z0-9 \\-_]+$" - }, - { - "name": "description", - "type": "TypeString", - "description": "The description of the zone.", - "max_length": 300, - "matches": "^[\\x20-\\xFE]*$", + "max_length": 1024, + "matches": "^[a-zA-Z0-9 ,\\-_]+$", "optional": true }, { - "name": "last_modified_by_id", - "type": "TypeString", - "description": "IAM ID of the user or service which modified the resource.", - "computed": true - }, - { - "name": "version", - "type": "TypeString", - "computed": true - } - ], - "ibm_cd_tekton_pipeline": [ - { - "name": "status", + "name": "crn", "type": "TypeString", - "description": "Pipeline status.", + "description": "The zone CRN.", + "cloud_data_type": "crn", "computed": true }, - { - "name": "toolchain", - "type": "TypeList", - "description": "Toolchain object containing references to the parent toolchain.", - "computed": true, - "elem": { - "crn": { - "name": "crn", - "type": "TypeString", - "description": "The CRN for the toolchain that contains the Tekton pipeline.", - "required": true - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "UUID.", - "required": true - } - } - }, - { - "name": "properties", - "type": "TypeList", - "description": "Tekton pipeline's environment properties.", - "computed": true, - "elem": { - "enum": { - "name": "enum", - "type": "TypeList", - "description": "Options for `single_select` property type. Only needed when using `single_select` property type.", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - "href": { - "name": "href", - "type": "TypeString", - "description": "API URL for interacting with the property.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Property name.", - "immutable": true, - "required": true - }, - "path": { - "name": "path", - "type": "TypeString", - "description": "A dot notation path for `integration` type properties only, that selects a value from the tool integration. If left blank the full tool integration data will be used.", - "optional": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "Property type.", - "immutable": true, - "required": true - }, - "value": { - "name": "value", - "type": "TypeString", - "description": "Property value. Any string value is valid.", - "optional": true - } - } - }, { "name": "href", "type": "TypeString", - "description": "API URL for interacting with the pipeline.", + "description": "The href link to the resource.", "computed": true }, { - "name": "build_number", + "name": "address_count", "type": "TypeInt", - "description": "The latest pipeline run build number. If this property is absent, the pipeline hasn't had any pipeline runs.", - "computed": true - }, - { - "name": "runs_url", - "type": "TypeString", - "description": "URL for this pipeline showing the list of pipeline runs.", + "description": "The number of addresses in the zone.", "computed": true }, { - "name": "next_build_number", + "name": "excluded_count", "type": "TypeInt", - "description": "The build number that will be used for the next pipeline run.", - "optional": true - }, - { - "name": "enable_notifications", - "type": "TypeBool", - "description": "Flag whether to enable notifications for this pipeline. When enabled, pipeline run events will be published on all slack integration specified channels in the parent toolchain. If omitted, this feature is disabled by default.", - "default_value": false, - "optional": true - }, - { - "name": "enable_partial_cloning", - "type": "TypeBool", - "description": "Flag whether to enable partial cloning for this pipeline. When partial clone is enabled, only the files contained within the paths specified in definition repositories are read and cloned, this means that symbolic links might not work. If omitted, this feature is disabled by default.", - "default_value": false, - "optional": true - }, - { - "name": "pipeline_id", - "type": "TypeString", - "description": "String.", - "immutable": true, - "required": true + "description": "The number of excluded addresses in the zone.", + "computed": true }, { - "name": "name", + "name": "created_at", "type": "TypeString", - "description": "String.", + "description": "The time the resource was created.", "computed": true }, { - "name": "resource_group", - "type": "TypeList", - "description": "The resource group in which the pipeline was created.", - "cloud_data_type": "resource_group", - "computed": true, - "elem": { - "id": { - "name": "id", - "type": "TypeString", - "description": "ID.", - "optional": true - } - } - }, - { - "name": "updated_at", + "name": "last_modified_by_id", "type": "TypeString", - "description": "Standard RFC 3339 Date Time String.", + "description": "IAM ID of the user or service which modified the resource.", "computed": true - }, + } + ], + "ibm_cd_tekton_pipeline": [ { "name": "enabled", "type": "TypeBool", @@ -85953,119 +88641,7 @@ "computed": true }, { - "name": "worker", - "type": "TypeList", - "description": "Details of the worker used to run the pipeline.", - "optional": true, - "elem": { - "id": { - "name": "id", - "type": "TypeString", - "description": "ID of the worker.", - "required": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Name of the worker. Computed based on the worker ID.", - "computed": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "Type of the worker. Computed based on the worker ID.", - "computed": true - } - }, - "max_items": 1 - }, - { - "name": "definitions", - "type": "TypeList", - "description": "Definition list.", - "computed": true, - "elem": { - "href": { - "name": "href", - "type": "TypeString", - "description": "API URL for interacting with the definition.", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "The aggregated definition ID.", - "computed": true - }, - "source": { - "name": "source", - "type": "TypeList", - "description": "Source repository containing the Tekton pipeline definition.", - "required": true, - "elem": { - "properties": { - "name": "properties", - "type": "TypeList", - "description": "Properties of the source, which define the URL of the repository and a branch or tag.", - "required": true, - "elem": { - "branch": { - "name": "branch", - "type": "TypeString", - "description": "A branch from the repo, specify one of branch or tag only.", - "optional": true - }, - "path": { - "name": "path", - "type": "TypeString", - "description": "The path to the definition's YAML files.", - "required": true - }, - "tag": { - "name": "tag", - "type": "TypeString", - "description": "A tag from the repo, specify one of branch or tag only.", - "optional": true - }, - "tool": { - "name": "tool", - "type": "TypeList", - "description": "Reference to the repository tool in the parent toolchain.", - "computed": true, - "elem": { - "id": { - "name": "id", - "type": "TypeString", - "description": "ID of the repository tool instance in the parent toolchain.", - "computed": true - } - } - }, - "url": { - "name": "url", - "type": "TypeString", - "description": "URL of the definition repository.", - "immutable": true, - "required": true - } - }, - "max_items": 1, - "min_items": 1 - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "The only supported source type is \"git\", indicating that the source is a git repository.", - "required": true - } - }, - "max_items": 1, - "min_items": 1 - } - } - }, - { - "name": "created_at", + "name": "updated_at", "type": "TypeString", "description": "Standard RFC 3339 Date Time String.", "computed": true @@ -86226,37 +88802,349 @@ "source": { "name": "source", "type": "TypeList", - "description": "Source repository for a Git trigger. Only required for Git triggers. The referenced repository URL must match the URL of a repository tool integration in the parent toolchain. Obtain the list of integrations from the toolchain API https://cloud.ibm.com/apidocs/toolchain#list-tools.", - "optional": true, + "description": "Source repository for a Git trigger. Only required for Git triggers. The referenced repository URL must match the URL of a repository tool integration in the parent toolchain. Obtain the list of integrations from the toolchain API https://cloud.ibm.com/apidocs/toolchain#list-tools.", + "optional": true, + "elem": { + "properties": { + "name": "properties", + "type": "TypeList", + "description": "Properties of the source, which define the URL of the repository and a branch or pattern.", + "required": true, + "elem": { + "blind_connection": { + "name": "blind_connection", + "type": "TypeBool", + "description": "True if the repository server is not addressable on the public internet. IBM Cloud will not be able to validate the connection details you provide.", + "computed": true + }, + "branch": { + "name": "branch", + "type": "TypeString", + "description": "Name of a branch from the repo. One of branch or pattern must be specified, but only one or the other.", + "optional": true + }, + "hook_id": { + "name": "hook_id", + "type": "TypeString", + "description": "ID of the webhook from the repo. Computed upon creation of the trigger.", + "computed": true + }, + "pattern": { + "name": "pattern", + "type": "TypeString", + "description": "The pattern of Git branch or tag to which to listen. You can specify a glob pattern such as '!test' or '*master' to match against multiple tags/branches in the repository. The glob pattern used must conform to Bash 4.3 specifications, see bash documentation for more info: https://www.gnu.org/software/bash/manual/bash.html#Pattern-Matching. One of branch or pattern must be specified, but only one or the other.", + "optional": true + }, + "tool": { + "name": "tool", + "type": "TypeList", + "description": "Reference to the repository tool in the parent toolchain.", + "computed": true, + "elem": { + "id": { + "name": "id", + "type": "TypeString", + "description": "ID of the repository tool instance in the parent toolchain.", + "computed": true + } + } + }, + "url": { + "name": "url", + "type": "TypeString", + "description": "URL of the repository to which the trigger is listening.", + "immutable": true, + "required": true + } + }, + "max_items": 1, + "min_items": 1 + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "The only supported source type is \"git\", indicating that the source is a git repository.", + "required": true + } + }, + "max_items": 1 + }, + "tags": { + "name": "tags", + "type": "TypeList", + "description": "Optional trigger tags array.", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + "timezone": { + "name": "timezone", + "type": "TypeString", + "description": "Only used for timer triggers. Specify the timezone used for this timer trigger, which will ensure the cron activates this trigger relative to the specified timezone. If no timezone is specified, the default timezone used is UTC. Valid timezones are those listed in the IANA timezone database, https://www.iana.org/time-zones.", + "optional": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "Trigger type.", + "required": true + }, + "webhook_url": { + "name": "webhook_url", + "type": "TypeString", + "description": "Webhook URL that can be used to trigger pipeline runs.", + "computed": true + }, + "worker": { + "name": "worker", + "type": "TypeList", + "description": "Details of the worker used to run the trigger.", + "optional": true, + "elem": { + "id": { + "name": "id", + "type": "TypeString", + "description": "ID of the worker.", + "required": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Name of the worker. Computed based on the worker ID.", + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "Type of the worker. Computed based on the worker ID.", + "computed": true + } + }, + "max_items": 1 + } + } + }, + { + "name": "status", + "type": "TypeString", + "description": "Pipeline status.", + "computed": true + }, + { + "name": "runs_url", + "type": "TypeString", + "description": "URL for this pipeline showing the list of pipeline runs.", + "computed": true + }, + { + "name": "pipeline_id", + "type": "TypeString", + "description": "String.", + "immutable": true, + "required": true + }, + { + "name": "name", + "type": "TypeString", + "description": "String.", + "computed": true + }, + { + "name": "enable_partial_cloning", + "type": "TypeBool", + "description": "Flag whether to enable partial cloning for this pipeline. When partial clone is enabled, only the files contained within the paths specified in definition repositories are read and cloned, this means that symbolic links might not work. If omitted, this feature is disabled by default.", + "default_value": false, + "optional": true + }, + { + "name": "resource_group", + "type": "TypeList", + "description": "The resource group in which the pipeline was created.", + "cloud_data_type": "resource_group", + "computed": true, + "elem": { + "id": { + "name": "id", + "type": "TypeString", + "description": "ID.", + "optional": true + } + } + }, + { + "name": "toolchain", + "type": "TypeList", + "description": "Toolchain object containing references to the parent toolchain.", + "computed": true, + "elem": { + "crn": { + "name": "crn", + "type": "TypeString", + "description": "The CRN for the toolchain that contains the Tekton pipeline.", + "required": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "UUID.", + "required": true + } + } + }, + { + "name": "build_number", + "type": "TypeInt", + "description": "The latest pipeline run build number. If this property is absent, the pipeline hasn't had any pipeline runs.", + "computed": true + }, + { + "name": "worker", + "type": "TypeList", + "description": "Details of the worker used to run the pipeline.", + "optional": true, + "elem": { + "id": { + "name": "id", + "type": "TypeString", + "description": "ID of the worker.", + "required": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Name of the worker. Computed based on the worker ID.", + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "Type of the worker. Computed based on the worker ID.", + "computed": true + } + }, + "max_items": 1 + }, + { + "name": "next_build_number", + "type": "TypeInt", + "description": "The build number that will be used for the next pipeline run.", + "optional": true + }, + { + "name": "properties", + "type": "TypeList", + "description": "Tekton pipeline's environment properties.", + "computed": true, + "elem": { + "enum": { + "name": "enum", + "type": "TypeList", + "description": "Options for `single_select` property type. Only needed when using `single_select` property type.", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + "href": { + "name": "href", + "type": "TypeString", + "description": "API URL for interacting with the property.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Property name.", + "immutable": true, + "required": true + }, + "path": { + "name": "path", + "type": "TypeString", + "description": "A dot notation path for `integration` type properties only, that selects a value from the tool integration. If left blank the full tool integration data will be used.", + "optional": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "Property type.", + "immutable": true, + "required": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "Property value. Any string value is valid.", + "optional": true + } + } + }, + { + "name": "created_at", + "type": "TypeString", + "description": "Standard RFC 3339 Date Time String.", + "computed": true + }, + { + "name": "href", + "type": "TypeString", + "description": "API URL for interacting with the pipeline.", + "computed": true + }, + { + "name": "enable_notifications", + "type": "TypeBool", + "description": "Flag whether to enable notifications for this pipeline. When enabled, pipeline run events will be published on all slack integration specified channels in the parent toolchain. If omitted, this feature is disabled by default.", + "default_value": false, + "optional": true + }, + { + "name": "definitions", + "type": "TypeList", + "description": "Definition list.", + "computed": true, + "elem": { + "href": { + "name": "href", + "type": "TypeString", + "description": "API URL for interacting with the definition.", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "The aggregated definition ID.", + "computed": true + }, + "source": { + "name": "source", + "type": "TypeList", + "description": "Source repository containing the Tekton pipeline definition.", + "required": true, "elem": { "properties": { "name": "properties", "type": "TypeList", - "description": "Properties of the source, which define the URL of the repository and a branch or pattern.", + "description": "Properties of the source, which define the URL of the repository and a branch or tag.", "required": true, "elem": { - "blind_connection": { - "name": "blind_connection", - "type": "TypeBool", - "description": "True if the repository server is not addressable on the public internet. IBM Cloud will not be able to validate the connection details you provide.", - "computed": true - }, "branch": { "name": "branch", "type": "TypeString", - "description": "Name of a branch from the repo. One of branch or pattern must be specified, but only one or the other.", + "description": "A branch from the repo, specify one of branch or tag only.", "optional": true }, - "hook_id": { - "name": "hook_id", + "path": { + "name": "path", "type": "TypeString", - "description": "ID of the webhook from the repo. Computed upon creation of the trigger.", - "computed": true + "description": "The path to the definition's YAML files.", + "required": true }, - "pattern": { - "name": "pattern", + "tag": { + "name": "tag", "type": "TypeString", - "description": "The pattern of Git branch or tag to which to listen. You can specify a glob pattern such as '!test' or '*master' to match against multiple tags/branches in the repository. The glob pattern used must conform to Bash 4.3 specifications, see bash documentation for more info: https://www.gnu.org/software/bash/manual/bash.html#Pattern-Matching. One of branch or pattern must be specified, but only one or the other.", + "description": "A tag from the repo, specify one of branch or tag only.", "optional": true }, "tool": { @@ -86276,7 +89164,7 @@ "url": { "name": "url", "type": "TypeString", - "description": "URL of the repository to which the trigger is listening.", + "description": "URL of the definition repository.", "immutable": true, "required": true } @@ -86291,72 +89179,13 @@ "required": true } }, - "max_items": 1 - }, - "tags": { - "name": "tags", - "type": "TypeList", - "description": "Optional trigger tags array.", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - "timezone": { - "name": "timezone", - "type": "TypeString", - "description": "Only used for timer triggers. Specify the timezone used for this timer trigger, which will ensure the cron activates this trigger relative to the specified timezone. If no timezone is specified, the default timezone used is UTC. Valid timezones are those listed in the IANA timezone database, https://www.iana.org/time-zones.", - "optional": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "Trigger type.", - "required": true - }, - "webhook_url": { - "name": "webhook_url", - "type": "TypeString", - "description": "Webhook URL that can be used to trigger pipeline runs.", - "computed": true - }, - "worker": { - "name": "worker", - "type": "TypeList", - "description": "Details of the worker used to run the trigger.", - "optional": true, - "elem": { - "id": { - "name": "id", - "type": "TypeString", - "description": "ID of the worker.", - "required": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Name of the worker. Computed based on the worker ID.", - "computed": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "Type of the worker. Computed based on the worker ID.", - "computed": true - } - }, - "max_items": 1 + "max_items": 1, + "min_items": 1 } } } ], "ibm_cd_tekton_pipeline_definition": [ - { - "name": "definition_id", - "type": "TypeString", - "description": "The aggregated definition ID.", - "computed": true - }, { "name": "pipeline_id", "type": "TypeString", @@ -86437,25 +89266,15 @@ "type": "TypeString", "description": "API URL for interacting with the definition.", "computed": true - } - ], - "ibm_cd_tekton_pipeline_property": [ - { - "name": "href", - "type": "TypeString", - "description": "API URL for interacting with the property.", - "computed": true }, { - "name": "pipeline_id", + "name": "definition_id", "type": "TypeString", - "description": "The Tekton pipeline ID.", - "immutable": true, - "required": true, - "min_length": 36, - "max_length": 36, - "matches": "^[-0-9a-z]+$" - }, + "description": "The aggregated definition ID.", + "computed": true + } + ], + "ibm_cd_tekton_pipeline_property": [ { "name": "name", "type": "TypeString", @@ -86498,9 +89317,13 @@ "max_length": 4096, "matches": "^[-0-9a-zA-Z_.]*$", "optional": true - } - ], - "ibm_cd_tekton_pipeline_trigger": [ + }, + { + "name": "href", + "type": "TypeString", + "description": "API URL for interacting with the property.", + "computed": true + }, { "name": "pipeline_id", "type": "TypeString", @@ -86510,6 +89333,110 @@ "min_length": 36, "max_length": 36, "matches": "^[-0-9a-z]+$" + } + ], + "ibm_cd_tekton_pipeline_trigger": [ + { + "name": "type", + "type": "TypeString", + "description": "Trigger type.", + "required": true, + "options": "generic, manual, scm, timer" + }, + { + "name": "worker", + "type": "TypeList", + "description": "Details of the worker used to run the trigger.", + "optional": true, + "elem": { + "id": { + "name": "id", + "type": "TypeString", + "description": "ID of the worker.", + "required": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Name of the worker. Computed based on the worker ID.", + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "Type of the worker. Computed based on the worker ID.", + "computed": true + } + }, + "max_items": 1 + }, + { + "name": "max_concurrent_runs", + "type": "TypeInt", + "description": "Defines the maximum number of concurrent runs for this trigger. If omitted then the concurrency limit is disabled for this trigger.", + "optional": true + }, + { + "name": "properties", + "type": "TypeList", + "description": "Optional trigger properties used to override or supplement the pipeline properties when triggering a pipeline run.", + "computed": true, + "elem": { + "enum": { + "name": "enum", + "type": "TypeList", + "description": "Options for `single_select` property type. Only needed for `single_select` property type.", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + "href": { + "name": "href", + "type": "TypeString", + "description": "API URL for interacting with the trigger property.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Property name.", + "immutable": true, + "required": true + }, + "path": { + "name": "path", + "type": "TypeString", + "description": "A dot notation path for `integration` type properties only, that selects a value from the tool integration. If left blank the full tool integration data will be used.", + "optional": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "Property type.", + "immutable": true, + "required": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "Property value. Any string value is valid.", + "optional": true + } + } + }, + { + "name": "webhook_url", + "type": "TypeString", + "description": "Webhook URL that can be used to trigger pipeline runs.", + "computed": true + }, + { + "name": "favorite", + "type": "TypeBool", + "description": "Mark the trigger as a favorite.", + "default_value": false, + "optional": true }, { "name": "source", @@ -86581,35 +89508,6 @@ }, "max_items": 1 }, - { - "name": "trigger_id", - "type": "TypeString", - "description": "The Trigger ID.", - "computed": true - }, - { - "name": "type", - "type": "TypeString", - "description": "Trigger type.", - "required": true, - "options": "generic, manual, scm, timer" - }, - { - "name": "event_listener", - "type": "TypeString", - "description": "Event listener name. The name of the event listener to which the trigger is associated. The event listeners are defined in the definition repositories of the Tekton pipeline.", - "required": true, - "min_length": 1, - "max_length": 253, - "matches": "^[-0-9a-zA-Z_.]{1,253}$" - }, - { - "name": "enabled", - "type": "TypeBool", - "description": "Flag whether the trigger is enabled.", - "default_value": true, - "optional": true - }, { "name": "events", "type": "TypeList", @@ -86620,17 +89518,29 @@ } }, { - "name": "webhook_url", + "name": "cron", "type": "TypeString", - "description": "Webhook URL that can be used to trigger pipeline runs.", + "description": "Only needed for timer triggers. Cron expression that indicates when this trigger will activate. Maximum frequency is every 5 minutes. The string is based on UNIX crontab syntax: minute, hour, day of month, month, day of week. Example: 0 *_/2 * * * - every 2 hours.", + "min_length": 5, + "max_length": 253, + "matches": "^[-0-9a-zA-Z,\\*\\/ ]{5,253}$", + "optional": true + }, + { + "name": "href", + "type": "TypeString", + "description": "API URL for interacting with the trigger. Only included when fetching the list of pipeline triggers.", "computed": true }, { - "name": "favorite", - "type": "TypeBool", - "description": "Mark the trigger as a favorite.", - "default_value": false, - "optional": true + "name": "tags", + "type": "TypeList", + "description": "Optional trigger tags array.", + "cloud_data_type": "tags", + "optional": true, + "elem": { + "type": "TypeString" + } }, { "name": "timezone", @@ -86641,12 +89551,6 @@ "matches": "^[-0-9a-zA-Z+_., \\/]{1,253}$", "optional": true }, - { - "name": "href", - "type": "TypeString", - "description": "API URL for interacting with the trigger. Only included when fetching the list of pipeline triggers.", - "computed": true - }, { "name": "secret", "type": "TypeList", @@ -86687,53 +89591,20 @@ "max_items": 1 }, { - "name": "properties", - "type": "TypeList", - "description": "Optional trigger properties used to override or supplement the pipeline properties when triggering a pipeline run.", - "computed": true, - "elem": { - "enum": { - "name": "enum", - "type": "TypeList", - "description": "Options for `single_select` property type. Only needed for `single_select` property type.", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - "href": { - "name": "href", - "type": "TypeString", - "description": "API URL for interacting with the trigger property.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Property name.", - "immutable": true, - "required": true - }, - "path": { - "name": "path", - "type": "TypeString", - "description": "A dot notation path for `integration` type properties only, that selects a value from the tool integration. If left blank the full tool integration data will be used.", - "optional": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "Property type.", - "immutable": true, - "required": true - }, - "value": { - "name": "value", - "type": "TypeString", - "description": "Property value. Any string value is valid.", - "optional": true - } - } + "name": "trigger_id", + "type": "TypeString", + "description": "The Trigger ID.", + "computed": true + }, + { + "name": "pipeline_id", + "type": "TypeString", + "description": "The Tekton pipeline ID.", + "immutable": true, + "required": true, + "min_length": 36, + "max_length": 36, + "matches": "^[-0-9a-z]+$" }, { "name": "name", @@ -86745,59 +89616,31 @@ "matches": "^([a-zA-Z0-9]{1,2}|[a-zA-Z0-9][0-9a-zA-Z-_.: \\/\\(\\)\\[\\]]{1,251}[a-zA-Z0-9])$" }, { - "name": "tags", - "type": "TypeList", - "description": "Optional trigger tags array.", - "cloud_data_type": "tags", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "worker", - "type": "TypeList", - "description": "Details of the worker used to run the trigger.", - "optional": true, - "elem": { - "id": { - "name": "id", - "type": "TypeString", - "description": "ID of the worker.", - "required": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Name of the worker. Computed based on the worker ID.", - "computed": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "Type of the worker. Computed based on the worker ID.", - "computed": true - } - }, - "max_items": 1 - }, - { - "name": "max_concurrent_runs", - "type": "TypeInt", - "description": "Defines the maximum number of concurrent runs for this trigger. If omitted then the concurrency limit is disabled for this trigger.", - "optional": true - }, - { - "name": "cron", + "name": "event_listener", "type": "TypeString", - "description": "Only needed for timer triggers. Cron expression that indicates when this trigger will activate. Maximum frequency is every 5 minutes. The string is based on UNIX crontab syntax: minute, hour, day of month, month, day of week. Example: 0 *_/2 * * * - every 2 hours.", - "min_length": 5, + "description": "Event listener name. The name of the event listener to which the trigger is associated. The event listeners are defined in the definition repositories of the Tekton pipeline.", + "required": true, + "min_length": 1, "max_length": 253, - "matches": "^[-0-9a-zA-Z,\\*\\/ ]{5,253}$", + "matches": "^[-0-9a-zA-Z_.]{1,253}$" + }, + { + "name": "enabled", + "type": "TypeBool", + "description": "Flag whether the trigger is enabled.", + "default_value": true, "optional": true } ], "ibm_cd_tekton_pipeline_trigger_property": [ + { + "name": "path", + "type": "TypeString", + "description": "A dot notation path for `integration` type properties only, that selects a value from the tool integration. If left blank the full tool integration data will be used.", + "max_length": 4096, + "matches": "^[-0-9a-zA-Z_.]*$", + "optional": true + }, { "name": "href", "type": "TypeString", @@ -86858,22 +89701,24 @@ "immutable": true, "required": true, "options": "appconfig, integration, secure, single_select, text" - }, - { - "name": "path", - "type": "TypeString", - "description": "A dot notation path for `integration` type properties only, that selects a value from the tool integration. If left blank the full tool integration data will be used.", - "max_length": 4096, - "matches": "^[-0-9a-zA-Z_.]*$", - "optional": true } ], "ibm_cd_toolchain": [ { - "name": "account_id", + "name": "name", "type": "TypeString", - "description": "Account ID where toolchain can be found.", - "computed": true + "description": "Toolchain name.", + "required": true, + "max_length": 128, + "matches": "^([^\\x00-\\x7F]|[a-zA-Z0-9-._ ])+$" + }, + { + "name": "description", + "type": "TypeString", + "description": "Describes the toolchain.", + "max_length": 500, + "matches": "^(.*?)$", + "optional": true }, { "name": "crn", @@ -86883,9 +89728,9 @@ "computed": true }, { - "name": "href", + "name": "created_at", "type": "TypeString", - "description": "URI that can be used to retrieve toolchain.", + "description": "Toolchain creation timestamp.", "computed": true }, { @@ -86895,12 +89740,15 @@ "computed": true }, { - "name": "description", - "type": "TypeString", - "description": "Describes the toolchain.", - "max_length": 500, - "matches": "^(.*?)$", - "optional": true + "name": "tags", + "type": "TypeSet", + "description": "Toolchain tags.", + "cloud_data_type": "tags", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } }, { "name": "resource_group_id", @@ -86913,51 +89761,50 @@ "matches": "^[0-9a-f]{32}$" }, { - "name": "ui_href", + "name": "account_id", "type": "TypeString", - "description": "URL of a user-facing user interface for this toolchain.", + "description": "Account ID where toolchain can be found.", "computed": true }, { - "name": "created_at", + "name": "location", "type": "TypeString", - "description": "Toolchain creation timestamp.", + "description": "Toolchain region.", + "cloud_data_type": "region", "computed": true }, { - "name": "created_by", + "name": "href", "type": "TypeString", - "description": "Identity that created the toolchain.", + "description": "URI that can be used to retrieve toolchain.", "computed": true }, { - "name": "tags", - "type": "TypeSet", - "description": "Toolchain tags.", - "cloud_data_type": "tags", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "name", + "name": "ui_href", "type": "TypeString", - "description": "Toolchain name.", - "required": true, - "max_length": 128, - "matches": "^([^\\x00-\\x7F]|[a-zA-Z0-9-._ ])+$" + "description": "URL of a user-facing user interface for this toolchain.", + "computed": true }, { - "name": "location", + "name": "created_by", "type": "TypeString", - "description": "Toolchain region.", - "cloud_data_type": "region", + "description": "Identity that created the toolchain.", "computed": true } ], "ibm_cd_toolchain_tool_appconfig": [ + { + "name": "state", + "type": "TypeString", + "description": "Current configuration state of the tool.", + "computed": true + }, + { + "name": "tool_id", + "type": "TypeString", + "description": "Tool ID.", + "computed": true + }, { "name": "toolchain_id", "type": "TypeString", @@ -86976,25 +89823,6 @@ "matches": "^([^\\x00-\\x7F]|[a-zA-Z0-9-._ ])+$", "optional": true }, - { - "name": "crn", - "type": "TypeString", - "description": "Tool CRN.", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "state", - "type": "TypeString", - "description": "Current configuration state of the tool.", - "computed": true - }, - { - "name": "tool_id", - "type": "TypeString", - "description": "Tool ID.", - "computed": true - }, { "name": "parameters", "type": "TypeList", @@ -87048,50 +89876,29 @@ "cloud_data_type": "resource_group", "computed": true }, - { - "name": "toolchain_crn", - "type": "TypeString", - "description": "CRN of toolchain which the tool is bound to.", - "computed": true - }, { "name": "href", "type": "TypeString", "description": "URI representing the tool.", "computed": true }, - { - "name": "referent", - "type": "TypeList", - "description": "Information on URIs to access this resource through the UI or API.", - "computed": true, - "elem": { - "api_href": { - "name": "api_href", - "type": "TypeString", - "description": "URI representing this resource through an API.", - "optional": true - }, - "ui_href": { - "name": "ui_href", - "type": "TypeString", - "description": "URI representing this resource through the UI.", - "optional": true - } - } - }, { "name": "updated_at", "type": "TypeString", "description": "Latest tool update timestamp.", "computed": true - } - ], - "ibm_cd_toolchain_tool_artifactory": [ + }, { - "name": "href", + "name": "crn", "type": "TypeString", - "description": "URI representing the tool.", + "description": "Tool CRN.", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "toolchain_crn", + "type": "TypeString", + "description": "CRN of toolchain which the tool is bound to.", "computed": true }, { @@ -87113,28 +89920,37 @@ "optional": true } } + } + ], + "ibm_cd_toolchain_tool_artifactory": [ + { + "name": "toolchain_id", + "type": "TypeString", + "description": "ID of the toolchain to bind the tool to.", + "immutable": true, + "required": true, + "min_length": 36, + "max_length": 36, + "matches": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$" }, { - "name": "state", + "name": "resource_group_id", "type": "TypeString", - "description": "Current configuration state of the tool.", + "description": "Resource group where the tool is located.", + "cloud_data_type": "resource_group", "computed": true }, { - "name": "tool_id", + "name": "updated_at", "type": "TypeString", - "description": "Tool ID.", + "description": "Latest tool update timestamp.", "computed": true }, { - "name": "toolchain_id", + "name": "tool_id", "type": "TypeString", - "description": "ID of the toolchain to bind the tool to.", - "immutable": true, - "required": true, - "min_length": 36, - "max_length": 36, - "matches": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$" + "description": "Tool ID.", + "computed": true }, { "name": "name", @@ -87215,13 +90031,6 @@ "max_items": 1, "min_items": 1 }, - { - "name": "resource_group_id", - "type": "TypeString", - "description": "Resource group where the tool is located.", - "cloud_data_type": "resource_group", - "computed": true - }, { "name": "crn", "type": "TypeString", @@ -87236,13 +90045,45 @@ "computed": true }, { - "name": "updated_at", + "name": "href", "type": "TypeString", - "description": "Latest tool update timestamp.", + "description": "URI representing the tool.", + "computed": true + }, + { + "name": "referent", + "type": "TypeList", + "description": "Information on URIs to access this resource through the UI or API.", + "computed": true, + "elem": { + "api_href": { + "name": "api_href", + "type": "TypeString", + "description": "URI representing this resource through an API.", + "optional": true + }, + "ui_href": { + "name": "ui_href", + "type": "TypeString", + "description": "URI representing this resource through the UI.", + "optional": true + } + } + }, + { + "name": "state", + "type": "TypeString", + "description": "Current configuration state of the tool.", "computed": true } ], "ibm_cd_toolchain_tool_bitbucketgit": [ + { + "name": "toolchain_crn", + "type": "TypeString", + "description": "CRN of toolchain which the tool is bound to.", + "computed": true + }, { "name": "href", "type": "TypeString", @@ -87250,15 +90091,42 @@ "computed": true }, { - "name": "state", + "name": "updated_at", "type": "TypeString", - "description": "Current configuration state of the tool.", + "description": "Latest tool update timestamp.", "computed": true }, { - "name": "tool_id", + "name": "crn", "type": "TypeString", - "description": "Tool ID.", + "description": "Tool CRN.", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "referent", + "type": "TypeList", + "description": "Information on URIs to access this resource through the UI or API.", + "computed": true, + "elem": { + "api_href": { + "name": "api_href", + "type": "TypeString", + "description": "URI representing this resource through an API.", + "optional": true + }, + "ui_href": { + "name": "ui_href", + "type": "TypeString", + "description": "URI representing this resource through the UI.", + "optional": true + } + } + }, + { + "name": "state", + "type": "TypeString", + "description": "Current configuration state of the tool.", "computed": true }, { @@ -87442,46 +90310,23 @@ "computed": true }, { - "name": "crn", - "type": "TypeString", - "description": "Tool CRN.", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "toolchain_crn", - "type": "TypeString", - "description": "CRN of toolchain which the tool is bound to.", - "computed": true - }, - { - "name": "referent", - "type": "TypeList", - "description": "Information on URIs to access this resource through the UI or API.", - "computed": true, - "elem": { - "api_href": { - "name": "api_href", - "type": "TypeString", - "description": "URI representing this resource through an API.", - "optional": true - }, - "ui_href": { - "name": "ui_href", - "type": "TypeString", - "description": "URI representing this resource through the UI.", - "optional": true - } - } - }, - { - "name": "updated_at", + "name": "tool_id", "type": "TypeString", - "description": "Latest tool update timestamp.", + "description": "Tool ID.", "computed": true } ], "ibm_cd_toolchain_tool_custom": [ + { + "name": "toolchain_id", + "type": "TypeString", + "description": "ID of the toolchain to bind the tool to.", + "immutable": true, + "required": true, + "min_length": 36, + "max_length": 36, + "matches": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$" + }, { "name": "name", "type": "TypeString", @@ -87556,27 +90401,17 @@ "computed": true }, { - "name": "href", + "name": "toolchain_crn", "type": "TypeString", - "description": "URI representing the tool.", + "description": "CRN of toolchain which the tool is bound to.", "computed": true }, { - "name": "state", + "name": "tool_id", "type": "TypeString", - "description": "Current configuration state of the tool.", + "description": "Tool ID.", "computed": true }, - { - "name": "toolchain_id", - "type": "TypeString", - "description": "ID of the toolchain to bind the tool to.", - "immutable": true, - "required": true, - "min_length": 36, - "max_length": 36, - "matches": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$" - }, { "name": "resource_group_id", "type": "TypeString", @@ -87585,9 +90420,9 @@ "computed": true }, { - "name": "toolchain_crn", + "name": "href", "type": "TypeString", - "description": "CRN of toolchain which the tool is bound to.", + "description": "URI representing the tool.", "computed": true }, { @@ -87617,17 +90452,23 @@ "computed": true }, { - "name": "tool_id", + "name": "state", "type": "TypeString", - "description": "Tool ID.", + "description": "Current configuration state of the tool.", "computed": true } ], "ibm_cd_toolchain_tool_devopsinsights": [ { - "name": "href", + "name": "toolchain_crn", "type": "TypeString", - "description": "URI representing the tool.", + "description": "CRN of toolchain which the tool is bound to.", + "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Latest tool update timestamp.", "computed": true }, { @@ -87637,12 +90478,29 @@ "computed": true }, { - "name": "resource_group_id", + "name": "tool_id", "type": "TypeString", - "description": "Resource group where the tool is located.", - "cloud_data_type": "resource_group", + "description": "Tool ID.", "computed": true }, + { + "name": "toolchain_id", + "type": "TypeString", + "description": "ID of the toolchain to bind the tool to.", + "immutable": true, + "required": true, + "min_length": 36, + "max_length": 36, + "matches": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$" + }, + { + "name": "name", + "type": "TypeString", + "description": "Name of the tool.", + "max_length": 128, + "matches": "^([^\\x00-\\x7F]|[a-zA-Z0-9-._ ])+$", + "optional": true + }, { "name": "crn", "type": "TypeString", @@ -87651,9 +90509,16 @@ "computed": true }, { - "name": "toolchain_crn", + "name": "resource_group_id", "type": "TypeString", - "description": "CRN of toolchain which the tool is bound to.", + "description": "Resource group where the tool is located.", + "cloud_data_type": "resource_group", + "computed": true + }, + { + "name": "href", + "type": "TypeString", + "description": "URI representing the tool.", "computed": true }, { @@ -87675,19 +90540,9 @@ "optional": true } } - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Latest tool update timestamp.", - "computed": true - }, - { - "name": "tool_id", - "type": "TypeString", - "description": "Tool ID.", - "computed": true - }, + } + ], + "ibm_cd_toolchain_tool_eventnotifications": [ { "name": "toolchain_id", "type": "TypeString", @@ -87705,16 +90560,32 @@ "max_length": 128, "matches": "^([^\\x00-\\x7F]|[a-zA-Z0-9-._ ])+$", "optional": true - } - ], - "ibm_cd_toolchain_tool_eventnotifications": [ + }, { - "name": "name", + "name": "referent", + "type": "TypeList", + "description": "Information on URIs to access this resource through the UI or API.", + "computed": true, + "elem": { + "api_href": { + "name": "api_href", + "type": "TypeString", + "description": "URI representing this resource through an API.", + "optional": true + }, + "ui_href": { + "name": "ui_href", + "type": "TypeString", + "description": "URI representing this resource through the UI.", + "optional": true + } + } + }, + { + "name": "tool_id", "type": "TypeString", - "description": "Name of the tool.", - "max_length": 128, - "matches": "^([^\\x00-\\x7F]|[a-zA-Z0-9-._ ])+$", - "optional": true + "description": "Tool ID.", + "computed": true }, { "name": "parameters", @@ -87752,6 +90623,12 @@ "cloud_data_type": "crn", "computed": true }, + { + "name": "toolchain_crn", + "type": "TypeString", + "description": "CRN of toolchain which the tool is bound to.", + "computed": true + }, { "name": "href", "type": "TypeString", @@ -87765,40 +90642,18 @@ "computed": true }, { - "name": "tool_id", + "name": "state", "type": "TypeString", - "description": "Tool ID.", + "description": "Current configuration state of the tool.", "computed": true - }, + } + ], + "ibm_cd_toolchain_tool_githubconsolidated": [ { - "name": "toolchain_id", + "name": "updated_at", "type": "TypeString", - "description": "ID of the toolchain to bind the tool to.", - "immutable": true, - "required": true, - "min_length": 36, - "max_length": 36, - "matches": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$" - }, - { - "name": "referent", - "type": "TypeList", - "description": "Information on URIs to access this resource through the UI or API.", - "computed": true, - "elem": { - "api_href": { - "name": "api_href", - "type": "TypeString", - "description": "URI representing this resource through an API.", - "optional": true - }, - "ui_href": { - "name": "ui_href", - "type": "TypeString", - "description": "URI representing this resource through the UI.", - "optional": true - } - } + "description": "Latest tool update timestamp.", + "computed": true }, { "name": "state", @@ -87806,34 +90661,6 @@ "description": "Current configuration state of the tool.", "computed": true }, - { - "name": "toolchain_crn", - "type": "TypeString", - "description": "CRN of toolchain which the tool is bound to.", - "computed": true - } - ], - "ibm_cd_toolchain_tool_githubconsolidated": [ - { - "name": "referent", - "type": "TypeList", - "description": "Information on URIs to access this resource through the UI or API.", - "computed": true, - "elem": { - "api_href": { - "name": "api_href", - "type": "TypeString", - "description": "URI representing this resource through an API.", - "optional": true - }, - "ui_href": { - "name": "ui_href", - "type": "TypeString", - "description": "URI representing this resource through the UI.", - "optional": true - } - } - }, { "name": "toolchain_id", "type": "TypeString", @@ -87852,102 +90679,6 @@ "matches": "^([^\\x00-\\x7F]|[a-zA-Z0-9-._ ])+$", "optional": true }, - { - "name": "initialization", - "type": "TypeList", - "required": true, - "elem": { - "auto_init": { - "name": "auto_init", - "type": "TypeBool", - "description": "Setting this value to true will initialize this repository with a README. This parameter is only used when creating a new repository.", - "default_value": false, - "immutable": true, - "optional": true - }, - "blind_connection": { - "name": "blind_connection", - "type": "TypeBool", - "description": "Setting this value to true means the server is not addressable on the public internet. IBM Cloud will not be able to validate the connection details you provide. Certain functionality that requires API access to the git server will be disabled. Delivery pipeline will only work using a private worker that has network access to the git server.", - "default_value": false, - "immutable": true, - "optional": true - }, - "git_id": { - "name": "git_id", - "type": "TypeString", - "description": "Set this value to 'github' for github.com, or 'githubcustom' for a custom GitHub Enterprise server.", - "immutable": true, - "optional": true - }, - "owner_id": { - "name": "owner_id", - "type": "TypeString", - "description": "The GitHub user or organization that owns the repository. This parameter is required when creating a new repository, cloning, or forking a repository. The value will be computed when linking to an existing repository.", - "immutable": true, - "optional": true - }, - "private_repo": { - "name": "private_repo", - "type": "TypeBool", - "description": "Set this value to 'true' to make the repository private when creating a new repository or when cloning or forking a repository. This parameter is not used when linking to an existing repository.", - "default_value": false, - "immutable": true, - "optional": true - }, - "repo_name": { - "name": "repo_name", - "type": "TypeString", - "description": "The name of the new GitHub repository to create. This parameter is required when creating a new repository, cloning, or forking a repository. The value will be computed when linking to an existing repository.", - "immutable": true, - "optional": true - }, - "repo_url": { - "name": "repo_url", - "type": "TypeString", - "description": "The URL of the GitHub repository for this tool integration. This parameter is required when linking to an existing repository. The value will be computed when creating a new repository, cloning, or forking a repository.", - "immutable": true, - "optional": true - }, - "root_url": { - "name": "root_url", - "type": "TypeString", - "description": "The Root URL of the server. e.g. https://github.example.com.", - "immutable": true, - "optional": true - }, - "source_repo_url": { - "name": "source_repo_url", - "type": "TypeString", - "description": "The URL of the repository that you are forking or cloning. This parameter is required when forking or cloning a repository. It is not used when creating a new repository or linking to an existing repository.", - "immutable": true, - "optional": true - }, - "title": { - "name": "title", - "type": "TypeString", - "description": "The title of the server. e.g. My GitHub Enterprise Server.", - "immutable": true, - "optional": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "The operation that should be performed to initialize the new tool integration. Use 'new' or 'new_if_not_exists' to create a new git repository, 'clone' or 'clone_if_not_exists' to clone an existing repository into a new git repository, 'fork' or 'fork_if_not_exists' to fork an existing git repository, or 'link' to link to an existing git repository. If you attempt to apply a resource with type 'new', 'clone', or 'fork' when the target repo already exists, the attempt will fail. If you apply a resource with type 'new_if_not_exists`, 'clone_if_not_exists', or 'fork_if_not_exists' when the target repo already exists, the existing repo will be used as-is.", - "immutable": true, - "required": true - } - }, - "max_items": 1, - "min_items": 1 - }, - { - "name": "resource_group_id", - "type": "TypeString", - "description": "Resource group where the tool is located.", - "cloud_data_type": "resource_group", - "computed": true - }, { "name": "crn", "type": "TypeString", @@ -87968,9 +90699,29 @@ "computed": true }, { - "name": "state", + "name": "referent", + "type": "TypeList", + "description": "Information on URIs to access this resource through the UI or API.", + "computed": true, + "elem": { + "api_href": { + "name": "api_href", + "type": "TypeString", + "description": "URI representing this resource through an API.", + "optional": true + }, + "ui_href": { + "name": "ui_href", + "type": "TypeString", + "description": "URI representing this resource through the UI.", + "optional": true + } + } + }, + { + "name": "tool_id", "type": "TypeString", - "description": "Current configuration state of the tool.", + "description": "Tool ID.", "computed": true }, { @@ -88107,43 +90858,183 @@ "min_items": 1 }, { - "name": "updated_at", - "type": "TypeString", - "description": "Latest tool update timestamp.", - "computed": true + "name": "initialization", + "type": "TypeList", + "required": true, + "elem": { + "auto_init": { + "name": "auto_init", + "type": "TypeBool", + "description": "Setting this value to true will initialize this repository with a README. This parameter is only used when creating a new repository.", + "default_value": false, + "immutable": true, + "optional": true + }, + "blind_connection": { + "name": "blind_connection", + "type": "TypeBool", + "description": "Setting this value to true means the server is not addressable on the public internet. IBM Cloud will not be able to validate the connection details you provide. Certain functionality that requires API access to the git server will be disabled. Delivery pipeline will only work using a private worker that has network access to the git server.", + "default_value": false, + "immutable": true, + "optional": true + }, + "git_id": { + "name": "git_id", + "type": "TypeString", + "description": "Set this value to 'github' for github.com, or 'githubcustom' for a custom GitHub Enterprise server.", + "immutable": true, + "optional": true + }, + "owner_id": { + "name": "owner_id", + "type": "TypeString", + "description": "The GitHub user or organization that owns the repository. This parameter is required when creating a new repository, cloning, or forking a repository. The value will be computed when linking to an existing repository.", + "immutable": true, + "optional": true + }, + "private_repo": { + "name": "private_repo", + "type": "TypeBool", + "description": "Set this value to 'true' to make the repository private when creating a new repository or when cloning or forking a repository. This parameter is not used when linking to an existing repository.", + "default_value": false, + "immutable": true, + "optional": true + }, + "repo_name": { + "name": "repo_name", + "type": "TypeString", + "description": "The name of the new GitHub repository to create. This parameter is required when creating a new repository, cloning, or forking a repository. The value will be computed when linking to an existing repository.", + "immutable": true, + "optional": true + }, + "repo_url": { + "name": "repo_url", + "type": "TypeString", + "description": "The URL of the GitHub repository for this tool integration. This parameter is required when linking to an existing repository. The value will be computed when creating a new repository, cloning, or forking a repository.", + "immutable": true, + "optional": true + }, + "root_url": { + "name": "root_url", + "type": "TypeString", + "description": "The Root URL of the server. e.g. https://github.example.com.", + "immutable": true, + "optional": true + }, + "source_repo_url": { + "name": "source_repo_url", + "type": "TypeString", + "description": "The URL of the repository that you are forking or cloning. This parameter is required when forking or cloning a repository. It is not used when creating a new repository or linking to an existing repository.", + "immutable": true, + "optional": true + }, + "title": { + "name": "title", + "type": "TypeString", + "description": "The title of the server. e.g. My GitHub Enterprise Server.", + "immutable": true, + "optional": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "The operation that should be performed to initialize the new tool integration. Use 'new' or 'new_if_not_exists' to create a new git repository, 'clone' or 'clone_if_not_exists' to clone an existing repository into a new git repository, 'fork' or 'fork_if_not_exists' to fork an existing git repository, or 'link' to link to an existing git repository. If you attempt to apply a resource with type 'new', 'clone', or 'fork' when the target repo already exists, the attempt will fail. If you apply a resource with type 'new_if_not_exists`, 'clone_if_not_exists', or 'fork_if_not_exists' when the target repo already exists, the existing repo will be used as-is.", + "immutable": true, + "required": true + } + }, + "max_items": 1, + "min_items": 1 }, - { - "name": "tool_id", - "type": "TypeString", - "description": "Tool ID.", - "computed": true - } - ], - "ibm_cd_toolchain_tool_gitlab": [ { "name": "resource_group_id", "type": "TypeString", "description": "Resource group where the tool is located.", "cloud_data_type": "resource_group", "computed": true - }, - { - "name": "toolchain_crn", - "type": "TypeString", - "description": "CRN of toolchain which the tool is bound to.", - "computed": true - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Latest tool update timestamp.", - "computed": true - }, + } + ], + "ibm_cd_toolchain_tool_gitlab": [ { - "name": "tool_id", - "type": "TypeString", - "description": "Tool ID.", - "computed": true + "name": "initialization", + "type": "TypeList", + "required": true, + "elem": { + "blind_connection": { + "name": "blind_connection", + "type": "TypeBool", + "description": "Setting this value to true means the server is not addressable on the public internet. IBM Cloud will not be able to validate the connection details you provide. Certain functionality that requires API access to the git server will be disabled. Delivery pipeline will only work using a private worker that has network access to the git server.", + "default_value": false, + "immutable": true, + "optional": true + }, + "git_id": { + "name": "git_id", + "type": "TypeString", + "description": "Set this value to 'gitlab' for gitlab.com, or 'gitlabcustom' for a custom GitLab server.", + "immutable": true, + "optional": true + }, + "owner_id": { + "name": "owner_id", + "type": "TypeString", + "description": "The GitLab user or group that owns the repository. This parameter is required when creating a new repository, cloning, or forking a repository. The value will be computed when linking to an existing repository.", + "immutable": true, + "optional": true + }, + "private_repo": { + "name": "private_repo", + "type": "TypeBool", + "description": "Set this value to 'true' to make the repository private when creating a new repository or when cloning or forking a repository. This parameter is not used when linking to an existing repository.", + "default_value": true, + "immutable": true, + "optional": true + }, + "repo_name": { + "name": "repo_name", + "type": "TypeString", + "description": "The name of the new GitLab repository to create. This parameter is required when creating a new repository, cloning, or forking a repository. The value will be computed when linking to an existing repository.", + "immutable": true, + "optional": true + }, + "repo_url": { + "name": "repo_url", + "type": "TypeString", + "description": "The URL of the GitLab repository for this tool integration. This parameter is required when linking to an existing repository. The value will be computed when creating a new repository, cloning, or forking a repository.", + "immutable": true, + "optional": true + }, + "root_url": { + "name": "root_url", + "type": "TypeString", + "description": "The Root URL of the server. e.g. https://gitlab.example.com.", + "immutable": true, + "optional": true + }, + "source_repo_url": { + "name": "source_repo_url", + "type": "TypeString", + "description": "The URL of the repository that you are forking or cloning. This parameter is required when forking or cloning a repository. It is not used when creating a new repository or linking to an existing repository.", + "immutable": true, + "optional": true + }, + "title": { + "name": "title", + "type": "TypeString", + "description": "The title of the server. e.g. My GitLab Enterprise Server.", + "immutable": true, + "optional": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "The operation that should be performed to initialize the new tool integration. Use 'new' or 'new_if_not_exists' to create a new git repository, 'clone' or 'clone_if_not_exists' to clone an existing repository into a new git repository, 'fork' or 'fork_if_not_exists' to fork an existing git repository, or 'link' to link to an existing git repository. If you attempt to apply a resource with type 'new', 'clone', or 'fork' when the target repo already exists, the attempt will fail. If you apply a resource with type 'new_if_not_exists`, 'clone_if_not_exists', or 'fork_if_not_exists' when the target repo already exists, the existing repo will be used as-is.", + "immutable": true, + "required": true + } + }, + "max_items": 1, + "min_items": 1 }, { "name": "referent", @@ -88165,6 +91056,12 @@ } } }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Latest tool update timestamp.", + "computed": true + }, { "name": "state", "type": "TypeString", @@ -88181,14 +91078,6 @@ "max_length": 36, "matches": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$" }, - { - "name": "name", - "type": "TypeString", - "description": "Name of the tool.", - "max_length": 128, - "matches": "^([^\\x00-\\x7F]|[a-zA-Z0-9-._ ])+$", - "optional": true - }, { "name": "parameters", "type": "TypeList", @@ -88316,87 +91205,6 @@ "max_items": 1, "min_items": 1 }, - { - "name": "initialization", - "type": "TypeList", - "required": true, - "elem": { - "blind_connection": { - "name": "blind_connection", - "type": "TypeBool", - "description": "Setting this value to true means the server is not addressable on the public internet. IBM Cloud will not be able to validate the connection details you provide. Certain functionality that requires API access to the git server will be disabled. Delivery pipeline will only work using a private worker that has network access to the git server.", - "default_value": false, - "immutable": true, - "optional": true - }, - "git_id": { - "name": "git_id", - "type": "TypeString", - "description": "Set this value to 'gitlab' for gitlab.com, or 'gitlabcustom' for a custom GitLab server.", - "immutable": true, - "optional": true - }, - "owner_id": { - "name": "owner_id", - "type": "TypeString", - "description": "The GitLab user or group that owns the repository. This parameter is required when creating a new repository, cloning, or forking a repository. The value will be computed when linking to an existing repository.", - "immutable": true, - "optional": true - }, - "private_repo": { - "name": "private_repo", - "type": "TypeBool", - "description": "Set this value to 'true' to make the repository private when creating a new repository or when cloning or forking a repository. This parameter is not used when linking to an existing repository.", - "default_value": true, - "immutable": true, - "optional": true - }, - "repo_name": { - "name": "repo_name", - "type": "TypeString", - "description": "The name of the new GitLab repository to create. This parameter is required when creating a new repository, cloning, or forking a repository. The value will be computed when linking to an existing repository.", - "immutable": true, - "optional": true - }, - "repo_url": { - "name": "repo_url", - "type": "TypeString", - "description": "The URL of the GitLab repository for this tool integration. This parameter is required when linking to an existing repository. The value will be computed when creating a new repository, cloning, or forking a repository.", - "immutable": true, - "optional": true - }, - "root_url": { - "name": "root_url", - "type": "TypeString", - "description": "The Root URL of the server. e.g. https://gitlab.example.com.", - "immutable": true, - "optional": true - }, - "source_repo_url": { - "name": "source_repo_url", - "type": "TypeString", - "description": "The URL of the repository that you are forking or cloning. This parameter is required when forking or cloning a repository. It is not used when creating a new repository or linking to an existing repository.", - "immutable": true, - "optional": true - }, - "title": { - "name": "title", - "type": "TypeString", - "description": "The title of the server. e.g. My GitLab Enterprise Server.", - "immutable": true, - "optional": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "The operation that should be performed to initialize the new tool integration. Use 'new' or 'new_if_not_exists' to create a new git repository, 'clone' or 'clone_if_not_exists' to clone an existing repository into a new git repository, 'fork' or 'fork_if_not_exists' to fork an existing git repository, or 'link' to link to an existing git repository. If you attempt to apply a resource with type 'new', 'clone', or 'fork' when the target repo already exists, the attempt will fail. If you apply a resource with type 'new_if_not_exists`, 'clone_if_not_exists', or 'fork_if_not_exists' when the target repo already exists, the existing repo will be used as-is.", - "immutable": true, - "required": true - } - }, - "max_items": 1, - "min_items": 1 - }, { "name": "crn", "type": "TypeString", @@ -88404,14 +91212,59 @@ "cloud_data_type": "crn", "computed": true }, + { + "name": "toolchain_crn", + "type": "TypeString", + "description": "CRN of toolchain which the tool is bound to.", + "computed": true + }, { "name": "href", "type": "TypeString", "description": "URI representing the tool.", "computed": true + }, + { + "name": "tool_id", + "type": "TypeString", + "description": "Tool ID.", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Name of the tool.", + "max_length": 128, + "matches": "^([^\\x00-\\x7F]|[a-zA-Z0-9-._ ])+$", + "optional": true + }, + { + "name": "resource_group_id", + "type": "TypeString", + "description": "Resource group where the tool is located.", + "cloud_data_type": "resource_group", + "computed": true } ], "ibm_cd_toolchain_tool_hashicorpvault": [ + { + "name": "href", + "type": "TypeString", + "description": "URI representing the tool.", + "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Latest tool update timestamp.", + "computed": true + }, + { + "name": "state", + "type": "TypeString", + "description": "Current configuration state of the tool.", + "computed": true + }, { "name": "toolchain_id", "type": "TypeString", @@ -88438,35 +91291,10 @@ "computed": true }, { - "name": "referent", - "type": "TypeList", - "description": "Information on URIs to access this resource through the UI or API.", - "computed": true, - "elem": { - "api_href": { - "name": "api_href", - "type": "TypeString", - "description": "URI representing this resource through an API.", - "optional": true - }, - "ui_href": { - "name": "ui_href", - "type": "TypeString", - "description": "URI representing this resource through the UI.", - "optional": true - } - } - }, - { - "name": "state", - "type": "TypeString", - "description": "Current configuration state of the tool.", - "computed": true - }, - { - "name": "tool_id", + "name": "crn", "type": "TypeString", - "description": "Tool ID.", + "description": "Tool CRN.", + "cloud_data_type": "crn", "computed": true }, { @@ -88555,114 +91383,6 @@ "max_items": 1, "min_items": 1 }, - { - "name": "crn", - "type": "TypeString", - "description": "Tool CRN.", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "toolchain_crn", - "type": "TypeString", - "description": "CRN of toolchain which the tool is bound to.", - "computed": true - }, - { - "name": "href", - "type": "TypeString", - "description": "URI representing the tool.", - "computed": true - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Latest tool update timestamp.", - "computed": true - } - ], - "ibm_cd_toolchain_tool_hostedgit": [ - { - "name": "name", - "type": "TypeString", - "description": "Name of the tool.", - "max_length": 128, - "matches": "^([^\\x00-\\x7F]|[a-zA-Z0-9-._ ])+$", - "optional": true - }, - { - "name": "initialization", - "type": "TypeList", - "required": true, - "elem": { - "git_id": { - "name": "git_id", - "type": "TypeString", - "description": "Set this value to 'hostedgit' to target Git Repos and Issue Tracking.", - "immutable": true, - "optional": true - }, - "owner_id": { - "name": "owner_id", - "type": "TypeString", - "description": "The GitLab user or group that owns the repository. This parameter is required when creating a new repository, cloning, or forking a repository. The value will be computed when linking to an existing repository.", - "immutable": true, - "optional": true - }, - "private_repo": { - "name": "private_repo", - "type": "TypeBool", - "description": "Set this value to 'true' to make the repository private when creating a new repository or when cloning or forking a repository. This parameter is not used when linking to an existing repository.", - "default_value": true, - "immutable": true, - "optional": true - }, - "repo_name": { - "name": "repo_name", - "type": "TypeString", - "description": "The name of the new GitLab repository to create. This parameter is required when creating a new repository, cloning, or forking a repository. The value will be computed when linking to an existing repository.", - "immutable": true, - "optional": true - }, - "repo_url": { - "name": "repo_url", - "type": "TypeString", - "description": "The URL of the GitLab repository for this tool integration. This parameter is required when linking to an existing repository. The value will be computed when creating a new repository, cloning, or forking a repository.", - "immutable": true, - "optional": true - }, - "source_repo_url": { - "name": "source_repo_url", - "type": "TypeString", - "description": "The URL of the repository that you are forking or cloning. This parameter is required when forking or cloning a repository. It is not used when creating a new repository or linking to an existing repository.", - "immutable": true, - "optional": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "The operation that should be performed to initialize the new tool integration. Use 'new' or 'new_if_not_exists' to create a new git repository, 'clone' or 'clone_if_not_exists' to clone an existing repository into a new git repository, 'fork' or 'fork_if_not_exists' to fork an existing git repository, or 'link' to link to an existing git repository. If you attempt to apply a resource with type 'new', 'clone', or 'fork' when the target repo already exists, the attempt will fail. If you apply a resource with type 'new_if_not_exists`, 'clone_if_not_exists', or 'fork_if_not_exists' when the target repo already exists, the existing repo will be used as-is.", - "immutable": true, - "required": true - } - }, - "max_items": 1, - "min_items": 1 - }, - { - "name": "resource_group_id", - "type": "TypeString", - "description": "Resource group where the tool is located.", - "cloud_data_type": "resource_group", - "computed": true - }, - { - "name": "crn", - "type": "TypeString", - "description": "Tool CRN.", - "cloud_data_type": "crn", - "computed": true - }, { "name": "toolchain_crn", "type": "TypeString", @@ -88689,34 +91409,14 @@ } } }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Latest tool update timestamp.", - "computed": true - }, - { - "name": "state", - "type": "TypeString", - "description": "Current configuration state of the tool.", - "computed": true - }, { "name": "tool_id", "type": "TypeString", "description": "Tool ID.", "computed": true - }, - { - "name": "toolchain_id", - "type": "TypeString", - "description": "ID of the toolchain to bind the tool to.", - "immutable": true, - "required": true, - "min_length": 36, - "max_length": 36, - "matches": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$" - }, + } + ], + "ibm_cd_toolchain_tool_hostedgit": [ { "name": "parameters", "type": "TypeList", @@ -88827,45 +91527,25 @@ "min_items": 1 }, { - "name": "href", + "name": "resource_group_id", "type": "TypeString", - "description": "URI representing the tool.", + "description": "Resource group where the tool is located.", + "cloud_data_type": "resource_group", "computed": true - } - ], - "ibm_cd_toolchain_tool_jenkins": [ + }, { - "name": "toolchain_crn", + "name": "crn", "type": "TypeString", - "description": "CRN of toolchain which the tool is bound to.", + "description": "Tool CRN.", + "cloud_data_type": "crn", "computed": true }, { - "name": "href", + "name": "toolchain_crn", "type": "TypeString", - "description": "URI representing the tool.", + "description": "CRN of toolchain which the tool is bound to.", "computed": true }, - { - "name": "referent", - "type": "TypeList", - "description": "Information on URIs to access this resource through the UI or API.", - "computed": true, - "elem": { - "api_href": { - "name": "api_href", - "type": "TypeString", - "description": "URI representing this resource through an API.", - "optional": true - }, - "ui_href": { - "name": "ui_href", - "type": "TypeString", - "description": "URI representing this resource through the UI.", - "optional": true - } - } - }, { "name": "state", "type": "TypeString", @@ -88897,18 +91577,98 @@ "optional": true }, { - "name": "crn", + "name": "initialization", + "type": "TypeList", + "required": true, + "elem": { + "git_id": { + "name": "git_id", + "type": "TypeString", + "description": "Set this value to 'hostedgit' to target Git Repos and Issue Tracking.", + "immutable": true, + "optional": true + }, + "owner_id": { + "name": "owner_id", + "type": "TypeString", + "description": "The GitLab user or group that owns the repository. This parameter is required when creating a new repository, cloning, or forking a repository. The value will be computed when linking to an existing repository.", + "immutable": true, + "optional": true + }, + "private_repo": { + "name": "private_repo", + "type": "TypeBool", + "description": "Set this value to 'true' to make the repository private when creating a new repository or when cloning or forking a repository. This parameter is not used when linking to an existing repository.", + "default_value": true, + "immutable": true, + "optional": true + }, + "repo_name": { + "name": "repo_name", + "type": "TypeString", + "description": "The name of the new GitLab repository to create. This parameter is required when creating a new repository, cloning, or forking a repository. The value will be computed when linking to an existing repository.", + "immutable": true, + "optional": true + }, + "repo_url": { + "name": "repo_url", + "type": "TypeString", + "description": "The URL of the GitLab repository for this tool integration. This parameter is required when linking to an existing repository. The value will be computed when creating a new repository, cloning, or forking a repository.", + "immutable": true, + "optional": true + }, + "source_repo_url": { + "name": "source_repo_url", + "type": "TypeString", + "description": "The URL of the repository that you are forking or cloning. This parameter is required when forking or cloning a repository. It is not used when creating a new repository or linking to an existing repository.", + "immutable": true, + "optional": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "The operation that should be performed to initialize the new tool integration. Use 'new' or 'new_if_not_exists' to create a new git repository, 'clone' or 'clone_if_not_exists' to clone an existing repository into a new git repository, 'fork' or 'fork_if_not_exists' to fork an existing git repository, or 'link' to link to an existing git repository. If you attempt to apply a resource with type 'new', 'clone', or 'fork' when the target repo already exists, the attempt will fail. If you apply a resource with type 'new_if_not_exists`, 'clone_if_not_exists', or 'fork_if_not_exists' when the target repo already exists, the existing repo will be used as-is.", + "immutable": true, + "required": true + } + }, + "max_items": 1, + "min_items": 1 + }, + { + "name": "href", "type": "TypeString", - "description": "Tool CRN.", - "cloud_data_type": "crn", + "description": "URI representing the tool.", "computed": true }, + { + "name": "referent", + "type": "TypeList", + "description": "Information on URIs to access this resource through the UI or API.", + "computed": true, + "elem": { + "api_href": { + "name": "api_href", + "type": "TypeString", + "description": "URI representing this resource through an API.", + "optional": true + }, + "ui_href": { + "name": "ui_href", + "type": "TypeString", + "description": "URI representing this resource through the UI.", + "optional": true + } + } + }, { "name": "updated_at", "type": "TypeString", "description": "Latest tool update timestamp.", "computed": true - }, + } + ], + "ibm_cd_toolchain_tool_jenkins": [ { "name": "parameters", "type": "TypeList", @@ -88957,9 +91717,32 @@ "description": "Resource group where the tool is located.", "cloud_data_type": "resource_group", "computed": true - } - ], - "ibm_cd_toolchain_tool_jira": [ + }, + { + "name": "crn", + "type": "TypeString", + "description": "Tool CRN.", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "href", + "type": "TypeString", + "description": "URI representing the tool.", + "computed": true + }, + { + "name": "state", + "type": "TypeString", + "description": "Current configuration state of the tool.", + "computed": true + }, + { + "name": "tool_id", + "type": "TypeString", + "description": "Tool ID.", + "computed": true + }, { "name": "toolchain_id", "type": "TypeString", @@ -88971,9 +91754,17 @@ "matches": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$" }, { - "name": "href", + "name": "name", "type": "TypeString", - "description": "URI representing the tool.", + "description": "Name of the tool.", + "max_length": 128, + "matches": "^([^\\x00-\\x7F]|[a-zA-Z0-9-._ ])+$", + "optional": true + }, + { + "name": "toolchain_crn", + "type": "TypeString", + "description": "CRN of toolchain which the tool is bound to.", "computed": true }, { @@ -88997,24 +91788,22 @@ } }, { - "name": "state", - "type": "TypeString", - "description": "Current configuration state of the tool.", - "computed": true - }, - { - "name": "tool_id", + "name": "updated_at", "type": "TypeString", - "description": "Tool ID.", + "description": "Latest tool update timestamp.", "computed": true - }, + } + ], + "ibm_cd_toolchain_tool_jira": [ { - "name": "name", + "name": "toolchain_id", "type": "TypeString", - "description": "Name of the tool.", - "max_length": 128, - "matches": "^([^\\x00-\\x7F]|[a-zA-Z0-9-._ ])+$", - "optional": true + "description": "ID of the toolchain to bind the tool to.", + "immutable": true, + "required": true, + "min_length": 36, + "max_length": 36, + "matches": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$" }, { "name": "parameters", @@ -89059,33 +91848,85 @@ "min_items": 1 }, { - "name": "resource_group_id", + "name": "toolchain_crn", "type": "TypeString", - "description": "Resource group where the tool is located.", - "cloud_data_type": "resource_group", + "description": "CRN of toolchain which the tool is bound to.", "computed": true }, { - "name": "crn", + "name": "href", "type": "TypeString", - "description": "Tool CRN.", - "cloud_data_type": "crn", + "description": "URI representing the tool.", "computed": true }, { - "name": "toolchain_crn", - "type": "TypeString", - "description": "CRN of toolchain which the tool is bound to.", - "computed": true + "name": "referent", + "type": "TypeList", + "description": "Information on URIs to access this resource through the UI or API.", + "computed": true, + "elem": { + "api_href": { + "name": "api_href", + "type": "TypeString", + "description": "URI representing this resource through an API.", + "optional": true + }, + "ui_href": { + "name": "ui_href", + "type": "TypeString", + "description": "URI representing this resource through the UI.", + "optional": true + } + } }, { "name": "updated_at", "type": "TypeString", "description": "Latest tool update timestamp.", "computed": true + }, + { + "name": "state", + "type": "TypeString", + "description": "Current configuration state of the tool.", + "computed": true + }, + { + "name": "tool_id", + "type": "TypeString", + "description": "Tool ID.", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Name of the tool.", + "max_length": 128, + "matches": "^([^\\x00-\\x7F]|[a-zA-Z0-9-._ ])+$", + "optional": true + }, + { + "name": "resource_group_id", + "type": "TypeString", + "description": "Resource group where the tool is located.", + "cloud_data_type": "resource_group", + "computed": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "Tool CRN.", + "cloud_data_type": "crn", + "computed": true } ], "ibm_cd_toolchain_tool_keyprotect": [ + { + "name": "updated_at", + "type": "TypeString", + "description": "Latest tool update timestamp.", + "computed": true + }, { "name": "state", "type": "TypeString", @@ -89143,10 +91984,10 @@ "min_items": 1 }, { - "name": "resource_group_id", + "name": "crn", "type": "TypeString", - "description": "Resource group where the tool is located.", - "cloud_data_type": "resource_group", + "description": "Tool CRN.", + "cloud_data_type": "crn", "computed": true }, { @@ -89175,12 +92016,6 @@ } } }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Latest tool update timestamp.", - "computed": true - }, { "name": "name", "type": "TypeString", @@ -89190,10 +92025,10 @@ "optional": true }, { - "name": "crn", + "name": "resource_group_id", "type": "TypeString", - "description": "Tool CRN.", - "cloud_data_type": "crn", + "description": "Resource group where the tool is located.", + "cloud_data_type": "resource_group", "computed": true }, { @@ -89205,10 +92040,14 @@ ], "ibm_cd_toolchain_tool_nexus": [ { - "name": "tool_id", + "name": "toolchain_id", "type": "TypeString", - "description": "Tool ID.", - "computed": true + "description": "ID of the toolchain to bind the tool to.", + "immutable": true, + "required": true, + "min_length": 36, + "max_length": 36, + "matches": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$" }, { "name": "name", @@ -89310,14 +92149,16 @@ } }, { - "name": "toolchain_id", + "name": "state", "type": "TypeString", - "description": "ID of the toolchain to bind the tool to.", - "immutable": true, - "required": true, - "min_length": 36, - "max_length": 36, - "matches": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$" + "description": "Current configuration state of the tool.", + "computed": true + }, + { + "name": "tool_id", + "type": "TypeString", + "description": "Tool ID.", + "computed": true }, { "name": "resource_group_id", @@ -89333,6 +92174,53 @@ "cloud_data_type": "crn", "computed": true }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Latest tool update timestamp.", + "computed": true + } + ], + "ibm_cd_toolchain_tool_pagerduty": [ + { + "name": "resource_group_id", + "type": "TypeString", + "description": "Resource group where the tool is located.", + "cloud_data_type": "resource_group", + "computed": true + }, + { + "name": "toolchain_crn", + "type": "TypeString", + "description": "CRN of toolchain which the tool is bound to.", + "computed": true + }, + { + "name": "href", + "type": "TypeString", + "description": "URI representing the tool.", + "computed": true + }, + { + "name": "referent", + "type": "TypeList", + "description": "Information on URIs to access this resource through the UI or API.", + "computed": true, + "elem": { + "api_href": { + "name": "api_href", + "type": "TypeString", + "description": "URI representing this resource through an API.", + "optional": true + }, + "ui_href": { + "name": "ui_href", + "type": "TypeString", + "description": "URI representing this resource through the UI.", + "optional": true + } + } + }, { "name": "updated_at", "type": "TypeString", @@ -89344,9 +92232,25 @@ "type": "TypeString", "description": "Current configuration state of the tool.", "computed": true - } - ], - "ibm_cd_toolchain_tool_pagerduty": [ + }, + { + "name": "toolchain_id", + "type": "TypeString", + "description": "ID of the toolchain to bind the tool to.", + "immutable": true, + "required": true, + "min_length": 36, + "max_length": 36, + "matches": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$" + }, + { + "name": "name", + "type": "TypeString", + "description": "Name of the tool.", + "max_length": 128, + "matches": "^([^\\x00-\\x7F]|[a-zA-Z0-9-._ ])+$", + "optional": true + }, { "name": "parameters", "type": "TypeList", @@ -89377,32 +92281,29 @@ "min_items": 1 }, { - "name": "referent", - "type": "TypeList", - "description": "Information on URIs to access this resource through the UI or API.", - "computed": true, - "elem": { - "api_href": { - "name": "api_href", - "type": "TypeString", - "description": "URI representing this resource through an API.", - "optional": true - }, - "ui_href": { - "name": "ui_href", - "type": "TypeString", - "description": "URI representing this resource through the UI.", - "optional": true - } - } + "name": "crn", + "type": "TypeString", + "description": "Tool CRN.", + "cloud_data_type": "crn", + "computed": true }, { - "name": "name", + "name": "tool_id", "type": "TypeString", - "description": "Name of the tool.", - "max_length": 128, - "matches": "^([^\\x00-\\x7F]|[a-zA-Z0-9-._ ])+$", - "optional": true + "description": "Tool ID.", + "computed": true + } + ], + "ibm_cd_toolchain_tool_pipeline": [ + { + "name": "toolchain_id", + "type": "TypeString", + "description": "ID of the toolchain to bind the tool to.", + "immutable": true, + "required": true, + "min_length": 36, + "max_length": 36, + "matches": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$" }, { "name": "resource_group_id", @@ -89418,48 +92319,18 @@ "cloud_data_type": "crn", "computed": true }, - { - "name": "toolchain_crn", - "type": "TypeString", - "description": "CRN of toolchain which the tool is bound to.", - "computed": true - }, { "name": "href", "type": "TypeString", "description": "URI representing the tool.", "computed": true }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Latest tool update timestamp.", - "computed": true - }, - { - "name": "state", - "type": "TypeString", - "description": "Current configuration state of the tool.", - "computed": true - }, { "name": "tool_id", "type": "TypeString", "description": "Tool ID.", "computed": true }, - { - "name": "toolchain_id", - "type": "TypeString", - "description": "ID of the toolchain to bind the tool to.", - "immutable": true, - "required": true, - "min_length": 36, - "max_length": 36, - "matches": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$" - } - ], - "ibm_cd_toolchain_tool_pipeline": [ { "name": "name", "type": "TypeString", @@ -89468,23 +92339,6 @@ "matches": "^([^\\x00-\\x7F]|[a-zA-Z0-9-._ ])+$", "optional": true }, - { - "name": "resource_group_id", - "type": "TypeString", - "description": "Resource group where the tool is located.", - "cloud_data_type": "resource_group", - "computed": true - }, - { - "name": "toolchain_id", - "type": "TypeString", - "description": "ID of the toolchain to bind the tool to.", - "immutable": true, - "required": true, - "min_length": 36, - "max_length": 36, - "matches": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$" - }, { "name": "parameters", "type": "TypeList", @@ -89502,24 +92356,45 @@ "min_items": 1 }, { - "name": "crn", + "name": "toolchain_crn", "type": "TypeString", - "description": "Tool CRN.", - "cloud_data_type": "crn", + "description": "CRN of toolchain which the tool is bound to.", "computed": true }, { - "name": "toolchain_crn", + "name": "referent", + "type": "TypeList", + "description": "Information on URIs to access this resource through the UI or API.", + "computed": true, + "elem": { + "api_href": { + "name": "api_href", + "type": "TypeString", + "description": "URI representing this resource through an API.", + "optional": true + }, + "ui_href": { + "name": "ui_href", + "type": "TypeString", + "description": "URI representing this resource through the UI.", + "optional": true + } + } + }, + { + "name": "updated_at", "type": "TypeString", - "description": "CRN of toolchain which the tool is bound to.", + "description": "Latest tool update timestamp.", "computed": true }, { - "name": "href", + "name": "state", "type": "TypeString", - "description": "URI representing the tool.", + "description": "Current configuration state of the tool.", "computed": true - }, + } + ], + "ibm_cd_toolchain_tool_privateworker": [ { "name": "referent", "type": "TypeList", @@ -89540,26 +92415,12 @@ } } }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Latest tool update timestamp.", - "computed": true - }, { "name": "state", "type": "TypeString", "description": "Current configuration state of the tool.", "computed": true }, - { - "name": "tool_id", - "type": "TypeString", - "description": "Tool ID.", - "computed": true - } - ], - "ibm_cd_toolchain_tool_privateworker": [ { "name": "toolchain_id", "type": "TypeString", @@ -89570,14 +92431,6 @@ "max_length": 36, "matches": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$" }, - { - "name": "name", - "type": "TypeString", - "description": "Name of the tool.", - "max_length": 128, - "matches": "^([^\\x00-\\x7F]|[a-zA-Z0-9-._ ])+$", - "optional": true - }, { "name": "parameters", "type": "TypeList", @@ -89608,84 +92461,64 @@ "min_items": 1 }, { - "name": "toolchain_crn", + "name": "crn", "type": "TypeString", - "description": "CRN of toolchain which the tool is bound to.", + "description": "Tool CRN.", + "cloud_data_type": "crn", "computed": true }, { - "name": "referent", - "type": "TypeList", - "description": "Information on URIs to access this resource through the UI or API.", - "computed": true, - "elem": { - "api_href": { - "name": "api_href", - "type": "TypeString", - "description": "URI representing this resource through an API.", - "optional": true - }, - "ui_href": { - "name": "ui_href", - "type": "TypeString", - "description": "URI representing this resource through the UI.", - "optional": true - } - } - }, - { - "name": "state", + "name": "toolchain_crn", "type": "TypeString", - "description": "Current configuration state of the tool.", + "description": "CRN of toolchain which the tool is bound to.", "computed": true }, { - "name": "resource_group_id", + "name": "href", "type": "TypeString", - "description": "Resource group where the tool is located.", - "cloud_data_type": "resource_group", + "description": "URI representing the tool.", "computed": true }, { - "name": "crn", + "name": "updated_at", "type": "TypeString", - "description": "Tool CRN.", - "cloud_data_type": "crn", + "description": "Latest tool update timestamp.", "computed": true }, { - "name": "href", + "name": "tool_id", "type": "TypeString", - "description": "URI representing the tool.", + "description": "Tool ID.", "computed": true }, { - "name": "updated_at", + "name": "name", "type": "TypeString", - "description": "Latest tool update timestamp.", - "computed": true + "description": "Name of the tool.", + "max_length": 128, + "matches": "^([^\\x00-\\x7F]|[a-zA-Z0-9-._ ])+$", + "optional": true }, { - "name": "tool_id", + "name": "resource_group_id", "type": "TypeString", - "description": "Tool ID.", + "description": "Resource group where the tool is located.", + "cloud_data_type": "resource_group", "computed": true } ], "ibm_cd_toolchain_tool_saucelabs": [ { - "name": "tool_id", + "name": "updated_at", "type": "TypeString", - "description": "Tool ID.", + "description": "Latest tool update timestamp.", "computed": true }, { - "name": "name", + "name": "tool_id", "type": "TypeString", - "description": "Name of the tool.", - "max_length": 128, - "matches": "^([^\\x00-\\x7F]|[a-zA-Z0-9-._ ])+$", - "optional": true + "description": "Tool ID.", + "computed": true }, { "name": "parameters", @@ -89711,22 +92544,42 @@ "min_items": 1 }, { - "name": "resource_group_id", + "name": "toolchain_crn", "type": "TypeString", - "description": "Resource group where the tool is located.", - "cloud_data_type": "resource_group", + "description": "CRN of toolchain which the tool is bound to.", "computed": true }, { - "name": "href", + "name": "referent", + "type": "TypeList", + "description": "Information on URIs to access this resource through the UI or API.", + "computed": true, + "elem": { + "api_href": { + "name": "api_href", + "type": "TypeString", + "description": "URI representing this resource through an API.", + "optional": true + }, + "ui_href": { + "name": "ui_href", + "type": "TypeString", + "description": "URI representing this resource through the UI.", + "optional": true + } + } + }, + { + "name": "crn", "type": "TypeString", - "description": "URI representing the tool.", + "description": "Tool CRN.", + "cloud_data_type": "crn", "computed": true }, { - "name": "updated_at", + "name": "href", "type": "TypeString", - "description": "Latest tool update timestamp.", + "description": "URI representing the tool.", "computed": true }, { @@ -89745,6 +92598,23 @@ "max_length": 36, "matches": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$" }, + { + "name": "name", + "type": "TypeString", + "description": "Name of the tool.", + "max_length": 128, + "matches": "^([^\\x00-\\x7F]|[a-zA-Z0-9-._ ])+$", + "optional": true + }, + { + "name": "resource_group_id", + "type": "TypeString", + "description": "Resource group where the tool is located.", + "cloud_data_type": "resource_group", + "computed": true + } + ], + "ibm_cd_toolchain_tool_secretsmanager": [ { "name": "crn", "type": "TypeString", @@ -89758,6 +92628,18 @@ "description": "CRN of toolchain which the tool is bound to.", "computed": true }, + { + "name": "state", + "type": "TypeString", + "description": "Current configuration state of the tool.", + "computed": true + }, + { + "name": "href", + "type": "TypeString", + "description": "URI representing the tool.", + "computed": true + }, { "name": "referent", "type": "TypeList", @@ -89777,13 +92659,11 @@ "optional": true } } - } - ], - "ibm_cd_toolchain_tool_secretsmanager": [ + }, { - "name": "state", + "name": "updated_at", "type": "TypeString", - "description": "Current configuration state of the tool.", + "description": "Latest tool update timestamp.", "computed": true }, { @@ -89802,6 +92682,14 @@ "max_length": 36, "matches": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$" }, + { + "name": "name", + "type": "TypeString", + "description": "Name of the tool.", + "max_length": 128, + "matches": "^([^\\x00-\\x7F]|[a-zA-Z0-9-._ ])+$", + "optional": true + }, { "name": "parameters", "type": "TypeList", @@ -89849,74 +92737,41 @@ "min_items": 1 }, { - "name": "href", + "name": "resource_group_id", "type": "TypeString", - "description": "URI representing the tool.", + "description": "Resource group where the tool is located.", + "cloud_data_type": "resource_group", "computed": true - }, - { - "name": "referent", - "type": "TypeList", - "description": "Information on URIs to access this resource through the UI or API.", - "computed": true, - "elem": { - "api_href": { - "name": "api_href", - "type": "TypeString", - "description": "URI representing this resource through an API.", - "optional": true - }, - "ui_href": { - "name": "ui_href", - "type": "TypeString", - "description": "URI representing this resource through the UI.", - "optional": true - } - } - }, + } + ], + "ibm_cd_toolchain_tool_securitycompliance": [ { - "name": "updated_at", + "name": "toolchain_crn", "type": "TypeString", - "description": "Latest tool update timestamp.", + "description": "CRN of toolchain which the tool is bound to.", "computed": true }, { - "name": "name", - "type": "TypeString", - "description": "Name of the tool.", - "max_length": 128, - "matches": "^([^\\x00-\\x7F]|[a-zA-Z0-9-._ ])+$", - "optional": true - }, - { - "name": "resource_group_id", + "name": "state", "type": "TypeString", - "description": "Resource group where the tool is located.", - "cloud_data_type": "resource_group", + "description": "Current configuration state of the tool.", "computed": true }, { - "name": "crn", + "name": "tool_id", "type": "TypeString", - "description": "Tool CRN.", - "cloud_data_type": "crn", + "description": "Tool ID.", "computed": true }, { - "name": "toolchain_crn", - "type": "TypeString", - "description": "CRN of toolchain which the tool is bound to.", - "computed": true - } - ], - "ibm_cd_toolchain_tool_securitycompliance": [ - { - "name": "name", + "name": "toolchain_id", "type": "TypeString", - "description": "Name of the tool.", - "max_length": 128, - "matches": "^([^\\x00-\\x7F]|[a-zA-Z0-9-._ ])+$", - "optional": true + "description": "ID of the toolchain to bind the tool to.", + "immutable": true, + "required": true, + "min_length": 36, + "max_length": 36, + "matches": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$" }, { "name": "parameters", @@ -90012,34 +92867,6 @@ "max_items": 1, "min_items": 1 }, - { - "name": "toolchain_crn", - "type": "TypeString", - "description": "CRN of toolchain which the tool is bound to.", - "computed": true - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Latest tool update timestamp.", - "computed": true - }, - { - "name": "tool_id", - "type": "TypeString", - "description": "Tool ID.", - "computed": true - }, - { - "name": "toolchain_id", - "type": "TypeString", - "description": "ID of the toolchain to bind the tool to.", - "immutable": true, - "required": true, - "min_length": 36, - "max_length": 36, - "matches": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$" - }, { "name": "resource_group_id", "type": "TypeString", @@ -90047,19 +92874,6 @@ "cloud_data_type": "resource_group", "computed": true }, - { - "name": "crn", - "type": "TypeString", - "description": "Tool CRN.", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "href", - "type": "TypeString", - "description": "URI representing the tool.", - "computed": true - }, { "name": "referent", "type": "TypeList", @@ -90081,13 +92895,44 @@ } }, { - "name": "state", + "name": "updated_at", "type": "TypeString", - "description": "Current configuration state of the tool.", + "description": "Latest tool update timestamp.", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Name of the tool.", + "max_length": 128, + "matches": "^([^\\x00-\\x7F]|[a-zA-Z0-9-._ ])+$", + "optional": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "Tool CRN.", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "href", + "type": "TypeString", + "description": "URI representing the tool.", "computed": true } ], "ibm_cd_toolchain_tool_slack": [ + { + "name": "toolchain_id", + "type": "TypeString", + "description": "ID of the toolchain to bind the tool to.", + "immutable": true, + "required": true, + "min_length": 36, + "max_length": 36, + "matches": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$" + }, { "name": "parameters", "type": "TypeList", @@ -90153,23 +92998,15 @@ "min_items": 1 }, { - "name": "resource_group_id", - "type": "TypeString", - "description": "Resource group where the tool is located.", - "cloud_data_type": "resource_group", - "computed": true - }, - { - "name": "crn", + "name": "updated_at", "type": "TypeString", - "description": "Tool CRN.", - "cloud_data_type": "crn", + "description": "Latest tool update timestamp.", "computed": true }, { - "name": "updated_at", + "name": "state", "type": "TypeString", - "description": "Latest tool update timestamp.", + "description": "Current configuration state of the tool.", "computed": true }, { @@ -90178,16 +93015,6 @@ "description": "Tool ID.", "computed": true }, - { - "name": "toolchain_id", - "type": "TypeString", - "description": "ID of the toolchain to bind the tool to.", - "immutable": true, - "required": true, - "min_length": 36, - "max_length": 36, - "matches": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$" - }, { "name": "name", "type": "TypeString", @@ -90196,6 +93023,20 @@ "matches": "^([^\\x00-\\x7F]|[a-zA-Z0-9-._ ])+$", "optional": true }, + { + "name": "resource_group_id", + "type": "TypeString", + "description": "Resource group where the tool is located.", + "cloud_data_type": "resource_group", + "computed": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "Tool CRN.", + "cloud_data_type": "crn", + "computed": true + }, { "name": "toolchain_crn", "type": "TypeString", @@ -90227,12 +93068,6 @@ "optional": true } } - }, - { - "name": "state", - "type": "TypeString", - "description": "Current configuration state of the tool.", - "computed": true } ], "ibm_cd_toolchain_tool_sonarqube": [ @@ -90246,30 +93081,6 @@ "max_length": 36, "matches": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$" }, - { - "name": "toolchain_crn", - "type": "TypeString", - "description": "CRN of toolchain which the tool is bound to.", - "computed": true - }, - { - "name": "href", - "type": "TypeString", - "description": "URI representing the tool.", - "computed": true - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Latest tool update timestamp.", - "computed": true - }, - { - "name": "state", - "type": "TypeString", - "description": "Current configuration state of the tool.", - "computed": true - }, { "name": "name", "type": "TypeString", @@ -90320,20 +93131,6 @@ "max_items": 1, "min_items": 1 }, - { - "name": "resource_group_id", - "type": "TypeString", - "description": "Resource group where the tool is located.", - "cloud_data_type": "resource_group", - "computed": true - }, - { - "name": "crn", - "type": "TypeString", - "description": "Tool CRN.", - "cloud_data_type": "crn", - "computed": true - }, { "name": "referent", "type": "TypeList", @@ -90359,45 +93156,47 @@ "type": "TypeString", "description": "Tool ID.", "computed": true - } - ], - "ibm_cdn": [ + }, { - "name": "origin_type", + "name": "state", "type": "TypeString", - "description": "Origin type info", - "default_value": "HOST_SERVER", - "immutable": true, - "optional": true + "description": "Current configuration state of the tool.", + "computed": true }, { - "name": "origin_address", + "name": "resource_group_id", "type": "TypeString", - "description": "origin address info", - "required": true + "description": "Resource group where the tool is located.", + "cloud_data_type": "resource_group", + "computed": true }, { - "name": "host_name", + "name": "crn", "type": "TypeString", - "description": "Host name", - "immutable": true, - "required": true + "description": "Tool CRN.", + "cloud_data_type": "crn", + "computed": true }, { - "name": "header", + "name": "toolchain_crn", "type": "TypeString", - "description": "Header info", - "optional": true, + "description": "CRN of toolchain which the tool is bound to.", "computed": true }, { - "name": "path", + "name": "href", "type": "TypeString", - "description": "Path details", - "default_value": "/*", - "immutable": true, - "optional": true + "description": "URI representing the tool.", + "computed": true }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Latest tool update timestamp.", + "computed": true + } + ], + "ibm_cdn": [ { "name": "vendor_name", "type": "TypeString", @@ -90407,17 +93206,25 @@ "optional": true }, { - "name": "http_port", - "type": "TypeInt", - "description": "HTTP port number", - "default_value": 80, + "name": "protocol", + "type": "TypeString", + "description": "Protocol name", + "default_value": "HTTP", + "immutable": true, "optional": true }, { - "name": "status", + "name": "respect_headers", + "type": "TypeBool", + "description": "respect headers info", + "default_value": true, + "optional": true + }, + { + "name": "file_extension", "type": "TypeString", - "description": "Status info of the CDN instance", - "computed": true + "description": "File extension info", + "optional": true }, { "name": "certificate_type", @@ -90435,9 +93242,17 @@ "optional": true }, { - "name": "bucket_name", + "name": "host_name", "type": "TypeString", - "description": "Bucket name", + "description": "Host name", + "immutable": true, + "required": true + }, + { + "name": "http_port", + "type": "TypeInt", + "description": "HTTP port number", + "default_value": 80, "optional": true }, { @@ -90448,54 +93263,68 @@ "optional": true }, { - "name": "cname", + "name": "header", "type": "TypeString", - "description": "cname info", - "immutable": true, + "description": "Header info", "optional": true, "computed": true }, { - "name": "respect_headers", - "type": "TypeBool", - "description": "respect headers info", - "default_value": true, + "name": "cache_key_query_rule", + "type": "TypeString", + "description": "query rule info", + "default_value": "include-all", "optional": true }, { - "name": "file_extension", + "name": "bucket_name", "type": "TypeString", - "description": "File extension info", + "description": "Bucket name", "optional": true }, { - "name": "cache_key_query_rule", + "name": "origin_type", "type": "TypeString", - "description": "query rule info", - "default_value": "include-all", + "description": "Origin type info", + "default_value": "HOST_SERVER", + "immutable": true, "optional": true }, { - "name": "protocol", + "name": "origin_address", "type": "TypeString", - "description": "Protocol name", - "default_value": "HTTP", + "description": "origin address info", + "required": true + }, + { + "name": "status", + "type": "TypeString", + "description": "Status info of the CDN instance", + "computed": true + }, + { + "name": "cname", + "type": "TypeString", + "description": "cname info", + "immutable": true, + "optional": true, + "computed": true + }, + { + "name": "path", + "type": "TypeString", + "description": "Path details", + "default_value": "/*", "immutable": true, "optional": true } ], "ibm_cis": [ { - "name": "tags", - "type": "TypeSet", - "min_length": 1, - "max_length": 128, - "matches": "^[A-Za-z0-9:_ .-]+$", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "plan", + "type": "TypeString", + "description": "The plan type of the service", + "required": true }, { "name": "status", @@ -90509,12 +93338,6 @@ "description": "The resource group name in which resource is provisioned", "computed": true }, - { - "name": "name", - "type": "TypeString", - "description": "A name for the resource instance", - "required": true - }, { "name": "service", "type": "TypeString", @@ -90522,9 +93345,12 @@ "computed": true }, { - "name": "resource_status", + "name": "resource_group_id", "type": "TypeString", - "description": "The status of the resource", + "description": "The resource group id", + "cloud_data_type": "resource_group", + "immutable": true, + "optional": true, "computed": true }, { @@ -90535,15 +93361,15 @@ "optional": true }, { - "name": "resource_crn", + "name": "resource_status", "type": "TypeString", - "description": "The crn of the resource", + "description": "The status of the resource", "computed": true }, { - "name": "plan", + "name": "name", "type": "TypeString", - "description": "The plan type of the service", + "description": "A name for the resource instance", "required": true }, { @@ -90554,6 +93380,18 @@ "immutable": true, "required": true }, + { + "name": "tags", + "type": "TypeSet", + "min_length": 1, + "max_length": 128, + "matches": "^[A-Za-z0-9:_ .-]+$", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, { "name": "resource_name", "type": "TypeString", @@ -90561,28 +93399,31 @@ "computed": true }, { - "name": "resource_controller_url", + "name": "resource_crn", "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about the resource", + "description": "The crn of the resource", "computed": true }, { - "name": "guid", + "name": "resource_controller_url", "type": "TypeString", - "description": "Unique identifier of resource instance", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about the resource", "computed": true }, { - "name": "resource_group_id", + "name": "guid", "type": "TypeString", - "description": "The resource group id", - "cloud_data_type": "resource_group", - "immutable": true, - "optional": true, + "description": "Unique identifier of resource instance", "computed": true } ], "ibm_cis_alert": [ + { + "name": "filters", + "type": "TypeString", + "description": "Filters based on filter type", + "optional": true + }, { "name": "cis_id", "type": "TypeString", @@ -90599,30 +93440,24 @@ "description": "Identifier of the Alert Policy", "computed": true }, - { - "name": "name", - "type": "TypeString", - "description": "Policy name", - "required": true - }, { "name": "description", "type": "TypeString", "description": "Policy Description", "optional": true }, - { - "name": "alert_type", - "type": "TypeString", - "description": "Condition for the alert", - "required": true - }, { "name": "enabled", "type": "TypeBool", "description": "Is the alert policy active", "required": true }, + { + "name": "alert_type", + "type": "TypeString", + "description": "Condition for the alert", + "required": true + }, { "name": "mechanisms", "type": "TypeList", @@ -90648,10 +93483,10 @@ } }, { - "name": "filters", + "name": "name", "type": "TypeString", - "description": "Filters based on filter type", - "optional": true + "description": "Policy name", + "required": true }, { "name": "conditions", @@ -90661,18 +93496,6 @@ } ], "ibm_cis_bot_management": [ - { - "name": "auth_id_logging", - "type": "TypeString", - "description": "Auth ID Logging", - "computed": true - }, - { - "name": "use_latest_model", - "type": "TypeString", - "description": "Use Latest Model", - "computed": true - }, { "name": "cis_id", "type": "TypeString", @@ -90706,48 +93529,21 @@ "type": "TypeString", "description": "Enable JS", "computed": true - } - ], - "ibm_cis_cache_settings": [ - { - "name": "cis_id", - "type": "TypeString", - "description": "CIS instance crn", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:internet-svcs" - ] }, { - "name": "development_mode", + "name": "auth_id_logging", "type": "TypeString", - "description": "Development mode setting", - "options": "on, off", - "optional": true, + "description": "Auth ID Logging", "computed": true }, { - "name": "purge_all", - "type": "TypeBool", - "description": "Purge all setting", - "optional": true - }, - { - "name": "purge_by_tags", - "type": "TypeList", - "description": "Purge by tags", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "domain_id", + "name": "use_latest_model", "type": "TypeString", - "description": "Associated CIS domain", - "required": true - }, + "description": "Use Latest Model", + "computed": true + } + ], + "ibm_cis_cache_settings": [ { "name": "caching_level", "type": "TypeString", @@ -90773,9 +93569,9 @@ "computed": true }, { - "name": "query_string_sort", + "name": "development_mode", "type": "TypeString", - "description": "Query String sort setting", + "description": "Development mode setting", "options": "on, off", "optional": true, "computed": true @@ -90790,20 +93586,18 @@ } }, { - "name": "purge_by_hosts", + "name": "purge_by_tags", "type": "TypeList", - "description": "Purge by hosts", + "description": "Purge by tags", "optional": true, "elem": { "type": "TypeString" } - } - ], - "ibm_cis_certificate_order": [ + }, { "name": "cis_id", "type": "TypeString", - "description": "CIS object id or CRN", + "description": "CIS instance crn", "cloud_data_type": "resource_instance", "required": true, "cloud_data_range": [ @@ -90816,6 +93610,31 @@ "description": "Associated CIS domain", "required": true }, + { + "name": "query_string_sort", + "type": "TypeString", + "description": "Query String sort setting", + "options": "on, off", + "optional": true, + "computed": true + }, + { + "name": "purge_all", + "type": "TypeBool", + "description": "Purge all setting", + "optional": true + }, + { + "name": "purge_by_hosts", + "type": "TypeList", + "description": "Purge by hosts", + "optional": true, + "elem": { + "type": "TypeString" + } + } + ], + "ibm_cis_certificate_order": [ { "name": "certificate_id", "type": "TypeString", @@ -90844,45 +93663,49 @@ "type": "TypeString", "description": "certificate status", "computed": true + }, + { + "name": "cis_id", + "type": "TypeString", + "description": "CIS object id or CRN", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:internet-svcs" + ] + }, + { + "name": "domain_id", + "type": "TypeString", + "description": "Associated CIS domain", + "required": true } ], "ibm_cis_certificate_upload": [ { - "name": "hosts", - "type": "TypeList", - "description": "hosts which the certificate uploaded to", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "signature", + "name": "domain_id", "type": "TypeString", - "description": "certificate signature", - "computed": true + "description": "Associated CIS domain", + "required": true }, { - "name": "uploaded_on", + "name": "custom_cert_id", "type": "TypeString", - "description": "certificate uploaded date", "computed": true }, { - "name": "expires_on", + "name": "certificate", "type": "TypeString", - "description": "certificate expires date", - "computed": true + "description": "Certificate key", + "secure": true, + "required": true }, { - "name": "cis_id", + "name": "private_key", "type": "TypeString", - "description": "CIS instance crn", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:internet-svcs" - ] + "description": "Certificate private key", + "secure": true, + "required": true }, { "name": "bundle_method", @@ -90893,53 +93716,65 @@ "optional": true }, { - "name": "priority", - "type": "TypeInt", - "description": "Certificate priority", - "optional": true, - "computed": true + "name": "hosts", + "type": "TypeList", + "description": "hosts which the certificate uploaded to", + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "domain_id", + "name": "uploaded_on", "type": "TypeString", - "description": "Associated CIS domain", - "required": true + "description": "certificate uploaded date", + "computed": true }, { - "name": "private_key", + "name": "status", "type": "TypeString", - "description": "Certificate private key", - "secure": true, - "required": true + "description": "certificate status", + "computed": true }, { - "name": "certificate", + "name": "signature", "type": "TypeString", - "description": "Certificate key", - "secure": true, - "required": true + "description": "certificate signature", + "computed": true }, { - "name": "issuer", + "name": "modified_on", "type": "TypeString", - "description": "certificate issuer", + "description": "certificate modified date", "computed": true }, { - "name": "modified_on", + "name": "expires_on", "type": "TypeString", - "description": "certificate modified date", + "description": "certificate expires date", "computed": true }, { - "name": "custom_cert_id", + "name": "cis_id", "type": "TypeString", + "description": "CIS instance crn", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:internet-svcs" + ] + }, + { + "name": "priority", + "type": "TypeInt", + "description": "Certificate priority", + "optional": true, "computed": true }, { - "name": "status", + "name": "issuer", "type": "TypeString", - "description": "certificate status", + "description": "certificate issuer", "computed": true } ], @@ -90954,12 +93789,6 @@ "service:internet-svcs" ] }, - { - "name": "domain_id", - "type": "TypeString", - "description": "Associated CIS domain", - "required": true - }, { "name": "url", "type": "TypeString", @@ -90972,18 +93801,39 @@ "description": "Free text", "computed": true }, + { + "name": "required_tokens", + "type": "TypeList", + "description": "Custom page state", + "computed": true, + "elem": { + "type": "TypeString" + } + }, { "name": "preview_target", "type": "TypeString", "description": "Custom page preview target", "computed": true }, + { + "name": "created_on", + "type": "TypeString", + "description": "Custom page created date", + "computed": true + }, { "name": "modified_on", "type": "TypeString", "description": "Custom page modified date", "computed": true }, + { + "name": "domain_id", + "type": "TypeString", + "description": "Associated CIS domain", + "required": true + }, { "name": "page_id", "type": "TypeString", @@ -90997,42 +93847,34 @@ "type": "TypeString", "description": "Custom page state", "computed": true - }, - { - "name": "required_tokens", - "type": "TypeList", - "description": "Custom page state", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "created_on", - "type": "TypeString", - "description": "Custom page created date", - "computed": true } ], "ibm_cis_dns_record": [ { - "name": "name", + "name": "cis_id", "type": "TypeString", - "description": "DNS record name", - "optional": true + "description": "CIS object id or CRN", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:internet-svcs" + ] }, { - "name": "proxied", - "type": "TypeBool", - "description": "Boolean value true if proxied else flase", - "default_value": false, + "name": "priority", + "type": "TypeInt", + "description": "Priority Value", "optional": true }, { - "name": "domain_id", + "name": "modified_on", "type": "TypeString", - "description": "Associated CIS domain", - "required": true + "computed": true + }, + { + "name": "proxiable", + "type": "TypeBool", + "computed": true }, { "name": "zone_name", @@ -91041,16 +93883,10 @@ "computed": true }, { - "name": "content", + "name": "type", "type": "TypeString", - "description": "DNS record content", - "optional": true - }, - { - "name": "priority", - "type": "TypeInt", - "description": "Priority Value", - "optional": true + "description": "Record type", + "required": true }, { "name": "ttl", @@ -91060,9 +93896,16 @@ "optional": true }, { - "name": "record_id", - "type": "TypeString", - "computed": true + "name": "proxied", + "type": "TypeBool", + "description": "Boolean value true if proxied else flase", + "default_value": false, + "optional": true + }, + { + "name": "data", + "type": "TypeMap", + "optional": true }, { "name": "created_on", @@ -91070,14 +93913,34 @@ "computed": true }, { - "name": "modified_on", + "name": "record_id", "type": "TypeString", "computed": true }, + { + "name": "domain_id", + "type": "TypeString", + "description": "Associated CIS domain", + "required": true + }, + { + "name": "name", + "type": "TypeString", + "description": "DNS record name", + "optional": true + }, + { + "name": "content", + "type": "TypeString", + "description": "DNS record content", + "optional": true + } + ], + "ibm_cis_dns_records_import": [ { "name": "cis_id", "type": "TypeString", - "description": "CIS object id or CRN", + "description": "CIS instance crn", "cloud_data_type": "resource_instance", "required": true, "cloud_data_range": [ @@ -91085,23 +93948,11 @@ ] }, { - "name": "type", + "name": "domain_id", "type": "TypeString", - "description": "Record type", + "description": "Associated CIS domain", "required": true }, - { - "name": "data", - "type": "TypeMap", - "optional": true - }, - { - "name": "proxiable", - "type": "TypeBool", - "computed": true - } - ], - "ibm_cis_dns_records_import": [ { "name": "file", "type": "TypeString", @@ -91120,27 +93971,45 @@ "type": "TypeInt", "description": "added records count", "computed": true - }, + } + ], + "ibm_cis_domain": [ { - "name": "cis_id", + "name": "status", "type": "TypeString", - "description": "CIS instance crn", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:internet-svcs" - ] + "computed": true }, { "name": "domain_id", "type": "TypeString", - "description": "Associated CIS domain", + "computed": true + }, + { + "name": "verification_key", + "type": "TypeString", + "computed": true + }, + { + "name": "paused", + "type": "TypeBool", + "computed": true + }, + { + "name": "domain", + "type": "TypeString", + "description": "CISzone - Domain", "required": true - } - ], - "ibm_cis_domain": [ + }, { - "name": "original_name_servers", + "name": "type", + "type": "TypeString", + "description": "CISzone - Domain Type", + "default_value": "full", + "options": "full, partial", + "optional": true + }, + { + "name": "name_servers", "type": "TypeList", "computed": true, "elem": { @@ -91148,14 +94017,12 @@ } }, { - "name": "domain_id", - "type": "TypeString", - "computed": true - }, - { - "name": "verification_key", - "type": "TypeString", - "computed": true + "name": "original_name_servers", + "type": "TypeList", + "computed": true, + "elem": { + "type": "TypeString" + } }, { "name": "cname_suffix", @@ -91171,72 +94038,140 @@ "cloud_data_range": [ "service:internet-svcs" ] - }, + } + ], + "ibm_cis_domain_settings": [ { - "name": "domain", + "name": "domain_id", "type": "TypeString", - "description": "CISzone - Domain", + "description": "Associated CIS domain", "required": true }, { - "name": "status", + "name": "opportunistic_encryption", "type": "TypeString", + "description": "opportunistic_encryption setting", + "options": "on, off", + "optional": true, "computed": true }, { - "name": "name_servers", - "type": "TypeList", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "type", + "name": "hotlink_protection", "type": "TypeString", - "description": "CISzone - Domain Type", - "default_value": "full", - "options": "full, partial", - "optional": true + "description": "hotlink_protection setting", + "options": "on, off", + "optional": true, + "computed": true }, { - "name": "paused", - "type": "TypeBool", + "name": "max_upload", + "type": "TypeInt", + "description": "Maximum upload", + "options": "100, 125, 150, 175, 200, 225, 250, 275, 300, 325, 350, 375, 400, 425, 450, 475, 500", + "optional": true, "computed": true - } - ], - "ibm_cis_domain_settings": [ + }, { - "name": "cname_flattening", + "name": "minify", + "type": "TypeList", + "description": "Minify setting", + "optional": true, + "computed": true, + "elem": { + "css": { + "name": "css", + "type": "TypeString", + "description": "Minify CSS setting", + "required": true + }, + "html": { + "name": "html", + "type": "TypeString", + "description": "Minify HTML setting", + "required": true + }, + "js": { + "name": "js", + "type": "TypeString", + "description": "Minify JS setting", + "required": true + } + }, + "max_items": 1, + "min_items": 1 + }, + { + "name": "automatic_https_rewrites", "type": "TypeString", - "description": "cname_flattening setting", + "description": "automatic_https_rewrites setting", + "options": "on, off", "optional": true, "computed": true }, { - "name": "opportunistic_encryption", + "name": "script_load_optimization", "type": "TypeString", - "description": "opportunistic_encryption setting", + "description": "script_load_optimization setting", "options": "on, off", "optional": true, "computed": true }, { - "name": "ip_geolocation", + "name": "mobile_redirect", + "type": "TypeList", + "optional": true, + "computed": true, + "elem": { + "mobile_subdomain": { + "name": "mobile_subdomain", + "type": "TypeString", + "description": "Mobile redirect subdomain", + "optional": true, + "computed": true + }, + "status": { + "name": "status", + "type": "TypeString", + "description": "mobile redirect status", + "required": true + }, + "strip_uri": { + "name": "strip_uri", + "type": "TypeBool", + "description": "mobile redirect strip URI", + "optional": true, + "computed": true + } + }, + "max_items": 1, + "min_items": 1 + }, + { + "name": "image_size_optimization", "type": "TypeString", - "description": "ip_geolocation setting", - "options": "on, off", + "description": "image_size_optimization setting", "optional": true, "computed": true }, { - "name": "brotli", + "name": "tls_client_auth", "type": "TypeString", - "description": "brotli setting", + "description": "tls_client_auth setting", "options": "on, off", "optional": true, "computed": true }, + { + "name": "cipher", + "type": "TypeSet", + "description": "Cipher settings", + "options": "ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-ECDSA-CHACHA20-POLY1305, ECDHE-RSA-AES128-GCM-SHA256,ECDHE-RSA-CHACHA20-POLY1305, ECDHE-ECDSA-AES128-SHA256, ECDHE-ECDSA-AES128-SHA, ECDHE-RSA-AES128-SHA256, ECDHE-RSA-AES128-SHA, AES128-GCM-SHA256, AES128-SHA256, AES128-SHA, ECDHE-ECDSA-AES256-GCM-SHA384, ECDHE-ECDSA-AES256-SHA384, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-RSA-AES256-SHA384, ECDHE-RSA-AES256-SHA, AES256-GCM-SHA384, AES256-SHA256, AES256-SHA, DES-CBC3-SHA, AEAD-AES128-GCM-SHA256, AEAD-AES256-GCM-SHA384, AEAD-CHACHA20-POLY1305-SHA256", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, { "name": "security_header", "type": "TypeList", @@ -91280,159 +94215,107 @@ "min_items": 1 }, { - "name": "min_tls_version", + "name": "cis_id", "type": "TypeString", - "description": "Minimum version of TLS required", - "default_value": "1.1", - "optional": true + "description": "CIS instance crn", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:internet-svcs" + ] }, { - "name": "automatic_https_rewrites", + "name": "waf", "type": "TypeString", - "description": "automatic_https_rewrites setting", + "description": "WAF setting", "options": "on, off", "optional": true, "computed": true }, { - "name": "ipv6", + "name": "certificate_status", "type": "TypeString", - "description": "ipv6 setting", - "options": "on, off", - "optional": true, - "computed": true + "description": "Certificate status", + "computed": true, + "deprecated": "This field is deprecated" }, { - "name": "browser_check", + "name": "ip_geolocation", "type": "TypeString", - "description": "browser_check setting", + "description": "ip_geolocation setting", "options": "on, off", "optional": true, "computed": true }, { - "name": "waf", + "name": "pseudo_ipv4", "type": "TypeString", - "description": "WAF setting", - "options": "on, off", + "description": "pseudo_ipv4 setting", "optional": true, "computed": true }, { - "name": "image_size_optimization", + "name": "websockets", "type": "TypeString", - "description": "image_size_optimization setting", + "description": "websockets setting", + "options": "on, off", "optional": true, "computed": true }, { - "name": "pseudo_ipv4", + "name": "dnssec", "type": "TypeString", - "description": "pseudo_ipv4 setting", + "description": "DNS Sec setting", + "options": "active, disabled", "optional": true, "computed": true }, { - "name": "cipher", - "type": "TypeSet", - "description": "Cipher settings", - "options": "ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-ECDSA-CHACHA20-POLY1305, ECDHE-RSA-AES128-GCM-SHA256,ECDHE-RSA-CHACHA20-POLY1305, ECDHE-ECDSA-AES128-SHA256, ECDHE-ECDSA-AES128-SHA, ECDHE-RSA-AES128-SHA256, ECDHE-RSA-AES128-SHA, AES128-GCM-SHA256, AES128-SHA256, AES128-SHA, ECDHE-ECDSA-AES256-GCM-SHA384, ECDHE-ECDSA-AES256-SHA384, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-RSA-AES256-SHA384, ECDHE-RSA-AES256-SHA, AES256-GCM-SHA384, AES256-SHA256, AES256-SHA, DES-CBC3-SHA, AEAD-AES128-GCM-SHA256, AEAD-AES256-GCM-SHA384, AEAD-CHACHA20-POLY1305-SHA256", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "hotlink_protection", + "name": "image_load_optimization", "type": "TypeString", - "description": "hotlink_protection setting", + "description": "image_load_optimization setting", "options": "on, off", "optional": true, "computed": true }, { - "name": "prefetch_preload", + "name": "origin_error_page_pass_thru", "type": "TypeString", - "description": "prefetch_preload setting", + "description": "origin_error_page_pass_thru setting", "options": "on, off", "optional": true, "computed": true }, { - "name": "mobile_redirect", - "type": "TypeList", - "optional": true, - "computed": true, - "elem": { - "mobile_subdomain": { - "name": "mobile_subdomain", - "type": "TypeString", - "description": "Mobile redirect subdomain", - "optional": true, - "computed": true - }, - "status": { - "name": "status", - "type": "TypeString", - "description": "mobile redirect status", - "required": true - }, - "strip_uri": { - "name": "strip_uri", - "type": "TypeBool", - "description": "mobile redirect strip URI", - "optional": true, - "computed": true - } - }, - "max_items": 1, - "min_items": 1 - }, - { - "name": "dnssec", + "name": "true_client_ip_header", "type": "TypeString", - "description": "DNS Sec setting", - "options": "active, disabled", + "description": "true_client_ip_header setting", + "options": "on, off", "optional": true, "computed": true }, { - "name": "ssl", - "type": "TypeString", - "description": "SSL/TLS setting", + "name": "challenge_ttl", + "type": "TypeInt", + "description": "Challenge TTL setting", + "options": "300, 900, 1800, 2700, 3600, 7200, 10800, 14400, 28800, 57600, 86400, 604800, 2592000, 31536000", "optional": true, "computed": true }, { - "name": "tls_client_auth", + "name": "ssl", "type": "TypeString", - "description": "tls_client_auth setting", - "options": "on, off", + "description": "SSL/TLS setting", "optional": true, "computed": true }, { - "name": "server_side_exclude", + "name": "cname_flattening", "type": "TypeString", - "description": "server_side_exclude setting", - "options": "on, off", + "description": "cname_flattening setting", "optional": true, "computed": true }, - { - "name": "domain_id", - "type": "TypeString", - "description": "Associated CIS domain", - "required": true - }, - { - "name": "certificate_status", - "type": "TypeString", - "description": "Certificate status", - "computed": true, - "deprecated": "This field is deprecated" - }, { "name": "always_use_https", "type": "TypeString", @@ -91442,131 +94325,69 @@ "computed": true }, { - "name": "origin_error_page_pass_thru", + "name": "brotli", "type": "TypeString", - "description": "origin_error_page_pass_thru setting", + "description": "brotli setting", "options": "on, off", "optional": true, "computed": true }, { - "name": "response_buffering", + "name": "prefetch_preload", "type": "TypeString", - "description": "response_buffering setting", + "description": "prefetch_preload setting", "options": "on, off", "optional": true, "computed": true }, { - "name": "true_client_ip_header", + "name": "response_buffering", "type": "TypeString", - "description": "true_client_ip_header setting", + "description": "response_buffering setting", "options": "on, off", "optional": true, "computed": true }, { - "name": "websockets", + "name": "server_side_exclude", "type": "TypeString", - "description": "websockets setting", + "description": "server_side_exclude setting", "options": "on, off", "optional": true, "computed": true }, { - "name": "challenge_ttl", - "type": "TypeInt", - "description": "Challenge TTL setting", - "options": "300, 900, 1800, 2700, 3600, 7200, 10800, 14400, 28800, 57600, 86400, 604800, 2592000, 31536000", - "optional": true, - "computed": true - }, - { - "name": "max_upload", - "type": "TypeInt", - "description": "Maximum upload", - "options": "100, 125, 150, 175, 200, 225, 250, 275, 300, 325, 350, 375, 400, 425, 450, 475, 500", - "optional": true, - "computed": true - }, - { - "name": "cis_id", + "name": "min_tls_version", "type": "TypeString", - "description": "CIS instance crn", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:internet-svcs" - ] + "description": "Minimum version of TLS required", + "optional": true }, { - "name": "http2", + "name": "ipv6", "type": "TypeString", - "description": "http2 setting", + "description": "ipv6 setting", "options": "on, off", "optional": true, "computed": true }, { - "name": "image_load_optimization", + "name": "browser_check", "type": "TypeString", - "description": "image_load_optimization setting", + "description": "browser_check setting", "options": "on, off", "optional": true, "computed": true }, { - "name": "script_load_optimization", + "name": "http2", "type": "TypeString", - "description": "script_load_optimization setting", + "description": "http2 setting", "options": "on, off", "optional": true, "computed": true - }, - { - "name": "minify", - "type": "TypeList", - "description": "Minify setting", - "optional": true, - "computed": true, - "elem": { - "css": { - "name": "css", - "type": "TypeString", - "description": "Minify CSS setting", - "required": true - }, - "html": { - "name": "html", - "type": "TypeString", - "description": "Minify HTML setting", - "required": true - }, - "js": { - "name": "js", - "type": "TypeString", - "description": "Minify JS setting", - "required": true - } - }, - "max_items": 1, - "min_items": 1 } ], "ibm_cis_edge_functions_action": [ - { - "name": "action_name", - "type": "TypeString", - "description": "Edge function action script name", - "immutable": true, - "required": true - }, - { - "name": "script", - "type": "TypeString", - "description": "Edge function action script", - "required": true - }, { "name": "cis_id", "type": "TypeString", @@ -91582,6 +94403,19 @@ "type": "TypeString", "description": "CIS Domain ID", "required": true + }, + { + "name": "action_name", + "type": "TypeString", + "description": "Edge function action script name", + "immutable": true, + "required": true + }, + { + "name": "script", + "type": "TypeString", + "description": "Edge function action script", + "required": true } ], "ibm_cis_edge_functions_trigger": [ @@ -91627,6 +94461,23 @@ } ], "ibm_cis_filter": [ + { + "name": "description", + "type": "TypeString", + "description": "Filter Description", + "options": "Filter-creation", + "optional": true + }, + { + "name": "cis_id", + "type": "TypeString", + "description": "CIS instance crn", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:internet-svcs" + ] + }, { "name": "domain_id", "type": "TypeString", @@ -91650,33 +94501,9 @@ "type": "TypeString", "description": "Filter Expression", "required": true - }, - { - "name": "description", - "type": "TypeString", - "description": "Filter Description", - "options": "Filter-creation", - "optional": true - }, - { - "name": "cis_id", - "type": "TypeString", - "description": "CIS instance crn", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:internet-svcs" - ] } ], "ibm_cis_firewall": [ - { - "name": "domain_id", - "type": "TypeString", - "description": "Associated CIS domain", - "immutable": true, - "required": true - }, { "name": "firewall_type", "type": "TypeString", @@ -91861,21 +94688,16 @@ "cloud_data_range": [ "service:internet-svcs" ] - } - ], - "ibm_cis_firewall_rule": [ - { - "name": "filter_id", - "type": "TypeString", - "description": "Firewallrules Existing FilterID", - "required": true }, { - "name": "action", + "name": "domain_id", "type": "TypeString", - "description": "Firewallrules Action", + "description": "Associated CIS domain", + "immutable": true, "required": true - }, + } + ], + "ibm_cis_firewall_rule": [ { "name": "priority", "type": "TypeInt", @@ -91906,11 +94728,59 @@ "type": "TypeString", "description": "Associated CIS domain", "required": true + }, + { + "name": "filter_id", + "type": "TypeString", + "description": "Firewallrules Existing FilterID", + "required": true + }, + { + "name": "action", + "type": "TypeString", + "description": "Firewallrules Action", + "required": true } ], "ibm_cis_global_load_balancer": [ { - "name": "region_pools", + "name": "modified_on", + "type": "TypeString", + "description": "Load balancer modified date", + "computed": true + }, + { + "name": "cis_id", + "type": "TypeString", + "description": "CIS instance crn", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:internet-svcs" + ] + }, + { + "name": "fallback_pool_id", + "type": "TypeString", + "description": "fallback pool ID", + "required": true + }, + { + "name": "ttl", + "type": "TypeInt", + "description": "TTL value", + "default_value": 60, + "optional": true + }, + { + "name": "enabled", + "type": "TypeBool", + "description": "set to true of LB needs to enabled", + "default_value": true, + "optional": true + }, + { + "name": "pop_pools", "type": "TypeSet", "optional": true, "elem": { @@ -91922,17 +94792,18 @@ "type": "TypeString" } }, - "region": { - "name": "region", + "pop": { + "name": "pop", "type": "TypeString", + "description": "pop pools region", "required": true } } }, { - "name": "modified_on", + "name": "glb_id", "type": "TypeString", - "description": "Load balancer modified date", + "description": "global load balancer id", "computed": true }, { @@ -91942,70 +94813,48 @@ "required": true }, { - "name": "default_pool_ids", - "type": "TypeSet", - "description": "List of default Pool IDs", - "required": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "glb_id", - "type": "TypeString", - "description": "global load balancer id", - "computed": true - }, - { - "name": "fallback_pool_id", + "name": "description", "type": "TypeString", - "description": "fallback pool ID", - "required": true - }, - { - "name": "ttl", - "type": "TypeInt", - "description": "TTL value", - "default_value": 60, + "description": "Description for the load balancer instance", "optional": true }, { - "name": "session_affinity", + "name": "steering_policy", "type": "TypeString", - "description": "Session affinity info", - "default_value": "none", + "description": "Steering policy info", "optional": true }, { - "name": "cis_id", + "name": "created_on", "type": "TypeString", - "description": "CIS instance crn", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:internet-svcs" - ] + "description": "Load balancer creation date", + "computed": true }, { - "name": "domain_id", - "type": "TypeString", - "description": "Associated CIS domain", - "required": true + "name": "default_pool_ids", + "type": "TypeSet", + "description": "List of default Pool IDs", + "required": true, + "elem": { + "type": "TypeString" + } }, { - "name": "description", - "type": "TypeString", - "description": "Description for the load balancer instance", + "name": "proxied", + "type": "TypeBool", + "description": "set to true if proxy needs to be enabled", + "default_value": false, "optional": true }, { - "name": "steering_policy", + "name": "session_affinity", "type": "TypeString", - "description": "Steering policy info", + "description": "Session affinity info", + "default_value": "none", "optional": true }, { - "name": "pop_pools", + "name": "region_pools", "type": "TypeSet", "optional": true, "elem": { @@ -92017,36 +94866,52 @@ "type": "TypeString" } }, - "pop": { - "name": "pop", + "region": { + "name": "region", "type": "TypeString", - "description": "pop pools region", "required": true } } }, { - "name": "created_on", + "name": "domain_id", + "type": "TypeString", + "description": "Associated CIS domain", + "required": true + } + ], + "ibm_cis_healthcheck": [ + { + "name": "retries", + "type": "TypeInt", + "description": "retries", + "default_value": 2, + "min_value": "1", + "max_value": "3", + "optional": true + }, + { + "name": "modified_on", "type": "TypeString", - "description": "Load balancer creation date", "computed": true }, { - "name": "proxied", - "type": "TypeBool", - "description": "set to true if proxy needs to be enabled", - "default_value": false, - "optional": true + "name": "cis_id", + "type": "TypeString", + "description": "CIS instance crn", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:internet-svcs" + ] }, { - "name": "enabled", - "type": "TypeBool", - "description": "set to true of LB needs to enabled", - "default_value": true, + "name": "path", + "type": "TypeString", + "description": "path", + "default_value": "/", "optional": true - } - ], - "ibm_cis_healthcheck": [ + }, { "name": "expected_body", "type": "TypeString", @@ -92054,18 +94919,10 @@ "optional": true }, { - "name": "expected_codes", + "name": "description", "type": "TypeString", - "description": "expected_codes", - "optional": true - }, - { - "name": "timeout", - "type": "TypeInt", - "description": "timeout", - "default_value": 5, - "min_value": "1", - "max_value": "10", + "description": "description", + "default_value": " ", "optional": true }, { @@ -92076,30 +94933,34 @@ "optional": true }, { - "name": "path", + "name": "monitor_id", "type": "TypeString", - "description": "path", - "default_value": "/", - "optional": true + "description": "GLB Monitor/Health check id", + "computed": true }, { - "name": "description", - "type": "TypeString", - "description": "description", - "default_value": " ", + "name": "interval", + "type": "TypeInt", + "description": "interval", + "default_value": 60, + "min_value": "5", + "max_value": "3600", "optional": true }, { - "name": "type", - "type": "TypeString", - "description": "type", - "default_value": "http", - "options": "http, https, tcp", + "name": "allow_insecure", + "type": "TypeBool", + "description": "allow_insecure", + "default_value": false, "optional": true }, { - "name": "modified_on", - "type": "TypeString", + "name": "port", + "type": "TypeInt", + "description": "port number", + "min_value": "1", + "max_value": "65535", + "optional": true, "computed": true }, { @@ -92123,28 +94984,13 @@ } }, { - "name": "monitor_id", + "name": "type", "type": "TypeString", - "description": "GLB Monitor/Health check id", - "computed": true - }, - { - "name": "allow_insecure", - "type": "TypeBool", - "description": "allow_insecure", - "default_value": false, + "description": "type", + "default_value": "http", + "options": "http, https, tcp", "optional": true }, - { - "name": "cis_id", - "type": "TypeString", - "description": "CIS instance crn", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:internet-svcs" - ] - }, { "name": "method", "type": "TypeString", @@ -92154,21 +95000,12 @@ "optional": true }, { - "name": "retries", + "name": "timeout", "type": "TypeInt", - "description": "retries", - "default_value": 2, + "description": "timeout", + "default_value": 5, "min_value": "1", - "max_value": "3", - "optional": true - }, - { - "name": "interval", - "type": "TypeInt", - "description": "interval", - "default_value": 60, - "min_value": "5", - "max_value": "3600", + "max_value": "10", "optional": true }, { @@ -92177,16 +95014,25 @@ "computed": true }, { - "name": "port", - "type": "TypeInt", - "description": "port number", - "min_value": "1", - "max_value": "65535", - "optional": true, - "computed": true + "name": "expected_codes", + "type": "TypeString", + "description": "expected_codes", + "optional": true } ], "ibm_cis_logpush_job": [ + { + "name": "dataset", + "type": "TypeString", + "description": "Dataset to be pulled", + "required": true + }, + { + "name": "frequency", + "type": "TypeString", + "description": "The frequency at which CIS sends batches of logs to your destination", + "optional": true + }, { "name": "job_id", "type": "TypeInt", @@ -92194,14 +95040,10 @@ "computed": true }, { - "name": "cis_id", + "name": "destination_conf", "type": "TypeString", - "description": "CIS instance crn", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:internet-svcs" - ] + "description": "Uniquely identifies a resource (such as an s3 bucket) where data will be pushed.", + "computed": true }, { "name": "domain_id", @@ -92209,13 +95051,6 @@ "description": "Associated CIS domain", "required": true }, - { - "name": "logdna", - "type": "TypeString", - "description": "Information to identify the LogDNA instance the data will be pushed.", - "secure": true, - "required": true - }, { "name": "name", "type": "TypeString", @@ -92229,50 +95064,30 @@ "optional": true }, { - "name": "logpull_options", + "name": "cis_id", "type": "TypeString", - "description": "Configuration string", - "optional": true + "description": "CIS instance crn", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:internet-svcs" + ] }, { - "name": "dataset", + "name": "logdna", "type": "TypeString", - "description": "Dataset to be pulled", + "description": "Information to identify the LogDNA instance the data will be pushed.", + "secure": true, "required": true }, { - "name": "frequency", + "name": "logpull_options", "type": "TypeString", - "description": "The frequency at which CIS sends batches of logs to your destination", + "description": "Configuration string", "optional": true - }, - { - "name": "destination_conf", - "type": "TypeString", - "description": "Uniquely identifies a resource (such as an s3 bucket) where data will be pushed.", - "computed": true } ], "ibm_cis_mtls": [ - { - "name": "id", - "type": "TypeString", - "description": "Certificate ID", - "computed": true - }, - { - "name": "mtls_id", - "type": "TypeString", - "description": "Mtls transaction ID", - "computed": true - }, - { - "name": "certificate", - "type": "TypeString", - "description": "Certificate contents", - "secure": true, - "required": true - }, { "name": "associated_hostnames", "type": "TypeList", @@ -92282,12 +95097,6 @@ "type": "TypeString" } }, - { - "name": "created_at", - "type": "TypeString", - "description": "Certificate Created At", - "computed": true - }, { "name": "updated_at", "type": "TypeString", @@ -92300,6 +95109,12 @@ "description": "Certificate Expires on", "computed": true }, + { + "name": "id", + "type": "TypeString", + "description": "Certificate ID", + "computed": true + }, { "name": "cis_id", "type": "TypeString", @@ -92316,26 +95131,42 @@ "description": "Associated CIS domain", "required": true }, + { + "name": "mtls_id", + "type": "TypeString", + "description": "Mtls transaction ID", + "computed": true + }, + { + "name": "certificate", + "type": "TypeString", + "description": "Certificate contents", + "secure": true, + "required": true + }, { "name": "name", "type": "TypeString", "description": "Certificate name", "required": true + }, + { + "name": "created_at", + "type": "TypeString", + "description": "Certificate Created At", + "computed": true } ], "ibm_cis_mtls_app": [ { - "name": "policy_name", - "type": "TypeString", - "description": "Policy Name", - "default_value": "mtls-policy", - "optional": true - }, - { - "name": "pol_created_at", + "name": "cis_id", "type": "TypeString", - "description": "Policy Created At", - "computed": true + "description": "CIS instance crn", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:internet-svcs" + ] }, { "name": "app_id", @@ -92344,21 +95175,15 @@ "computed": true }, { - "name": "app_created_at", - "type": "TypeString", - "description": "Certificate Created At", - "computed": true - }, - { - "name": "pol_updated_at", + "name": "domain", "type": "TypeString", - "description": "Policy updated At", - "computed": true + "description": "Associated host domain value", + "required": true }, { - "name": "domain_id", + "name": "name", "type": "TypeString", - "description": "Associated CIS domain", + "description": "App Name", "required": true }, { @@ -92369,10 +95194,16 @@ "optional": true }, { - "name": "common_rule_val", + "name": "app_created_at", "type": "TypeString", - "description": "Policy common rule value", - "optional": true + "description": "Certificate Created At", + "computed": true + }, + { + "name": "policy_id", + "type": "TypeString", + "description": "Policy ID", + "computed": true }, { "name": "cert_rule_val", @@ -92388,31 +95219,21 @@ "computed": true }, { - "name": "policy_id", + "name": "pol_created_at", "type": "TypeString", - "description": "Policy ID", + "description": "Policy Created At", "computed": true }, { - "name": "cis_id", - "type": "TypeString", - "description": "CIS instance crn", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:internet-svcs" - ] - }, - { - "name": "domain", + "name": "pol_updated_at", "type": "TypeString", - "description": "Associated host domain value", - "required": true + "description": "Policy updated At", + "computed": true }, { - "name": "name", + "name": "domain_id", "type": "TypeString", - "description": "App Name", + "description": "Associated CIS domain", "required": true }, { @@ -92421,9 +95242,34 @@ "description": "Duration for app validatidity", "default_value": "24h", "optional": true + }, + { + "name": "policy_name", + "type": "TypeString", + "description": "Policy Name", + "default_value": "mtls-policy", + "optional": true + }, + { + "name": "common_rule_val", + "type": "TypeString", + "description": "Policy common rule value", + "optional": true } ], "ibm_cis_origin_auth": [ + { + "name": "uploaded_on", + "type": "TypeString", + "description": "Certificate uploaded on", + "computed": true + }, + { + "name": "domain_id", + "type": "TypeString", + "description": "Associated CIS domain", + "required": true + }, { "name": "enabled", "type": "TypeBool", @@ -92431,6 +95277,12 @@ "default_value": true, "optional": true }, + { + "name": "hostname", + "type": "TypeString", + "description": "Host name needed for host level authentication", + "optional": true + }, { "name": "certificate", "type": "TypeString", @@ -92438,6 +95290,13 @@ "secure": true, "required": true }, + { + "name": "private_key", + "type": "TypeString", + "description": "Private key content which needs to be uploaded", + "secure": true, + "required": true + }, { "name": "status", "type": "TypeString", @@ -92451,9 +95310,9 @@ "computed": true }, { - "name": "auth_id", + "name": "expires_on", "type": "TypeString", - "description": "Associated CIS auth pull job id", + "description": "Certificate expires on", "computed": true }, { @@ -92466,12 +95325,6 @@ "service:internet-svcs" ] }, - { - "name": "domain_id", - "type": "TypeString", - "description": "Associated CIS domain", - "required": true - }, { "name": "level", "type": "TypeString", @@ -92479,72 +95332,29 @@ "required": true }, { - "name": "hostname", - "type": "TypeString", - "description": "Host name needed for host level authentication", - "optional": true - }, - { - "name": "private_key", - "type": "TypeString", - "description": "Private key content which needs to be uploaded", - "secure": true, - "required": true - }, - { - "name": "expires_on", - "type": "TypeString", - "description": "Certificate expires on", - "computed": true - }, - { - "name": "uploaded_on", + "name": "auth_id", "type": "TypeString", - "description": "Certificate uploaded on", + "description": "Associated CIS auth pull job id", "computed": true } ], "ibm_cis_origin_pool": [ { - "name": "check_regions", - "type": "TypeSet", - "description": "List of regions", - "required": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "description", - "type": "TypeString", - "description": "Description of the CIS Origin Pool", - "optional": true - }, - { - "name": "monitor", + "name": "pool_id", "type": "TypeString", - "description": "Monitor value", - "optional": true + "computed": true }, { - "name": "notification_email", - "type": "TypeString", - "description": "Email address configured to recieve the notifications", + "name": "minimum_origins", + "type": "TypeInt", + "description": "Minimum number of Origins", + "default_value": 1, "optional": true }, { - "name": "cis_id", - "type": "TypeString", - "description": "CIS instance crn", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:internet-svcs" - ] - }, - { - "name": "pool_id", - "type": "TypeString", + "name": "healthy", + "type": "TypeBool", + "description": "Health status", "computed": true }, { @@ -92554,10 +95364,9 @@ "required": true }, { - "name": "minimum_origins", - "type": "TypeInt", - "description": "Minimum number of Origins", - "default_value": 1, + "name": "description", + "type": "TypeString", + "description": "Description of the CIS Origin Pool", "optional": true }, { @@ -92566,6 +95375,24 @@ "description": "Boolean value set to true if cis origin pool needs to be enabled", "required": true }, + { + "name": "health", + "type": "TypeString", + "description": "Health info", + "computed": true + }, + { + "name": "modified_on", + "type": "TypeString", + "description": "Modified date info", + "computed": true + }, + { + "name": "monitor", + "type": "TypeString", + "description": "Monitor value", + "optional": true + }, { "name": "origins", "type": "TypeSet", @@ -92611,28 +95438,35 @@ } }, { - "name": "health", + "name": "created_on", "type": "TypeString", - "description": "Health info", + "description": "Creation date info", "computed": true }, { - "name": "healthy", - "type": "TypeBool", - "description": "Health status", - "computed": true + "name": "cis_id", + "type": "TypeString", + "description": "CIS instance crn", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:internet-svcs" + ] }, { - "name": "created_on", - "type": "TypeString", - "description": "Creation date info", - "computed": true + "name": "check_regions", + "type": "TypeSet", + "description": "List of regions", + "required": true, + "elem": { + "type": "TypeString" + } }, { - "name": "modified_on", + "name": "notification_email", "type": "TypeString", - "description": "Modified date info", - "computed": true + "description": "Email address configured to recieve the notifications", + "optional": true } ], "ibm_cis_page_rule": [ @@ -92642,11 +95476,6 @@ "description": "Id of the ibm_cis_page_rule", "computed": true }, - { - "name": "rule_id", - "type": "TypeString", - "computed": true - }, { "name": "priority", "type": "TypeInt", @@ -92762,24 +95591,43 @@ "type": "TypeString", "description": "Associated CIS domain", "required": true + }, + { + "name": "rule_id", + "type": "TypeString", + "computed": true } ], "ibm_cis_range_app": [ { - "name": "proxy_protocol", + "name": "protocol", "type": "TypeString", - "description": "Allows for the true client IP to be passed to the service.", - "options": "off, v1, v2, simple", + "description": "Defines the protocol and port for this application", + "required": true + }, + { + "name": "origin_port", + "type": "TypeInt", + "description": "Port at the origin that listens to traffic", "optional": true }, { - "name": "edge_ips_type", + "name": "traffic_type", "type": "TypeString", - "description": "The type of edge IP configuration.", - "default_value": "dynamic", - "options": "dynamic", + "description": "Configure how traffic is handled at the edge.", + "default_value": "direct", + "options": "direct, http, https", "optional": true }, + { + "name": "origin_direct", + "type": "TypeList", + "description": "IP address and port of the origin for this Range application.", + "optional": true, + "elem": { + "type": "TypeString" + } + }, { "name": "edge_ips_connectivity", "type": "TypeString", @@ -92788,18 +95636,6 @@ "options": "ipv4, ipv6, all", "optional": true }, - { - "name": "dns_type", - "type": "TypeString", - "description": "Type of the DNS record for this application", - "required": true - }, - { - "name": "ip_firewall", - "type": "TypeBool", - "description": "Enables the IP Firewall for this application. Only available for TCP applications.", - "optional": true - }, { "name": "created_on", "type": "TypeString", @@ -92807,44 +95643,45 @@ "computed": true }, { - "name": "modified_on", + "name": "cis_id", "type": "TypeString", - "description": "modified on date", + "description": "CIS Intance CRN", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:internet-svcs" + ] + }, + { + "name": "app_id", + "type": "TypeString", + "description": "Application identifier", "computed": true }, { - "name": "domain_id", + "name": "dns", "type": "TypeString", - "description": "CIS Domain ID", + "description": "Name of the DNS record for this application", "required": true }, { - "name": "app_id", + "name": "modified_on", "type": "TypeString", - "description": "Application identifier", + "description": "modified on date", "computed": true }, { - "name": "origin_direct", - "type": "TypeList", - "description": "IP address and port of the origin for this Range application.", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "origin_dns", + "name": "domain_id", "type": "TypeString", - "description": "DNS record pointing to the origin for this Range application.", - "optional": true + "description": "CIS Domain ID", + "required": true }, { - "name": "traffic_type", + "name": "edge_ips_type", "type": "TypeString", - "description": "Configure how traffic is handled at the edge.", - "default_value": "direct", - "options": "direct, http, https", + "description": "The type of edge IP configuration.", + "default_value": "dynamic", + "options": "dynamic", "optional": true }, { @@ -92856,77 +95693,76 @@ "optional": true }, { - "name": "cis_id", + "name": "proxy_protocol", "type": "TypeString", - "description": "CIS Intance CRN", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:internet-svcs" - ] + "description": "Allows for the true client IP to be passed to the service.", + "options": "off, v1, v2, simple", + "optional": true }, { - "name": "protocol", + "name": "dns_type", "type": "TypeString", - "description": "Defines the protocol and port for this application", + "description": "Type of the DNS record for this application", "required": true }, { - "name": "dns", + "name": "origin_dns", "type": "TypeString", - "description": "Name of the DNS record for this application", - "required": true + "description": "DNS record pointing to the origin for this Range application.", + "optional": true }, { - "name": "origin_port", - "type": "TypeInt", - "description": "Port at the origin that listens to traffic", + "name": "ip_firewall", + "type": "TypeBool", + "description": "Enables the IP Firewall for this application. Only available for TCP applications.", "optional": true } ], "ibm_cis_rate_limit": [ { - "name": "action", - "type": "TypeList", - "description": "Rate Limiting Action", + "name": "cis_id", + "type": "TypeString", + "description": "CIS Intance CRN", + "cloud_data_type": "resource_instance", "required": true, + "cloud_data_range": [ + "service:internet-svcs" + ] + }, + { + "name": "bypass", + "type": "TypeList", + "description": "Bypass URL", + "optional": true, "elem": { - "mode": { - "name": "mode", + "name": { + "name": "name", "type": "TypeString", - "description": "Type of action performed.Valid values are: 'simulate', 'ban', 'challenge', 'js_challenge'.", - "required": true - }, - "response": { - "name": "response", - "type": "TypeList", - "description": "Rate Limiting Action Response", - "optional": true, - "elem": { - "body": { - "name": "body", - "type": "TypeString", - "description": "The body to return. The content here must confirm to the 'content_type'", - "required": true - }, - "content_type": { - "name": "content_type", - "type": "TypeString", - "description": "Custom content-type and body to return. It must be one of following 'text/plain', 'text/xml', 'application/json'.", - "required": true - } - }, - "max_items": 1 + "description": "bypass URL name", + "default_value": "url", + "optional": true }, - "timeout": { - "name": "timeout", - "type": "TypeInt", - "description": "The time to perform the mitigation action. Timeout be the same or greater than the period.", + "value": { + "name": "value", + "type": "TypeString", + "description": "bypass URL value", "optional": true } - }, - "max_items": 1, - "min_items": 1 + } + }, + { + "name": "period", + "type": "TypeInt", + "description": "Rate Limiting Period", + "required": true, + "min_value": "1", + "max_value": "86400" + }, + { + "name": "rule_id", + "type": "TypeString", + "description": "Rate Limit rule Id", + "computed": true }, { "name": "domain_id", @@ -92948,27 +95784,6 @@ "max_length": 1024, "optional": true }, - { - "name": "bypass", - "type": "TypeList", - "description": "Bypass URL", - "optional": true, - "elem": { - "name": { - "name": "name", - "type": "TypeString", - "description": "bypass URL name", - "default_value": "url", - "optional": true - }, - "value": { - "name": "value", - "type": "TypeString", - "description": "bypass URL value", - "optional": true - } - } - }, { "name": "threshold", "type": "TypeInt", @@ -92977,14 +95792,6 @@ "min_value": "1", "max_value": "1000000" }, - { - "name": "period", - "type": "TypeInt", - "description": "Rate Limiting Period", - "required": true, - "min_value": "1", - "max_value": "86400" - }, { "name": "correlate", "type": "TypeList", @@ -93002,20 +95809,47 @@ "max_items": 1 }, { - "name": "cis_id", - "type": "TypeString", - "description": "CIS Intance CRN", - "cloud_data_type": "resource_instance", + "name": "action", + "type": "TypeList", + "description": "Rate Limiting Action", "required": true, - "cloud_data_range": [ - "service:internet-svcs" - ] - }, - { - "name": "rule_id", - "type": "TypeString", - "description": "Rate Limit rule Id", - "computed": true + "elem": { + "mode": { + "name": "mode", + "type": "TypeString", + "description": "Type of action performed.Valid values are: 'simulate', 'ban', 'challenge', 'js_challenge'.", + "required": true + }, + "response": { + "name": "response", + "type": "TypeList", + "description": "Rate Limiting Action Response", + "optional": true, + "elem": { + "body": { + "name": "body", + "type": "TypeString", + "description": "The body to return. The content here must confirm to the 'content_type'", + "required": true + }, + "content_type": { + "name": "content_type", + "type": "TypeString", + "description": "Custom content-type and body to return. It must be one of following 'text/plain', 'text/xml', 'application/json'.", + "required": true + } + }, + "max_items": 1 + }, + "timeout": { + "name": "timeout", + "type": "TypeInt", + "description": "The time to perform the mitigation action. Timeout be the same or greater than the period.", + "optional": true + } + }, + "max_items": 1, + "min_items": 1 }, { "name": "match", @@ -93117,6 +95951,16 @@ } ], "ibm_cis_routing": [ + { + "name": "cis_id", + "type": "TypeString", + "description": "CIS Intance CRN", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:internet-svcs" + ] + }, { "name": "domain_id", "type": "TypeString", @@ -93130,19 +95974,19 @@ "options": "on, off", "optional": true, "computed": true - }, + } + ], + "ibm_cis_tls_settings": [ { "name": "cis_id", "type": "TypeString", - "description": "CIS Intance CRN", + "description": "CIS instance crn", "cloud_data_type": "resource_instance", "required": true, "cloud_data_range": [ "service:internet-svcs" ] - } - ], - "ibm_cis_tls_settings": [ + }, { "name": "domain_id", "type": "TypeString", @@ -93168,55 +96012,21 @@ "name": "min_tls_version", "type": "TypeString", "description": "Minimum version of TLS required", - "default_value": "1.1", "options": "1.1, 1.2, 1.3, 1.4", "optional": true - }, - { - "name": "cis_id", - "type": "TypeString", - "description": "CIS instance crn", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:internet-svcs" - ] } ], "ibm_cis_waf_group": [ { - "name": "cis_id", - "type": "TypeString", - "description": "CIS Intance CRN", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:internet-svcs" - ] - }, - { - "name": "domain_id", - "type": "TypeString", - "description": "CIS Domain ID", - "required": true - }, - { - "name": "group_id", - "type": "TypeString", - "description": "WAF Rule group id", - "immutable": true, - "required": true - }, - { - "name": "name", + "name": "description", "type": "TypeString", - "description": "WAF Rule group name", + "description": "WAF Rule group description", "computed": true }, { - "name": "modified_rules_count", + "name": "rules_count", "type": "TypeInt", - "description": "WAF Rule group modified rules count", + "description": "WAF Rule group rules count", "computed": true }, { @@ -93227,9 +96037,10 @@ "optional": true }, { - "name": "package_id", + "name": "group_id", "type": "TypeString", - "description": "WAF Rule package id", + "description": "WAF Rule group id", + "immutable": true, "required": true }, { @@ -93240,39 +96051,41 @@ "options": "on, off" }, { - "name": "description", + "name": "name", "type": "TypeString", - "description": "WAF Rule group description", + "description": "WAF Rule group name", "computed": true }, { - "name": "rules_count", + "name": "modified_rules_count", "type": "TypeInt", - "description": "WAF Rule group rules count", + "description": "WAF Rule group modified rules count", "computed": true - } - ], - "ibm_cis_waf_package": [ + }, { - "name": "sensitivity", + "name": "cis_id", "type": "TypeString", - "description": "WAF pakcage sensitivity", + "description": "CIS Intance CRN", + "cloud_data_type": "resource_instance", "required": true, - "options": "high, medium, low, off" + "cloud_data_range": [ + "service:internet-svcs" + ] }, { - "name": "action_mode", + "name": "domain_id", "type": "TypeString", - "description": "WAF pakcage action mode", - "required": true, - "options": "simulate, block, challenge" + "description": "CIS Domain ID", + "required": true }, { - "name": "description", + "name": "package_id", "type": "TypeString", - "description": "WAF package description", - "computed": true - }, + "description": "WAF Rule package id", + "required": true + } + ], + "ibm_cis_waf_package": [ { "name": "cis_id", "type": "TypeString", @@ -93307,25 +96120,29 @@ "type": "TypeString", "description": "WAF pakcage detection mode", "computed": true - } - ], - "ibm_cis_waf_rule": [ + }, { - "name": "cis_id", + "name": "sensitivity", "type": "TypeString", - "description": "CIS Intance CRN", - "cloud_data_type": "resource_instance", + "description": "WAF pakcage sensitivity", "required": true, - "cloud_data_range": [ - "service:internet-svcs" - ] + "options": "high, medium, low, off" }, { - "name": "domain_id", + "name": "action_mode", "type": "TypeString", - "description": "CIS Domain ID", - "required": true + "description": "WAF pakcage action mode", + "required": true, + "options": "simulate, block, challenge" }, + { + "name": "description", + "type": "TypeString", + "description": "WAF package description", + "computed": true + } + ], + "ibm_cis_waf_rule": [ { "name": "package_id", "type": "TypeString", @@ -93334,15 +96151,16 @@ "required": true }, { - "name": "description", + "name": "mode", "type": "TypeString", - "description": "CIS WAF Rule descriptions", - "computed": true + "description": "CIS WAF Rule mode", + "required": true, + "options": "on, off, default, disable, simulate, block, challenge" }, { - "name": "priority", - "type": "TypeInt", - "description": "CIS WAF Rule Priority", + "name": "description", + "type": "TypeString", + "description": "CIS WAF Rule descriptions", "computed": true }, { @@ -93366,27 +96184,42 @@ } }, { - "name": "rule_id", + "name": "allowed_modes", "type": "TypeString", - "description": "CIS WAF Rule id", - "immutable": true, - "required": true + "description": "CIS WAF Rule allowed modes", + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "mode", + "name": "cis_id", "type": "TypeString", - "description": "CIS WAF Rule mode", + "description": "CIS Intance CRN", + "cloud_data_type": "resource_instance", "required": true, - "options": "on, off, default, disable, simulate, block, challenge" + "cloud_data_range": [ + "service:internet-svcs" + ] }, { - "name": "allowed_modes", + "name": "domain_id", "type": "TypeString", - "description": "CIS WAF Rule allowed modes", - "computed": true, - "elem": { - "type": "TypeString" - } + "description": "CIS Domain ID", + "required": true + }, + { + "name": "rule_id", + "type": "TypeString", + "description": "CIS WAF Rule id", + "immutable": true, + "required": true + }, + { + "name": "priority", + "type": "TypeInt", + "description": "CIS WAF Rule Priority", + "computed": true } ], "ibm_cis_webhook": [ @@ -93433,30 +96266,6 @@ } ], "ibm_cloud_shell_account_settings": [ - { - "name": "enabled", - "type": "TypeBool", - "description": "When enabled, Cloud Shell is available to all users in the account.", - "optional": true - }, - { - "name": "created_at", - "type": "TypeInt", - "description": "Creation timestamp in Unix epoch time.", - "computed": true - }, - { - "name": "created_by", - "type": "TypeString", - "description": "IAM ID of creator.", - "computed": true - }, - { - "name": "updated_at", - "type": "TypeInt", - "description": "Timestamp of last update in Unix epoch time.", - "computed": true - }, { "name": "updated_by", "type": "TypeString", @@ -93470,12 +96279,6 @@ "immutable": true, "required": true }, - { - "name": "default_enable_new_features", - "type": "TypeBool", - "description": "You can choose which Cloud Shell features are available in the account and whether any new features are enabled as they become available. The feature settings apply only to the enabled Cloud Shell locations.", - "optional": true - }, { "name": "default_enable_new_regions", "type": "TypeBool", @@ -93483,190 +96286,108 @@ "optional": true }, { - "name": "type", - "type": "TypeString", - "description": "Type of api response object.", - "computed": true - }, - { - "name": "rev", - "type": "TypeString", - "description": "Unique revision number for the settings object.", - "optional": true, - "computed": true - }, - { - "name": "features", + "name": "regions", "type": "TypeList", - "description": "List of Cloud Shell features.", + "description": "List of Cloud Shell region settings.", "optional": true, "computed": true, "elem": { "enabled": { "name": "enabled", "type": "TypeBool", - "description": "State of the feature.", + "description": "State of the region.", "optional": true }, "key": { "name": "key", "type": "TypeString", - "description": "Name of the feature.", + "description": "Name of the region.", "optional": true } } }, { - "name": "regions", + "name": "features", "type": "TypeList", - "description": "List of Cloud Shell region settings.", + "description": "List of Cloud Shell features.", "optional": true, "computed": true, "elem": { "enabled": { "name": "enabled", "type": "TypeBool", - "description": "State of the region.", + "description": "State of the feature.", "optional": true }, "key": { "name": "key", "type": "TypeString", - "description": "Name of the region.", + "description": "Name of the feature.", "optional": true } } - } - ], - "ibm_cloudant": [ - { - "name": "parameters", - "type": "TypeMap", - "description": "Arbitrary parameters to pass. Must be a JSON object", - "optional": true - }, - { - "name": "plan_history", - "type": "TypeList", - "description": "The plan history of the instance.", - "computed": true, - "elem": { - "resource_plan_id": { - "name": "resource_plan_id", - "type": "TypeString", - "computed": true - }, - "start_date": { - "name": "start_date", - "type": "TypeString", - "computed": true - } - } - }, - { - "name": "allow_cleanup", - "type": "TypeBool", - "description": "A boolean that dictates if the resource instance should be deleted (cleaned up) during the processing of a region instance delete call.", - "computed": true - }, - { - "name": "resource_keys_url", - "type": "TypeString", - "description": "The relative path to the resource keys for the instance.", - "computed": true }, { - "name": "update_by", - "type": "TypeString", - "description": "The subject who updated the instance.", + "name": "created_at", + "type": "TypeInt", + "description": "Creation timestamp in Unix epoch time.", "computed": true }, { - "name": "tags", - "type": "TypeSet", - "cloud_data_type": "tags", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "service_endpoints", + "name": "created_by", "type": "TypeString", - "description": "Types of the service endpoints. Possible values are 'public', 'private', 'public-and-private'.", - "optional": true, + "description": "IAM ID of creator.", "computed": true }, { - "name": "resource_group_crn", + "name": "type", "type": "TypeString", - "description": "The long ID (full CRN) of the resource group", + "description": "Type of api response object.", "computed": true }, { - "name": "target_crn", - "type": "TypeString", - "description": "The full deployment CRN as defined in the global catalog", + "name": "updated_at", + "type": "TypeInt", + "description": "Timestamp of last update in Unix epoch time.", "computed": true }, { - "name": "state", + "name": "rev", "type": "TypeString", - "description": "The current state of the instance.", + "description": "Unique revision number for the settings object.", + "optional": true, "computed": true }, { - "name": "locked", + "name": "default_enable_new_features", "type": "TypeBool", - "description": "A boolean that dictates if the resource instance should be deleted (cleaned up) during the processing of a region instance delete call.", - "computed": true - }, - { - "name": "created_by", - "type": "TypeString", - "description": "The subject who created the instance.", - "computed": true - }, - { - "name": "environment_crn", - "type": "TypeString", - "description": "CRN of the IBM Cloudant Dedicated Hardware plan instance", - "immutable": true, + "description": "You can choose which Cloud Shell features are available in the account and whether any new features are enabled as they become available. The feature settings apply only to the enabled Cloud Shell locations.", "optional": true }, { - "name": "capacity", - "type": "TypeInt", - "description": "A number of blocks of throughput units. A block consists of 100 reads/sec, 50 writes/sec, and 5 global queries/sec of provisioned throughput capacity.", - "default_value": 1, + "name": "enabled", + "type": "TypeBool", + "description": "When enabled, Cloud Shell is available to all users in the account.", "optional": true - }, - { - "name": "resource_group_id", - "type": "TypeString", - "description": "The resource group id", - "cloud_data_type": "resource_group", - "immutable": true, - "optional": true, - "computed": true - }, + } + ], + "ibm_cloudant": [ { - "name": "status", + "name": "plan", "type": "TypeString", - "description": "Status of resource instance", - "computed": true + "description": "The plan type of the service", + "required": true }, { - "name": "resource_id", - "type": "TypeString", - "description": "The unique ID of the offering", + "name": "allow_cleanup", + "type": "TypeBool", + "description": "A boolean that dictates if the resource instance should be deleted (cleaned up) during the processing of a region instance delete call.", "computed": true }, { - "name": "sub_type", - "type": "TypeString", - "description": "The sub-type of instance, e.g. cfaas .", + "name": "locked", + "type": "TypeBool", + "description": "A boolean that dictates if the resource instance should be deleted (cleaned up) during the processing of a region instance delete call.", "computed": true }, { @@ -93676,28 +96397,15 @@ "computed": true }, { - "name": "scheduled_reclaim_by", - "type": "TypeString", - "description": "The subject who initiated the instance reclamation.", - "computed": true - }, - { - "name": "include_data_events", - "type": "TypeBool", - "description": "Include data event types in events sent to IBM Cloud Activity Tracker with LogDNA for the IBM Cloudant instance. By default only emitted events are of \"management\" type.", - "default_value": false, - "optional": true - }, - { - "name": "resource_name", + "name": "update_by", "type": "TypeString", - "description": "The name of the resource", + "description": "The subject who updated the instance.", "computed": true }, { - "name": "resource_status", - "type": "TypeString", - "description": "The status of the resource", + "name": "extensions", + "type": "TypeMap", + "description": "The extended metadata as a map associated with the resource instance.", "computed": true }, { @@ -93710,9 +96418,15 @@ } }, { - "name": "restored_at", + "name": "dashboard_url", "type": "TypeString", - "description": "The date when the instance under reclamation was restored.", + "description": "Dashboard URL to access resource.", + "computed": true + }, + { + "name": "scheduled_reclaim_at", + "type": "TypeString", + "description": "The date when the instance was scheduled for reclamation.", "computed": true }, { @@ -93724,47 +96438,53 @@ "required": true }, { - "name": "parameters_json", - "type": "TypeString", - "description": "Arbitrary parameters to pass in Json string format", - "optional": true - }, - { - "name": "crn", + "name": "guid", "type": "TypeString", - "description": "CRN of resource instance", - "cloud_data_type": "crn", + "description": "Guid of resource instance", "computed": true }, { - "name": "account_id", - "type": "TypeString", - "description": "An alpha-numeric value identifying the account ID.", - "computed": true + "name": "plan_history", + "type": "TypeList", + "description": "The plan history of the instance.", + "computed": true, + "elem": { + "resource_plan_id": { + "name": "resource_plan_id", + "type": "TypeString", + "computed": true + }, + "start_date": { + "name": "start_date", + "type": "TypeString", + "computed": true + } + } }, { - "name": "last_operation", - "type": "TypeMap", - "description": "The status of the last operation requested on the instance", + "name": "resource_id", + "type": "TypeString", + "description": "The unique ID of the offering", "computed": true }, { - "name": "deleted_by", + "name": "resource_keys_url", "type": "TypeString", - "description": "The subject who deleted the instance.", + "description": "The relative path to the resource keys for the instance.", "computed": true }, { - "name": "scheduled_reclaim_at", + "name": "resource_crn", "type": "TypeString", - "description": "The date when the instance was scheduled for reclamation.", + "description": "The crn of the resource", "computed": true }, { - "name": "extensions", - "type": "TypeMap", - "description": "The extended metadata as a map associated with the resource instance.", - "computed": true + "name": "environment_crn", + "type": "TypeString", + "description": "CRN of the IBM Cloudant Dedicated Hardware plan instance", + "immutable": true, + "optional": true }, { "name": "name", @@ -93773,34 +96493,29 @@ "required": true }, { - "name": "guid", - "type": "TypeString", - "description": "Guid of resource instance", - "computed": true - }, - { - "name": "dashboard_url", + "name": "status", "type": "TypeString", - "description": "Dashboard URL to access resource.", + "description": "Status of resource instance", "computed": true }, { - "name": "created_at", + "name": "created_by", "type": "TypeString", - "description": "The date when the instance was created.", + "description": "The subject who created the instance.", "computed": true }, { - "name": "resource_crn", + "name": "resource_status", "type": "TypeString", - "description": "The crn of the resource", + "description": "The status of the resource", "computed": true }, { - "name": "resource_group_name", - "type": "TypeString", - "description": "The resource group name in which resource is provisioned", - "computed": true + "name": "capacity", + "type": "TypeInt", + "description": "A number of blocks of throughput units. A block consists of 100 reads/sec, 50 writes/sec, and 5 global queries/sec of provisioned throughput capacity.", + "default_value": 1, + "optional": true }, { "name": "service", @@ -93809,10 +96524,10 @@ "computed": true }, { - "name": "plan", + "name": "target_crn", "type": "TypeString", - "description": "The plan type of the service", - "required": true + "description": "The full deployment CRN as defined in the global catalog", + "computed": true }, { "name": "type", @@ -93821,28 +96536,45 @@ "computed": true }, { - "name": "resource_bindings_url", + "name": "last_operation", + "type": "TypeMap", + "description": "The status of the last operation requested on the instance", + "computed": true + }, + { + "name": "created_at", "type": "TypeString", - "description": "The relative path to the resource bindings for the instance.", + "description": "The date when the instance was created.", "computed": true }, { - "name": "restored_by", + "name": "deleted_at", "type": "TypeString", - "description": "The subject who restored the instance back from reclamation.", + "description": "The date when the instance was deleted.", "computed": true }, { - "name": "enable_cors", + "name": "legacy_credentials", "type": "TypeBool", - "description": "Boolean value to turn CORS on and off.", - "default_value": true, + "description": "Use both legacy credentials and IAM for authentication", + "default_value": false, + "immutable": true, "optional": true }, { - "name": "resource_plan_id", + "name": "include_data_events", + "type": "TypeBool", + "description": "Include data event types in events sent to IBM Cloud Activity Tracker with LogDNA for the IBM Cloudant instance. By default only emitted events are of \"management\" type.", + "default_value": false, + "optional": true + }, + { + "name": "resource_group_id", "type": "TypeString", - "description": "The unique ID of the plan associated with the offering", + "description": "The resource group id", + "cloud_data_type": "resource_group", + "immutable": true, + "optional": true, "computed": true }, { @@ -93852,24 +96584,22 @@ "computed": true }, { - "name": "deleted_at", + "name": "deleted_by", "type": "TypeString", - "description": "The date when the instance was deleted.", + "description": "The subject who deleted the instance.", "computed": true }, { - "name": "resource_controller_url", + "name": "restored_by", "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about the resource", + "description": "The subject who restored the instance back from reclamation.", "computed": true }, { - "name": "legacy_credentials", - "type": "TypeBool", - "description": "Use both legacy credentials and IAM for authentication", - "default_value": false, - "immutable": true, - "optional": true + "name": "resource_name", + "type": "TypeString", + "description": "The name of the resource", + "computed": true }, { "name": "cors_config", @@ -93896,270 +96626,180 @@ }, "max_items": 1, "min_items": 1 - } - ], - "ibm_cloudant_database": [ + }, { - "name": "partitioned", - "type": "TypeBool", - "description": "Query parameter to specify whether to enable database partitions when creating a database.", - "immutable": true, - "optional": true, + "name": "parameters_json", + "type": "TypeString", + "description": "Arbitrary parameters to pass in Json string format", + "optional": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "CRN of resource instance", + "cloud_data_type": "crn", "computed": true }, { - "name": "shards", - "type": "TypeInt", - "description": "The number of shards in the database. Each shard is a partition of the hash value range. You are encouraged to talk to support about appropriate values before changing this.", - "immutable": true, + "name": "service_endpoints", + "type": "TypeString", + "description": "Types of the service endpoints. Possible values are 'public', 'private', 'public-and-private'.", "optional": true, "computed": true }, { - "name": "instance_crn", + "name": "resource_group_crn", "type": "TypeString", - "description": "Cloudant Instance CRN.", - "immutable": true, - "required": true + "description": "The long ID (full CRN) of the resource group", + "computed": true }, { - "name": "db", + "name": "state", "type": "TypeString", - "description": "Path parameter to specify the database name.", - "immutable": true, - "required": true - } - ], - "ibm_cm_catalog": [ + "description": "The current state of the instance.", + "computed": true + }, { - "name": "label_i18n", + "name": "sub_type", + "type": "TypeString", + "description": "The sub-type of instance, e.g. cfaas .", + "computed": true + }, + { + "name": "resource_bindings_url", + "type": "TypeString", + "description": "The relative path to the resource bindings for the instance.", + "computed": true + }, + { + "name": "restored_at", + "type": "TypeString", + "description": "The date when the instance under reclamation was restored.", + "computed": true + }, + { + "name": "enable_cors", + "type": "TypeBool", + "description": "Boolean value to turn CORS on and off.", + "default_value": true, + "optional": true + }, + { + "name": "parameters", "type": "TypeMap", - "description": "A map of translated strings, by language code.", - "optional": true, - "elem": { - "type": "TypeString" - } + "description": "Arbitrary parameters to pass. Must be a JSON object", + "optional": true }, { "name": "tags", - "type": "TypeList", - "description": "List of tags associated with this catalog.", + "type": "TypeSet", "cloud_data_type": "tags", "optional": true, + "computed": true, "elem": { "type": "TypeString" } }, { - "name": "metadata", - "type": "TypeMap", - "description": "Catalog specific metadata.", - "optional": true, - "elem": { - "type": "TypeString" - } + "name": "account_id", + "type": "TypeString", + "description": "An alpha-numeric value identifying the account ID.", + "computed": true }, { - "name": "crn", + "name": "resource_plan_id", "type": "TypeString", - "description": "CRN associated with the catalog.", - "cloud_data_type": "crn", + "description": "The unique ID of the plan associated with the offering", "computed": true }, { - "name": "resource_group_id", + "name": "scheduled_reclaim_by", "type": "TypeString", - "description": "Resource group id the catalog is owned by.", - "cloud_data_type": "resource_group", - "immutable": true, - "optional": true, + "description": "The subject who initiated the instance reclamation.", "computed": true }, { - "name": "catalog_filters", - "type": "TypeList", - "description": "Filters for account and catalog filters.", - "computed": true, - "elem": { - "category_filters": { - "name": "category_filters", - "type": "TypeMap", - "description": "Filter against offering properties.", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - "id_filters": { - "name": "id_filters", - "type": "TypeList", - "description": "Filter on offering ID's. There is an include filter and an exclule filter. Both can be set.", - "optional": true, - "elem": { - "exclude": { - "name": "exclude", - "type": "TypeList", - "description": "Offering filter terms.", - "optional": true, - "elem": { - "filter_terms": { - "name": "filter_terms", - "type": "TypeList", - "description": "List of values to match against. If include is true, then if the offering has one of the values then the offering is included. If include is false, then if the offering has one of the values then the offering is excluded.", - "optional": true, - "elem": { - "type": "TypeString" - } - } - }, - "max_items": 1 - }, - "include": { - "name": "include", - "type": "TypeList", - "description": "Offering filter terms.", - "optional": true, - "elem": { - "filter_terms": { - "name": "filter_terms", - "type": "TypeList", - "description": "List of values to match against. If include is true, then if the offering has one of the values then the offering is included. If include is false, then if the offering has one of the values then the offering is excluded.", - "optional": true, - "elem": { - "type": "TypeString" - } - } - }, - "max_items": 1 - } - }, - "max_items": 1 - }, - "include_all": { - "name": "include_all", - "type": "TypeBool", - "description": "-\u003e true - Include all of the public catalog when filtering. Further settings will specifically exclude some offerings. false - Exclude all of the public catalog when filtering. Further settings will specifically include some offerings.", - "optional": true - } - } + "name": "resource_group_name", + "type": "TypeString", + "description": "The resource group name in which resource is provisioned", + "computed": true }, { - "name": "url", + "name": "resource_controller_url", "type": "TypeString", - "description": "The url for this specific catalog.", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about the resource", "computed": true - }, + } + ], + "ibm_cloudant_database": [ { - "name": "label", - "type": "TypeString", - "description": "Display Name in the requested language.", - "optional": true + "name": "shards", + "type": "TypeInt", + "description": "The number of shards in the database. Each shard is a partition of the hash value range. You are encouraged to talk to support about appropriate values before changing this.", + "immutable": true, + "optional": true, + "computed": true }, { - "name": "catalog_icon_url", + "name": "instance_crn", "type": "TypeString", - "description": "URL for an icon associated with this catalog.", - "optional": true + "description": "Cloudant Instance CRN.", + "immutable": true, + "required": true }, { - "name": "catalog_banner_url", + "name": "db", "type": "TypeString", - "description": "URL for a banner image for this catalog.", - "optional": true + "description": "Path parameter to specify the database name.", + "immutable": true, + "required": true }, { - "name": "owning_account", - "type": "TypeString", - "description": "Account that owns catalog.", + "name": "partitioned", + "type": "TypeBool", + "description": "Query parameter to specify whether to enable database partitions when creating a database.", + "immutable": true, + "optional": true, "computed": true + } + ], + "ibm_cm_catalog": [ + { + "name": "short_description_i18n", + "type": "TypeMap", + "description": "A map of translated strings, by language code.", + "optional": true, + "elem": { + "type": "TypeString" + } }, { - "name": "kind", + "name": "catalog_icon_url", "type": "TypeString", - "description": "Kind of catalog. Supported kinds are offering and vpe.", + "description": "URL for an icon associated with this catalog.", "optional": true }, { - "name": "created", + "name": "crn", "type": "TypeString", - "description": "The date-time this catalog was created.", + "description": "CRN associated with the catalog.", + "cloud_data_type": "crn", "computed": true }, { - "name": "target_account_contexts", - "type": "TypeList", - "description": "List of target accounts contexts on this catalog.", - "optional": true, - "elem": { - "api_key": { - "name": "api_key", - "type": "TypeString", - "description": "API key of the target account.", - "secure": true, - "optional": true - }, - "label": { - "name": "label", - "type": "TypeString", - "description": "Label for this target account context.", - "optional": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Unique identifier/name for this target account context.", - "optional": true - }, - "project_id": { - "name": "project_id", - "type": "TypeString", - "description": "Project ID.", - "optional": true - }, - "trusted_profile": { - "name": "trusted_profile", - "type": "TypeList", - "description": "Trusted profile information.", - "optional": true, - "elem": { - "catalog_crn": { - "name": "catalog_crn", - "type": "TypeString", - "description": "CRN of this catalog.", - "computed": true - }, - "catalog_name": { - "name": "catalog_name", - "type": "TypeString", - "description": "Name of this catalog.", - "computed": true - }, - "target_service_id": { - "name": "target_service_id", - "type": "TypeString", - "description": "Target service ID.", - "optional": true, - "computed": true - }, - "trusted_profile_id": { - "name": "trusted_profile_id", - "type": "TypeString", - "description": "Trusted profile ID.", - "optional": true - } - }, - "max_items": 1 - } - } + "name": "offerings_url", + "type": "TypeString", + "description": "URL path to offerings.", + "computed": true }, { - "name": "short_description", + "name": "updated", "type": "TypeString", - "description": "Description in the requested language.", - "optional": true + "description": "The date-time this catalog was last updated.", + "computed": true }, { - "name": "short_description_i18n", + "name": "label_i18n", "type": "TypeMap", "description": "A map of translated strings, by language code.", "optional": true, @@ -94168,48 +96808,20 @@ } }, { - "name": "features", + "name": "tags", "type": "TypeList", - "description": "List of features associated with this catalog.", + "description": "List of tags associated with this catalog.", + "cloud_data_type": "tags", "optional": true, "elem": { - "description": { - "name": "description", - "type": "TypeString", - "description": "Feature description.", - "optional": true - }, - "description_i18n": { - "name": "description_i18n", - "type": "TypeMap", - "description": "A map of translated strings, by language code.", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - "title": { - "name": "title", - "type": "TypeString", - "description": "Heading.", - "optional": true - }, - "title_i18n": { - "name": "title_i18n", - "type": "TypeMap", - "description": "A map of translated strings, by language code.", - "optional": true, - "elem": { - "type": "TypeString" - } - } + "type": "TypeString" } }, { - "name": "disabled", - "type": "TypeBool", - "description": "Denotes whether a catalog is disabled.", - "optional": true + "name": "owning_account", + "type": "TypeString", + "description": "Account that owns catalog.", + "computed": true }, { "name": "syndication_settings", @@ -94376,6 +96988,73 @@ } } }, + { + "name": "target_account_contexts", + "type": "TypeList", + "description": "List of target accounts contexts on this catalog.", + "optional": true, + "elem": { + "api_key": { + "name": "api_key", + "type": "TypeString", + "description": "API key of the target account.", + "secure": true, + "optional": true + }, + "label": { + "name": "label", + "type": "TypeString", + "description": "Label for this target account context.", + "optional": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Unique identifier/name for this target account context.", + "optional": true + }, + "project_id": { + "name": "project_id", + "type": "TypeString", + "description": "Project ID.", + "optional": true + }, + "trusted_profile": { + "name": "trusted_profile", + "type": "TypeList", + "description": "Trusted profile information.", + "optional": true, + "elem": { + "catalog_crn": { + "name": "catalog_crn", + "type": "TypeString", + "description": "CRN of this catalog.", + "computed": true + }, + "catalog_name": { + "name": "catalog_name", + "type": "TypeString", + "description": "Name of this catalog.", + "computed": true + }, + "target_service_id": { + "name": "target_service_id", + "type": "TypeString", + "description": "Target service ID.", + "optional": true, + "computed": true + }, + "trusted_profile_id": { + "name": "trusted_profile_id", + "type": "TypeString", + "description": "Trusted profile ID.", + "optional": true + } + }, + "max_items": 1 + } + } + }, { "name": "rev", "type": "TypeString", @@ -94383,55 +97062,179 @@ "computed": true }, { - "name": "offerings_url", + "name": "short_description", "type": "TypeString", - "description": "URL path to offerings.", - "computed": true + "description": "Description in the requested language.", + "optional": true }, { - "name": "updated", + "name": "catalog_banner_url", "type": "TypeString", - "description": "The date-time this catalog was last updated.", - "computed": true - } - ], - "ibm_cm_object": [ + "description": "URL for a banner image for this catalog.", + "optional": true + }, { - "name": "url", + "name": "features", + "type": "TypeList", + "description": "List of features associated with this catalog.", + "optional": true, + "elem": { + "description": { + "name": "description", + "type": "TypeString", + "description": "Feature description.", + "optional": true + }, + "description_i18n": { + "name": "description_i18n", + "type": "TypeMap", + "description": "A map of translated strings, by language code.", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + "title": { + "name": "title", + "type": "TypeString", + "description": "Heading.", + "optional": true + }, + "title_i18n": { + "name": "title_i18n", + "type": "TypeMap", + "description": "A map of translated strings, by language code.", + "optional": true, + "elem": { + "type": "TypeString" + } + } + } + }, + { + "name": "resource_group_id", "type": "TypeString", - "description": "The url for this specific object.", + "description": "Resource group id the catalog is owned by.", + "cloud_data_type": "resource_group", + "immutable": true, + "optional": true, "computed": true }, { - "name": "catalog_name", + "name": "catalog_filters", + "type": "TypeList", + "description": "Filters for account and catalog filters.", + "computed": true, + "elem": { + "category_filters": { + "name": "category_filters", + "type": "TypeMap", + "description": "Filter against offering properties.", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + "id_filters": { + "name": "id_filters", + "type": "TypeList", + "description": "Filter on offering ID's. There is an include filter and an exclule filter. Both can be set.", + "optional": true, + "elem": { + "exclude": { + "name": "exclude", + "type": "TypeList", + "description": "Offering filter terms.", + "optional": true, + "elem": { + "filter_terms": { + "name": "filter_terms", + "type": "TypeList", + "description": "List of values to match against. If include is true, then if the offering has one of the values then the offering is included. If include is false, then if the offering has one of the values then the offering is excluded.", + "optional": true, + "elem": { + "type": "TypeString" + } + } + }, + "max_items": 1 + }, + "include": { + "name": "include", + "type": "TypeList", + "description": "Offering filter terms.", + "optional": true, + "elem": { + "filter_terms": { + "name": "filter_terms", + "type": "TypeList", + "description": "List of values to match against. If include is true, then if the offering has one of the values then the offering is included. If include is false, then if the offering has one of the values then the offering is excluded.", + "optional": true, + "elem": { + "type": "TypeString" + } + } + }, + "max_items": 1 + } + }, + "max_items": 1 + }, + "include_all": { + "name": "include_all", + "type": "TypeBool", + "description": "-\u003e true - Include all of the public catalog when filtering. Further settings will specifically exclude some offerings. false - Exclude all of the public catalog when filtering. Further settings will specifically include some offerings.", + "optional": true + } + } + }, + { + "name": "kind", "type": "TypeString", - "description": "The name of the catalog.", - "computed": true + "description": "Kind of catalog. Supported kinds are offering and vpe.", + "optional": true }, { - "name": "rev", + "name": "metadata", + "type": "TypeMap", + "description": "Catalog specific metadata.", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "url", "type": "TypeString", - "description": "Cloudant revision.", + "description": "The url for this specific catalog.", "computed": true }, { - "name": "object_id", + "name": "created", "type": "TypeString", - "description": "The ID of the object.", + "description": "The date-time this catalog was created.", "computed": true }, { - "name": "name", + "name": "label", "type": "TypeString", - "description": "The programmatic name of this object.", - "required": true + "description": "Display Name in the requested language.", + "optional": true }, { - "name": "crn", + "name": "disabled", + "type": "TypeBool", + "description": "Denotes whether a catalog is disabled.", + "optional": true + } + ], + "ibm_cm_object": [ + { + "name": "catalog_id", "type": "TypeString", - "description": "The crn for this specific object.", - "cloud_data_type": "crn", - "computed": true + "description": "Catalog identifier.", + "immutable": true, + "required": true }, { "name": "publish", @@ -94472,19 +97275,83 @@ } }, { - "name": "data", + "name": "state", + "type": "TypeList", + "description": "Offering state.", + "computed": true, + "elem": { + "current": { + "name": "current", + "type": "TypeString", + "description": "one of: new, validated, account-published, ibm-published, public-published.", + "computed": true + }, + "current_entered": { + "name": "current_entered", + "type": "TypeString", + "description": "Date and time of current request.", + "computed": true + }, + "pending": { + "name": "pending", + "type": "TypeString", + "description": "one of: new, validated, account-published, ibm-published, public-published.", + "computed": true + }, + "pending_requested": { + "name": "pending_requested", + "type": "TypeString", + "description": "Date and time of pending request.", + "computed": true + }, + "previous": { + "name": "previous", + "type": "TypeString", + "description": "one of: new, validated, account-published, ibm-published, public-published.", + "computed": true + } + } + }, + { + "name": "catalog_name", "type": "TypeString", - "description": "Stringified map of data values for this object.", - "optional": true, + "description": "The name of the catalog.", "computed": true }, { - "name": "catalog_id", + "name": "kind", "type": "TypeString", - "description": "Catalog identifier.", - "immutable": true, + "description": "Kind of object. Options are \"vpe\", \"preset_configuration\", or \"proxy_source\".", "required": true }, + { + "name": "parent_id", + "type": "TypeString", + "description": "The parent for this specific object.", + "optional": true + }, + { + "name": "tags", + "type": "TypeList", + "description": "List of tags associated with this catalog.", + "cloud_data_type": "tags", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "created", + "type": "TypeString", + "description": "The date and time this catalog was created.", + "computed": true + }, + { + "name": "short_description", + "type": "TypeString", + "description": "Short description in the requested language.", + "optional": true + }, { "name": "short_description_i18n", "type": "TypeMap", @@ -94494,6 +97361,37 @@ "type": "TypeString" } }, + { + "name": "name", + "type": "TypeString", + "description": "The programmatic name of this object.", + "required": true + }, + { + "name": "updated", + "type": "TypeString", + "description": "The date and time this catalog was last updated.", + "computed": true + }, + { + "name": "object_id", + "type": "TypeString", + "description": "The ID of the object.", + "computed": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "The crn for this specific object.", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "url", + "type": "TypeString", + "description": "The url for this specific object.", + "computed": true + }, { "name": "label_i18n", "type": "TypeMap", @@ -94504,123 +97402,449 @@ } }, { - "name": "tags", + "name": "label", + "type": "TypeString", + "description": "Display name in the requested language.", + "optional": true + }, + { + "name": "data", + "type": "TypeString", + "description": "Stringified map of data values for this object.", + "optional": true, + "computed": true + }, + { + "name": "rev", + "type": "TypeString", + "description": "Cloudant revision.", + "computed": true + } + ], + "ibm_cm_offering": [ + { + "name": "long_description", + "type": "TypeString", + "description": "Long description in the requested language.", + "optional": true, + "computed": true + }, + { + "name": "pc_managed", + "type": "TypeBool", + "description": "Offering is managed by Partner Center.", + "computed": true + }, + { + "name": "share_with_access_list", "type": "TypeList", - "description": "List of tags associated with this catalog.", - "cloud_data_type": "tags", + "description": "A list of account IDs to add to this offering's access list.", "optional": true, "elem": { "type": "TypeString" } }, { - "name": "created", + "name": "crn", "type": "TypeString", - "description": "The date and time this catalog was created.", + "description": "The crn for this specific offering.", + "cloud_data_type": "crn", "computed": true }, { - "name": "kind", + "name": "label", "type": "TypeString", - "description": "Kind of object. Options are \"vpe\", \"preset_configuration\", or \"proxy_source\".", - "required": true + "description": "Display Name in the requested language.", + "optional": true, + "computed": true }, { - "name": "parent_id", + "name": "offering_docs_url", "type": "TypeString", - "description": "The parent for this specific object.", + "description": "URL for an additional docs with this offering.", + "optional": true, + "computed": true + }, + { + "name": "keywords", + "type": "TypeList", + "description": "List of keywords associated with offering, typically used to search for it.", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "deprecate", + "type": "TypeBool", + "description": "Deprecate this offering.", "optional": true }, { - "name": "short_description", + "name": "disclaimer", "type": "TypeString", - "description": "Short description in the requested language.", - "optional": true + "description": "A disclaimer for this offering.", + "optional": true, + "computed": true }, { - "name": "state", + "name": "hidden", + "type": "TypeBool", + "description": "Determine if this offering should be displayed in the Consumption UI.", + "optional": true, + "computed": true + }, + { + "name": "image_pull_keys", "type": "TypeList", - "description": "Offering state.", + "description": "Image pull keys for this offering.", + "optional": true, "computed": true, "elem": { - "current": { - "name": "current", + "description": { + "name": "description", "type": "TypeString", - "description": "one of: new, validated, account-published, ibm-published, public-published.", + "description": "Key description.", + "optional": true, "computed": true }, - "current_entered": { - "name": "current_entered", + "name": { + "name": "name", "type": "TypeString", - "description": "Date and time of current request.", + "description": "Key name.", + "optional": true, "computed": true }, - "pending": { - "name": "pending", + "value": { + "name": "value", "type": "TypeString", - "description": "one of: new, validated, account-published, ibm-published, public-published.", + "description": "Key value.", + "optional": true, + "computed": true + } + } + }, + { + "name": "product_kind", + "type": "TypeString", + "description": "The product kind. Valid values are module, solution, or empty string.", + "optional": true, + "computed": true + }, + { + "name": "badges", + "type": "TypeList", + "description": "A list of badges for this offering.", + "computed": true, + "elem": { + "authority": { + "name": "authority", + "type": "TypeString", + "description": "Authority for the current badge.", "computed": true }, - "pending_requested": { - "name": "pending_requested", + "constraints": { + "name": "constraints", + "type": "TypeList", + "description": "An optional set of constraints indicating which versions in an Offering have this particular badge.", + "computed": true, + "elem": { + "rule": { + "name": "rule", + "type": "TypeString", + "description": "Rule for the current constraint.", + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "Type of the current constraint.", + "computed": true + } + } + }, + "description": { + "name": "description", "type": "TypeString", - "description": "Date and time of pending request.", + "description": "Description of the current badge.", "computed": true }, - "previous": { - "name": "previous", + "description_i18n": { + "name": "description_i18n", + "type": "TypeMap", + "description": "A map of translated strings, by language code.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "icon": { + "name": "icon", "type": "TypeString", - "description": "one of: new, validated, account-published, ibm-published, public-published.", + "description": "Icon for the current badge.", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "ID of the current badge.", + "computed": true + }, + "label": { + "name": "label", + "type": "TypeString", + "description": "Display name for the current badge.", + "computed": true + }, + "label_i18n": { + "name": "label_i18n", + "type": "TypeMap", + "description": "A map of translated strings, by language code.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "learn_more_links": { + "name": "learn_more_links", + "type": "TypeList", + "description": "Learn more links for a badge.", + "computed": true, + "elem": { + "first_party": { + "name": "first_party", + "type": "TypeString", + "description": "First party link.", + "computed": true + }, + "third_party": { + "name": "third_party", + "type": "TypeString", + "description": "Third party link.", + "computed": true + } + } + }, + "tag": { + "name": "tag", + "type": "TypeString", + "description": "Tag for the current badge.", "computed": true } } }, { - "name": "label", + "name": "features", + "type": "TypeList", + "description": "list of features associated with this offering.", + "optional": true, + "computed": true, + "elem": { + "description": { + "name": "description", + "type": "TypeString", + "description": "Feature description.", + "optional": true, + "computed": true + }, + "description_i18n": { + "name": "description_i18n", + "type": "TypeMap", + "description": "A map of translated strings, by language code.", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "title": { + "name": "title", + "type": "TypeString", + "description": "Heading.", + "optional": true, + "computed": true + }, + "title_i18n": { + "name": "title_i18n", + "type": "TypeMap", + "description": "A map of translated strings, by language code.", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + } + } + }, + { + "name": "ibm_publish_approved", + "type": "TypeBool", + "description": "Indicates if this offering has been approved for use by all IBMers.", + "optional": true, + "computed": true, + "deprecated": "This argument is deprecated" + }, + { + "name": "public_publish_approved", + "type": "TypeBool", + "description": "Indicates if this offering has been approved for use by all IBM Cloud users.", + "optional": true, + "computed": true, + "deprecated": "This argument is deprecated" + }, + { + "name": "publish_public_crn", "type": "TypeString", - "description": "Display name in the requested language.", - "optional": true + "description": "The crn of the public catalog entry of this offering.", + "optional": true, + "computed": true }, { - "name": "updated", + "name": "portal_ui_url", "type": "TypeString", - "description": "The date and time this catalog was last updated.", + "description": "The portal UI URL.", + "optional": true, "computed": true - } - ], - "ibm_cm_offering": [ + }, { - "name": "url", + "name": "rev", "type": "TypeString", - "description": "The url for this specific offering.", + "description": "Cloudant revision.", "computed": true }, { - "name": "name", + "name": "offering_identifier", "type": "TypeString", - "description": "The programmatic name of this offering.", - "optional": true, + "description": "Computed Offering ID.", "computed": true }, { - "name": "offering_docs_url", + "name": "catalog_id", "type": "TypeString", - "description": "URL for an additional docs with this offering.", - "optional": true, + "description": "Catalog identifier.", + "immutable": true, + "required": true + }, + { + "name": "updated", + "type": "TypeString", + "description": "The date and time this catalog was last updated.", "computed": true }, { - "name": "offering_support_url", + "name": "portal_approval_record", "type": "TypeString", - "description": "[deprecated] - Use offering.support instead. URL to be displayed in the Consumption UI for getting support on this offering.", + "description": "The portal's approval record ID.", + "optional": true, + "computed": true + }, + { + "name": "provider_info", + "type": "TypeList", + "description": "Information on the provider for this offering, or omitted if no provider information is given.", "optional": true, "computed": true, - "deprecated": "This argument is deprecated" + "elem": { + "id": { + "name": "id", + "type": "TypeString", + "description": "The id of this provider.", + "optional": true, + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The name of this provider.", + "optional": true, + "computed": true + } + }, + "max_items": 1 }, { - "name": "long_description_i18n", + "name": "media", + "type": "TypeList", + "description": "A list of media items related to this offering.", + "optional": true, + "computed": true, + "elem": { + "api_url": { + "name": "api_url", + "type": "TypeString", + "description": "CM API specific URL of the specified media item.", + "optional": true, + "computed": true + }, + "caption": { + "name": "caption", + "type": "TypeString", + "description": "Caption for this media item.", + "optional": true, + "computed": true + }, + "caption_i18n": { + "name": "caption_i18n", + "type": "TypeMap", + "description": "A map of translated strings, by language code.", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "thumbnail_url": { + "name": "thumbnail_url", + "type": "TypeString", + "description": "Thumbnail URL for this media item.", + "optional": true, + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "Type of this media item.", + "optional": true, + "computed": true + }, + "url": { + "name": "url", + "type": "TypeString", + "description": "URL of the specified media item.", + "optional": true, + "computed": true + }, + "url_proxy": { + "name": "url_proxy", + "type": "TypeList", + "description": "Offering URL proxy information.", + "optional": true, + "computed": true, + "elem": { + "sha": { + "name": "sha", + "type": "TypeString", + "description": "SHA256 fingerprint of image.", + "optional": true, + "computed": true + }, + "url": { + "name": "url", + "type": "TypeString", + "description": "URL of the specified media item being proxied.", + "optional": true, + "computed": true + } + }, + "max_items": 1 + } + } + }, + { + "name": "metadata", "type": "TypeMap", - "description": "A map of translated strings, by language code.", + "description": "Map of metadata values for this offering.", "optional": true, "computed": true, "elem": { @@ -94628,20 +97852,47 @@ } }, { - "name": "publish_public_crn", + "name": "repo_info", + "type": "TypeList", + "description": "Repository info for offerings.", + "computed": true, + "elem": { + "token": { + "name": "token", + "type": "TypeString", + "description": "Token for private repos.", + "optional": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "Public or enterprise GitHub.", + "optional": true + } + } + }, + { + "name": "offering_id", "type": "TypeString", - "description": "The crn of the public catalog entry of this offering.", - "optional": true, + "description": "Offering identifier. Provide this when an offering already exists and you wish to use it as a terraform resource.", + "immutable": true, + "optional": true + }, + { + "name": "created", + "type": "TypeString", + "description": "The date and time this catalog was created.", "computed": true }, { - "name": "rev", + "name": "short_description", "type": "TypeString", - "description": "Cloudant revision.", + "description": "Short description in the requested language.", + "optional": true, "computed": true }, { - "name": "label_i18n", + "name": "long_description_i18n", "type": "TypeMap", "description": "A map of translated strings, by language code.", "optional": true, @@ -94651,13 +97902,14 @@ } }, { - "name": "updated", - "type": "TypeString", - "description": "The date and time this catalog was last updated.", + "name": "share_with_ibm", + "type": "TypeBool", + "description": "Denotes IBM employee availability of an Offering - if share_enabled is true.", + "optional": true, "computed": true }, { - "name": "short_description_i18n", + "name": "label_i18n", "type": "TypeMap", "description": "A map of translated strings, by language code.", "optional": true, @@ -94666,6 +97918,29 @@ "type": "TypeString" } }, + { + "name": "name", + "type": "TypeString", + "description": "The programmatic name of this offering.", + "optional": true, + "computed": true + }, + { + "name": "offering_support_url", + "type": "TypeString", + "description": "[deprecated] - Use offering.support instead. URL to be displayed in the Consumption UI for getting support on this offering.", + "optional": true, + "computed": true, + "deprecated": "This argument is deprecated" + }, + { + "name": "permit_request_ibm_public_publish", + "type": "TypeBool", + "description": "Is it permitted to request publishing to IBM or Public.", + "optional": true, + "computed": true, + "deprecated": "This argument is deprecated" + }, { "name": "kinds", "type": "TypeList", @@ -96723,407 +99998,45 @@ "optional": true } }, - "max_items": 1 - }, - "version": { - "name": "version", - "type": "TypeString", - "description": "Version of content type.", - "optional": true - }, - "version_locator": { - "name": "version_locator", - "type": "TypeString", - "description": "A dotted value of `catalogID`.`versionID`.", - "optional": true - }, - "whitelisted_accounts": { - "name": "whitelisted_accounts", - "type": "TypeList", - "description": "Whitelisted accounts for version.", - "optional": true, - "elem": { - "type": "TypeString" - } - } - } - } - } - }, - { - "name": "portal_approval_record", - "type": "TypeString", - "description": "The portal's approval record ID.", - "optional": true, - "computed": true - }, - { - "name": "hidden", - "type": "TypeBool", - "description": "Determine if this offering should be displayed in the Consumption UI.", - "optional": true, - "computed": true - }, - { - "name": "share_with_all", - "type": "TypeBool", - "description": "Denotes public availability of an Offering - if share_enabled is true.", - "optional": true, - "computed": true - }, - { - "name": "ibm_publish_approved", - "type": "TypeBool", - "description": "Indicates if this offering has been approved for use by all IBMers.", - "optional": true, - "computed": true, - "deprecated": "This argument is deprecated" - }, - { - "name": "label", - "type": "TypeString", - "description": "Display Name in the requested language.", - "optional": true, - "computed": true - }, - { - "name": "tags", - "type": "TypeList", - "description": "List of tags associated with this catalog.", - "cloud_data_type": "tags", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "keywords", - "type": "TypeList", - "description": "List of keywords associated with offering, typically used to search for it.", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "deprecate", - "type": "TypeBool", - "description": "Deprecate this offering.", - "optional": true - }, - { - "name": "short_description", - "type": "TypeString", - "description": "Short description in the requested language.", - "optional": true, - "computed": true - }, - { - "name": "pc_managed", - "type": "TypeBool", - "description": "Offering is managed by Partner Center.", - "computed": true - }, - { - "name": "public_original_crn", - "type": "TypeString", - "description": "The original offering CRN that this publish entry came from.", - "optional": true, - "computed": true - }, - { - "name": "created", - "type": "TypeString", - "description": "The date and time this catalog was created.", - "computed": true - }, - { - "name": "features", - "type": "TypeList", - "description": "list of features associated with this offering.", - "optional": true, - "computed": true, - "elem": { - "description": { - "name": "description", - "type": "TypeString", - "description": "Feature description.", - "optional": true, - "computed": true - }, - "description_i18n": { - "name": "description_i18n", - "type": "TypeMap", - "description": "A map of translated strings, by language code.", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, - "title": { - "name": "title", - "type": "TypeString", - "description": "Heading.", - "optional": true, - "computed": true - }, - "title_i18n": { - "name": "title_i18n", - "type": "TypeMap", - "description": "A map of translated strings, by language code.", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - } - } - }, - { - "name": "portal_ui_url", - "type": "TypeString", - "description": "The portal UI URL.", - "optional": true, - "computed": true - }, - { - "name": "publish_approved", - "type": "TypeBool", - "description": "Offering has been approved to publish to permitted to IBM or Public Catalog.", - "computed": true - }, - { - "name": "share_enabled", - "type": "TypeBool", - "description": "Denotes sharing including access list availability of an Offering is enabled.", - "optional": true, - "computed": true - }, - { - "name": "permit_request_ibm_public_publish", - "type": "TypeBool", - "description": "Is it permitted to request publishing to IBM or Public.", - "optional": true, - "computed": true, - "deprecated": "This argument is deprecated" - }, - { - "name": "catalog_name", - "type": "TypeString", - "description": "The name of the catalog.", - "computed": true - }, - { - "name": "image_pull_keys", - "type": "TypeList", - "description": "Image pull keys for this offering.", - "optional": true, - "computed": true, - "elem": { - "description": { - "name": "description", - "type": "TypeString", - "description": "Key description.", - "optional": true, - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Key name.", - "optional": true, - "computed": true - }, - "value": { - "name": "value", - "type": "TypeString", - "description": "Key value.", - "optional": true, - "computed": true - } - } - }, - { - "name": "offering_identifier", - "type": "TypeString", - "description": "Computed Offering ID.", - "computed": true - }, - { - "name": "badges", - "type": "TypeList", - "description": "A list of badges for this offering.", - "computed": true, - "elem": { - "authority": { - "name": "authority", - "type": "TypeString", - "description": "Authority for the current badge.", - "computed": true - }, - "constraints": { - "name": "constraints", - "type": "TypeList", - "description": "An optional set of constraints indicating which versions in an Offering have this particular badge.", - "computed": true, - "elem": { - "rule": { - "name": "rule", - "type": "TypeString", - "description": "Rule for the current constraint.", - "computed": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "Type of the current constraint.", - "computed": true - } - } - }, - "description": { - "name": "description", - "type": "TypeString", - "description": "Description of the current badge.", - "computed": true - }, - "description_i18n": { - "name": "description_i18n", - "type": "TypeMap", - "description": "A map of translated strings, by language code.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - "icon": { - "name": "icon", - "type": "TypeString", - "description": "Icon for the current badge.", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "ID of the current badge.", - "computed": true - }, - "label": { - "name": "label", - "type": "TypeString", - "description": "Display name for the current badge.", - "computed": true - }, - "label_i18n": { - "name": "label_i18n", - "type": "TypeMap", - "description": "A map of translated strings, by language code.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - "learn_more_links": { - "name": "learn_more_links", - "type": "TypeList", - "description": "Learn more links for a badge.", - "computed": true, - "elem": { - "first_party": { - "name": "first_party", - "type": "TypeString", - "description": "First party link.", - "computed": true - }, - "third_party": { - "name": "third_party", - "type": "TypeString", - "description": "Third party link.", - "computed": true - } - } - }, - "tag": { - "name": "tag", - "type": "TypeString", - "description": "Tag for the current badge.", - "computed": true - } - } - }, - { - "name": "rating", - "type": "TypeList", - "description": "Repository info for offerings.", - "computed": true, - "elem": { - "four_star_count": { - "name": "four_star_count", - "type": "TypeInt", - "description": "Four start rating.", - "computed": true - }, - "one_star_count": { - "name": "one_star_count", - "type": "TypeInt", - "description": "One start rating.", - "computed": true - }, - "three_star_count": { - "name": "three_star_count", - "type": "TypeInt", - "description": "Three start rating.", - "computed": true - }, - "two_star_count": { - "name": "two_star_count", - "type": "TypeInt", - "description": "Two start rating.", - "computed": true + "max_items": 1 + }, + "version": { + "name": "version", + "type": "TypeString", + "description": "Version of content type.", + "optional": true + }, + "version_locator": { + "name": "version_locator", + "type": "TypeString", + "description": "A dotted value of `catalogID`.`versionID`.", + "optional": true + }, + "whitelisted_accounts": { + "name": "whitelisted_accounts", + "type": "TypeList", + "description": "Whitelisted accounts for version.", + "optional": true, + "elem": { + "type": "TypeString" + } + } + } } } }, { - "name": "share_with_ibm", - "type": "TypeBool", - "description": "Denotes IBM employee availability of an Offering - if share_enabled is true.", + "name": "public_original_crn", + "type": "TypeString", + "description": "The original offering CRN that this publish entry came from.", "optional": true, "computed": true }, { - "name": "public_publish_approved", - "type": "TypeBool", - "description": "Indicates if this offering has been approved for use by all IBM Cloud users.", - "optional": true, - "computed": true, - "deprecated": "This argument is deprecated" - }, - { - "name": "provider_info", - "type": "TypeList", - "description": "Information on the provider for this offering, or omitted if no provider information is given.", - "optional": true, - "computed": true, - "elem": { - "id": { - "name": "id", - "type": "TypeString", - "description": "The id of this provider.", - "optional": true, - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The name of this provider.", - "optional": true, - "computed": true - } - }, - "max_items": 1 + "name": "catalog_name", + "type": "TypeString", + "description": "The name of the catalog.", + "computed": true }, { "name": "support", @@ -97310,48 +100223,41 @@ } }, { - "name": "product_kind", - "type": "TypeString", - "description": "The product kind. Valid values are module, solution, or empty string.", + "name": "share_enabled", + "type": "TypeBool", + "description": "Denotes sharing including access list availability of an Offering is enabled.", "optional": true, "computed": true }, { - "name": "metadata", - "type": "TypeMap", - "description": "Map of metadata values for this offering.", - "optional": true, + "name": "deprecate_pending", + "type": "TypeList", + "description": "Deprecation information for an Offering.", "computed": true, "elem": { - "type": "TypeString" + "deprecate_date": { + "name": "deprecate_date", + "type": "TypeString", + "description": "Date of deprecation.", + "computed": true + }, + "deprecate_state": { + "name": "deprecate_state", + "type": "TypeString", + "description": "Deprecation state.", + "computed": true + }, + "description": { + "name": "description", + "type": "TypeString", + "computed": true + } } }, { - "name": "disclaimer", - "type": "TypeString", - "description": "A disclaimer for this offering.", - "optional": true, - "computed": true - }, - { - "name": "catalog_id", - "type": "TypeString", - "description": "Catalog identifier.", - "immutable": true, - "required": true - }, - { - "name": "offering_id", - "type": "TypeString", - "description": "Offering identifier. Provide this when an offering already exists and you wish to use it as a terraform resource.", - "immutable": true, - "optional": true - }, - { - "name": "crn", + "name": "url", "type": "TypeString", - "description": "The crn for this specific offering.", - "cloud_data_type": "crn", + "description": "The url for this specific offering.", "computed": true }, { @@ -97362,163 +100268,96 @@ "computed": true }, { - "name": "long_description", - "type": "TypeString", - "description": "Long description in the requested language.", - "optional": true, - "computed": true - }, - { - "name": "share_with_access_list", + "name": "tags", "type": "TypeList", - "description": "A list of account IDs to add to this offering's access list.", + "description": "List of tags associated with this catalog.", + "cloud_data_type": "tags", "optional": true, + "computed": true, "elem": { "type": "TypeString" } }, { - "name": "repo_info", - "type": "TypeList", - "description": "Repository info for offerings.", + "name": "short_description_i18n", + "type": "TypeMap", + "description": "A map of translated strings, by language code.", + "optional": true, "computed": true, "elem": { - "token": { - "name": "token", - "type": "TypeString", - "description": "Token for private repos.", - "optional": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "Public or enterprise GitHub.", - "optional": true - } + "type": "TypeString" } }, { - "name": "media", - "type": "TypeList", - "description": "A list of media items related to this offering.", + "name": "share_with_all", + "type": "TypeBool", + "description": "Denotes public availability of an Offering - if share_enabled is true.", "optional": true, + "computed": true + }, + { + "name": "rating", + "type": "TypeList", + "description": "Repository info for offerings.", "computed": true, "elem": { - "api_url": { - "name": "api_url", - "type": "TypeString", - "description": "CM API specific URL of the specified media item.", - "optional": true, - "computed": true - }, - "caption": { - "name": "caption", - "type": "TypeString", - "description": "Caption for this media item.", - "optional": true, + "four_star_count": { + "name": "four_star_count", + "type": "TypeInt", + "description": "Four start rating.", "computed": true }, - "caption_i18n": { - "name": "caption_i18n", - "type": "TypeMap", - "description": "A map of translated strings, by language code.", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, - "thumbnail_url": { - "name": "thumbnail_url", - "type": "TypeString", - "description": "Thumbnail URL for this media item.", - "optional": true, + "one_star_count": { + "name": "one_star_count", + "type": "TypeInt", + "description": "One start rating.", "computed": true }, - "type": { - "name": "type", - "type": "TypeString", - "description": "Type of this media item.", - "optional": true, + "three_star_count": { + "name": "three_star_count", + "type": "TypeInt", + "description": "Three start rating.", "computed": true }, - "url": { - "name": "url", - "type": "TypeString", - "description": "URL of the specified media item.", - "optional": true, + "two_star_count": { + "name": "two_star_count", + "type": "TypeInt", + "description": "Two start rating.", "computed": true - }, - "url_proxy": { - "name": "url_proxy", - "type": "TypeList", - "description": "Offering URL proxy information.", - "optional": true, - "computed": true, - "elem": { - "sha": { - "name": "sha", - "type": "TypeString", - "description": "SHA256 fingerprint of image.", - "optional": true, - "computed": true - }, - "url": { - "name": "url", - "type": "TypeString", - "description": "URL of the specified media item being proxied.", - "optional": true, - "computed": true - } - }, - "max_items": 1 } } }, { - "name": "deprecate_pending", - "type": "TypeList", - "description": "Deprecation information for an Offering.", - "computed": true, - "elem": { - "deprecate_date": { - "name": "deprecate_date", - "type": "TypeString", - "description": "Date of deprecation.", - "computed": true - }, - "deprecate_state": { - "name": "deprecate_state", - "type": "TypeString", - "description": "Deprecation state.", - "computed": true - }, - "description": { - "name": "description", - "type": "TypeString", - "computed": true - } - } + "name": "publish_approved", + "type": "TypeBool", + "description": "Offering has been approved to publish to permitted to IBM or Public Catalog.", + "computed": true } ], "ibm_cm_offering_instance": [ { - "name": "catalog_id", + "name": "offering_id", "type": "TypeString", - "description": "Catalog ID this instance was created from.", + "description": "Offering ID this instance was created from.", "required": true }, { - "name": "cluster_region", + "name": "kind_format", "type": "TypeString", - "description": "Cluster region (e.g., us-south).", + "description": "the format this instance has (helm, operator, ova...).", "required": true }, { - "name": "install_plan", + "name": "cluster_all_namespaces", + "type": "TypeBool", + "description": "designate to install into all namespaces.", + "required": true + }, + { + "name": "schematics_workspace_id", "type": "TypeString", - "description": "install plan for the subscription of the operator- can be either automatic or manual. Required for operator bundles", - "optional": true + "description": "id of the schematics workspace, for offerings installed through schematics", + "computed": true }, { "name": "channel", @@ -97527,22 +100366,22 @@ "optional": true }, { - "name": "wait_until_successful", - "type": "TypeBool", - "description": "Whether to wait until the offering instance successfully provisions, or to return when accepted", - "default_value": true, - "optional": true + "name": "crn", + "type": "TypeString", + "description": "platform CRN for this instance.", + "cloud_data_type": "crn", + "computed": true }, { - "name": "label", + "name": "catalog_id", "type": "TypeString", - "description": "the label for this instance.", + "description": "Catalog ID this instance was created from.", "required": true }, { - "name": "cluster_id", + "name": "version", "type": "TypeString", - "description": "Cluster ID.", + "description": "The version this instance was installed from (not version id).", "required": true }, { @@ -97555,33 +100394,15 @@ } }, { - "name": "offering_id", - "type": "TypeString", - "description": "Offering ID this instance was created from.", - "required": true - }, - { - "name": "kind_format", - "type": "TypeString", - "description": "the format this instance has (helm, operator, ova...).", - "required": true - }, - { - "name": "version", + "name": "install_plan", "type": "TypeString", - "description": "The version this instance was installed from (not version id).", - "required": true - }, - { - "name": "cluster_all_namespaces", - "type": "TypeBool", - "description": "designate to install into all namespaces.", - "required": true + "description": "install plan for the subscription of the operator- can be either automatic or manual. Required for operator bundles", + "optional": true }, { - "name": "schematics_workspace_id", + "name": "url", "type": "TypeString", - "description": "id of the schematics workspace, for offerings installed through schematics", + "description": "url reference to this object.", "computed": true }, { @@ -97592,39 +100413,32 @@ "optional": true }, { - "name": "url", + "name": "label", "type": "TypeString", - "description": "url reference to this object.", - "computed": true + "description": "the label for this instance.", + "required": true }, { - "name": "crn", - "type": "TypeString", - "description": "platform CRN for this instance.", - "cloud_data_type": "crn", - "computed": true - } - ], - "ibm_cm_validation": [ - { - "name": "last_operation", + "name": "cluster_id", "type": "TypeString", - "description": "Last operation (e.g. submit_deployment, generate_installer, install_offering.", - "computed": true + "description": "Cluster ID.", + "required": true }, { - "name": "message", + "name": "cluster_region", "type": "TypeString", - "description": "Any message needing to be conveyed as part of the validation job.", - "computed": true + "description": "Cluster region (e.g., us-south).", + "required": true }, { - "name": "revalidate_if_validated", + "name": "wait_until_successful", "type": "TypeBool", - "description": "If the version should be revalidated if it is already validated.", - "immutable": true, + "description": "Whether to wait until the offering instance successfully provisions, or to return when accepted", + "default_value": true, "optional": true - }, + } + ], + "ibm_cm_validation": [ { "name": "version_locator", "type": "TypeString", @@ -97650,6 +100464,33 @@ "type": "TypeString" } }, + { + "name": "environment_variables", + "type": "TypeList", + "description": "Environment variables to include in the schematics workspace.", + "immutable": true, + "optional": true, + "elem": { + "name": { + "name": "name", + "type": "TypeString", + "description": "Name of the environment variable.", + "optional": true + }, + "secure": { + "name": "secure", + "type": "TypeBool", + "description": "If the environment variablel should be secure.", + "optional": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "Value of the environment variable.", + "optional": true + } + } + }, { "name": "schematics", "type": "TypeList", @@ -97699,12 +100540,30 @@ }, "max_items": 1 }, + { + "name": "validated", + "type": "TypeString", + "description": "Data and time of last successful validation.", + "computed": true + }, + { + "name": "requested", + "type": "TypeString", + "description": "Data and time of last validation request.", + "computed": true + }, { "name": "state", "type": "TypeString", "description": "Current validation state - \u003cempty\u003e, in_progress, valid, invalid, expired.", "computed": true }, + { + "name": "message", + "type": "TypeString", + "description": "Any message needing to be conveyed as part of the validation job.", + "computed": true + }, { "name": "mark_version_consumable", "type": "TypeBool", @@ -97712,64 +100571,667 @@ "optional": true }, { - "name": "environment_variables", - "type": "TypeList", - "description": "Environment variables to include in the schematics workspace.", + "name": "last_operation", + "type": "TypeString", + "description": "Last operation (e.g. submit_deployment, generate_installer, install_offering.", + "computed": true + }, + { + "name": "x_auth_refresh_token", + "type": "TypeString", + "description": "Authentication token used to submit validation job.", + "secure": true, + "optional": true, + "deprecated": "This argument is deprecated because it is now retrieved automatically." + }, + { + "name": "revalidate_if_validated", + "type": "TypeBool", + "description": "If the version should be revalidated if it is already validated.", "immutable": true, + "optional": true + } + ], + "ibm_cm_version": [ + { + "name": "terraform_version", + "type": "TypeString", + "description": "Provide a terraform version for this offering version to use.", + "optional": true + }, + { + "name": "flavor", + "type": "TypeList", + "description": "Version Flavor Information. Only supported for Product kind Solution.", "optional": true, "elem": { + "index": { + "name": "index", + "type": "TypeInt", + "description": "Order that this flavor should appear when listed for a single version.", + "optional": true + }, + "label": { + "name": "label", + "type": "TypeString", + "description": "Label for this flavor.", + "optional": true + }, + "label_i18n": { + "name": "label_i18n", + "type": "TypeMap", + "description": "A map of translated strings, by language code.", + "optional": true, + "elem": { + "type": "TypeString" + } + }, "name": { "name": "name", "type": "TypeString", - "description": "Name of the environment variable.", + "description": "Programmatic name for this flavor.", + "optional": true + } + }, + "max_items": 1 + }, + { + "name": "target_version", + "type": "TypeString", + "description": "The semver value for this new version, if not found in the zip url package content.", + "immutable": true, + "optional": true + }, + { + "name": "include_config", + "type": "TypeBool", + "description": "Add all possible configuration values to this version when importing.", + "immutable": true, + "optional": true + }, + { + "name": "tgz_url", + "type": "TypeString", + "description": "File used to on-board this version.", + "computed": true + }, + { + "name": "sha", + "type": "TypeString", + "description": "SHA256 fingerprint of the image file. Required for virtual server image for VPC.", + "computed": true + }, + { + "name": "metadata", + "type": "TypeList", + "description": "Generic data to be included with content being onboarded. Required for virtual server image for VPC.", + "computed": true, + "elem": { + "end_deploy_time": { + "name": "end_deploy_time", + "type": "TypeString", + "description": "The time validation ended.", + "computed": true + }, + "est_deploy_time": { + "name": "est_deploy_time", + "type": "TypeFloat", + "description": "The estimated time validation takes.", + "computed": true + }, + "example_name": { + "name": "example_name", + "type": "TypeString", + "description": "Working directory of source files.", + "computed": true + }, + "modules": { + "name": "modules", + "type": "TypeList", + "description": "Terraform modules.", + "computed": true, + "elem": { + "name": { + "name": "name", + "type": "TypeString", + "description": "Name of the module.", + "computed": true + }, + "offering_reference": { + "name": "offering_reference", + "type": "TypeList", + "description": "Terraform modules.", + "computed": true, + "elem": { + "catalog_id": { + "name": "catalog_id", + "type": "TypeString", + "description": "Catalog ID of the module reference.", + "computed": true + }, + "flavor": { + "name": "flavor", + "type": "TypeString", + "description": "Flavor of the module.", + "computed": true + }, + "flavors": { + "name": "flavors", + "type": "TypeList", + "description": "Flavors of the module.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "ID of the offering module.", + "computed": true + }, + "kind": { + "name": "kind", + "type": "TypeString", + "description": "Kind of the offeringmodule.", + "computed": true + }, + "metadata": { + "name": "metadata", + "type": "TypeString", + "description": "Metadata of the module.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Name of the offering module.", + "computed": true + }, + "version": { + "name": "version", + "type": "TypeString", + "description": "Version of the offering module.", + "computed": true + } + } + }, + "source": { + "name": "source", + "type": "TypeString", + "description": "Source of the module.", + "computed": true + } + } + }, + "source_url": { + "name": "source_url", + "type": "TypeString", + "description": "Version source URL.", + "computed": true + }, + "start_deploy_time": { + "name": "start_deploy_time", + "type": "TypeString", + "description": "The time validation started.", + "computed": true + }, + "terraform_version": { + "name": "terraform_version", + "type": "TypeString", + "description": "Terraform version.", + "computed": true + }, + "usage": { + "name": "usage", + "type": "TypeString", + "description": "Usage text for the version.", + "computed": true + }, + "usage_template": { + "name": "usage_template", + "type": "TypeString", + "description": "Usage text for the version.", + "computed": true + }, + "validated_terraform_version": { + "name": "validated_terraform_version", + "type": "TypeString", + "description": "Validated terraform version.", + "computed": true + }, + "version_name": { + "name": "version_name", + "type": "TypeString", + "description": "Version name.", + "computed": true + }, + "vsi_vpc": { + "name": "vsi_vpc", + "type": "TypeList", + "description": "VSI VPC version information", + "computed": true, + "elem": { + "file": { + "name": "file", + "type": "TypeList", + "description": "Details for the stored image file. Required for virtual server image for VPC.", + "computed": true, + "elem": { + "size": { + "name": "size", + "type": "TypeInt", + "description": "Size of the stored image file rounded up to the next gigabyte. Required for virtual server image for VPC.", + "computed": true + } + } + }, + "images": { + "name": "images", + "type": "TypeList", + "description": "Image operating system. Required for virtual server image for VPC.", + "computed": true, + "elem": { + "id": { + "name": "id", + "type": "TypeString", + "description": "Programmatic ID of virtual server image. Required for virtual server image for VPC.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Programmatic name of virtual server image. Required for virtual server image for VPC.", + "computed": true + }, + "region": { + "name": "region", + "type": "TypeString", + "description": "Region the virtual server image is available in. Required for virtual server image for VPC.", + "computed": true + } + } + }, + "minimum_provisioned_size": { + "name": "minimum_provisioned_size", + "type": "TypeInt", + "description": "Minimum size (in gigabytes) of a volume onto which this image may be provisioned. Required for virtual server image for VPC.", + "computed": true + }, + "operating_system": { + "name": "operating_system", + "type": "TypeList", + "description": "Operating system included in this image. Required for virtual server image for VPC.", + "computed": true, + "elem": { + "architecture": { + "name": "architecture", + "type": "TypeString", + "description": "Operating system architecture. Required for virtual server image for VPC.", + "computed": true + }, + "dedicated_host_only": { + "name": "dedicated_host_only", + "type": "TypeBool", + "description": "Images with this operating system can only be used on dedicated hosts or dedicated host groups. Required for virtual server image for VPC.", + "computed": true + }, + "display_name": { + "name": "display_name", + "type": "TypeString", + "description": "Unique, display-friendly name for the operating system. Required for virtual server image for VPC.", + "computed": true + }, + "family": { + "name": "family", + "type": "TypeString", + "description": "Software family for this operating system. Required for virtual server image for VPC.", + "computed": true + }, + "href": { + "name": "href", + "type": "TypeString", + "description": "URL for this operating system. Required for virtual server image for VPC.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Globally unique name for this operating system Required for virtual server image for VPC.", + "computed": true + }, + "vendor": { + "name": "vendor", + "type": "TypeString", + "description": "Vendor of the operating system. Required for virtual server image for VPC.", + "computed": true + }, + "version": { + "name": "version", + "type": "TypeString", + "description": "Major release version of this operating system. Required for virtual server image for VPC.", + "computed": true + } + } + } + } + }, + "working_directory": { + "name": "working_directory", + "type": "TypeString", + "description": "Working directory of source files.", + "computed": true + } + } + }, + { + "name": "install", + "type": "TypeList", + "description": "Script information.", + "optional": true, + "computed": true, + "elem": { + "delete_script": { + "name": "delete_script", + "type": "TypeString", + "description": "Optional script that if run will remove the installed version.", + "optional": true, + "computed": true + }, + "instructions": { + "name": "instructions", + "type": "TypeString", + "description": "Instruction on step and by whom (role) that are needed to take place to prepare the target for installing this version.", + "optional": true, + "computed": true + }, + "instructions_i18n": { + "name": "instructions_i18n", + "type": "TypeMap", + "description": "A map of translated strings, by language code.", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "scope": { + "name": "scope", + "type": "TypeString", + "description": "Optional value indicating if this script is scoped to a namespace or the entire cluster.", + "optional": true, + "computed": true + }, + "script": { + "name": "script", + "type": "TypeString", + "description": "Optional script that needs to be run post any pre-condition script.", + "optional": true, + "computed": true + }, + "script_permission": { + "name": "script_permission", + "type": "TypeString", + "description": "Optional iam permissions that are required on the target cluster to run this script.", + "optional": true, + "computed": true + } + }, + "max_items": 1 + }, + { + "name": "entitlement", + "type": "TypeList", + "description": "Entitlement license info.", + "computed": true, + "elem": { + "image_repo_name": { + "name": "image_repo_name", + "type": "TypeString", + "description": "Image repository name.", "optional": true }, - "secure": { - "name": "secure", - "type": "TypeBool", - "description": "If the environment variablel should be secure.", + "part_numbers": { + "name": "part_numbers", + "type": "TypeList", + "description": "list of license entitlement part numbers, eg. D1YGZLL,D1ZXILL.", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + "product_id": { + "name": "product_id", + "type": "TypeString", + "description": "Product ID.", "optional": true }, - "value": { - "name": "value", + "provider_id": { + "name": "provider_id", "type": "TypeString", - "description": "Value of the environment variable.", + "description": "Provider ID.", + "optional": true + }, + "provider_name": { + "name": "provider_name", + "type": "TypeString", + "description": "Provider name.", + "optional": true + } + } + }, + { + "name": "licenses", + "type": "TypeList", + "description": "List of licenses the product was built with.", + "optional": true, + "computed": true, + "elem": { + "description": { + "name": "description", + "type": "TypeString", + "description": "License description.", + "optional": true, + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "License ID.", + "optional": true, + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "license name.", + "optional": true, + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "type of license e.g., Apache xxx.", + "optional": true, + "computed": true + }, + "url": { + "name": "url", + "type": "TypeString", + "description": "URL for the license text.", + "optional": true, + "computed": true + } + } + }, + { + "name": "long_description", + "type": "TypeString", + "description": "Long description for version.", + "computed": true + }, + { + "name": "offering_identifier", + "type": "TypeString", + "description": "Offering ID, in the format of \u003caccount_id\u003e:o:\u003coffering_id\u003e.", + "computed": true + }, + { + "name": "product_kind", + "type": "TypeString", + "description": "Optional product kind for the software being onboarded. Valid values are software, module, or solution. Default value is software.", + "immutable": true, + "optional": true + }, + { + "name": "import_metadata", + "type": "TypeList", + "description": "Generic data to be included with content being onboarded. Required for virtual server image for VPC.", + "optional": true, + "elem": { + "file": { + "name": "file", + "type": "TypeList", + "description": "Details for the stored image file. Required for virtual server image for VPC.", + "optional": true, + "elem": { + "size": { + "name": "size", + "type": "TypeInt", + "description": "Size of the stored image file rounded up to the next gigabyte. Required for virtual server image for VPC.", + "optional": true + } + }, + "max_items": 1 + }, + "images": { + "name": "images", + "type": "TypeList", + "description": "Image operating system. Required for virtual server image for VPC.", + "optional": true, + "elem": { + "id": { + "name": "id", + "type": "TypeString", + "description": "Programmatic ID of virtual server image. Required for virtual server image for VPC.", + "optional": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Programmatic name of virtual server image. Required for virtual server image for VPC.", + "optional": true + }, + "region": { + "name": "region", + "type": "TypeString", + "description": "Region the virtual server image is available in. Required for virtual server image for VPC.", + "optional": true + } + } + }, + "minimum_provisioned_size": { + "name": "minimum_provisioned_size", + "type": "TypeInt", + "description": "Minimum size (in gigabytes) of a volume onto which this image may be provisioned. Required for virtual server image for VPC.", "optional": true + }, + "operating_system": { + "name": "operating_system", + "type": "TypeList", + "description": "Operating system included in this image. Required for virtual server image for VPC.", + "optional": true, + "elem": { + "architecture": { + "name": "architecture", + "type": "TypeString", + "description": "Operating system architecture. Required for virtual server image for VPC.", + "optional": true + }, + "dedicated_host_only": { + "name": "dedicated_host_only", + "type": "TypeBool", + "description": "Images with this operating system can only be used on dedicated hosts or dedicated host groups. Required for virtual server image for VPC.", + "optional": true + }, + "display_name": { + "name": "display_name", + "type": "TypeString", + "description": "Unique, display-friendly name for the operating system. Required for virtual server image for VPC.", + "optional": true + }, + "family": { + "name": "family", + "type": "TypeString", + "description": "Software family for this operating system. Required for virtual server image for VPC.", + "optional": true + }, + "href": { + "name": "href", + "type": "TypeString", + "description": "URL for this operating system. Required for virtual server image for VPC.", + "optional": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Globally unique name for this operating system Required for virtual server image for VPC.", + "optional": true + }, + "vendor": { + "name": "vendor", + "type": "TypeString", + "description": "Vendor of the operating system. Required for virtual server image for VPC.", + "optional": true + }, + "version": { + "name": "version", + "type": "TypeString", + "description": "Major release version of this operating system. Required for virtual server image for VPC.", + "optional": true + } + }, + "max_items": 1 } - } + }, + "max_items": 1 }, { - "name": "validated", + "name": "updated", "type": "TypeString", - "description": "Data and time of last successful validation.", + "description": "The date and time this version was last updated.", "computed": true }, { - "name": "requested", - "type": "TypeString", - "description": "Data and time of last validation request.", + "name": "deprecated", + "type": "TypeBool", + "description": "read only field, indicating if this version is deprecated.", "computed": true }, { - "name": "x_auth_refresh_token", + "name": "version_locator", "type": "TypeString", - "description": "Authentication token used to submit validation job.", - "secure": true, - "optional": true, - "deprecated": "This argument is deprecated because it is now retrieved automatically." - } - ], - "ibm_cm_version": [ + "description": "A dotted value of `catalogID`.`versionID`.", + "computed": true + }, { - "name": "import_sha", + "name": "format_kind", "type": "TypeString", - "description": "SHA256 fingerprint of the image file. Required for virtual server image for VPC.", + "description": "Format of content being onboarded. Example: vsi-image. Required for virtual server image for VPC.", + "immutable": true, "optional": true }, { - "name": "created", + "name": "repotype", "type": "TypeString", - "description": "The date and time this version was created.", + "description": "The type of repository containing this version. Valid values are 'public_git' or 'enterprise_git'.", + "immutable": true, + "optional": true + }, + { + "name": "single_instance", + "type": "TypeBool", + "description": "Denotes if single instance can be deployed to a given cluster.", "computed": true }, { @@ -98472,254 +101934,16 @@ "max_items": 1 }, { - "name": "version", - "type": "TypeString", - "description": "Semantic version of the software being onboarded. Required for virtual server image for VPC.", - "computed": true - }, - { - "name": "import_metadata", - "type": "TypeList", - "description": "Generic data to be included with content being onboarded. Required for virtual server image for VPC.", - "optional": true, - "elem": { - "file": { - "name": "file", - "type": "TypeList", - "description": "Details for the stored image file. Required for virtual server image for VPC.", - "optional": true, - "elem": { - "size": { - "name": "size", - "type": "TypeInt", - "description": "Size of the stored image file rounded up to the next gigabyte. Required for virtual server image for VPC.", - "optional": true - } - }, - "max_items": 1 - }, - "images": { - "name": "images", - "type": "TypeList", - "description": "Image operating system. Required for virtual server image for VPC.", - "optional": true, - "elem": { - "id": { - "name": "id", - "type": "TypeString", - "description": "Programmatic ID of virtual server image. Required for virtual server image for VPC.", - "optional": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Programmatic name of virtual server image. Required for virtual server image for VPC.", - "optional": true - }, - "region": { - "name": "region", - "type": "TypeString", - "description": "Region the virtual server image is available in. Required for virtual server image for VPC.", - "optional": true - } - } - }, - "minimum_provisioned_size": { - "name": "minimum_provisioned_size", - "type": "TypeInt", - "description": "Minimum size (in gigabytes) of a volume onto which this image may be provisioned. Required for virtual server image for VPC.", - "optional": true - }, - "operating_system": { - "name": "operating_system", - "type": "TypeList", - "description": "Operating system included in this image. Required for virtual server image for VPC.", - "optional": true, - "elem": { - "architecture": { - "name": "architecture", - "type": "TypeString", - "description": "Operating system architecture. Required for virtual server image for VPC.", - "optional": true - }, - "dedicated_host_only": { - "name": "dedicated_host_only", - "type": "TypeBool", - "description": "Images with this operating system can only be used on dedicated hosts or dedicated host groups. Required for virtual server image for VPC.", - "optional": true - }, - "display_name": { - "name": "display_name", - "type": "TypeString", - "description": "Unique, display-friendly name for the operating system. Required for virtual server image for VPC.", - "optional": true - }, - "family": { - "name": "family", - "type": "TypeString", - "description": "Software family for this operating system. Required for virtual server image for VPC.", - "optional": true - }, - "href": { - "name": "href", - "type": "TypeString", - "description": "URL for this operating system. Required for virtual server image for VPC.", - "optional": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Globally unique name for this operating system Required for virtual server image for VPC.", - "optional": true - }, - "vendor": { - "name": "vendor", - "type": "TypeString", - "description": "Vendor of the operating system. Required for virtual server image for VPC.", - "optional": true - }, - "version": { - "name": "version", - "type": "TypeString", - "description": "Major release version of this operating system. Required for virtual server image for VPC.", - "optional": true - } - }, - "max_items": 1 - } - }, - "max_items": 1 - }, - { - "name": "x_auth_token", + "name": "content", "type": "TypeString", - "description": "Authentication token used to access the specified zip file.", + "description": "Byte array representing the content to be imported. Only supported for OVA images at this time.", "immutable": true, "optional": true }, { - "name": "iam_permissions", - "type": "TypeList", - "description": "List of IAM permissions that are required to consume this version.", - "optional": true, - "elem": { - "resources": { - "name": "resources", - "type": "TypeList", - "description": "Resources for this permission.", - "optional": true, - "elem": { - "description": { - "name": "description", - "type": "TypeString", - "description": "Resource description.", - "optional": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Resource name.", - "optional": true - }, - "role_crns": { - "name": "role_crns", - "type": "TypeList", - "description": "Role CRNs for this permission.", - "optional": true, - "elem": { - "type": "TypeString" - } - } - } - }, - "role_crns": { - "name": "role_crns", - "type": "TypeList", - "description": "Role CRNs for this permission.", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - "service_name": { - "name": "service_name", - "type": "TypeString", - "description": "Service name.", - "optional": true - } - } - }, - { - "name": "validation", - "type": "TypeList", - "description": "Validation response.", - "computed": true, - "elem": { - "last_operation": { - "name": "last_operation", - "type": "TypeString", - "description": "Last operation (e.g. submit_deployment, generate_installer, install_offering.", - "optional": true - }, - "message": { - "name": "message", - "type": "TypeString", - "description": "Any message needing to be conveyed as part of the validation job.", - "optional": true - }, - "requested": { - "name": "requested", - "type": "TypeString", - "description": "Date and time of last validation was requested.", - "optional": true - }, - "state": { - "name": "state", - "type": "TypeString", - "description": "Current validation state - \u003cempty\u003e, in_progress, valid, invalid, expired.", - "optional": true - }, - "target": { - "name": "target", - "type": "TypeMap", - "description": "Validation target information (e.g. cluster_id, region, namespace, etc). Values will vary by Content type.", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - "validated": { - "name": "validated", - "type": "TypeString", - "description": "Date and time of last successful validation.", - "optional": true - } - } - }, - { - "name": "is_vsi", + "name": "deprecate", "type": "TypeBool", - "description": "Indicates that the current terraform template is used to install a virtual server image.", - "immutable": true, - "optional": true - }, - { - "name": "tgz_url", - "type": "TypeString", - "description": "File used to on-board this version.", - "computed": true - }, - { - "name": "offering_identifier", - "type": "TypeString", - "description": "Offering ID, in the format of \u003caccount_id\u003e:o:\u003coffering_id\u003e.", - "computed": true - }, - { - "name": "product_kind", - "type": "TypeString", - "description": "Optional product kind for the software being onboarded. Valid values are software, module, or solution. Default value is software.", - "immutable": true, + "description": "Deprecate this version.", "optional": true }, { @@ -98728,213 +101952,6 @@ "description": "The usage text for this version.", "optional": true }, - { - "name": "working_directory", - "type": "TypeString", - "description": "Optional - The sub-folder within the specified tgz file that contains the software being onboarded.", - "immutable": true, - "optional": true - }, - { - "name": "include_config", - "type": "TypeBool", - "description": "Add all possible configuration values to this version when importing.", - "immutable": true, - "optional": true - }, - { - "name": "long_description_i18n", - "type": "TypeMap", - "description": "A map of translated strings, by language code.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "install_kind", - "type": "TypeString", - "description": "Install type. Example: instance. Required for virtual server image for VPC.", - "immutable": true, - "optional": true - }, - { - "name": "format_kind", - "type": "TypeString", - "description": "Format of content being onboarded. Example: vsi-image. Required for virtual server image for VPC.", - "immutable": true, - "optional": true - }, - { - "name": "configuration", - "type": "TypeList", - "description": "List of user solicited overrides.", - "optional": true, - "computed": true, - "elem": { - "custom_config": { - "name": "custom_config", - "type": "TypeList", - "description": "Render type.", - "optional": true, - "computed": true, - "elem": { - "associations": { - "name": "associations", - "type": "TypeList", - "description": "List of parameters that are associated with this configuration.", - "optional": true, - "computed": true, - "elem": { - "parameters": { - "name": "parameters", - "type": "TypeList", - "description": "Parameters for this association.", - "optional": true, - "computed": true, - "elem": { - "name": { - "name": "name", - "type": "TypeString", - "description": "Name of this parameter.", - "optional": true, - "computed": true - }, - "options_refresh": { - "name": "options_refresh", - "type": "TypeBool", - "description": "Refresh options.", - "optional": true, - "computed": true - } - } - } - }, - "max_items": 1 - }, - "config_constraints": { - "name": "config_constraints", - "type": "TypeMap", - "description": "Map of constraint parameters that will be passed to the custom widget.", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, - "grouping": { - "name": "grouping", - "type": "TypeString", - "description": "Determines where this configuration type is rendered (3 sections today - Target, Resource, and Deployment).", - "optional": true, - "computed": true - }, - "grouping_index": { - "name": "grouping_index", - "type": "TypeInt", - "description": "Determines the order that this configuration item shows in that particular grouping.", - "optional": true, - "computed": true - }, - "original_grouping": { - "name": "original_grouping", - "type": "TypeString", - "description": "Original grouping type for this configuration (3 types - Target, Resource, and Deployment).", - "optional": true, - "computed": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "ID of the widget type.", - "optional": true, - "computed": true - } - }, - "max_items": 1 - }, - "default_value": { - "name": "default_value", - "type": "TypeString", - "description": "The default value as a JSON encoded string. To use a secret when the type is password, specify a JSON encoded value of $ref:#/components/schemas/SecretInstance, prefixed with `cmsm_v1:`.", - "optional": true, - "computed": true - }, - "description": { - "name": "description", - "type": "TypeString", - "description": "Key description.", - "optional": true, - "computed": true - }, - "display_name": { - "name": "display_name", - "type": "TypeString", - "description": "Display name for configuration type.", - "optional": true, - "computed": true - }, - "hidden": { - "name": "hidden", - "type": "TypeBool", - "description": "Hide values.", - "optional": true, - "computed": true - }, - "key": { - "name": "key", - "type": "TypeString", - "description": "Configuration key.", - "optional": true, - "computed": true - }, - "options": { - "name": "options", - "type": "TypeList", - "description": "List of options of type.", - "optional": true, - "computed": true, - "elem": { - "type": "TypeMap" - } - }, - "required": { - "name": "required", - "type": "TypeBool", - "description": "Is key required to install.", - "optional": true, - "computed": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "Value type (string, boolean, int).", - "optional": true, - "computed": true - }, - "type_metadata": { - "name": "type_metadata", - "type": "TypeString", - "description": "The original type, as found in the source being onboarded.", - "optional": true, - "computed": true - }, - "value_constraint": { - "name": "value_constraint", - "type": "TypeString", - "description": "Constraint associated with value, e.g., for string type - regx:[a-z].", - "optional": true, - "computed": true - } - } - }, - { - "name": "offering_id", - "type": "TypeString", - "description": "Offering identification.", - "immutable": true, - "required": true - }, { "name": "zipurl", "type": "TypeString", @@ -98943,96 +101960,65 @@ "optional": true }, { - "name": "updated", - "type": "TypeString", - "description": "The date and time this version was last updated.", - "computed": true - }, - { - "name": "deprecated", - "type": "TypeBool", - "description": "read only field, indicating if this version is deprecated.", - "computed": true - }, - { - "name": "long_description", + "name": "image_manifest_url", "type": "TypeString", - "description": "Long description for version.", + "description": "If set, denotes a url to a YAML file with list of container images used by this version.", "computed": true }, { - "name": "is_consumable", + "name": "is_vsi", "type": "TypeBool", - "description": "Is the version able to be shared.", - "computed": true - }, - { - "name": "label", - "type": "TypeString", - "description": "Display name of version. Required for virtual server image for VPC.", - "optional": true - }, - { - "name": "name", - "type": "TypeString", - "description": "Name of version. Required for virtual server image for VPC.", + "description": "Indicates that the current terraform template is used to install a virtual server image.", "immutable": true, "optional": true }, { - "name": "source_url", - "type": "TypeString", - "description": "Content's source URL (e.g git repo).", - "computed": true - }, - { - "name": "entitlement", + "name": "pre_install", "type": "TypeList", - "description": "Entitlement license info.", - "computed": true, + "description": "Optional pre-install instructions.", + "optional": true, "elem": { - "image_repo_name": { - "name": "image_repo_name", + "delete_script": { + "name": "delete_script", "type": "TypeString", - "description": "Image repository name.", + "description": "Optional script that if run will remove the installed version.", "optional": true }, - "part_numbers": { - "name": "part_numbers", - "type": "TypeList", - "description": "list of license entitlement part numbers, eg. D1YGZLL,D1ZXILL.", + "instructions": { + "name": "instructions", + "type": "TypeString", + "description": "Instruction on step and by whom (role) that are needed to take place to prepare the target for installing this version.", + "optional": true + }, + "instructions_i18n": { + "name": "instructions_i18n", + "type": "TypeMap", + "description": "A map of translated strings, by language code.", "optional": true, "elem": { "type": "TypeString" } }, - "product_id": { - "name": "product_id", + "scope": { + "name": "scope", "type": "TypeString", - "description": "Product ID.", + "description": "Optional value indicating if this script is scoped to a namespace or the entire cluster.", "optional": true }, - "provider_id": { - "name": "provider_id", + "script": { + "name": "script", "type": "TypeString", - "description": "Provider ID.", + "description": "Optional script that needs to be run post any pre-condition script.", "optional": true }, - "provider_name": { - "name": "provider_name", + "script_permission": { + "name": "script_permission", "type": "TypeString", - "description": "Provider name.", + "description": "Optional iam permissions that are required on the target cluster to run this script.", "optional": true } } }, - { - "name": "repotype", - "type": "TypeString", - "description": "The type of repository containing this version. Valid values are 'public_git' or 'enterprise_git'.", - "immutable": true, - "optional": true - }, { "name": "tags", "type": "TypeList", @@ -99044,386 +102030,76 @@ } }, { - "name": "target_kinds", - "type": "TypeList", - "description": "Deployment target of the content being onboarded. Current valid values are iks, roks, vcenter, power-iaas, terraform, and vpc-x86. Required for virtual server image for VPC.", + "name": "install_kind", + "type": "TypeString", + "description": "Install type. Example: instance. Required for virtual server image for VPC.", "immutable": true, - "optional": true, - "elem": { - "type": "TypeString" - } + "optional": true }, { - "name": "metadata", + "name": "working_directory", + "type": "TypeString", + "description": "Optional - The sub-folder within the specified tgz file that contains the software being onboarded.", + "immutable": true, + "optional": true + }, + { + "name": "iam_permissions", "type": "TypeList", - "description": "Generic data to be included with content being onboarded. Required for virtual server image for VPC.", - "computed": true, + "description": "List of IAM permissions that are required to consume this version.", + "optional": true, "elem": { - "end_deploy_time": { - "name": "end_deploy_time", - "type": "TypeString", - "description": "The time validation ended.", - "computed": true - }, - "est_deploy_time": { - "name": "est_deploy_time", - "type": "TypeFloat", - "description": "The estimated time validation takes.", - "computed": true - }, - "example_name": { - "name": "example_name", - "type": "TypeString", - "description": "Working directory of source files.", - "computed": true - }, - "modules": { - "name": "modules", + "resources": { + "name": "resources", "type": "TypeList", - "description": "Terraform modules.", - "computed": true, + "description": "Resources for this permission.", + "optional": true, "elem": { + "description": { + "name": "description", + "type": "TypeString", + "description": "Resource description.", + "optional": true + }, "name": { "name": "name", "type": "TypeString", - "description": "Name of the module.", - "computed": true + "description": "Resource name.", + "optional": true }, - "offering_reference": { - "name": "offering_reference", + "role_crns": { + "name": "role_crns", "type": "TypeList", - "description": "Terraform modules.", - "computed": true, + "description": "Role CRNs for this permission.", + "optional": true, "elem": { - "catalog_id": { - "name": "catalog_id", - "type": "TypeString", - "description": "Catalog ID of the module reference.", - "computed": true - }, - "flavor": { - "name": "flavor", - "type": "TypeString", - "description": "Flavor of the module.", - "computed": true - }, - "flavors": { - "name": "flavors", - "type": "TypeList", - "description": "Flavors of the module.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "ID of the offering module.", - "computed": true - }, - "kind": { - "name": "kind", - "type": "TypeString", - "description": "Kind of the offeringmodule.", - "computed": true - }, - "metadata": { - "name": "metadata", - "type": "TypeString", - "description": "Metadata of the module.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Name of the offering module.", - "computed": true - }, - "version": { - "name": "version", - "type": "TypeString", - "description": "Version of the offering module.", - "computed": true - } + "type": "TypeString" } - }, - "source": { - "name": "source", - "type": "TypeString", - "description": "Source of the module.", - "computed": true } } }, - "source_url": { - "name": "source_url", - "type": "TypeString", - "description": "Version source URL.", - "computed": true - }, - "start_deploy_time": { - "name": "start_deploy_time", - "type": "TypeString", - "description": "The time validation started.", - "computed": true - }, - "terraform_version": { - "name": "terraform_version", - "type": "TypeString", - "description": "Terraform version.", - "computed": true - }, - "usage": { - "name": "usage", - "type": "TypeString", - "description": "Usage text for the version.", - "computed": true - }, - "usage_template": { - "name": "usage_template", - "type": "TypeString", - "description": "Usage text for the version.", - "computed": true - }, - "validated_terraform_version": { - "name": "validated_terraform_version", - "type": "TypeString", - "description": "Validated terraform version.", - "computed": true - }, - "version_name": { - "name": "version_name", - "type": "TypeString", - "description": "Version name.", - "computed": true - }, - "vsi_vpc": { - "name": "vsi_vpc", + "role_crns": { + "name": "role_crns", "type": "TypeList", - "description": "VSI VPC version information", - "computed": true, + "description": "Role CRNs for this permission.", + "optional": true, "elem": { - "file": { - "name": "file", - "type": "TypeList", - "description": "Details for the stored image file. Required for virtual server image for VPC.", - "computed": true, - "elem": { - "size": { - "name": "size", - "type": "TypeInt", - "description": "Size of the stored image file rounded up to the next gigabyte. Required for virtual server image for VPC.", - "computed": true - } - } - }, - "images": { - "name": "images", - "type": "TypeList", - "description": "Image operating system. Required for virtual server image for VPC.", - "computed": true, - "elem": { - "id": { - "name": "id", - "type": "TypeString", - "description": "Programmatic ID of virtual server image. Required for virtual server image for VPC.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Programmatic name of virtual server image. Required for virtual server image for VPC.", - "computed": true - }, - "region": { - "name": "region", - "type": "TypeString", - "description": "Region the virtual server image is available in. Required for virtual server image for VPC.", - "computed": true - } - } - }, - "minimum_provisioned_size": { - "name": "minimum_provisioned_size", - "type": "TypeInt", - "description": "Minimum size (in gigabytes) of a volume onto which this image may be provisioned. Required for virtual server image for VPC.", - "computed": true - }, - "operating_system": { - "name": "operating_system", - "type": "TypeList", - "description": "Operating system included in this image. Required for virtual server image for VPC.", - "computed": true, - "elem": { - "architecture": { - "name": "architecture", - "type": "TypeString", - "description": "Operating system architecture. Required for virtual server image for VPC.", - "computed": true - }, - "dedicated_host_only": { - "name": "dedicated_host_only", - "type": "TypeBool", - "description": "Images with this operating system can only be used on dedicated hosts or dedicated host groups. Required for virtual server image for VPC.", - "computed": true - }, - "display_name": { - "name": "display_name", - "type": "TypeString", - "description": "Unique, display-friendly name for the operating system. Required for virtual server image for VPC.", - "computed": true - }, - "family": { - "name": "family", - "type": "TypeString", - "description": "Software family for this operating system. Required for virtual server image for VPC.", - "computed": true - }, - "href": { - "name": "href", - "type": "TypeString", - "description": "URL for this operating system. Required for virtual server image for VPC.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Globally unique name for this operating system Required for virtual server image for VPC.", - "computed": true - }, - "vendor": { - "name": "vendor", - "type": "TypeString", - "description": "Vendor of the operating system. Required for virtual server image for VPC.", - "computed": true - }, - "version": { - "name": "version", - "type": "TypeString", - "description": "Major release version of this operating system. Required for virtual server image for VPC.", - "computed": true - } - } - } + "type": "TypeString" } }, - "working_directory": { - "name": "working_directory", - "type": "TypeString", - "description": "Working directory of source files.", - "computed": true - } - } - }, - { - "name": "kind_id", - "type": "TypeString", - "description": "Kind ID.", - "computed": true - }, - { - "name": "crn", - "type": "TypeString", - "description": "Version's CRN.", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "outputs", - "type": "TypeList", - "description": "List of output values for this version.", - "computed": true, - "elem": { - "description": { - "name": "description", - "type": "TypeString", - "description": "Output description.", - "optional": true - }, - "key": { - "name": "key", - "type": "TypeString", - "description": "Output key.", - "optional": true - } - } - }, - { - "name": "required_resources", - "type": "TypeList", - "description": "Resource requirments for installation.", - "computed": true, - "elem": { - "type": { - "name": "type", - "type": "TypeString", - "description": "Type of requirement.", - "optional": true - }, - "value": { - "name": "value", + "service_name": { + "name": "service_name", "type": "TypeString", - "description": "mem, disk, cores, and nodes can be parsed as an int. targetVersion will be a semver range value.", + "description": "Service name.", "optional": true } } }, { - "name": "licenses", - "type": "TypeList", - "description": "List of licenses the product was built with.", - "optional": true, - "computed": true, - "elem": { - "description": { - "name": "description", - "type": "TypeString", - "description": "License description.", - "optional": true, - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "License ID.", - "optional": true, - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "license name.", - "optional": true, - "computed": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "type of license e.g., Apache xxx.", - "optional": true, - "computed": true - }, - "url": { - "name": "url", - "type": "TypeString", - "description": "URL for the license text.", - "optional": true, - "computed": true - } - } - }, - { - "name": "image_manifest_url", - "type": "TypeString", - "description": "If set, denotes a url to a YAML file with list of container images used by this version.", - "computed": true - }, - { - "name": "image_pull_key_name", + "name": "import_sha", "type": "TypeString", - "description": "ID of the image pull key to use from Offering.ImagePullKeys.", - "computed": true + "description": "SHA256 fingerprint of the image file. Required for virtual server image for VPC.", + "optional": true }, { "name": "version_id", @@ -99432,126 +102108,107 @@ "computed": true }, { - "name": "content", + "name": "rev", "type": "TypeString", - "description": "Byte array representing the content to be imported. Only supported for OVA images at this time.", - "immutable": true, - "optional": true + "description": "Cloudant revision.", + "computed": true }, { - "name": "sha", + "name": "created", "type": "TypeString", - "description": "SHA256 fingerprint of the image file. Required for virtual server image for VPC.", + "description": "The date and time this version was created.", "computed": true }, { - "name": "terraform_version", + "name": "kind_id", "type": "TypeString", - "description": "Provide a terraform version for this offering version to use.", - "optional": true + "description": "Kind ID.", + "computed": true }, { - "name": "flavor", + "name": "validation", "type": "TypeList", - "description": "Version Flavor Information. Only supported for Product kind Solution.", - "optional": true, + "description": "Validation response.", + "computed": true, "elem": { - "index": { - "name": "index", - "type": "TypeInt", - "description": "Order that this flavor should appear when listed for a single version.", + "last_operation": { + "name": "last_operation", + "type": "TypeString", + "description": "Last operation (e.g. submit_deployment, generate_installer, install_offering.", + "optional": true + }, + "message": { + "name": "message", + "type": "TypeString", + "description": "Any message needing to be conveyed as part of the validation job.", "optional": true }, - "label": { - "name": "label", + "requested": { + "name": "requested", "type": "TypeString", - "description": "Label for this flavor.", + "description": "Date and time of last validation was requested.", "optional": true }, - "label_i18n": { - "name": "label_i18n", + "state": { + "name": "state", + "type": "TypeString", + "description": "Current validation state - \u003cempty\u003e, in_progress, valid, invalid, expired.", + "optional": true + }, + "target": { + "name": "target", "type": "TypeMap", - "description": "A map of translated strings, by language code.", + "description": "Validation target information (e.g. cluster_id, region, namespace, etc). Values will vary by Content type.", "optional": true, "elem": { "type": "TypeString" } }, - "name": { - "name": "name", + "validated": { + "name": "validated", "type": "TypeString", - "description": "Programmatic name for this flavor.", + "description": "Date and time of last successful validation.", "optional": true } - }, - "max_items": 1 - }, - { - "name": "rev", - "type": "TypeString", - "description": "Cloudant revision.", - "computed": true - }, - { - "name": "single_instance", - "type": "TypeBool", - "description": "Denotes if single instance can be deployed to a given cluster.", - "computed": true + } }, { - "name": "install", + "name": "state", "type": "TypeList", - "description": "Script information.", - "optional": true, + "description": "Offering state.", "computed": true, "elem": { - "delete_script": { - "name": "delete_script", + "current": { + "name": "current", "type": "TypeString", - "description": "Optional script that if run will remove the installed version.", - "optional": true, + "description": "one of: new, validated, account-published, ibm-published, public-published.", "computed": true }, - "instructions": { - "name": "instructions", + "current_entered": { + "name": "current_entered", "type": "TypeString", - "description": "Instruction on step and by whom (role) that are needed to take place to prepare the target for installing this version.", - "optional": true, + "description": "Date and time of current request.", "computed": true }, - "instructions_i18n": { - "name": "instructions_i18n", - "type": "TypeMap", - "description": "A map of translated strings, by language code.", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, - "scope": { - "name": "scope", + "pending": { + "name": "pending", "type": "TypeString", - "description": "Optional value indicating if this script is scoped to a namespace or the entire cluster.", - "optional": true, + "description": "one of: new, validated, account-published, ibm-published, public-published.", "computed": true }, - "script": { - "name": "script", + "pending_requested": { + "name": "pending_requested", "type": "TypeString", - "description": "Optional script that needs to be run post any pre-condition script.", - "optional": true, + "description": "Date and time of pending request.", "computed": true }, - "script_permission": { - "name": "script_permission", + "previous": { + "name": "previous", "type": "TypeString", - "description": "Optional iam permissions that are required on the target cluster to run this script.", - "optional": true, + "description": "one of: new, validated, account-published, ibm-published, public-published.", "computed": true } - }, - "max_items": 1 + } }, { "name": "catalog_id", @@ -99561,15 +102218,16 @@ "required": true }, { - "name": "deprecate", - "type": "TypeBool", - "description": "Deprecate this version.", - "optional": true + "name": "offering_id", + "type": "TypeString", + "description": "Offering identification.", + "immutable": true, + "required": true }, { - "name": "target_version", + "name": "x_auth_token", "type": "TypeString", - "description": "The semver value for this new version, if not found in the zip url package content.", + "description": "Authentication token used to access the specified zip file.", "immutable": true, "optional": true }, @@ -99580,94 +102238,179 @@ "computed": true }, { - "name": "pre_install", + "name": "name", + "type": "TypeString", + "description": "Name of version. Required for virtual server image for VPC.", + "immutable": true, + "optional": true + }, + { + "name": "configuration", "type": "TypeList", - "description": "Optional pre-install instructions.", + "description": "List of user solicited overrides.", "optional": true, + "computed": true, "elem": { - "delete_script": { - "name": "delete_script", - "type": "TypeString", - "description": "Optional script that if run will remove the installed version.", - "optional": true - }, - "instructions": { - "name": "instructions", - "type": "TypeString", - "description": "Instruction on step and by whom (role) that are needed to take place to prepare the target for installing this version.", - "optional": true - }, - "instructions_i18n": { - "name": "instructions_i18n", - "type": "TypeMap", - "description": "A map of translated strings, by language code.", + "custom_config": { + "name": "custom_config", + "type": "TypeList", + "description": "Render type.", "optional": true, + "computed": true, "elem": { - "type": "TypeString" - } + "associations": { + "name": "associations", + "type": "TypeList", + "description": "List of parameters that are associated with this configuration.", + "optional": true, + "computed": true, + "elem": { + "parameters": { + "name": "parameters", + "type": "TypeList", + "description": "Parameters for this association.", + "optional": true, + "computed": true, + "elem": { + "name": { + "name": "name", + "type": "TypeString", + "description": "Name of this parameter.", + "optional": true, + "computed": true + }, + "options_refresh": { + "name": "options_refresh", + "type": "TypeBool", + "description": "Refresh options.", + "optional": true, + "computed": true + } + } + } + }, + "max_items": 1 + }, + "config_constraints": { + "name": "config_constraints", + "type": "TypeMap", + "description": "Map of constraint parameters that will be passed to the custom widget.", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "grouping": { + "name": "grouping", + "type": "TypeString", + "description": "Determines where this configuration type is rendered (3 sections today - Target, Resource, and Deployment).", + "optional": true, + "computed": true + }, + "grouping_index": { + "name": "grouping_index", + "type": "TypeInt", + "description": "Determines the order that this configuration item shows in that particular grouping.", + "optional": true, + "computed": true + }, + "original_grouping": { + "name": "original_grouping", + "type": "TypeString", + "description": "Original grouping type for this configuration (3 types - Target, Resource, and Deployment).", + "optional": true, + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "ID of the widget type.", + "optional": true, + "computed": true + } + }, + "max_items": 1 }, - "scope": { - "name": "scope", + "default_value": { + "name": "default_value", "type": "TypeString", - "description": "Optional value indicating if this script is scoped to a namespace or the entire cluster.", - "optional": true + "description": "The default value as a JSON encoded string. To use a secret when the type is password, specify a JSON encoded value of $ref:#/components/schemas/SecretInstance, prefixed with `cmsm_v1:`.", + "optional": true, + "computed": true }, - "script": { - "name": "script", + "description": { + "name": "description", "type": "TypeString", - "description": "Optional script that needs to be run post any pre-condition script.", - "optional": true + "description": "Key description.", + "optional": true, + "computed": true }, - "script_permission": { - "name": "script_permission", - "type": "TypeString", - "description": "Optional iam permissions that are required on the target cluster to run this script.", - "optional": true - } - } - }, - { - "name": "state", - "type": "TypeList", - "description": "Offering state.", - "computed": true, - "elem": { - "current": { - "name": "current", + "display_name": { + "name": "display_name", "type": "TypeString", - "description": "one of: new, validated, account-published, ibm-published, public-published.", + "description": "Display name for configuration type.", + "optional": true, "computed": true }, - "current_entered": { - "name": "current_entered", + "hidden": { + "name": "hidden", + "type": "TypeBool", + "description": "Hide values.", + "optional": true, + "computed": true + }, + "key": { + "name": "key", "type": "TypeString", - "description": "Date and time of current request.", + "description": "Configuration key.", + "optional": true, "computed": true }, - "pending": { - "name": "pending", + "options": { + "name": "options", + "type": "TypeList", + "description": "List of options of type.", + "optional": true, + "computed": true, + "elem": { + "type": "TypeMap" + } + }, + "required": { + "name": "required", + "type": "TypeBool", + "description": "Is key required to install.", + "optional": true, + "computed": true + }, + "type": { + "name": "type", "type": "TypeString", - "description": "one of: new, validated, account-published, ibm-published, public-published.", + "description": "Value type (string, boolean, int).", + "optional": true, "computed": true }, - "pending_requested": { - "name": "pending_requested", + "type_metadata": { + "name": "type_metadata", "type": "TypeString", - "description": "Date and time of pending request.", + "description": "The original type, as found in the source being onboarded.", + "optional": true, "computed": true }, - "previous": { - "name": "previous", + "value_constraint": { + "name": "value_constraint", "type": "TypeString", - "description": "one of: new, validated, account-published, ibm-published, public-published.", + "description": "Constraint associated with value, e.g., for string type - regx:[a-z].", + "optional": true, "computed": true } } }, { - "name": "version_locator", + "name": "image_pull_key_name", "type": "TypeString", - "description": "A dotted value of `catalogID`.`versionID`.", + "description": "ID of the image pull key to use from Offering.ImagePullKeys.", "computed": true }, { @@ -99694,161 +102437,104 @@ "computed": true } } - } - ], - "ibm_code_engine_app": [ - { - "name": "name", - "type": "TypeString", - "description": "The name of the app. Use a name that is unique within the project.", - "immutable": true, - "required": true, - "min_length": 1, - "max_length": 63, - "matches": "^[a-z]([-a-z0-9]*[a-z0-9])?$" - }, - { - "name": "run_commands", - "type": "TypeList", - "description": "Optional commands for the app that are passed to start the container. If not specified an empty string array will be applied and the command specified by the container image, will be used to start the container.", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "scale_max_instances", - "type": "TypeInt", - "description": "Optional maximum number of instances for this app. If you set this value to `0`, this property does not set a upper scaling limit. However, the app scaling is still limited by the project quota for instances. See [Limits and quotas for Code Engine](https://cloud.ibm.com/docs/codeengine?topic=codeengine-limits).", - "default_value": 10, - "optional": true - }, - { - "name": "endpoint_internal", - "type": "TypeString", - "description": "URL to app that is only visible within the project.", - "computed": true - }, - { - "name": "href", - "type": "TypeString", - "description": "When you provision a new app, a URL is created identifying the location of the instance.", - "computed": true }, { - "name": "image_reference", - "type": "TypeString", - "description": "The name of the image that is used for this app. The format is `REGISTRY/NAMESPACE/REPOSITORY:TAG` where `REGISTRY` and `TAG` are optional. If `REGISTRY` is not specified, the default is `docker.io`. If `TAG` is not specified, the default is `latest`. If the image reference points to a registry that requires authentication, make sure to also specify the property `image_secret`.", - "required": true, - "min_length": 1, - "max_length": 256, - "matches": "^([a-z0-9][a-z0-9\\-_.]+[a-z0-9][\\/])?([a-z0-9][a-z0-9\\-_]+[a-z0-9][\\/])?[a-z0-9][a-z0-9\\-_.\\/]+[a-z0-9](:[\\w][\\w.\\-]{0,127})?(@sha256:[a-fA-F0-9]{64})?$" - }, - { - "name": "run_service_account", - "type": "TypeString", - "description": "Optional name of the service account. For built-in service accounts, you can use the shortened names `manager` , `none`, `reader`, and `writer`.", - "default_value": "default", - "options": "default, manager, none, reader, writer", - "matches": "^(manager|reader|writer|none|default)$", - "optional": true - }, - { - "name": "created_at", - "type": "TypeString", - "description": "The timestamp when the resource was created.", + "name": "is_consumable", + "type": "TypeBool", + "description": "Is the version able to be shared.", "computed": true }, { - "name": "scale_ephemeral_storage_limit", - "type": "TypeString", - "description": "Optional amount of ephemeral storage to set for the instance of the app. The amount specified as ephemeral storage, must not exceed the amount of `scale_memory_limit`. The units for specifying ephemeral storage are Megabyte (M) or Gigabyte (G), whereas G and M are the shorthand expressions for GB and MB. For more information see [Units of measurement](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo#unit-measurements).", - "default_value": "400M", - "max_length": 10, - "matches": "^([0-9.]+)([eEinumkKMGTPB]*)$", - "optional": true - }, - { - "name": "app_id", + "name": "version", "type": "TypeString", - "description": "The identifier of the resource.", + "description": "Semantic version of the software being onboarded. Required for virtual server image for VPC.", "computed": true }, { - "name": "run_as_user", - "type": "TypeInt", - "description": "Optional user ID (UID) to run the app (e.g., `1001`).", - "optional": true - }, - { - "name": "run_env_variables", + "name": "outputs", "type": "TypeList", - "description": "Optional references to config maps, secrets or literal values that are exposed as environment variables within the running application.", - "optional": true, + "description": "List of output values for this version.", + "computed": true, "elem": { - "key": { - "name": "key", - "type": "TypeString", - "description": "The key to reference as environment variable.", - "optional": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The name of the environment variable.", - "optional": true - }, - "prefix": { - "name": "prefix", + "description": { + "name": "description", "type": "TypeString", - "description": "A prefix that can be added to all keys of a full secret or config map reference.", + "description": "Output description.", "optional": true }, - "reference": { - "name": "reference", + "key": { + "name": "key", "type": "TypeString", - "description": "The name of the secret or config map.", + "description": "Output key.", "optional": true - }, + } + } + }, + { + "name": "required_resources", + "type": "TypeList", + "description": "Resource requirments for installation.", + "computed": true, + "elem": { "type": { "name": "type", "type": "TypeString", - "description": "Specify the type of the environment variable.", - "default_value": "literal", + "description": "Type of requirement.", "optional": true }, "value": { "name": "value", "type": "TypeString", - "description": "The literal value of the environment variable.", + "description": "mem, disk, cores, and nodes can be parsed as an int. targetVersion will be a semver range value.", "optional": true } } }, { - "name": "scale_concurrency", - "type": "TypeInt", - "description": "Optional maximum number of requests that can be processed concurrently per instance.", - "default_value": 100, + "name": "label", + "type": "TypeString", + "description": "Display name of version. Required for virtual server image for VPC.", "optional": true }, { - "name": "run_arguments", + "name": "target_kinds", "type": "TypeList", - "description": "Optional arguments for the app that are passed to start the container. If not specified an empty string array will be applied and the arguments specified by the container image, will be used to start the container.", + "description": "Deployment target of the content being onboarded. Current valid values are iks, roks, vcenter, power-iaas, terraform, and vpc-x86. Required for virtual server image for VPC.", + "immutable": true, "optional": true, "elem": { "type": "TypeString" } }, { - "name": "scale_memory_limit", + "name": "crn", "type": "TypeString", - "description": "Optional amount of memory set for the instance of the app. For valid values see [Supported memory and CPU combinations](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo). The units for specifying memory are Megabyte (M) or Gigabyte (G), whereas G and M are the shorthand expressions for GB and MB. For more information see [Units of measurement](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo#unit-measurements).", - "default_value": "4G", - "max_length": 10, - "matches": "^([0-9.]+)([eEinumkKMGTPB]*)$", - "optional": true + "description": "Version's CRN.", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "long_description_i18n", + "type": "TypeMap", + "description": "A map of translated strings, by language code.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "source_url", + "type": "TypeString", + "description": "Content's source URL (e.g git repo).", + "computed": true + } + ], + "ibm_code_engine_app": [ + { + "name": "endpoint", + "type": "TypeString", + "description": "Optional URL to invoke app. Depending on visibility this is accessible publicly or in the private network only. Empty in case 'managed_domain_mappings' is set to 'local'.", + "computed": true }, { "name": "status_details", @@ -99876,12 +102562,73 @@ } } }, + { + "name": "etag", + "type": "TypeString", + "computed": true + }, + { + "name": "managed_domain_mappings", + "type": "TypeString", + "description": "Optional value controlling which of the system managed domain mappings will be setup for the application. Valid values are 'local_public', 'local_private' and 'local'. Visibility can only be 'local_private' if the project supports application private visibility.", + "default_value": "local_public", + "options": "local, local_private, local_public", + "optional": true + }, + { + "name": "scale_request_timeout", + "type": "TypeInt", + "description": "Optional amount of time in seconds that is allowed for a running app to respond to a request.", + "default_value": 300, + "optional": true + }, + { + "name": "endpoint_internal", + "type": "TypeString", + "description": "URL to app that is only visible within the project.", + "computed": true + }, { "name": "resource_type", "type": "TypeString", "description": "The type of the app.", "computed": true }, + { + "name": "run_arguments", + "type": "TypeList", + "description": "Optional arguments for the app that are passed to start the container. If not specified an empty string array will be applied and the arguments specified by the container image, will be used to start the container.", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "scale_concurrency", + "type": "TypeInt", + "description": "Optional maximum number of requests that can be processed concurrently per instance.", + "default_value": 100, + "optional": true + }, + { + "name": "image_port", + "type": "TypeInt", + "description": "Optional port the app listens on. While the app will always be exposed via port `443` for end users, this port is used to connect to the port that is exposed by the container image.", + "default_value": 8080, + "optional": true + }, + { + "name": "app_id", + "type": "TypeString", + "description": "The identifier of the resource.", + "computed": true + }, + { + "name": "href", + "type": "TypeString", + "description": "When you provision a new app, a URL is created identifying the location of the instance.", + "computed": true + }, { "name": "project_id", "type": "TypeString", @@ -99893,54 +102640,95 @@ "matches": "^[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}$" }, { - "name": "scale_cpu_limit", - "type": "TypeString", - "description": "Optional number of CPU set for the instance of the app. For valid values see [Supported memory and CPU combinations](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo).", - "default_value": "1", - "max_length": 10, - "matches": "^([0-9.]+)([eEinumkKMGTPB]*)$", + "name": "scale_max_instances", + "type": "TypeInt", + "description": "Optional maximum number of instances for this app. If you set this value to `0`, this property does not set a upper scaling limit. However, the app scaling is still limited by the project quota for instances. See [Limits and quotas for Code Engine](https://cloud.ibm.com/docs/codeengine?topic=codeengine-limits).", + "default_value": 10, "optional": true }, { - "name": "entity_tag", + "name": "run_service_account", "type": "TypeString", - "description": "The version of the app instance, which is used to achieve optimistic locking.", - "computed": true + "description": "Optional name of the service account. For built-in service accounts, you can use the shortened names `manager` , `none`, `reader`, and `writer`.", + "default_value": "default", + "options": "default, manager, none, reader, writer", + "matches": "^(manager|reader|writer|none|default)$", + "optional": true }, { - "name": "etag", + "name": "scale_concurrency_target", + "type": "TypeInt", + "description": "Optional threshold of concurrent requests per instance at which one or more additional instances are created. Use this value to scale up instances based on concurrent number of requests. This option defaults to the value of the `scale_concurrency` option, if not specified.", + "optional": true + }, + { + "name": "status", "type": "TypeString", + "description": "The current status of the app.", "computed": true }, { - "name": "managed_domain_mappings", + "name": "name", "type": "TypeString", - "description": "Optional value controlling which of the system managed domain mappings will be setup for the application. Valid values are 'local_public', 'local_private' and 'local'. Visibility can only be 'local_private' if the project supports application private visibility.", - "default_value": "local_public", - "options": "local, local_private, local_public", - "optional": true + "description": "The name of the app. Use a name that is unique within the project.", + "immutable": true, + "required": true, + "min_length": 1, + "max_length": 63, + "matches": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, { - "name": "scale_min_instances", + "name": "run_as_user", "type": "TypeInt", - "description": "Optional minimum number of instances for this app. If you set this value to `0`, the app will scale down to zero, if not hit by any request for some time.", - "default_value": 0, + "description": "Optional user ID (UID) to run the app (e.g., `1001`).", "optional": true }, { - "name": "scale_request_timeout", - "type": "TypeInt", - "description": "Optional amount of time in seconds that is allowed for a running app to respond to a request.", - "default_value": 300, + "name": "image_reference", + "type": "TypeString", + "description": "The name of the image that is used for this app. The format is `REGISTRY/NAMESPACE/REPOSITORY:TAG` where `REGISTRY` and `TAG` are optional. If `REGISTRY` is not specified, the default is `docker.io`. If `TAG` is not specified, the default is `latest`. If the image reference points to a registry that requires authentication, make sure to also specify the property `image_secret`.", + "required": true, + "min_length": 1, + "max_length": 256, + "matches": "^([a-z0-9][a-z0-9\\-_.]+[a-z0-9][\\/])?([a-z0-9][a-z0-9\\-_]+[a-z0-9][\\/])?[a-z0-9][a-z0-9\\-_.\\/]+[a-z0-9](:[\\w][\\w.\\-]{0,127})?(@sha256:[a-fA-F0-9]{64})?$" + }, + { + "name": "entity_tag", + "type": "TypeString", + "description": "The version of the app instance, which is used to achieve optimistic locking.", + "computed": true + }, + { + "name": "scale_memory_limit", + "type": "TypeString", + "description": "Optional amount of memory set for the instance of the app. For valid values see [Supported memory and CPU combinations](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo). The units for specifying memory are Megabyte (M) or Gigabyte (G), whereas G and M are the shorthand expressions for GB and MB. For more information see [Units of measurement](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo#unit-measurements).", + "default_value": "4G", + "max_length": 10, + "matches": "^([0-9.]+)([eEinumkKMGTPB]*)$", "optional": true }, { - "name": "image_secret", + "name": "created_at", "type": "TypeString", - "description": "Optional name of the image registry access secret. The image registry access secret is used to authenticate with a private registry when you download the container image. If the image reference points to a registry that requires authentication, the app will be created but cannot reach the ready status, until this property is provided, too.", - "min_length": 1, - "max_length": 253, - "matches": "^[a-z0-9]([\\-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([\\-a-z0-9]*[a-z0-9])?)*$", + "description": "The timestamp when the resource was created.", + "computed": true + }, + { + "name": "run_commands", + "type": "TypeList", + "description": "Optional commands for the app that are passed to start the container. If not specified an empty string array will be applied and the command specified by the container image, will be used to start the container.", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "scale_cpu_limit", + "type": "TypeString", + "description": "Optional number of CPU set for the instance of the app. For valid values see [Supported memory and CPU combinations](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo).", + "default_value": "1", + "max_length": 10, + "matches": "^([0-9.]+)([eEinumkKMGTPB]*)$", "optional": true }, { @@ -99976,39 +102764,100 @@ } }, { - "name": "endpoint", - "type": "TypeString", - "description": "Optional URL to invoke app. Depending on visibility this is accessible publicly or in the private network only. Empty in case 'managed_domain_mappings' is set to 'local'.", - "computed": true - }, - { - "name": "status", + "name": "scale_ephemeral_storage_limit", "type": "TypeString", - "description": "The current status of the app.", - "computed": true + "description": "Optional amount of ephemeral storage to set for the instance of the app. The amount specified as ephemeral storage, must not exceed the amount of `scale_memory_limit`. The units for specifying ephemeral storage are Megabyte (M) or Gigabyte (G), whereas G and M are the shorthand expressions for GB and MB. For more information see [Units of measurement](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo#unit-measurements).", + "default_value": "400M", + "max_length": 10, + "matches": "^([0-9.]+)([eEinumkKMGTPB]*)$", + "optional": true }, { - "name": "image_port", + "name": "scale_initial_instances", "type": "TypeInt", - "description": "Optional port the app listens on. While the app will always be exposed via port `443` for end users, this port is used to connect to the port that is exposed by the container image.", - "default_value": 8080, + "description": "Optional initial number of instances that are created upon app creation or app update.", + "default_value": 1, "optional": true }, { - "name": "scale_concurrency_target", + "name": "scale_min_instances", "type": "TypeInt", - "description": "Optional threshold of concurrent requests per instance at which one or more additional instances are created. Use this value to scale up instances based on concurrent number of requests. This option defaults to the value of the `scale_concurrency` option, if not specified.", + "description": "Optional minimum number of instances for this app. If you set this value to `0`, the app will scale down to zero, if not hit by any request for some time.", + "default_value": 0, "optional": true }, { - "name": "scale_initial_instances", - "type": "TypeInt", - "description": "Optional initial number of instances that are created upon app creation or app update.", - "default_value": 1, + "name": "image_secret", + "type": "TypeString", + "description": "Optional name of the image registry access secret. The image registry access secret is used to authenticate with a private registry when you download the container image. If the image reference points to a registry that requires authentication, the app will be created but cannot reach the ready status, until this property is provided, too.", + "min_length": 1, + "max_length": 253, + "matches": "^[a-z0-9]([\\-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([\\-a-z0-9]*[a-z0-9])?)*$", "optional": true + }, + { + "name": "run_env_variables", + "type": "TypeList", + "description": "Optional references to config maps, secrets or literal values that are exposed as environment variables within the running application.", + "optional": true, + "elem": { + "key": { + "name": "key", + "type": "TypeString", + "description": "The key to reference as environment variable.", + "optional": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The name of the environment variable.", + "optional": true + }, + "prefix": { + "name": "prefix", + "type": "TypeString", + "description": "A prefix that can be added to all keys of a full secret or config map reference.", + "optional": true + }, + "reference": { + "name": "reference", + "type": "TypeString", + "description": "The name of the secret or config map.", + "optional": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "Specify the type of the environment variable.", + "default_value": "literal", + "optional": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "The literal value of the environment variable.", + "optional": true + } + } } ], "ibm_code_engine_binding": [ + { + "name": "secret_name", + "type": "TypeString", + "description": "The service access secret that is binding to a component.", + "immutable": true, + "required": true, + "min_length": 1, + "max_length": 253, + "matches": "^[a-z0-9]([\\-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([\\-a-z0-9]*[a-z0-9])?)*$" + }, + { + "name": "href", + "type": "TypeString", + "description": "When you provision a new binding, a URL is created identifying the location of the instance.", + "computed": true + }, { "name": "resource_type", "type": "TypeString", @@ -100068,52 +102917,41 @@ "required": true, "max_length": 31, "matches": "^[A-Z]([_A-Z0-9]*[A-Z0-9])*$" - }, + } + ], + "ibm_code_engine_build": [ { - "name": "secret_name", + "name": "status", "type": "TypeString", - "description": "The service access secret that is binding to a component.", - "immutable": true, - "required": true, - "min_length": 1, - "max_length": 253, - "matches": "^[a-z0-9]([\\-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([\\-a-z0-9]*[a-z0-9])?)*$" + "description": "The current status of the build.", + "computed": true }, { - "name": "href", + "name": "source_context_dir", "type": "TypeString", - "description": "When you provision a new binding, a URL is created identifying the location of the instance.", - "computed": true - } - ], - "ibm_code_engine_build": [ + "description": "Option directory in the repository that contains the buildpacks file or the Dockerfile.", + "max_length": 253, + "matches": "^(.*)+$", + "optional": true + }, { - "name": "name", + "name": "strategy_size", "type": "TypeString", - "description": "The name of the build. Use a name that is unique within the project.", - "immutable": true, - "required": true, + "description": "Optional size for the build, which determines the amount of resources used. Build sizes are `small`, `medium`, `large`, `xlarge`.", + "default_value": "medium", "min_length": 1, - "max_length": 63, - "matches": "^[a-z0-9]([\\-a-z0-9]*[a-z0-9])?$" + "max_length": 253, + "matches": "[\\S]*", + "optional": true }, { - "name": "output_image", + "name": "strategy_type", "type": "TypeString", - "description": "The name of the image.", + "description": "The strategy to use for building the image.", "required": true, "min_length": 1, - "max_length": 256, - "matches": "^([a-z0-9][a-z0-9\\-_.]+[a-z0-9][\\/])?([a-z0-9][a-z0-9\\-_]+[a-z0-9][\\/])?[a-z0-9][a-z0-9\\-_.\\/]+[a-z0-9](:[\\w][\\w.\\-]{0,127})?(@sha256:[a-fA-F0-9]{64})?$" - }, - { - "name": "timeout", - "type": "TypeInt", - "description": "The maximum amount of time, in seconds, that can pass before the build must succeed or fail.", - "default_value": 600, - "min_value": "1", - "max_value": "3600", - "optional": true + "max_length": 253, + "matches": "[\\S]*" }, { "name": "href", @@ -100127,37 +102965,23 @@ "computed": true }, { - "name": "entity_tag", - "type": "TypeString", - "description": "The version of the build instance, which is used to achieve optimistic locking.", - "computed": true - }, - { - "name": "project_id", + "name": "name", "type": "TypeString", - "description": "The ID of the project.", + "description": "The name of the build. Use a name that is unique within the project.", "immutable": true, "required": true, - "min_length": 36, - "max_length": 36, - "matches": "^[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}$" - }, - { - "name": "source_revision", - "type": "TypeString", - "description": "Commit, tag, or branch in the source repository to pull. This field is optional if the `source_type` is `git` and uses the HEAD of default branch if not specified. If the `source_type` value is `local`, this field must be omitted.", - "max_length": 253, - "matches": "^[\\S]*$", - "optional": true + "min_length": 1, + "max_length": 63, + "matches": "^[a-z0-9]([\\-a-z0-9]*[a-z0-9])?$" }, { - "name": "source_secret", + "name": "output_image", "type": "TypeString", - "description": "Name of the secret that is used access the repository source. This field is optional if the `source_type` is `git`. Additionally, if the `source_url` points to a repository that requires authentication, the build will be created but cannot access any source code, until this property is provided, too. If the `source_type` value is `local`, this field must be omitted.", + "description": "The name of the image.", + "required": true, "min_length": 1, - "max_length": 253, - "matches": "^[a-z0-9]([\\-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([\\-a-z0-9]*[a-z0-9])?)*$", - "optional": true + "max_length": 256, + "matches": "^([a-z0-9][a-z0-9\\-_.]+[a-z0-9][\\/])?([a-z0-9][a-z0-9\\-_]+[a-z0-9][\\/])?[a-z0-9][a-z0-9\\-_.\\/]+[a-z0-9](:[\\w][\\w.\\-]{0,127})?(@sha256:[a-fA-F0-9]{64})?$" }, { "name": "source_type", @@ -100176,54 +103000,6 @@ "matches": "^((https:\\/\\/[a-z0-9]([\\-.]?[a-z0-9])+(:\\d{1,5})?)|((ssh:\\/\\/)?git@[a-z0-9]([\\-.]{0,1}[a-z0-9])+(:[a-zA-Z0-9\\/][\\w\\-.]*)?))(\\/([\\w\\-.]|%20)+)*$", "optional": true }, - { - "name": "created_at", - "type": "TypeString", - "description": "The timestamp when the resource was created.", - "computed": true - }, - { - "name": "strategy_type", - "type": "TypeString", - "description": "The strategy to use for building the image.", - "required": true, - "min_length": 1, - "max_length": 253, - "matches": "[\\S]*" - }, - { - "name": "source_context_dir", - "type": "TypeString", - "description": "Option directory in the repository that contains the buildpacks file or the Dockerfile.", - "max_length": 253, - "matches": "^(.*)+$", - "optional": true - }, - { - "name": "strategy_size", - "type": "TypeString", - "description": "Optional size for the build, which determines the amount of resources used. Build sizes are `small`, `medium`, `large`, `xlarge`.", - "default_value": "medium", - "min_length": 1, - "max_length": 253, - "matches": "[\\S]*", - "optional": true - }, - { - "name": "resource_type", - "type": "TypeString", - "description": "The type of the build.", - "computed": true - }, - { - "name": "output_secret", - "type": "TypeString", - "description": "The secret that is required to access the image registry. Make sure that the secret is granted with push permissions towards the specified container registry namespace.", - "required": true, - "min_length": 1, - "max_length": 253, - "matches": "^[a-z0-9]([\\-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([\\-a-z0-9]*[a-z0-9])?)*$" - }, { "name": "strategy_spec_file", "type": "TypeString", @@ -100241,9 +103017,9 @@ "computed": true }, { - "name": "status", + "name": "resource_type", "type": "TypeString", - "description": "The current status of the build.", + "description": "The type of the build.", "computed": true }, { @@ -100259,61 +103035,43 @@ "computed": true } } - } - ], - "ibm_code_engine_config_map": [ - { - "name": "created_at", - "type": "TypeString", - "description": "The timestamp when the resource was created.", - "computed": true - }, - { - "name": "entity_tag", - "type": "TypeString", - "description": "The version of the config map instance, which is used to achieve optimistic locking.", - "computed": true }, { - "name": "href", + "name": "source_revision", "type": "TypeString", - "description": "When you provision a new config map, a URL is created identifying the location of the instance.", - "computed": true - }, - { - "name": "data", - "type": "TypeMap", - "description": "The key-value pair for the config map. Values must be specified in `KEY=VALUE` format. Each `KEY` field must consist of alphanumeric characters, `-`, `_` or `.` and must not be exceed a max length of 253 characters. Each `VALUE` field can consists of any character and must not be exceed a max length of 1048576 characters.", - "optional": true, - "elem": { - "type": "TypeString" - } + "description": "Commit, tag, or branch in the source repository to pull. This field is optional if the `source_type` is `git` and uses the HEAD of default branch if not specified. If the `source_type` value is `local`, this field must be omitted.", + "max_length": 253, + "matches": "^[\\S]*$", + "optional": true }, { - "name": "name", + "name": "source_secret", "type": "TypeString", - "description": "The name of the config map. Use a name that is unique within the project.", - "immutable": true, - "required": true, + "description": "Name of the secret that is used access the repository source. This field is optional if the `source_type` is `git`. Additionally, if the `source_url` points to a repository that requires authentication, the build will be created but cannot access any source code, until this property is provided, too. If the `source_type` value is `local`, this field must be omitted.", "min_length": 1, "max_length": 253, - "matches": "^[a-z0-9]([\\-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([\\-a-z0-9]*[a-z0-9])?)*$" + "matches": "^[a-z0-9]([\\-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([\\-a-z0-9]*[a-z0-9])?)*$", + "optional": true }, { - "name": "config_map_id", - "type": "TypeString", - "description": "The identifier of the resource.", - "computed": true + "name": "timeout", + "type": "TypeInt", + "description": "The maximum amount of time, in seconds, that can pass before the build must succeed or fail.", + "default_value": 600, + "min_value": "1", + "max_value": "3600", + "optional": true }, { - "name": "resource_type", + "name": "created_at", "type": "TypeString", - "description": "The type of the config map.", + "description": "The timestamp when the resource was created.", "computed": true }, { - "name": "etag", + "name": "entity_tag", "type": "TypeString", + "description": "The version of the build instance, which is used to achieve optimistic locking.", "computed": true }, { @@ -100325,19 +103083,27 @@ "min_length": 36, "max_length": 36, "matches": "^[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}$" + }, + { + "name": "output_secret", + "type": "TypeString", + "description": "The secret that is required to access the image registry. Make sure that the secret is granted with push permissions towards the specified container registry namespace.", + "required": true, + "min_length": 1, + "max_length": 253, + "matches": "^[a-z0-9]([\\-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([\\-a-z0-9]*[a-z0-9])?)*$" } ], - "ibm_code_engine_job": [ + "ibm_code_engine_config_map": [ { - "name": "created_at", + "name": "resource_type", "type": "TypeString", - "description": "The timestamp when the resource was created.", + "description": "The type of the config map.", "computed": true }, { - "name": "href", + "name": "etag", "type": "TypeString", - "description": "When you provision a new job, a URL is created identifying the location of the instance.", "computed": true }, { @@ -100351,59 +103117,68 @@ "matches": "^[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}$" }, { - "name": "run_arguments", - "type": "TypeList", - "description": "Set arguments for the job that are passed to start job run containers. If not specified an empty string array will be applied and the arguments specified by the container image, will be used to start the container.", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "scale_retry_limit", - "type": "TypeInt", - "description": "The number of times to rerun an instance of the job before the job is marked as failed. This property can only be specified if `run_mode` is `task`.", - "default_value": 3, - "optional": true + "name": "created_at", + "type": "TypeString", + "description": "The timestamp when the resource was created.", + "computed": true }, { "name": "entity_tag", "type": "TypeString", - "description": "The version of the job instance, which is used to achieve optimistic locking.", + "description": "The version of the config map instance, which is used to achieve optimistic locking.", "computed": true }, { - "name": "etag", + "name": "href", "type": "TypeString", + "description": "When you provision a new config map, a URL is created identifying the location of the instance.", "computed": true }, { - "name": "run_service_account", + "name": "config_map_id", "type": "TypeString", - "description": "The name of the service account. For built-in service accounts, you can use the shortened names `manager`, `none`, `reader`, and `writer`. This property must not be set on a job run, which references a job template.", - "default_value": "default", - "options": "default, manager, none, reader, writer", - "matches": "^(manager|reader|writer|none|default)$", - "optional": true + "description": "The identifier of the resource.", + "computed": true }, { - "name": "scale_array_spec", + "name": "name", "type": "TypeString", - "description": "Define a custom set of array indices as comma-separated list containing single values and hyphen-separated ranges like `5,12-14,23,27`. Each instance can pick up its array index via environment variable `JOB_INDEX`. The number of unique array indices specified here determines the number of job instances to run.", - "default_value": "0", + "description": "The name of the config map. Use a name that is unique within the project.", + "immutable": true, + "required": true, "min_length": 1, "max_length": 253, - "matches": "^(?:[1-9]\\d\\d\\d\\d\\d\\d|[1-9]\\d\\d\\d\\d\\d|[1-9]\\d\\d\\d\\d|[1-9]\\d\\d\\d|[1-9]\\d\\d|[1-9]?\\d)(?:-(?:[1-9]\\d\\d\\d\\d\\d\\d|[1-9]\\d\\d\\d\\d\\d|[1-9]\\d\\d\\d\\d|[1-9]\\d\\d\\d|[1-9]\\d\\d|[1-9]?\\d))?(?:,(?:[1-9]\\d\\d\\d\\d\\d\\d|[1-9]\\d\\d\\d\\d\\d|[1-9]\\d\\d\\d\\d|[1-9]\\d\\d\\d|[1-9]\\d\\d|[1-9]?\\d)(?:-(?:[1-9]\\d\\d\\d\\d\\d\\d|[1-9]\\d\\d\\d\\d\\d|[1-9]\\d\\d\\d\\d|[1-9]\\d\\d\\d|[1-9]\\d\\d|[1-9]?\\d))?)*$", - "optional": true + "matches": "^[a-z0-9]([\\-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([\\-a-z0-9]*[a-z0-9])?)*$" }, { - "name": "run_commands", - "type": "TypeList", - "description": "Set commands for the job that are passed to start job run containers. If not specified an empty string array will be applied and the command specified by the container image, will be used to start the container.", + "name": "data", + "type": "TypeMap", + "description": "The key-value pair for the config map. Values must be specified in `KEY=VALUE` format. Each `KEY` field must consist of alphanumeric characters, `-`, `_` or `.` and must not be exceed a max length of 253 characters. Each `VALUE` field can consists of any character and must not be exceed a max length of 1048576 characters.", "optional": true, "elem": { "type": "TypeString" } + } + ], + "ibm_code_engine_job": [ + { + "name": "href", + "type": "TypeString", + "description": "When you provision a new job, a URL is created identifying the location of the instance.", + "computed": true + }, + { + "name": "resource_type", + "type": "TypeString", + "description": "The type of the job.", + "computed": true + }, + { + "name": "run_as_user", + "type": "TypeInt", + "description": "The user ID (UID) to run the application (e.g., 1001).", + "default_value": 0, + "optional": true }, { "name": "run_env_variables", @@ -100483,10 +103258,10 @@ } }, { - "name": "scale_cpu_limit", + "name": "scale_memory_limit", "type": "TypeString", - "description": "Optional amount of CPU set for the instance of the job. For valid values see [Supported memory and CPU combinations](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo).", - "default_value": "1", + "description": "Optional amount of memory set for the instance of the job. For valid values see [Supported memory and CPU combinations](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo). The units for specifying memory are Megabyte (M) or Gigabyte (G), whereas G and M are the shorthand expressions for GB and MB. For more information see [Units of measurement](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo#unit-measurements).", + "default_value": "4G", "max_length": 10, "matches": "^([0-9.]+)([eEinumkKMGTPB]*)$", "optional": true @@ -100501,14 +103276,77 @@ "optional": true }, { - "name": "scale_memory_limit", + "name": "scale_max_execution_time", + "type": "TypeInt", + "description": "The maximum execution time in seconds for runs of the job. This property can only be specified if `run_mode` is `task`.", + "default_value": 7200, + "optional": true + }, + { + "name": "scale_retry_limit", + "type": "TypeInt", + "description": "The number of times to rerun an instance of the job before the job is marked as failed. This property can only be specified if `run_mode` is `task`.", + "default_value": 3, + "optional": true + }, + { + "name": "created_at", "type": "TypeString", - "description": "Optional amount of memory set for the instance of the job. For valid values see [Supported memory and CPU combinations](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo). The units for specifying memory are Megabyte (M) or Gigabyte (G), whereas G and M are the shorthand expressions for GB and MB. For more information see [Units of measurement](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo#unit-measurements).", - "default_value": "4G", + "description": "The timestamp when the resource was created.", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The name of the job. Use a name that is unique within the project.", + "immutable": true, + "required": true, + "min_length": 1, + "max_length": 63, + "matches": "^[a-z0-9]([\\-a-z0-9]*[a-z0-9])?$" + }, + { + "name": "image_secret", + "type": "TypeString", + "description": "The name of the image registry access secret. The image registry access secret is used to authenticate with a private registry when you download the container image. If the image reference points to a registry that requires authentication, the job / job runs will be created but submitted job runs will fail, until this property is provided, too. This property must not be set on a job run, which references a job template.", + "min_length": 1, + "max_length": 253, + "matches": "^[a-z0-9]([\\-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([\\-a-z0-9]*[a-z0-9])?)*$", + "optional": true + }, + { + "name": "run_arguments", + "type": "TypeList", + "description": "Set arguments for the job that are passed to start job run containers. If not specified an empty string array will be applied and the arguments specified by the container image, will be used to start the container.", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "scale_cpu_limit", + "type": "TypeString", + "description": "Optional amount of CPU set for the instance of the job. For valid values see [Supported memory and CPU combinations](https://cloud.ibm.com/docs/codeengine?topic=codeengine-mem-cpu-combo).", + "default_value": "1", "max_length": 10, "matches": "^([0-9.]+)([eEinumkKMGTPB]*)$", "optional": true }, + { + "name": "etag", + "type": "TypeString", + "computed": true + }, + { + "name": "project_id", + "type": "TypeString", + "description": "The ID of the project.", + "immutable": true, + "required": true, + "min_length": 36, + "max_length": 36, + "matches": "^[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}$" + }, { "name": "image_reference", "type": "TypeString", @@ -100519,12 +103357,12 @@ "matches": "^([a-z0-9][a-z0-9\\-_.]+[a-z0-9][\\/])?([a-z0-9][a-z0-9\\-_]+[a-z0-9][\\/])?[a-z0-9][a-z0-9\\-_.\\/]+[a-z0-9](:[\\w][\\w.\\-]{0,127})?(@sha256:[a-fA-F0-9]{64})?$" }, { - "name": "image_secret", + "name": "run_service_account", "type": "TypeString", - "description": "The name of the image registry access secret. The image registry access secret is used to authenticate with a private registry when you download the container image. If the image reference points to a registry that requires authentication, the job / job runs will be created but submitted job runs will fail, until this property is provided, too. This property must not be set on a job run, which references a job template.", - "min_length": 1, - "max_length": 253, - "matches": "^[a-z0-9]([\\-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([\\-a-z0-9]*[a-z0-9])?)*$", + "description": "The name of the service account. For built-in service accounts, you can use the shortened names `manager`, `none`, `reader`, and `writer`. This property must not be set on a job run, which references a job template.", + "default_value": "default", + "options": "default, manager, none, reader, writer", + "matches": "^(manager|reader|writer|none|default)$", "optional": true }, { @@ -100534,10 +103372,13 @@ "computed": true }, { - "name": "resource_type", - "type": "TypeString", - "description": "The type of the job.", - "computed": true + "name": "run_commands", + "type": "TypeList", + "description": "Set commands for the job that are passed to start job run containers. If not specified an empty string array will be applied and the command specified by the container image, will be used to start the container.", + "optional": true, + "elem": { + "type": "TypeString" + } }, { "name": "run_mode", @@ -100549,35 +103390,28 @@ "optional": true }, { - "name": "scale_max_execution_time", - "type": "TypeInt", - "description": "The maximum execution time in seconds for runs of the job. This property can only be specified if `run_mode` is `task`.", - "default_value": 7200, - "optional": true - }, - { - "name": "name", + "name": "scale_array_spec", "type": "TypeString", - "description": "The name of the job. Use a name that is unique within the project.", - "immutable": true, - "required": true, + "description": "Define a custom set of array indices as comma-separated list containing single values and hyphen-separated ranges like `5,12-14,23,27`. Each instance can pick up its array index via environment variable `JOB_INDEX`. The number of unique array indices specified here determines the number of job instances to run.", + "default_value": "0", "min_length": 1, - "max_length": 63, - "matches": "^[a-z0-9]([\\-a-z0-9]*[a-z0-9])?$" + "max_length": 253, + "matches": "^(?:[1-9]\\d\\d\\d\\d\\d\\d|[1-9]\\d\\d\\d\\d\\d|[1-9]\\d\\d\\d\\d|[1-9]\\d\\d\\d|[1-9]\\d\\d|[1-9]?\\d)(?:-(?:[1-9]\\d\\d\\d\\d\\d\\d|[1-9]\\d\\d\\d\\d\\d|[1-9]\\d\\d\\d\\d|[1-9]\\d\\d\\d|[1-9]\\d\\d|[1-9]?\\d))?(?:,(?:[1-9]\\d\\d\\d\\d\\d\\d|[1-9]\\d\\d\\d\\d\\d|[1-9]\\d\\d\\d\\d|[1-9]\\d\\d\\d|[1-9]\\d\\d|[1-9]?\\d)(?:-(?:[1-9]\\d\\d\\d\\d\\d\\d|[1-9]\\d\\d\\d\\d\\d|[1-9]\\d\\d\\d\\d|[1-9]\\d\\d\\d|[1-9]\\d\\d|[1-9]?\\d))?)*$", + "optional": true }, { - "name": "run_as_user", - "type": "TypeInt", - "description": "The user ID (UID) to run the application (e.g., 1001).", - "default_value": 0, - "optional": true + "name": "entity_tag", + "type": "TypeString", + "description": "The version of the job instance, which is used to achieve optimistic locking.", + "computed": true } ], "ibm_code_engine_project": [ { - "name": "href", + "name": "crn", "type": "TypeString", - "description": "When you provision a new resource, a URL is created identifying the location of the instance.", + "description": "The CRN of the project.", + "cloud_data_type": "crn", "computed": true }, { @@ -100593,6 +103427,16 @@ "description": "The type of the project.", "computed": true }, + { + "name": "resource_group_id", + "type": "TypeString", + "description": "Optional ID of the resource group for your project deployment. If this field is not defined, the default resource group of the account will be used.", + "immutable": true, + "min_length": 32, + "max_length": 32, + "matches": "^[a-z0-9]*$", + "optional": true + }, { "name": "project_id", "type": "TypeString", @@ -100611,6 +103455,12 @@ "description": "The timestamp when the project was created.", "computed": true }, + { + "name": "href", + "type": "TypeString", + "description": "When you provision a new resource, a URL is created identifying the location of the instance.", + "computed": true + }, { "name": "status", "type": "TypeString", @@ -100626,52 +103476,60 @@ "min_length": 1, "max_length": 128, "matches": "^([^\\x00-\\x7F]|[a-zA-Z0-9\\-._: ])+$" + } + ], + "ibm_code_engine_secret": [ + { + "name": "project_id", + "type": "TypeString", + "description": "The ID of the project.", + "immutable": true, + "required": true, + "min_length": 36, + "max_length": 36, + "matches": "^[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}$" }, { - "name": "resource_group_id", + "name": "format", "type": "TypeString", - "description": "Optional ID of the resource group for your project deployment. If this field is not defined, the default resource group of the account will be used.", + "description": "Specify the format of the secret.", "immutable": true, - "min_length": 32, - "max_length": 32, - "matches": "^[a-z0-9]*$", - "optional": true + "required": true, + "options": "basic_auth, generic, registry, service_access, ssh_auth, tls", + "matches": "^(generic|ssh_auth|basic_auth|tls|service_access|registry)$" }, { - "name": "crn", + "name": "entity_tag", "type": "TypeString", - "description": "The CRN of the project.", - "cloud_data_type": "crn", + "description": "The version of the secret instance, which is used to achieve optimistic locking.", "computed": true - } - ], - "ibm_code_engine_secret": [ + }, { - "name": "created_at", + "name": "secret_id", "type": "TypeString", - "description": "The timestamp when the resource was created.", + "description": "The identifier of the resource.", "computed": true }, { - "name": "href", + "name": "etag", "type": "TypeString", - "description": "When you provision a new secret, a URL is created identifying the location of the instance.", "computed": true }, { - "name": "etag", + "name": "resource_type", "type": "TypeString", + "description": "The type of the secret.", "computed": true }, { - "name": "project_id", + "name": "name", "type": "TypeString", - "description": "The ID of the project.", + "description": "The name of the secret.", "immutable": true, "required": true, - "min_length": 36, - "max_length": 36, - "matches": "^[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}$" + "min_length": 1, + "max_length": 253, + "matches": "^[a-z0-9]([\\-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([\\-a-z0-9]*[a-z0-9])?)*$" }, { "name": "data", @@ -100759,55 +103617,42 @@ "max_items": 1 }, { - "name": "id", + "name": "created_at", "type": "TypeString", - "description": "The identifier of the resource.", + "description": "The timestamp when the resource was created.", "computed": true }, { - "name": "resource_type", + "name": "href", "type": "TypeString", - "description": "The type of the secret.", + "description": "When you provision a new secret, a URL is created identifying the location of the instance.", "computed": true }, { - "name": "secret_id", + "name": "id", "type": "TypeString", "description": "The identifier of the resource.", "computed": true - }, + } + ], + "ibm_compute_autoscale_group": [ { - "name": "format", + "name": "name", "type": "TypeString", - "description": "Specify the format of the secret.", - "immutable": true, - "required": true, - "options": "basic_auth, generic, registry, service_access, ssh_auth, tls", - "matches": "^(generic|ssh_auth|basic_auth|tls|service_access|registry)$" + "description": "Name", + "required": true }, { - "name": "name", - "type": "TypeString", - "description": "The name of the secret.", - "immutable": true, - "required": true, - "min_length": 1, - "max_length": 253, - "matches": "^[a-z0-9]([\\-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([\\-a-z0-9]*[a-z0-9])?)*$" + "name": "minimum_member_count", + "type": "TypeInt", + "description": "Minimum member count", + "required": true }, { - "name": "entity_tag", + "name": "termination_policy", "type": "TypeString", - "description": "The version of the secret instance, which is used to achieve optimistic locking.", - "computed": true - } - ], - "ibm_compute_autoscale_group": [ - { - "name": "virtual_server_id", - "type": "TypeInt", - "description": "virtual server ID", - "optional": true + "description": "Termination policy", + "required": true }, { "name": "port", @@ -100816,20 +103661,15 @@ "optional": true }, { - "name": "network_vlan_ids", + "name": "tags", "type": "TypeSet", - "description": "List of network VLAN ids", + "description": "List of tags", + "cloud_data_type": "tags", "optional": true, "elem": { - "type": "TypeInt" + "type": "TypeString" } }, - { - "name": "name", - "type": "TypeString", - "description": "Name", - "required": true - }, { "name": "regional_group", "type": "TypeString", @@ -100850,16 +103690,10 @@ "required": true }, { - "name": "termination_policy", - "type": "TypeString", - "description": "Termination policy", - "required": true - }, - { - "name": "minimum_member_count", + "name": "virtual_server_id", "type": "TypeInt", - "description": "Minimum member count", - "required": true + "description": "virtual server ID", + "optional": true }, { "name": "health_check", @@ -101233,33 +104067,16 @@ } }, { - "name": "tags", + "name": "network_vlan_ids", "type": "TypeSet", - "description": "List of tags", - "cloud_data_type": "tags", + "description": "List of network VLAN ids", "optional": true, "elem": { - "type": "TypeString" + "type": "TypeInt" } } ], "ibm_compute_autoscale_policy": [ - { - "name": "tags", - "type": "TypeSet", - "description": "List of tags", - "cloud_data_type": "tags", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "name", - "type": "TypeString", - "description": "Name", - "required": true - }, { "name": "scale_type", "type": "TypeString", @@ -101343,40 +104160,83 @@ } } } + }, + { + "name": "tags", + "type": "TypeSet", + "description": "List of tags", + "cloud_data_type": "tags", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "name", + "type": "TypeString", + "description": "Name", + "required": true } ], "ibm_compute_bare_metal": [ { - "name": "network_speed", + "name": "private_vlan_id", "type": "TypeInt", - "description": "Network speed in MBPS", - "default_value": 100, "immutable": true, - "optional": true + "optional": true, + "computed": true }, { - "name": "hourly_billing", - "type": "TypeBool", - "description": "Enables hourly billing", - "default_value": true, + "name": "secondary_ip_count", + "type": "TypeInt", + "description": "Secondary IP addresses count", "immutable": true, "optional": true }, { - "name": "tcp_monitoring", + "name": "global_identifier", + "type": "TypeString", + "description": "The unique global identifier of the bare metal server", + "computed": true + }, + { + "name": "tags", + "type": "TypeSet", + "cloud_data_type": "tags", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "private_network_only", "type": "TypeBool", - "description": "TCP monitoring enabled if set as true", + "description": "only private network configured if is true", "default_value": false, "immutable": true, "optional": true }, { - "name": "memory", + "name": "public_bandwidth", "type": "TypeInt", "immutable": true, "optional": true, "computed": true }, + { + "name": "private_ipv4_address_id", + "type": "TypeInt", + "computed": true + }, + { + "name": "block_storage_ids", + "type": "TypeSet", + "optional": true, + "computed": true, + "elem": { + "type": "TypeInt" + } + }, { "name": "storage_groups", "type": "TypeList", @@ -101413,70 +104273,95 @@ } }, { - "name": "quote_id", - "type": "TypeInt", - "description": "Quote ID for Quote based provisioning", + "name": "public_subnet", + "type": "TypeString", "immutable": true, - "optional": true + "optional": true, + "computed": true }, { - "name": "global_identifier", + "name": "package_key_name", "type": "TypeString", - "description": "The unique global identifier of the bare metal server", - "computed": true + "immutable": true, + "optional": true }, { - "name": "post_install_script_uri", + "name": "gpu_key_name", "type": "TypeString", "immutable": true, "optional": true }, { - "name": "redundant_power_supply", - "type": "TypeBool", + "name": "memory", + "type": "TypeInt", "immutable": true, "optional": true, "computed": true }, { - "name": "package_key_name", + "name": "private_ipv4_address", "type": "TypeString", + "computed": true + }, + { + "name": "ssh_key_ids", + "type": "TypeList", + "description": "SSH KEY IDS list", "immutable": true, - "optional": true + "optional": true, + "elem": { + "type": "TypeInt" + } }, { - "name": "process_key_name", + "name": "os_reference_code", "type": "TypeString", + "description": "OS refernece code value", "immutable": true, - "optional": true + "optional": true, + "computed": true }, { - "name": "unbonded_network", - "type": "TypeBool", - "default_value": false, + "name": "datacenter", + "type": "TypeString", "immutable": true, - "optional": true + "optional": true, + "computed": true }, { - "name": "private_ipv4_address", + "name": "ipv6_address", "type": "TypeString", "computed": true }, { - "name": "secondary_ip_addresses", - "type": "TypeList", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "hostname", + "type": "TypeString", + "description": "Host name", + "immutable": true, + "optional": true + }, + { + "name": "hourly_billing", + "type": "TypeBool", + "description": "Enables hourly billing", + "default_value": true, + "immutable": true, + "optional": true + }, + { + "name": "redundant_power_supply", + "type": "TypeBool", + "immutable": true, + "optional": true, + "computed": true }, { - "name": "tags", + "name": "file_storage_ids", "type": "TypeSet", - "cloud_data_type": "tags", "optional": true, + "computed": true, "elem": { - "type": "TypeString" + "type": "TypeInt" } }, { @@ -101487,24 +104372,33 @@ "optional": true }, { - "name": "gpu_secondary_key_name", - "type": "TypeString", + "name": "redundant_network", + "type": "TypeBool", + "default_value": false, "immutable": true, "optional": true }, { - "name": "redundant_network", + "name": "restricted_network", "type": "TypeBool", "default_value": false, "immutable": true, "optional": true }, { - "name": "public_bandwidth", + "name": "quote_id", "type": "TypeInt", + "description": "Quote ID for Quote based provisioning", "immutable": true, - "optional": true, - "computed": true + "optional": true + }, + { + "name": "secondary_ip_addresses", + "type": "TypeList", + "computed": true, + "elem": { + "type": "TypeString" + } }, { "name": "ipv6_enabled", @@ -101515,65 +104409,58 @@ "optional": true }, { - "name": "datacenter", - "type": "TypeString", - "immutable": true, - "optional": true, + "name": "ipv6_address_id", + "type": "TypeInt", "computed": true }, { - "name": "software_guard_extensions", - "type": "TypeBool", - "default_value": false, + "name": "network_speed", + "type": "TypeInt", + "description": "Network speed in MBPS", + "default_value": 100, "immutable": true, "optional": true }, { - "name": "os_key_name", + "name": "process_key_name", "type": "TypeString", "immutable": true, "optional": true }, { - "name": "extended_hardware_testing", - "type": "TypeBool", - "default_value": false, + "name": "os_key_name", + "type": "TypeString", "immutable": true, "optional": true }, { - "name": "domain", + "name": "gpu_secondary_key_name", "type": "TypeString", - "description": "Domain name", "immutable": true, - "required": true + "optional": true }, { - "name": "ssh_key_ids", + "name": "disk_key_names", "type": "TypeList", - "description": "SSH KEY IDS list", "immutable": true, "optional": true, "elem": { - "type": "TypeInt" + "type": "TypeString" } }, { - "name": "os_reference_code", - "type": "TypeString", - "description": "OS refernece code value", + "name": "unbonded_network", + "type": "TypeBool", + "default_value": false, "immutable": true, - "optional": true, - "computed": true + "optional": true }, { - "name": "disk_key_names", - "type": "TypeList", + "name": "extended_hardware_testing", + "type": "TypeBool", + "default_value": false, "immutable": true, - "optional": true, - "elem": { - "type": "TypeString" - } + "optional": true }, { "name": "private_subnet", @@ -101583,37 +104470,34 @@ "computed": true }, { - "name": "public_ipv4_address", + "name": "notes", "type": "TypeString", - "computed": true + "description": "Optional notes info", + "optional": true }, { - "name": "ipv6_address", + "name": "post_install_script_uri", "type": "TypeString", - "computed": true + "immutable": true, + "optional": true }, { - "name": "ipv6_address_id", + "name": "image_template_id", "type": "TypeInt", - "computed": true - }, - { - "name": "hostname", - "type": "TypeString", - "description": "Host name", + "description": "OS image template ID", "immutable": true, "optional": true }, { - "name": "private_network_only", + "name": "ipv6_static_enabled", "type": "TypeBool", - "description": "only private network configured if is true", + "description": "boolean value true if ipv6 static is enabled else false", "default_value": false, "immutable": true, "optional": true }, { - "name": "restricted_network", + "name": "software_guard_extensions", "type": "TypeBool", "default_value": false, "immutable": true, @@ -101627,132 +104511,45 @@ "computed": true }, { - "name": "user_metadata", - "type": "TypeString", - "description": "User metadata info", - "immutable": true, - "optional": true - }, - { - "name": "notes", - "type": "TypeString", - "description": "Optional notes info", - "optional": true - }, - { - "name": "file_storage_ids", - "type": "TypeSet", - "optional": true, - "computed": true, - "elem": { - "type": "TypeInt" - } - }, - { - "name": "block_storage_ids", - "type": "TypeSet", - "optional": true, - "computed": true, - "elem": { - "type": "TypeInt" - } - }, - { - "name": "gpu_key_name", + "name": "public_ipv4_address", "type": "TypeString", - "immutable": true, - "optional": true - }, - { - "name": "private_vlan_id", - "type": "TypeInt", - "immutable": true, - "optional": true, "computed": true }, { - "name": "secondary_ip_count", + "name": "public_ipv4_address_id", "type": "TypeInt", - "description": "Secondary IP addresses count", - "immutable": true, - "optional": true + "computed": true }, { - "name": "image_template_id", - "type": "TypeInt", - "description": "OS image template ID", + "name": "domain", + "type": "TypeString", + "description": "Domain name", "immutable": true, - "optional": true + "required": true }, { - "name": "public_subnet", + "name": "user_metadata", "type": "TypeString", + "description": "User metadata info", "immutable": true, - "optional": true, - "computed": true - }, - { - "name": "public_ipv4_address_id", - "type": "TypeInt", - "computed": true - }, - { - "name": "private_ipv4_address_id", - "type": "TypeInt", - "computed": true + "optional": true }, { - "name": "ipv6_static_enabled", + "name": "tcp_monitoring", "type": "TypeBool", - "description": "boolean value true if ipv6 static is enabled else false", + "description": "TCP monitoring enabled if set as true", "default_value": false, "immutable": true, "optional": true } ], "ibm_compute_dedicated_host": [ - { - "name": "flavor", - "type": "TypeString", - "description": "The flavor of the dedicatated host.", - "default_value": "56_CORES_X_242_RAM_X_1_4_TB", - "immutable": true, - "optional": true - }, - { - "name": "router_hostname", - "type": "TypeString", - "description": "The hostname of the primary router that the dedicated host is associated with.", - "immutable": true, - "required": true - }, { "name": "cpu_count", "type": "TypeInt", "description": "The capacity that the dedicated host's CPU allocation is restricted to.", "computed": true }, - { - "name": "tags", - "type": "TypeSet", - "cloud_data_type": "tags", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "disk_capacity", - "type": "TypeInt", - "description": "The capacity that the dedicated host's disk allocation is restricted to.", - "computed": true - }, - { - "name": "memory_capacity", - "type": "TypeInt", - "description": "The capacity that the dedicated host's memory allocation is restricted to.", - "computed": true - }, { "name": "wait_time_minutes", "type": "TypeInt", @@ -101786,15 +104583,45 @@ "default_value": true, "immutable": true, "optional": true - } - ], - "ibm_compute_monitor": [ + }, { - "name": "response_action_id", - "type": "TypeInt", - "description": "Response action ID", + "name": "router_hostname", + "type": "TypeString", + "description": "The hostname of the primary router that the dedicated host is associated with.", + "immutable": true, "required": true }, + { + "name": "flavor", + "type": "TypeString", + "description": "The flavor of the dedicatated host.", + "default_value": "56_CORES_X_242_RAM_X_1_4_TB", + "immutable": true, + "optional": true + }, + { + "name": "disk_capacity", + "type": "TypeInt", + "description": "The capacity that the dedicated host's disk allocation is restricted to.", + "computed": true + }, + { + "name": "memory_capacity", + "type": "TypeInt", + "description": "The capacity that the dedicated host's memory allocation is restricted to.", + "computed": true + }, + { + "name": "tags", + "type": "TypeSet", + "cloud_data_type": "tags", + "optional": true, + "elem": { + "type": "TypeString" + } + } + ], + "ibm_compute_monitor": [ { "name": "wait_cycles", "type": "TypeInt", @@ -101839,6 +104666,12 @@ "type": "TypeInt", "description": "Query Type ID", "required": true + }, + { + "name": "response_action_id", + "type": "TypeInt", + "description": "Response action ID", + "required": true } ], "ibm_compute_placement_group": [ @@ -101882,16 +104715,6 @@ } ], "ibm_compute_provisioning_hook": [ - { - "name": "tags", - "type": "TypeSet", - "description": "Tags associated with resource", - "cloud_data_type": "tags", - "optional": true, - "elem": { - "type": "TypeString" - } - }, { "name": "name", "type": "TypeString", @@ -101903,28 +104726,19 @@ "type": "TypeString", "description": "URI of the hook", "required": true + }, + { + "name": "tags", + "type": "TypeSet", + "description": "Tags associated with resource", + "cloud_data_type": "tags", + "optional": true, + "elem": { + "type": "TypeString" + } } ], "ibm_compute_reserved_capacity": [ - { - "name": "pod", - "type": "TypeString", - "description": "Pod name", - "immutable": true, - "required": true - }, - { - "name": "name", - "type": "TypeString", - "description": "Name", - "required": true - }, - { - "name": "instances", - "type": "TypeInt", - "description": "no of the instances", - "required": true - }, { "name": "flavor", "type": "TypeString", @@ -101953,9 +104767,38 @@ "description": "Dataceneter name", "immutable": true, "required": true + }, + { + "name": "pod", + "type": "TypeString", + "description": "Pod name", + "immutable": true, + "required": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Name", + "required": true + }, + { + "name": "instances", + "type": "TypeInt", + "description": "no of the instances", + "required": true } ], "ibm_compute_ssh_key": [ + { + "name": "tags", + "type": "TypeSet", + "description": "List of tags for the resource", + "cloud_data_type": "tags", + "optional": true, + "elem": { + "type": "TypeString" + } + }, { "name": "label", "type": "TypeString", @@ -101980,19 +104823,24 @@ "type": "TypeString", "description": "Additional notes", "optional": true - }, - { - "name": "tags", - "type": "TypeSet", - "description": "List of tags for the resource", - "cloud_data_type": "tags", - "optional": true, - "elem": { - "type": "TypeString" - } } ], "ibm_compute_ssl_certificate": [ + { + "name": "intermediate_certificate", + "type": "TypeString", + "description": "Intermediate certificate value", + "immutable": true, + "optional": true + }, + { + "name": "private_key", + "type": "TypeString", + "description": "SSL Private Key", + "secure": true, + "immutable": true, + "required": true + }, { "name": "common_name", "type": "TypeString", @@ -102005,28 +104853,12 @@ "description": "Organization name", "computed": true }, - { - "name": "validity_days", - "type": "TypeInt", - "description": "Validity days", - "computed": true - }, { "name": "validity_end", "type": "TypeString", "description": "Validity ends before", "computed": true }, - { - "name": "tags", - "type": "TypeSet", - "description": "Tags set for resource", - "cloud_data_type": "tags", - "optional": true, - "elem": { - "type": "TypeString" - } - }, { "name": "certificate", "type": "TypeString", @@ -102034,27 +104866,18 @@ "immutable": true, "required": true }, - { - "name": "intermediate_certificate", - "type": "TypeString", - "description": "Intermediate certificate value", - "immutable": true, - "optional": true - }, - { - "name": "private_key", - "type": "TypeString", - "description": "SSL Private Key", - "secure": true, - "immutable": true, - "required": true - }, { "name": "validity_begin", "type": "TypeString", "description": "Validity begins from", "computed": true }, + { + "name": "validity_days", + "type": "TypeInt", + "description": "Validity days", + "computed": true + }, { "name": "key_size", "type": "TypeInt", @@ -102072,37 +104895,29 @@ "type": "TypeString", "description": "certificate modificatiob date", "computed": true + }, + { + "name": "tags", + "type": "TypeSet", + "description": "Tags set for resource", + "cloud_data_type": "tags", + "optional": true, + "elem": { + "type": "TypeString" + } } ], "ibm_compute_user": [ { - "name": "last_name", - "type": "TypeString", - "description": "Last name of the user", - "required": true - }, - { - "name": "email", + "name": "company_name", "type": "TypeString", - "description": "email address of the user", + "description": "comapany name", "required": true }, { - "name": "address2", + "name": "address1", "type": "TypeString", "description": "Address info of the user", - "optional": true - }, - { - "name": "country", - "type": "TypeString", - "description": "Country name", - "required": true - }, - { - "name": "timezone", - "type": "TypeString", - "description": "time zone info", "required": true }, { @@ -102112,12 +104927,6 @@ "default_value": "ACTIVE", "optional": true }, - { - "name": "company_name", - "type": "TypeString", - "description": "comapany name", - "required": true - }, { "name": "permissions", "type": "TypeSet", @@ -102128,128 +104937,131 @@ } }, { - "name": "api_key", - "type": "TypeString", - "description": "API key for the user", - "secure": true, - "optional": true, - "computed": true - }, - { - "name": "tags", - "type": "TypeSet", - "description": "Tags set for the resources", - "cloud_data_type": "tags", - "optional": true, - "elem": { - "type": "TypeString" - } + "name": "has_api_key", + "type": "TypeBool", + "description": "API Key info of the user", + "default_value": false, + "optional": true }, { - "name": "username", + "name": "ibm_id", "type": "TypeString", - "description": "user name", - "optional": true, + "description": "IBM ID of the user", "computed": true }, { - "name": "state", + "name": "first_name", "type": "TypeString", - "description": "Satate name", + "description": "First name of the user", "required": true }, { - "name": "password", + "name": "email", "type": "TypeString", - "description": "password for the user", - "secure": true, - "optional": true + "description": "email address of the user", + "required": true }, { - "name": "has_api_key", - "type": "TypeBool", - "description": "API Key info of the user", - "default_value": false, - "optional": true + "name": "state", + "type": "TypeString", + "description": "Satate name", + "required": true }, { - "name": "ibm_id", + "name": "country", "type": "TypeString", - "description": "IBM ID of the user", - "computed": true + "description": "Country name", + "required": true }, { - "name": "first_name", + "name": "timezone", "type": "TypeString", - "description": "First name of the user", + "description": "time zone info", "required": true }, { - "name": "address1", + "name": "username", "type": "TypeString", - "description": "Address info of the user", - "required": true + "description": "user name", + "optional": true, + "computed": true }, { "name": "city", "type": "TypeString", "description": "City name", "required": true - } - ], - "ibm_compute_vm_instance": [ + }, { - "name": "private_subnet", + "name": "api_key", "type": "TypeString", - "immutable": true, + "description": "API key for the user", + "secure": true, "optional": true, "computed": true }, { - "name": "resource_name", + "name": "tags", + "type": "TypeSet", + "description": "Tags set for the resources", + "cloud_data_type": "tags", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "last_name", "type": "TypeString", - "description": "The name of the resource", - "computed": true + "description": "Last name of the user", + "required": true }, { - "name": "domain", + "name": "address2", "type": "TypeString", + "description": "Address info of the user", "optional": true }, { - "name": "dedicated_host_name", + "name": "password", "type": "TypeString", - "immutable": true, + "description": "password for the user", + "secure": true, "optional": true - }, + } + ], + "ibm_compute_vm_instance": [ { - "name": "public_subnet", + "name": "reserved_capacity_name", "type": "TypeString", + "description": "The reserved group id", "immutable": true, - "optional": true, - "computed": true + "optional": true }, { - "name": "reserved_instance_primary_disk", + "name": "dedicated_host_id", "type": "TypeInt", - "description": "The primary disk of reserved instance", "immutable": true, "optional": true }, { - "name": "public_vlan_id", - "type": "TypeInt", - "immutable": true, + "name": "disks", + "type": "TypeList", "optional": true, - "computed": true + "computed": true, + "elem": { + "type": "TypeInt" + } }, { - "name": "private_interface_id", - "type": "TypeInt", - "computed": true + "name": "ipv6_enabled", + "type": "TypeBool", + "default_value": false, + "immutable": true, + "optional": true }, { - "name": "block_storage_ids", + "name": "file_storage_ids", "type": "TypeSet", "optional": true, "computed": true, @@ -102257,13 +105069,6 @@ "type": "TypeInt" } }, - { - "name": "local_disk", - "type": "TypeBool", - "default_value": true, - "immutable": true, - "optional": true - }, { "name": "bulk_vms", "type": "TypeSet", @@ -102286,26 +105091,34 @@ "min_items": 2 }, { - "name": "datacenter_choice", - "type": "TypeList", - "description": "The user provided datacenter options", + "name": "private_security_group_ids", + "type": "TypeSet", + "immutable": true, "optional": true, + "computed": true, "elem": { - "type": "TypeMap" - } + "type": "TypeInt" + }, + "max_items": 5 }, { - "name": "placement_group_id", + "name": "public_subnet_id", "type": "TypeInt", - "description": "The placement group id", - "immutable": true, - "optional": true + "computed": true }, { - "name": "dedicated_acct_host_only", - "type": "TypeBool", - "immutable": true, - "optional": true + "name": "private_interface_id", + "type": "TypeInt", + "computed": true + }, + { + "name": "block_storage_ids", + "type": "TypeSet", + "optional": true, + "computed": true, + "elem": { + "type": "TypeInt" + } }, { "name": "notes", @@ -102313,11 +105126,10 @@ "optional": true }, { - "name": "public_bandwidth_unlimited", - "type": "TypeBool", - "default_value": false, - "immutable": true, - "optional": true + "name": "resource_controller_url", + "type": "TypeString", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", + "computed": true }, { "name": "transient", @@ -102326,63 +105138,58 @@ "optional": true }, { - "name": "ssh_key_ids", - "type": "TypeSet", - "optional": true, - "elem": { - "type": "TypeInt" - } + "name": "user_metadata", + "type": "TypeString", + "immutable": true, + "optional": true }, { - "name": "private_security_group_ids", - "type": "TypeSet", + "name": "private_vlan_id", + "type": "TypeInt", "immutable": true, "optional": true, - "computed": true, - "elem": { - "type": "TypeInt" - }, - "max_items": 5 + "computed": true }, { - "name": "ip_address_id", - "type": "TypeInt", + "name": "datacenter", + "type": "TypeString", + "immutable": true, + "optional": true, "computed": true }, { - "name": "public_ipv6_subnet_id", - "type": "TypeInt", + "name": "ipv4_address", + "type": "TypeString", "computed": true }, { - "name": "file_storage_ids", + "name": "ssh_key_ids", "type": "TypeSet", "optional": true, - "computed": true, "elem": { "type": "TypeInt" } }, { - "name": "tags", - "type": "TypeSet", - "cloud_data_type": "tags", - "optional": true, - "elem": { - "type": "TypeString" - } + "name": "evault", + "type": "TypeInt", + "immutable": true, + "optional": true }, { - "name": "placement_group_name", + "name": "hostname", "type": "TypeString", - "description": "The placement group name", - "immutable": true, "optional": true }, { - "name": "flavor_key_name", + "name": "resource_name", "type": "TypeString", - "description": "Flavor key name used to provision vm.", + "description": "The name of the resource", + "computed": true + }, + { + "name": "cores", + "type": "TypeInt", "optional": true, "computed": true }, @@ -102392,88 +105199,68 @@ "computed": true }, { - "name": "quote_id", + "name": "ipv6_address_id", "type": "TypeInt", - "description": "Quote ID for Quote based provisioning", - "immutable": true, - "optional": true + "computed": true }, { - "name": "hostname", - "type": "TypeString", + "name": "local_disk", + "type": "TypeBool", + "default_value": true, + "immutable": true, "optional": true }, { - "name": "network_speed", + "name": "image_id", "type": "TypeInt", - "default_value": 100, + "immutable": true, "optional": true }, { - "name": "ipv4_address", - "type": "TypeString", - "computed": true + "name": "placement_group_id", + "type": "TypeInt", + "description": "The placement group id", + "immutable": true, + "optional": true }, { - "name": "wait_time_minutes", + "name": "memory", "type": "TypeInt", - "default_value": 90, "optional": true, - "deprecated": "This field is deprecated. Use timeouts block instead" + "computed": true }, { - "name": "os_reference_code", - "type": "TypeString", - "immutable": true, - "optional": true + "name": "ip_address_id", + "type": "TypeInt", + "computed": true }, { - "name": "private_network_only", + "name": "ipv6_static_enabled", "type": "TypeBool", "default_value": false, "immutable": true, "optional": true }, { - "name": "secondary_ip_addresses", - "type": "TypeList", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "memory", - "type": "TypeInt", + "name": "flavor_key_name", + "type": "TypeString", + "description": "Flavor key name used to provision vm.", "optional": true, "computed": true }, { - "name": "disks", - "type": "TypeList", - "optional": true, - "computed": true, - "elem": { - "type": "TypeInt" - } - }, - { - "name": "image_id", - "type": "TypeInt", + "name": "private_network_only", + "type": "TypeBool", + "default_value": false, "immutable": true, "optional": true }, { - "name": "evault", - "type": "TypeInt", + "name": "dedicated_acct_host_only", + "type": "TypeBool", "immutable": true, "optional": true }, - { - "name": "public_subnet_id", - "type": "TypeInt", - "computed": true - }, { "name": "public_security_group_ids", "type": "TypeSet", @@ -102486,8 +105273,9 @@ "max_items": 5 }, { - "name": "public_ipv6_subnet", + "name": "resource_status", "type": "TypeString", + "description": "The status of the resource", "computed": true }, { @@ -102498,11 +105286,9 @@ "optional": true }, { - "name": "reserved_capacity_id", + "name": "public_interface_id", "type": "TypeInt", - "description": "The reserved group id", - "immutable": true, - "optional": true + "computed": true }, { "name": "ipv4_address_private", @@ -102510,23 +105296,53 @@ "computed": true }, { - "name": "resource_controller_url", + "name": "domain", "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", - "computed": true + "optional": true }, { - "name": "ipv6_enabled", - "type": "TypeBool", - "default_value": false, + "name": "dedicated_host_name", + "type": "TypeString", "immutable": true, "optional": true }, { - "name": "ipv6_address_id", + "name": "reserved_capacity_id", "type": "TypeInt", + "description": "The reserved group id", + "immutable": true, + "optional": true + }, + { + "name": "public_subnet", + "type": "TypeString", + "immutable": true, + "optional": true, "computed": true }, + { + "name": "secondary_ip_addresses", + "type": "TypeList", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "post_install_script_uri", + "type": "TypeString", + "immutable": true, + "optional": true + }, + { + "name": "tags", + "type": "TypeSet", + "cloud_data_type": "tags", + "optional": true, + "elem": { + "type": "TypeString" + } + }, { "name": "public_bandwidth_limited", "type": "TypeInt", @@ -102535,9 +105351,13 @@ "computed": true }, { - "name": "ip_address_id_private", - "type": "TypeInt", - "computed": true + "name": "datacenter_choice", + "type": "TypeList", + "description": "The user provided datacenter options", + "optional": true, + "elem": { + "type": "TypeMap" + } }, { "name": "secondary_ip_count", @@ -102546,110 +105366,88 @@ "optional": true }, { - "name": "resource_status", + "name": "ipv6_address", "type": "TypeString", - "description": "The status of the resource", "computed": true }, { - "name": "datacenter", - "type": "TypeString", + "name": "public_vlan_id", + "type": "TypeInt", "immutable": true, "optional": true, "computed": true }, { - "name": "reserved_capacity_name", + "name": "wait_time_minutes", + "type": "TypeInt", + "default_value": 90, + "optional": true, + "deprecated": "This field is deprecated. Use timeouts block instead" + }, + { + "name": "placement_group_name", "type": "TypeString", - "description": "The reserved group id", + "description": "The placement group name", "immutable": true, "optional": true }, { - "name": "private_vlan_id", + "name": "reserved_instance_primary_disk", "type": "TypeInt", + "description": "The primary disk of reserved instance", + "immutable": true, + "optional": true + }, + { + "name": "private_subnet", + "type": "TypeString", "immutable": true, "optional": true, "computed": true }, { - "name": "dedicated_host_id", + "name": "network_speed", "type": "TypeInt", - "immutable": true, + "default_value": 100, "optional": true }, { - "name": "public_interface_id", + "name": "ip_address_id_private", "type": "TypeInt", "computed": true }, { - "name": "ipv6_static_enabled", - "type": "TypeBool", - "default_value": false, - "immutable": true, - "optional": true - }, - { - "name": "ipv6_address", + "name": "public_ipv6_subnet", "type": "TypeString", "computed": true }, { - "name": "cores", + "name": "public_ipv6_subnet_id", "type": "TypeInt", - "optional": true, "computed": true }, { - "name": "user_metadata", - "type": "TypeString", + "name": "public_bandwidth_unlimited", + "type": "TypeBool", + "default_value": false, "immutable": true, "optional": true }, { - "name": "post_install_script_uri", + "name": "os_reference_code", "type": "TypeString", "immutable": true, "optional": true - } - ], - "ibm_container_addons": [ - { - "name": "cluster", - "type": "TypeString", - "description": "Cluster Name or ID", - "cloud_data_type": "cluster", - "required": true, - "cloud_data_range": [ - "resolved_to:id" - ] }, { - "name": "resource_group_id", - "type": "TypeString", - "description": "ID of the resource group.", - "cloud_data_type": "resource_group", + "name": "quote_id", + "type": "TypeInt", + "description": "Quote ID for Quote based provisioning", "immutable": true, - "optional": true, - "computed": true - }, - { - "name": "manage_all_addons", - "type": "TypeBool", - "description": "To manage all add-ons installed in the cluster using terraform by importing it into the state file", - "default_value": true, "optional": true - }, - { - "name": "managed_addons", - "type": "TypeList", - "description": "Used to keep track of the add-on names", - "computed": true, - "elem": { - "type": "TypeString" - } - }, + } + ], + "ibm_container_addons": [ { "name": "addons", "type": "TypeSet", @@ -102739,44 +105537,50 @@ "computed": true } } - } - ], - "ibm_container_alb": [ + }, { - "name": "user_ip", + "name": "cluster", "type": "TypeString", - "description": "IP assigned by the user", - "immutable": true, - "optional": true, - "computed": true + "description": "Cluster Name or ID", + "cloud_data_type": "cluster", + "required": true, + "cloud_data_range": [ + "resolved_to:id" + ] }, { - "name": "disable_deployment", - "type": "TypeBool", - "description": "Set to true if ALB needs to be disabled", + "name": "resource_group_id", + "type": "TypeString", + "description": "ID of the resource group.", + "cloud_data_type": "resource_group", "immutable": true, "optional": true, "computed": true }, { - "name": "name", - "type": "TypeString", - "description": "ALB name", - "computed": true + "name": "manage_all_addons", + "type": "TypeBool", + "description": "To manage all add-ons installed in the cluster using terraform by importing it into the state file", + "default_value": true, + "optional": true }, + { + "name": "managed_addons", + "type": "TypeList", + "description": "Used to keep track of the add-on names", + "computed": true, + "elem": { + "type": "TypeString" + } + } + ], + "ibm_container_alb": [ { "name": "zone", "type": "TypeString", "description": "ALB zone", "computed": true }, - { - "name": "alb_id", - "type": "TypeString", - "description": "ALB ID", - "immutable": true, - "required": true - }, { "name": "alb_type", "type": "TypeString", @@ -102784,28 +105588,37 @@ "computed": true }, { - "name": "cluster", + "name": "user_ip", "type": "TypeString", - "description": "Cluster id", + "description": "IP assigned by the user", + "immutable": true, + "optional": true, "computed": true }, { - "name": "enable", + "name": "resize", "type": "TypeBool", - "description": "set to true if ALB needs to be enabled", + "description": "Indicate whether resizing should be done", + "computed": true + }, + { + "name": "disable_deployment", + "type": "TypeBool", + "description": "Set to true if ALB needs to be disabled", + "immutable": true, "optional": true, "computed": true }, { - "name": "replicas", + "name": "name", "type": "TypeString", - "description": "Desired number of ALB replicas.", + "description": "ALB name", "computed": true }, { - "name": "resize", - "type": "TypeBool", - "description": "Indicate whether resizing should be done", + "name": "replicas", + "type": "TypeString", + "description": "Desired number of ALB replicas.", "computed": true }, { @@ -102814,41 +105627,29 @@ "cloud_data_type": "region", "optional": true, "deprecated": "This field is deprecated" - } - ], - "ibm_container_alb_cert": [ - { - "name": "cert_crn", - "type": "TypeString", - "description": "Certificate CRN id", - "required": true }, { - "name": "secret_name", + "name": "alb_id", "type": "TypeString", - "description": "Secret name", + "description": "ALB ID", "immutable": true, "required": true }, { - "name": "persistence", - "type": "TypeBool", - "description": "Persistence of secret", - "optional": true - }, - { - "name": "expires_on", + "name": "cluster", "type": "TypeString", - "description": "Certificate expaire on date", + "description": "Cluster id", "computed": true }, { - "name": "issuer_name", - "type": "TypeString", - "description": "certificate issuer name", - "computed": true, - "deprecated": "This field is depricated and is not available in v2 version of ingress api" - }, + "name": "enable", + "type": "TypeBool", + "description": "set to true if ALB needs to be enabled", + "optional": true, + "computed": true + } + ], + "ibm_container_alb_cert": [ { "name": "cluster_id", "type": "TypeString", @@ -102861,18 +105662,11 @@ ] }, { - "name": "namespace", - "type": "TypeString", - "description": "Namespace of the secret", - "default_value": "ibm-cert-store", - "immutable": true, - "optional": true - }, - { - "name": "domain_name", + "name": "issuer_name", "type": "TypeString", - "description": "Domain name", - "computed": true + "description": "certificate issuer name", + "computed": true, + "deprecated": "This field is depricated and is not available in v2 version of ingress api" }, { "name": "status", @@ -102886,6 +105680,12 @@ "description": "cloud cert instance ID", "computed": true }, + { + "name": "expires_on", + "type": "TypeString", + "description": "Certificate expaire on date", + "computed": true + }, { "name": "region", "type": "TypeString", @@ -102894,28 +105694,42 @@ "optional": true, "computed": true, "deprecated": "This field is deprecated" - } - ], - "ibm_container_alb_create": [ + }, { - "name": "resize", - "type": "TypeBool", - "description": "resize", - "computed": true + "name": "cert_crn", + "type": "TypeString", + "description": "Certificate CRN id", + "required": true }, { - "name": "nlb_version", + "name": "secret_name", "type": "TypeString", - "description": "The version of the network load balancer that you want to use for the ALB.", + "description": "Secret name", + "immutable": true, + "required": true + }, + { + "name": "namespace", + "type": "TypeString", + "description": "Namespace of the secret", + "default_value": "ibm-cert-store", "immutable": true, "optional": true }, { - "name": "user_ip", + "name": "persistence", + "type": "TypeBool", + "description": "Persistence of secret", + "optional": true + }, + { + "name": "domain_name", "type": "TypeString", - "description": "IP assigned by the user", + "description": "Domain name", "computed": true - }, + } + ], + "ibm_container_alb_create": [ { "name": "replicas", "type": "TypeString", @@ -102923,28 +105737,22 @@ "computed": true }, { - "name": "disable_deployment", + "name": "resize", "type": "TypeBool", - "description": "Set to true if ALB needs to be disabled", + "description": "resize", "computed": true }, { - "name": "alb_id", + "name": "name", "type": "TypeString", - "description": "The ID of the application load balancer (ALB).", + "description": "ALB name", "computed": true }, { - "name": "enable", - "type": "TypeBool", - "description": "If set to true, the ALB is enabled by default.", - "default_value": true, - "optional": true - }, - { - "name": "ip", + "name": "ingress_image", "type": "TypeString", - "description": "The IP address that you want to assign to the ALB.", + "description": "The type of Ingress image that you want to use for your ALB deployment.", + "immutable": true, "optional": true }, { @@ -102966,15 +105774,40 @@ ] }, { - "name": "name", + "name": "alb_id", "type": "TypeString", - "description": "ALB name", + "description": "The ID of the application load balancer (ALB).", "computed": true }, { - "name": "ingress_image", + "name": "enable", + "type": "TypeBool", + "description": "If set to true, the ALB is enabled by default.", + "default_value": true, + "optional": true + }, + { + "name": "vlan_id", "type": "TypeString", - "description": "The type of Ingress image that you want to use for your ALB deployment.", + "description": "The VLAN ID that you want to use for your ALBs.", + "required": true + }, + { + "name": "disable_deployment", + "type": "TypeBool", + "description": "Set to true if ALB needs to be disabled", + "computed": true + }, + { + "name": "user_ip", + "type": "TypeString", + "description": "IP assigned by the user", + "computed": true + }, + { + "name": "nlb_version", + "type": "TypeString", + "description": "The version of the network load balancer that you want to use for the ALB.", "immutable": true, "optional": true }, @@ -102985,10 +105818,10 @@ "required": true }, { - "name": "vlan_id", + "name": "ip", "type": "TypeString", - "description": "The VLAN ID that you want to use for your ALBs.", - "required": true + "description": "The IP address that you want to assign to the ALB.", + "optional": true } ], "ibm_container_api_key_reset": [ @@ -103018,12 +105851,36 @@ ], "ibm_container_bind_service": [ { - "name": "org_guid", + "name": "region", "type": "TypeString", - "description": "The bluemix organization guid this cluster belongs to", + "description": "The cluster region", + "cloud_data_type": "region", "optional": true, "deprecated": "This field is deprecated" }, + { + "name": "service_instance_name", + "type": "TypeString", + "description": "serivice instance name", + "immutable": true, + "optional": true, + "computed": true + }, + { + "name": "service_instance_id", + "type": "TypeString", + "description": "Service instance ID", + "immutable": true, + "optional": true, + "computed": true + }, + { + "name": "namespace_id", + "type": "TypeString", + "description": "namespace ID", + "immutable": true, + "required": true + }, { "name": "space_guid", "type": "TypeString", @@ -103032,9 +105889,17 @@ "deprecated": "This field is deprecated" }, { - "name": "key", + "name": "role", "type": "TypeString", - "description": "Key info", + "description": "Role info", + "immutable": true, + "optional": true + }, + { + "name": "resource_group_id", + "type": "TypeString", + "description": "ID of the resource group.", + "cloud_data_type": "resource_group", "immutable": true, "optional": true }, @@ -103048,55 +105913,234 @@ "type": "TypeString" } }, + { + "name": "cluster_name_id", + "type": "TypeString", + "description": "Cluster name or ID", + "cloud_data_type": "cluster", + "immutable": true, + "required": true, + "cloud_data_range": [ + "resolved_to:id" + ] + }, + { + "name": "org_guid", + "type": "TypeString", + "description": "The bluemix organization guid this cluster belongs to", + "optional": true, + "deprecated": "This field is deprecated" + }, + { + "name": "account_guid", + "type": "TypeString", + "description": "The bluemix account guid this cluster belongs to", + "optional": true, + "deprecated": "This field is deprecated" + }, + { + "name": "key", + "type": "TypeString", + "description": "Key info", + "immutable": true, + "optional": true + } + ], + "ibm_container_cluster": [ + { + "name": "labels", + "type": "TypeMap", + "description": "list of labels to the default worker pool", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "kube_version", + "type": "TypeString", + "description": "Kubernetes version info", + "optional": true, + "computed": true + }, + { + "name": "entitlement", + "type": "TypeString", + "description": "Entitlement option reduces additional OCP Licence cost in Openshift Clusters", + "optional": true + }, + { + "name": "subnet_id", + "type": "TypeSet", + "description": "List of subnet IDs", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "resource_group_name", + "type": "TypeString", + "description": "The resource group name in which resource is provisioned", + "computed": true + }, { "name": "region", "type": "TypeString", "description": "The cluster region", "cloud_data_type": "region", "optional": true, + "computed": true, "deprecated": "This field is deprecated" }, { - "name": "resource_group_id", + "name": "default_pool_size", + "type": "TypeInt", + "description": "The size of the default worker pool", + "default_value": 1, + "optional": true + }, + { + "name": "service_subnet", "type": "TypeString", - "description": "ID of the resource group.", - "cloud_data_type": "resource_group", + "description": "Custom subnet CIDR to provide private IP addresses for services", + "immutable": true, + "optional": true, + "computed": true + }, + { + "name": "no_subnet", + "type": "TypeBool", + "description": "Boolean value set to true when subnet creation is not required.", + "default_value": false, "immutable": true, "optional": true }, { - "name": "cluster_name_id", + "name": "resource_controller_url", "type": "TypeString", - "description": "Cluster name or ID", - "cloud_data_type": "cluster", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this cluster", + "computed": true + }, + { + "name": "datacenter", + "type": "TypeString", + "description": "The datacenter where this cluster will be deployed", "immutable": true, - "required": true, - "cloud_data_range": [ - "resolved_to:id" - ] + "required": true }, { - "name": "service_instance_name", + "name": "machine_type", "type": "TypeString", - "description": "serivice instance name", + "description": "Machine type", "immutable": true, + "optional": true + }, + { + "name": "server_url", + "type": "TypeString", + "computed": true + }, + { + "name": "space_guid", + "type": "TypeString", + "description": "The bluemix space guid this cluster belongs to", "optional": true, + "deprecated": "This field is deprecated" + }, + { + "name": "crn", + "type": "TypeString", + "description": "CRN of resource instance", + "cloud_data_type": "crn", "computed": true }, { - "name": "service_instance_id", + "name": "workers_info", + "type": "TypeList", + "description": "The IDs of the worker node", + "optional": true, + "computed": true, + "elem": { + "id": { + "name": "id", + "type": "TypeString", + "optional": true, + "computed": true + }, + "pool_name": { + "name": "pool_name", + "type": "TypeString", + "computed": true + }, + "version": { + "name": "version", + "type": "TypeString", + "optional": true, + "computed": true + } + } + }, + { + "name": "wait_till", "type": "TypeString", - "description": "Service instance ID", + "description": "wait_till can be configured for Master Ready, One worker Ready, Ingress Ready or Normal", + "default_value": "IngressReady", + "optional": true + }, + { + "name": "ingress_hostname", + "type": "TypeString", + "computed": true + }, + { + "name": "private_service_endpoint_url", + "type": "TypeString", + "computed": true + }, + { + "name": "webhook", + "type": "TypeList", + "optional": true, + "elem": { + "level": { + "name": "level", + "type": "TypeString", + "required": true + }, + "type": { + "name": "type", + "type": "TypeString", + "required": true + }, + "url": { + "name": "url", + "type": "TypeString", + "required": true + } + } + }, + { + "name": "private_service_endpoint", + "type": "TypeBool", "immutable": true, "optional": true, "computed": true }, { - "name": "namespace_id", + "name": "resource_crn", "type": "TypeString", - "description": "namespace ID", - "immutable": true, - "required": true + "description": "The crn of the resource", + "computed": true + }, + { + "name": "worker_num", + "type": "TypeInt", + "description": "Number of worker nodes", + "default_value": 0, + "optional": true, + "deprecated": "This field is deprecated" }, { "name": "account_guid", @@ -103106,27 +106150,78 @@ "deprecated": "This field is deprecated" }, { - "name": "role", + "name": "public_service_endpoint_url", "type": "TypeString", - "description": "Role info", + "computed": true + }, + { + "name": "kms_config", + "type": "TypeList", + "description": "Enables KMS on a given cluster", + "optional": true, + "elem": { + "crk_id": { + "name": "crk_id", + "type": "TypeString", + "description": "ID of the customer root key.", + "required": true + }, + "instance_id": { + "name": "instance_id", + "type": "TypeString", + "description": "ID of the KMS instance to use to encrypt the cluster.", + "required": true + }, + "private_endpoint": { + "name": "private_endpoint", + "type": "TypeBool", + "description": "Specify this option to use the KMS public service endpoint.", + "default_value": false, + "optional": true + } + }, + "max_items": 1 + }, + { + "name": "image_security_enforcement", + "type": "TypeBool", + "description": "Set true to enable image security enforcement policies", + "default_value": false, + "optional": true + }, + { + "name": "disk_encryption", + "type": "TypeBool", + "description": "disc encryption done, if set to true.", + "default_value": true, "immutable": true, "optional": true - } - ], - "ibm_container_cluster": [ + }, { - "name": "patch_version", - "type": "TypeString", - "description": "Kubernetes patch version", + "name": "retry_patch_version", + "type": "TypeInt", + "description": "Argument which helps to retry the patch version updates on worker nodes. Increment the value to retry the patch updates if the previous apply fails", "optional": true }, { - "name": "operating_system", + "name": "hardware", "type": "TypeString", - "description": "The operating system of the workers in the default worker pool.", + "description": "Hardware type", "immutable": true, + "required": true + }, + { + "name": "tags", + "type": "TypeSet", + "description": "Tags for the resource", + "min_length": 1, + "max_length": 128, + "matches": "^[A-Za-z0-9:_ .-]+$", "optional": true, - "computed": true + "computed": true, + "elem": { + "type": "TypeString" + } }, { "name": "worker_pools", @@ -103198,45 +106293,25 @@ } }, { - "name": "datacenter", + "name": "org_guid", "type": "TypeString", - "description": "The datacenter where this cluster will be deployed", - "immutable": true, - "required": true - }, - { - "name": "taints", - "type": "TypeSet", - "description": "WorkerPool Taints", + "description": "The bluemix organization guid this cluster belongs to", "optional": true, - "elem": { - "effect": { - "name": "effect", - "type": "TypeString", - "description": "Effect for taint. Accepted values are NoSchedule, PreferNoSchedule and NoExecute.", - "required": true - }, - "key": { - "name": "key", - "type": "TypeString", - "description": "Key for taint", - "required": true - }, - "value": { - "name": "value", - "type": "TypeString", - "description": "Value for taint.", - "required": true - } - } + "deprecated": "This field is deprecated" }, { - "name": "private_vlan_id", - "type": "TypeString", - "description": "Private VLAN ID", - "immutable": true, + "name": "wait_for_worker_update", + "type": "TypeBool", + "description": "Wait for worker node to update during kube version update.", + "default_value": true, "optional": true }, + { + "name": "wait_time_minutes", + "type": "TypeInt", + "optional": true, + "deprecated": "This field is deprecated" + }, { "name": "albs", "type": "TypeList", @@ -103290,99 +106365,84 @@ } }, { - "name": "service_subnet", - "type": "TypeString", - "description": "Custom subnet CIDR to provide private IP addresses for services", - "immutable": true, - "optional": true, - "computed": true - }, - { - "name": "default_pool_size", - "type": "TypeInt", - "description": "The size of the default worker pool", - "default_value": 1, + "name": "gateway_enabled", + "type": "TypeBool", + "description": "Set true for gateway enabled clusters", + "default_value": false, "optional": true }, { - "name": "kube_version", + "name": "resource_status", "type": "TypeString", - "description": "Kubernetes version info", - "optional": true, + "description": "The status of the resource", "computed": true }, { - "name": "retry_patch_version", - "type": "TypeInt", - "description": "Argument which helps to retry the patch version updates on worker nodes. Increment the value to retry the patch updates if the previous apply fails", - "optional": true - }, - { - "name": "machine_type", + "name": "public_vlan_id", "type": "TypeString", - "description": "Machine type", + "description": "Public VLAN ID", "immutable": true, "optional": true }, { - "name": "wait_time_minutes", - "type": "TypeInt", + "name": "resource_group_id", + "type": "TypeString", + "description": "ID of the resource group.", + "cloud_data_type": "resource_group", "optional": true, - "deprecated": "This field is deprecated" + "computed": true }, { - "name": "kms_config", - "type": "TypeList", - "description": "Enables KMS on a given cluster", + "name": "taints", + "type": "TypeSet", + "description": "WorkerPool Taints", "optional": true, "elem": { - "crk_id": { - "name": "crk_id", + "effect": { + "name": "effect", "type": "TypeString", - "description": "ID of the customer root key.", + "description": "Effect for taint. Accepted values are NoSchedule, PreferNoSchedule and NoExecute.", "required": true }, - "instance_id": { - "name": "instance_id", + "key": { + "name": "key", "type": "TypeString", - "description": "ID of the KMS instance to use to encrypt the cluster.", + "description": "Key for taint", "required": true }, - "private_endpoint": { - "name": "private_endpoint", - "type": "TypeBool", - "description": "Specify this option to use the KMS public service endpoint.", - "default_value": false, - "optional": true + "value": { + "name": "value", + "type": "TypeString", + "description": "Value for taint.", + "required": true } - }, - "max_items": 1 + } }, { - "name": "disk_encryption", + "name": "update_all_workers", "type": "TypeBool", - "description": "disc encryption done, if set to true.", - "default_value": true, - "immutable": true, + "description": "Updates all the woker nodes if sets to true", + "default_value": false, "optional": true }, { - "name": "force_delete_storage", - "type": "TypeBool", - "description": "Force the removal of a cluster and its persistent storage. Deleted data cannot be recovered", - "default_value": false, + "name": "private_vlan_id", + "type": "TypeString", + "description": "Private VLAN ID", + "immutable": true, "optional": true }, { - "name": "org_guid", - "type": "TypeString", - "description": "The bluemix organization guid this cluster belongs to", + "name": "public_service_endpoint", + "type": "TypeBool", + "immutable": true, "optional": true, - "deprecated": "This field is deprecated" + "computed": true }, { - "name": "private_service_endpoint_url", + "name": "resource_name", "type": "TypeString", + "description": "The name of the resource", "computed": true }, { @@ -103392,29 +106452,17 @@ "deprecated": "This field is deprecated" }, { - "name": "server_url", - "type": "TypeString", - "computed": true - }, - { - "name": "subnet_id", - "type": "TypeSet", - "description": "List of subnet IDs", + "name": "is_trusted", + "type": "TypeBool", "optional": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "public_service_endpoint_url", - "type": "TypeString", - "computed": true + "deprecated": "This field is deprecated" }, { - "name": "resource_status", - "type": "TypeString", - "description": "The status of the resource", - "computed": true + "name": "force_delete_storage", + "type": "TypeBool", + "description": "Force the removal of a cluster and its persistent storage. Deleted data cannot be recovered", + "default_value": false, + "optional": true }, { "name": "name", @@ -103424,77 +106472,19 @@ "required": true }, { - "name": "entitlement", + "name": "patch_version", "type": "TypeString", - "description": "Entitlement option reduces additional OCP Licence cost in Openshift Clusters", + "description": "Kubernetes patch version", "optional": true }, { - "name": "webhook", - "type": "TypeList", - "optional": true, - "elem": { - "level": { - "name": "level", - "type": "TypeString", - "required": true - }, - "type": { - "name": "type", - "type": "TypeString", - "required": true - }, - "url": { - "name": "url", - "type": "TypeString", - "required": true - } - } - }, - { - "name": "tags", - "type": "TypeSet", - "description": "Tags for the resource", - "min_length": 1, - "max_length": 128, - "matches": "^[A-Za-z0-9:_ .-]+$", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "resource_group_id", + "name": "operating_system", "type": "TypeString", - "description": "ID of the resource group.", - "cloud_data_type": "resource_group", - "optional": true, - "computed": true - }, - { - "name": "public_service_endpoint", - "type": "TypeBool", + "description": "The operating system of the workers in the default worker pool.", "immutable": true, "optional": true, "computed": true }, - { - "name": "region", - "type": "TypeString", - "description": "The cluster region", - "cloud_data_type": "region", - "optional": true, - "computed": true, - "deprecated": "This field is deprecated" - }, - { - "name": "wait_for_worker_update", - "type": "TypeBool", - "description": "Wait for worker node to update during kube version update.", - "default_value": true, - "optional": true - }, { "name": "pod_subnet", "type": "TypeString", @@ -103503,171 +106493,39 @@ "optional": true, "computed": true }, - { - "name": "is_trusted", - "type": "TypeBool", - "optional": true, - "deprecated": "This field is deprecated" - }, - { - "name": "ingress_hostname", - "type": "TypeString", - "computed": true - }, { "name": "ingress_secret", "type": "TypeString", "secure": true, "computed": true - }, + } + ], + "ibm_container_cluster_feature": [ { "name": "private_service_endpoint", "type": "TypeBool", - "immutable": true, "optional": true, "computed": true }, { - "name": "image_security_enforcement", - "type": "TypeBool", - "description": "Set true to enable image security enforcement policies", - "default_value": false, - "optional": true - }, - { - "name": "space_guid", - "type": "TypeString", - "description": "The bluemix space guid this cluster belongs to", - "optional": true, - "deprecated": "This field is deprecated" - }, - { - "name": "public_vlan_id", - "type": "TypeString", - "description": "Public VLAN ID", - "immutable": true, - "optional": true - }, - { - "name": "resource_name", + "name": "public_service_endpoint_url", "type": "TypeString", - "description": "The name of the resource", "computed": true }, { - "name": "wait_till", - "type": "TypeString", - "description": "wait_till can be configured for Master Ready, One worker Ready, Ingress Ready or Normal", - "default_value": "IngressReady", - "optional": true - }, - { - "name": "no_subnet", + "name": "refresh_api_servers", "type": "TypeBool", - "description": "Boolean value set to true when subnet creation is not required.", - "default_value": false, - "immutable": true, + "description": "Boolean value true of API server to be refreshed in K8S cluster", + "default_value": true, "optional": true }, { - "name": "resource_group_name", - "type": "TypeString", - "description": "The resource group name in which resource is provisioned", - "computed": true - }, - { - "name": "hardware", - "type": "TypeString", - "description": "Hardware type", - "immutable": true, - "required": true - }, - { - "name": "gateway_enabled", + "name": "reload_workers", "type": "TypeBool", - "description": "Set true for gateway enabled clusters", - "default_value": false, + "description": "Boolean value set true if worker nodes to be reloaded", + "default_value": true, "optional": true }, - { - "name": "crn", - "type": "TypeString", - "description": "CRN of resource instance", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "account_guid", - "type": "TypeString", - "description": "The bluemix account guid this cluster belongs to", - "optional": true, - "deprecated": "This field is deprecated" - }, - { - "name": "resource_controller_url", - "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this cluster", - "computed": true - }, - { - "name": "resource_crn", - "type": "TypeString", - "description": "The crn of the resource", - "computed": true - }, - { - "name": "worker_num", - "type": "TypeInt", - "description": "Number of worker nodes", - "default_value": 0, - "optional": true, - "deprecated": "This field is deprecated" - }, - { - "name": "labels", - "type": "TypeMap", - "description": "list of labels to the default worker pool", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "workers_info", - "type": "TypeList", - "description": "The IDs of the worker node", - "optional": true, - "computed": true, - "elem": { - "id": { - "name": "id", - "type": "TypeString", - "optional": true, - "computed": true - }, - "pool_name": { - "name": "pool_name", - "type": "TypeString", - "computed": true - }, - "version": { - "name": "version", - "type": "TypeString", - "optional": true, - "computed": true - } - } - }, - { - "name": "update_all_workers", - "type": "TypeBool", - "description": "Updates all the woker nodes if sets to true", - "default_value": false, - "optional": true - } - ], - "ibm_container_cluster_feature": [ { "name": "private_service_endpoint_url", "type": "TypeString", @@ -103697,34 +106555,23 @@ "type": "TypeBool", "optional": true, "computed": true - }, - { - "name": "private_service_endpoint", - "type": "TypeBool", - "optional": true, - "computed": true - }, + } + ], + "ibm_container_dedicated_host": [ { - "name": "public_service_endpoint_url", + "name": "flavor", "type": "TypeString", - "computed": true + "description": "The flavor of the dedicated host", + "immutable": true, + "required": true }, { - "name": "refresh_api_servers", - "type": "TypeBool", - "description": "Boolean value true of API server to be refreshed in K8S cluster", - "default_value": true, - "optional": true + "name": "host_pool_id", + "type": "TypeString", + "description": "The id of the dedicated host pool the dedicated host is associated with", + "immutable": true, + "required": true }, - { - "name": "reload_workers", - "type": "TypeBool", - "description": "Boolean value set true if worker nodes to be reloaded", - "default_value": true, - "optional": true - } - ], - "ibm_container_dedicated_host": [ { "name": "zone", "type": "TypeString", @@ -103851,38 +106698,9 @@ "computed": true } } - }, - { - "name": "flavor", - "type": "TypeString", - "description": "The flavor of the dedicated host", - "immutable": true, - "required": true - }, - { - "name": "host_pool_id", - "type": "TypeString", - "description": "The id of the dedicated host pool the dedicated host is associated with", - "immutable": true, - "required": true } ], "ibm_container_dedicated_host_pool": [ - { - "name": "flavor_class", - "type": "TypeString", - "description": "The flavor class of the dedicated host pool", - "immutable": true, - "required": true - }, - { - "name": "resource_group_id", - "type": "TypeString", - "description": "ID of the resource group.", - "cloud_data_type": "resource_group", - "immutable": true, - "optional": true - }, { "name": "host_count", "type": "TypeInt", @@ -103961,14 +106779,41 @@ "description": "The metro to create the dedicated host pool in", "immutable": true, "required": true + }, + { + "name": "flavor_class", + "type": "TypeString", + "description": "The flavor class of the dedicated host pool", + "immutable": true, + "required": true + }, + { + "name": "resource_group_id", + "type": "TypeString", + "description": "ID of the resource group.", + "cloud_data_type": "resource_group", + "immutable": true, + "optional": true } ], "ibm_container_ingress_instance": [ { - "name": "user_managed", - "type": "TypeBool", - "description": "If the instance was created by the user", - "computed": true + "name": "cluster", + "type": "TypeString", + "description": "Cluster ID", + "cloud_data_type": "cluster", + "immutable": true, + "required": true, + "cloud_data_range": [ + "resolved_to:id" + ] + }, + { + "name": "secret_group_id", + "type": "TypeString", + "description": "Secret group for the instance registration", + "default_value": "", + "optional": true }, { "name": "is_default", @@ -103978,24 +106823,18 @@ "optional": true }, { - "name": "status", + "name": "instance_crn", "type": "TypeString", - "description": "Instance registration status", - "computed": true + "description": "Instance CRN id", + "immutable": true, + "required": true }, { - "name": "instance_type", + "name": "instance_name", "type": "TypeString", - "description": "Instance type", + "description": "Instance registration name", "computed": true }, - { - "name": "secret_group_id", - "type": "TypeString", - "description": "Secret group for the instance registration", - "default_value": "", - "optional": true - }, { "name": "secret_group_name", "type": "TypeString", @@ -104003,27 +106842,21 @@ "computed": true }, { - "name": "instance_crn", + "name": "status", "type": "TypeString", - "description": "Instance CRN id", - "immutable": true, - "required": true + "description": "Instance registration status", + "computed": true }, { - "name": "cluster", + "name": "instance_type", "type": "TypeString", - "description": "Cluster ID", - "cloud_data_type": "cluster", - "immutable": true, - "required": true, - "cloud_data_range": [ - "resolved_to:id" - ] + "description": "Instance type", + "computed": true }, { - "name": "instance_name", - "type": "TypeString", - "description": "Instance registration name", + "name": "user_managed", + "type": "TypeBool", + "description": "If the instance was created by the user", "computed": true } ], @@ -104033,7 +106866,10 @@ "type": "TypeString", "description": "Secret name", "immutable": true, - "required": true + "required": true, + "min_length": 1, + "max_length": 63, + "matches": "^([a-z0-9]([-a-z0-9]*[a-z0-9])?(.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*)$" }, { "name": "secret_namespace", @@ -104042,12 +106878,6 @@ "immutable": true, "required": true }, - { - "name": "type", - "type": "TypeString", - "description": "Opaque secret type", - "computed": true - }, { "name": "persistence", "type": "TypeBool", @@ -104056,15 +106886,9 @@ "optional": true }, { - "name": "user_managed", - "type": "TypeBool", - "description": "If the secret was created by the user", - "computed": true - }, - { - "name": "status", + "name": "last_updated_timestamp", "type": "TypeString", - "description": "Status of the secret", + "description": "Timestamp secret was last updated", "computed": true }, { @@ -104099,48 +106923,11 @@ }, "name": { "name": "name", - "type": "TypeString", - "description": "The computed field name", - "computed": true - } - } - }, - { - "name": "cluster", - "type": "TypeString", - "description": "Cluster ID or name", - "cloud_data_type": "cluster", - "immutable": true, - "required": true, - "cloud_data_range": [ - "resolved_to:id" - ] - } - ], - "ibm_container_ingress_secret_tls": [ - { - "name": "cert_crn", - "type": "TypeString", - "description": "Certificate CRN", - "required": true - }, - { - "name": "domain_name", - "type": "TypeString", - "description": "Domain name", - "computed": true - }, - { - "name": "expires_on", - "type": "TypeString", - "description": "Certificate expires on date", - "computed": true - }, - { - "name": "user_managed", - "type": "TypeBool", - "description": "If the secret was created by the user", - "computed": true + "type": "TypeString", + "description": "The computed field name", + "computed": true + } + } }, { "name": "cluster", @@ -104154,76 +106941,115 @@ ] }, { - "name": "type", + "name": "user_managed", + "type": "TypeBool", + "description": "If the secret was created by the user", + "computed": true + }, + { + "name": "status", "type": "TypeString", - "description": "TLS secret type", + "description": "Status of the secret", "computed": true }, { - "name": "persistence", - "type": "TypeBool", - "description": "Persistence of secret", + "name": "update_secret", + "type": "TypeInt", + "description": "Updates secret from secrets manager if value is changed (increment each usage)", "optional": true }, { - "name": "status", + "name": "type", "type": "TypeString", - "description": "Secret Status", + "description": "Opaque secret type", "computed": true - }, + } + ], + "ibm_container_ingress_secret_tls": [ { - "name": "last_updated_timestamp", + "name": "expires_on", "type": "TypeString", - "description": "Timestamp secret was last updated", + "description": "Certificate expires on date", "computed": true }, { - "name": "secret_name", + "name": "update_secret", + "type": "TypeInt", + "description": "Updates secret from secrets manager if value is changed (increment each usage)", + "optional": true + }, + { + "name": "cluster", "type": "TypeString", - "description": "Secret name", + "description": "Cluster ID or name", + "cloud_data_type": "cluster", "immutable": true, - "required": true + "required": true, + "cloud_data_range": [ + "resolved_to:id" + ] }, { - "name": "secret_namespace", + "name": "secret_name", "type": "TypeString", - "description": "Secret namespace", + "description": "Secret name", "immutable": true, - "required": true - } - ], - "ibm_container_nlb_dns": [ + "required": true, + "min_length": 1, + "max_length": 63, + "matches": "^([a-z0-9]([-a-z0-9]*[a-z0-9])?(.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*)$" + }, { - "name": "nlb_ssl_secret_name", + "name": "cert_crn", "type": "TypeString", - "computed": true + "description": "Certificate CRN", + "required": true }, { - "name": "nlb_ssl_secret_status", + "name": "domain_name", "type": "TypeString", + "description": "Domain name", "computed": true }, { - "name": "nlb_type", + "name": "status", "type": "TypeString", + "description": "Secret Status", "computed": true }, { - "name": "secret_namespace", - "type": "TypeString", + "name": "user_managed", + "type": "TypeBool", + "description": "If the secret was created by the user", "computed": true }, { - "name": "nlb_monitor_state", + "name": "last_updated_timestamp", "type": "TypeString", + "description": "Timestamp secret was last updated", "computed": true }, { - "name": "nlb_host", + "name": "secret_namespace", "type": "TypeString", + "description": "Secret namespace", "immutable": true, "required": true }, + { + "name": "type", + "type": "TypeString", + "description": "TLS secret type", + "computed": true + }, + { + "name": "persistence", + "type": "TypeBool", + "description": "Persistence of secret", + "optional": true + } + ], + "ibm_container_nlb_dns": [ { "name": "nlb_ips", "type": "TypeSet", @@ -104238,36 +107064,29 @@ "computed": true }, { - "name": "resource_group_id", + "name": "nlb_monitor_state", "type": "TypeString", - "description": "The ID of the resource group that the cluster is in. To check the resource group ID of the cluster, use the GET /v1/clusters/idOrName API. To list available resource group IDs, run ibmcloud resource groups.", - "cloud_data_type": "resource_group", - "optional": true + "computed": true }, { - "name": "cluster", + "name": "nlb_ssl_secret_name", "type": "TypeString", - "description": "The name or ID of the cluster. To list the clusters that you have access to, use the `GET /v1/clusters` API or run `ibmcloud ks cluster ls`.", - "cloud_data_type": "cluster", - "immutable": true, - "required": true, - "cloud_data_range": [ - "resolved_to:id" - ] - } - ], - "ibm_container_storage_attachment": [ + "computed": true + }, { - "name": "volume", + "name": "nlb_ssl_secret_status", "type": "TypeString", - "description": "VPC Volume ID", - "immutable": true, - "required": true + "computed": true + }, + { + "name": "nlb_type", + "type": "TypeString", + "computed": true }, { "name": "cluster", "type": "TypeString", - "description": "Cluster name or ID", + "description": "The name or ID of the cluster. To list the clusters that you have access to, use the `GET /v1/clusters` API or run `ibmcloud ks cluster ls`.", "cloud_data_type": "cluster", "immutable": true, "required": true, @@ -104276,18 +107095,25 @@ ] }, { - "name": "worker", + "name": "nlb_host", "type": "TypeString", - "description": "worker node ID", "immutable": true, "required": true }, { - "name": "volume_attachment_name", + "name": "secret_namespace", "type": "TypeString", - "description": "Volume attachment name", "computed": true }, + { + "name": "resource_group_id", + "type": "TypeString", + "description": "The ID of the resource group that the cluster is in. To check the resource group ID of the cluster, use the GET /v1/clusters/idOrName API. To list available resource group IDs, run ibmcloud resource groups.", + "cloud_data_type": "resource_group", + "optional": true + } + ], + "ibm_container_storage_attachment": [ { "name": "resource_group_id", "type": "TypeString", @@ -104313,28 +107139,40 @@ "type": "TypeString", "description": "The type of volume", "computed": true - } - ], - "ibm_container_vpc_alb": [ + }, { - "name": "alb_id", + "name": "volume", "type": "TypeString", - "description": "ALB ID", + "description": "VPC Volume ID", "immutable": true, "required": true }, { - "name": "alb_type", + "name": "cluster", "type": "TypeString", - "description": "Type of the ALB", - "computed": true + "description": "Cluster name or ID", + "cloud_data_type": "cluster", + "immutable": true, + "required": true, + "cloud_data_range": [ + "resolved_to:id" + ] }, { - "name": "enable", - "type": "TypeBool", - "description": "Enable the ALB instance in the cluster", - "optional": true + "name": "worker", + "type": "TypeString", + "description": "worker node ID", + "immutable": true, + "required": true }, + { + "name": "volume_attachment_name", + "type": "TypeString", + "description": "Volume attachment name", + "computed": true + } + ], + "ibm_container_vpc_alb": [ { "name": "disable_deployment", "type": "TypeBool", @@ -104344,15 +107182,15 @@ "computed": true }, { - "name": "load_balancer_hostname", + "name": "name", "type": "TypeString", - "description": "Load balancer host name", + "description": "ALB name", "computed": true }, { - "name": "status", + "name": "load_balancer_hostname", "type": "TypeString", - "description": "Status of the ALB", + "description": "Load balancer host name", "computed": true }, { @@ -104369,17 +107207,23 @@ "optional": true }, { - "name": "cluster", + "name": "alb_type", "type": "TypeString", - "description": "cluster id", + "description": "Type of the ALB", "computed": true }, { - "name": "name", + "name": "cluster", "type": "TypeString", - "description": "ALB name", + "description": "cluster id", "computed": true }, + { + "name": "enable", + "type": "TypeBool", + "description": "Enable the ALB instance in the cluster", + "optional": true + }, { "name": "resize", "type": "TypeBool", @@ -104391,21 +107235,22 @@ "type": "TypeString", "description": "ALB state", "computed": true - } - ], - "ibm_container_vpc_alb_create": [ + }, { - "name": "name", + "name": "status", "type": "TypeString", - "description": "ALB name", + "description": "Status of the ALB", "computed": true }, { - "name": "load_balancer_hostname", + "name": "alb_id", "type": "TypeString", - "description": "Load balancer host name", - "computed": true - }, + "description": "ALB ID", + "immutable": true, + "required": true + } + ], + "ibm_container_vpc_alb_create": [ { "name": "state", "type": "TypeString", @@ -104413,18 +107258,28 @@ "computed": true }, { - "name": "type", + "name": "status", "type": "TypeString", - "description": "The type of ALB that you want to create.", - "immutable": true, - "required": true + "description": "Status of the ALB", + "computed": true }, { - "name": "alb_id", + "name": "cluster", "type": "TypeString", - "description": "The ID of the application load balancer (ALB).", + "description": "The ID of the cluster that the ALB belongs to.", + "cloud_data_type": "cluster", "immutable": true, - "computed": true + "required": true, + "cloud_data_range": [ + "resolved_to:id" + ] + }, + { + "name": "resource_group_id", + "type": "TypeString", + "description": "ID of the resource group.", + "cloud_data_type": "resource_group", + "optional": true }, { "name": "alb_type", @@ -104433,9 +107288,15 @@ "computed": true }, { - "name": "disable_deployment", - "type": "TypeBool", - "description": "Disable the ALB instance in the cluster", + "name": "name", + "type": "TypeString", + "description": "ALB name", + "computed": true + }, + { + "name": "load_balancer_hostname", + "type": "TypeString", + "description": "Load balancer host name", "computed": true }, { @@ -104445,10 +107306,11 @@ "computed": true }, { - "name": "status", + "name": "type", "type": "TypeString", - "description": "Status of the ALB", - "computed": true + "description": "The type of ALB that you want to create.", + "immutable": true, + "required": true }, { "name": "zone", @@ -104457,61 +107319,27 @@ "immutable": true, "required": true }, - { - "name": "cluster", - "type": "TypeString", - "description": "The ID of the cluster that the ALB belongs to.", - "cloud_data_type": "cluster", - "immutable": true, - "required": true, - "cloud_data_range": [ - "resolved_to:id" - ] - }, - { - "name": "resource_group_id", - "type": "TypeString", - "description": "ID of the resource group.", - "cloud_data_type": "resource_group", - "optional": true - }, { "name": "enable", "type": "TypeBool", "description": "Enable the ALB instance in the cluster", "optional": true - } - ], - "ibm_container_vpc_cluster": [ - { - "name": "flavor", - "type": "TypeString", - "description": "Cluster nodes flavour", - "immutable": true, - "required": true - }, - { - "name": "retry_patch_version", - "type": "TypeInt", - "description": "Argument which helps to retry the patch version updates on worker nodes. Increment the value to retry the patch updates if the previous apply fails", - "optional": true }, { - "name": "service_subnet", + "name": "alb_id", "type": "TypeString", - "description": "Custom subnet CIDR to provide private IP addresses for services", + "description": "The ID of the application load balancer (ALB).", "immutable": true, - "optional": true, "computed": true }, { - "name": "operating_system", - "type": "TypeString", - "description": "The operating system of the workers in the default worker pool.", - "immutable": true, - "optional": true, + "name": "disable_deployment", + "type": "TypeBool", + "description": "Disable the ALB instance in the cluster", "computed": true - }, + } + ], + "ibm_container_vpc_cluster": [ { "name": "tags", "type": "TypeSet", @@ -104526,160 +107354,114 @@ } }, { - "name": "wait_till", - "type": "TypeString", - "description": "wait_till can be configured for Master Ready, One worker Ready or Ingress Ready or Normal", - "default_value": "IngressReady", - "optional": true + "name": "worker_labels", + "type": "TypeMap", + "description": "Labels for default worker pool", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "cos_instance_crn", + "name": "patch_version", "type": "TypeString", - "description": "A standard cloud object storage instance CRN to back up the internal registry in your OpenShift on VPC Gen 2 cluster", + "description": "Kubernetes patch version", "optional": true }, { - "name": "resource_controller_url", - "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this cluster", - "computed": true + "name": "worker_count", + "type": "TypeInt", + "description": "Number of worker nodes in the cluster", + "default_value": 1, + "optional": true }, { - "name": "resource_group_id", + "name": "secondary_storage", "type": "TypeString", - "description": "ID of the resource group.", - "cloud_data_type": "resource_group", + "description": "The secondary storage option for the default worker pool.", "immutable": true, "optional": true, "computed": true }, { - "name": "resource_crn", + "name": "wait_till", "type": "TypeString", - "description": "The crn of the resource", - "computed": true + "description": "wait_till can be configured for Master Ready, One worker Ready or Ingress Ready or Normal", + "default_value": "IngressReady", + "optional": true }, { - "name": "worker_count", - "type": "TypeInt", - "description": "Number of worker nodes in the cluster", - "default_value": 1, + "name": "crk", + "type": "TypeString", + "description": "Root Key ID for boot volume encryption", "optional": true }, { - "name": "force_delete_storage", - "type": "TypeBool", - "description": "Force the removal of a cluster and its persistent storage. Deleted data cannot be recovered", - "default_value": false, + "name": "host_pool_id", + "type": "TypeString", + "description": "The ID of the cluster's associated host pool", + "immutable": true, "optional": true }, { - "name": "image_security_enforcement", - "type": "TypeBool", - "description": "Set true to enable image security enforcement policies", - "default_value": false, - "optional": true + "name": "resource_name", + "type": "TypeString", + "description": "The name of the resource", + "computed": true }, { - "name": "master_status", + "name": "kube_version", "type": "TypeString", + "description": "Kubernetes version", + "optional": true, "computed": true }, { - "name": "host_pool_id", + "name": "operating_system", "type": "TypeString", - "description": "The ID of the cluster's associated host pool", + "description": "The operating system of the workers in the default worker pool.", "immutable": true, - "optional": true + "optional": true, + "computed": true }, { - "name": "resource_group_name", + "name": "entitlement", "type": "TypeString", - "description": "The resource group name in which resource is provisioned", - "computed": true + "description": "Entitlement option reduces additional OCP Licence cost in Openshift Clusters", + "optional": true }, { - "name": "zones", - "type": "TypeSet", - "description": "Zone info", - "required": true, - "elem": { - "name": { - "name": "name", - "type": "TypeString", - "description": "Zone for the worker pool in a multizone cluster", - "required": true - }, - "subnet_id": { - "name": "subnet_id", - "type": "TypeString", - "description": "The VPC subnet to assign the cluster", - "required": true - } - } + "name": "cos_instance_crn", + "type": "TypeString", + "description": "A standard cloud object storage instance CRN to back up the internal registry in your OpenShift on VPC Gen 2 cluster", + "optional": true }, { - "name": "wait_for_worker_update", + "name": "force_delete_storage", "type": "TypeBool", - "description": "Wait for worker node to update during kube version update.", - "default_value": true, + "description": "Force the removal of a cluster and its persistent storage. Deleted data cannot be recovered", + "default_value": false, "optional": true }, { - "name": "secondary_storage", + "name": "resource_controller_url", "type": "TypeString", - "description": "The secondary storage option for the default worker pool.", - "immutable": true, - "optional": true, + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this cluster", "computed": true }, { - "name": "ingress_secret", + "name": "kms_instance_id", "type": "TypeString", - "secure": true, - "computed": true + "description": "Instance ID for boot volume encryption", + "optional": true }, { - "name": "resource_status", + "name": "resource_crn", "type": "TypeString", - "description": "The status of the resource", + "description": "The crn of the resource", "computed": true }, - { - "name": "name", - "type": "TypeString", - "description": "The cluster name", - "immutable": true, - "required": true - }, - { - "name": "kms_config", - "type": "TypeList", - "description": "Enables KMS on a given cluster", - "optional": true, - "elem": { - "crk_id": { - "name": "crk_id", - "type": "TypeString", - "description": "ID of the customer root key.", - "required": true - }, - "instance_id": { - "name": "instance_id", - "type": "TypeString", - "description": "ID of the KMS instance to use to encrypt the cluster.", - "required": true - }, - "private_endpoint": { - "name": "private_endpoint", - "type": "TypeBool", - "description": "Specify this option to use the KMS public service endpoint.", - "default_value": false, - "optional": true - } - }, - "max_items": 1 - }, { "name": "update_all_workers", "type": "TypeBool", @@ -104688,49 +107470,41 @@ "optional": true }, { - "name": "patch_version", + "name": "vpc_id", "type": "TypeString", - "description": "Kubernetes patch version", + "description": "The vpc id where the cluster is", + "immutable": true, + "required": true + }, + { + "name": "wait_for_worker_update", + "type": "TypeBool", + "description": "Wait for worker node to update during kube version update.", + "default_value": true, "optional": true }, { - "name": "taints", - "type": "TypeSet", - "description": "WorkerPool Taints", + "name": "resource_group_id", + "type": "TypeString", + "description": "ID of the resource group.", + "cloud_data_type": "resource_group", + "immutable": true, "optional": true, - "elem": { - "effect": { - "name": "effect", - "type": "TypeString", - "description": "Effect for taint. Accepted values are NoSchedule, PreferNoSchedule and NoExecute.", - "required": true - }, - "key": { - "name": "key", - "type": "TypeString", - "description": "Key for taint", - "required": true - }, - "value": { - "name": "value", - "type": "TypeString", - "description": "Value for taint.", - "required": true - } - } + "computed": true }, { - "name": "disable_public_service_endpoint", + "name": "image_security_enforcement", "type": "TypeBool", - "description": "Boolean value true if Public service endpoint to be disabled", + "description": "Set true to enable image security enforcement policies", "default_value": false, "optional": true }, { - "name": "kms_instance_id", + "name": "name", "type": "TypeString", - "description": "Instance ID for boot volume encryption", - "optional": true + "description": "The cluster name", + "immutable": true, + "required": true }, { "name": "state", @@ -104785,49 +107559,85 @@ } }, { - "name": "public_service_endpoint_url", + "name": "private_service_endpoint_url", "type": "TypeString", "computed": true }, { - "name": "private_service_endpoint_url", + "name": "disable_public_service_endpoint", + "type": "TypeBool", + "description": "Boolean value true if Public service endpoint to be disabled", + "default_value": false, + "optional": true + }, + { + "name": "zones", + "type": "TypeSet", + "description": "Zone info", + "required": true, + "elem": { + "name": { + "name": "name", + "type": "TypeString", + "description": "Zone for the worker pool in a multizone cluster", + "required": true + }, + "subnet_id": { + "name": "subnet_id", + "type": "TypeString", + "description": "The VPC subnet to assign the cluster", + "required": true + } + } + }, + { + "name": "retry_patch_version", + "type": "TypeInt", + "description": "Argument which helps to retry the patch version updates on worker nodes. Increment the value to retry the patch updates if the previous apply fails", + "optional": true + }, + { + "name": "pod_subnet", "type": "TypeString", + "description": "Custom subnet CIDR to provide private IP addresses for pods", + "immutable": true, + "optional": true, "computed": true }, { - "name": "vpc_id", + "name": "master_url", "type": "TypeString", - "description": "The vpc id where the cluster is", - "immutable": true, - "required": true + "computed": true }, { - "name": "worker_labels", - "type": "TypeMap", - "description": "Labels for default worker pool", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "crn", + "type": "TypeString", + "description": "CRN of resource instance", + "cloud_data_type": "crn", + "computed": true }, { - "name": "crk", + "name": "ingress_hostname", "type": "TypeString", - "description": "Root Key ID for boot volume encryption", - "optional": true + "computed": true }, { - "name": "kube_version", + "name": "ingress_secret", "type": "TypeString", - "description": "Kubernetes version", - "optional": true, + "secure": true, "computed": true }, { - "name": "pod_subnet", + "name": "flavor", "type": "TypeString", - "description": "Custom subnet CIDR to provide private IP addresses for pods", + "description": "Cluster nodes flavour", + "immutable": true, + "required": true + }, + { + "name": "service_subnet", + "type": "TypeString", + "description": "Custom subnet CIDR to provide private IP addresses for services", "immutable": true, "optional": true, "computed": true @@ -104839,36 +107649,90 @@ "optional": true }, { - "name": "master_url", + "name": "master_status", "type": "TypeString", "computed": true }, { - "name": "resource_name", + "name": "resource_status", "type": "TypeString", - "description": "The name of the resource", + "description": "The status of the resource", "computed": true }, { - "name": "entitlement", - "type": "TypeString", - "description": "Entitlement option reduces additional OCP Licence cost in Openshift Clusters", - "optional": true + "name": "kms_config", + "type": "TypeList", + "description": "Enables KMS on a given cluster", + "optional": true, + "elem": { + "crk_id": { + "name": "crk_id", + "type": "TypeString", + "description": "ID of the customer root key.", + "required": true + }, + "instance_id": { + "name": "instance_id", + "type": "TypeString", + "description": "ID of the KMS instance to use to encrypt the cluster.", + "required": true + }, + "private_endpoint": { + "name": "private_endpoint", + "type": "TypeBool", + "description": "Specify this option to use the KMS public service endpoint.", + "default_value": false, + "optional": true + } + }, + "max_items": 1 }, { - "name": "crn", + "name": "public_service_endpoint_url", "type": "TypeString", - "description": "CRN of resource instance", - "cloud_data_type": "crn", "computed": true }, { - "name": "ingress_hostname", + "name": "resource_group_name", "type": "TypeString", + "description": "The resource group name in which resource is provisioned", "computed": true + }, + { + "name": "taints", + "type": "TypeSet", + "description": "WorkerPool Taints", + "optional": true, + "elem": { + "effect": { + "name": "effect", + "type": "TypeString", + "description": "Effect for taint. Accepted values are NoSchedule, PreferNoSchedule and NoExecute.", + "required": true + }, + "key": { + "name": "key", + "type": "TypeString", + "description": "Key for taint", + "required": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "Value for taint.", + "required": true + } + } } ], "ibm_container_vpc_worker": [ + { + "name": "replace_worker", + "type": "TypeString", + "description": "Worker name/id that needs to be replaced", + "immutable": true, + "required": true + }, { "name": "check_ptx_status", "type": "TypeBool", @@ -104886,17 +107750,29 @@ "optional": true }, { - "name": "replace_worker", + "name": "ip", "type": "TypeString", - "description": "Worker name/id that needs to be replaced", + "description": "IP of the replaced worker", + "computed": true + }, + { + "name": "cluster_name", + "type": "TypeString", + "description": "Cluster name", "immutable": true, "required": true }, { - "name": "resource_group_id", + "name": "sds", "type": "TypeString", - "description": "ID of the resource group.", - "cloud_data_type": "resource_group", + "description": "Name of Software Defined Storage", + "immutable": true, + "optional": true + }, + { + "name": "kube_config_path", + "type": "TypeString", + "description": "Path of downloaded cluster config", "immutable": true, "optional": true }, @@ -104909,34 +107785,67 @@ "optional": true }, { - "name": "kube_config_path", + "name": "resource_group_id", "type": "TypeString", - "description": "Path of downloaded cluster config", + "description": "ID of the resource group.", + "cloud_data_type": "resource_group", "immutable": true, "optional": true + } + ], + "ibm_container_vpc_worker_pool": [ + { + "name": "entitlement", + "type": "TypeString", + "description": "Entitlement option reduces additional OCP Licence cost in Openshift Clusters", + "optional": true }, { - "name": "ip", + "name": "operating_system", "type": "TypeString", - "description": "IP of the replaced worker", + "description": "The operating system of the workers in the worker pool.", + "immutable": true, + "optional": true, "computed": true }, { - "name": "cluster_name", + "name": "vpc_id", "type": "TypeString", - "description": "Cluster name", + "description": "The vpc id where the cluster is", "immutable": true, "required": true }, { - "name": "sds", + "name": "resource_controller_url", "type": "TypeString", - "description": "Name of Software Defined Storage", + "description": "Resource Controller URL", + "computed": true + }, + { + "name": "worker_pool_name", + "type": "TypeString", + "description": "worker pool name", "immutable": true, - "optional": true - } - ], - "ibm_container_vpc_worker_pool": [ + "required": true + }, + { + "name": "labels", + "type": "TypeMap", + "description": "Labels", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "secondary_storage", + "type": "TypeString", + "description": "The secondary storage option for the workers in the worker pool.", + "immutable": true, + "optional": true, + "computed": true + }, { "name": "host_pool_id", "type": "TypeString", @@ -104951,31 +107860,41 @@ "optional": true }, { - "name": "worker_pool_name", + "name": "crk", "type": "TypeString", - "description": "worker pool name", - "immutable": true, - "required": true + "description": "Root Key ID for boot volume encryption", + "optional": true }, { - "name": "zones", - "type": "TypeSet", - "description": "Zones info", + "name": "kms_account_id", + "type": "TypeString", + "description": "Account ID of kms instance holder - if not provided, defaults to the account in use", + "optional": true + }, + { + "name": "cluster", + "type": "TypeString", + "description": "Cluster name", + "cloud_data_type": "cluster", + "immutable": true, "required": true, - "elem": { - "name": { - "name": "name", - "type": "TypeString", - "description": "zone name", - "required": true - }, - "subnet_id": { - "name": "subnet_id", - "type": "TypeString", - "description": "subnet ID", - "required": true - } - } + "cloud_data_range": [ + "resolved_to:id" + ] + }, + { + "name": "resource_group_id", + "type": "TypeString", + "description": "ID of the resource group.", + "cloud_data_type": "resource_group", + "immutable": true, + "optional": true, + "computed": true + }, + { + "name": "worker_pool_id", + "type": "TypeString", + "computed": true }, { "name": "taints", @@ -105003,39 +107922,6 @@ } } }, - { - "name": "operating_system", - "type": "TypeString", - "description": "The operating system of the workers in the worker pool.", - "immutable": true, - "optional": true, - "computed": true - }, - { - "name": "secondary_storage", - "type": "TypeString", - "description": "The secondary storage option for the workers in the worker pool.", - "immutable": true, - "optional": true, - "computed": true - }, - { - "name": "kms_account_id", - "type": "TypeString", - "description": "Account ID of kms instance holder - if not provided, defaults to the account in use", - "optional": true - }, - { - "name": "autoscale_enabled", - "type": "TypeBool", - "description": "Autoscaling is enabled on the workerpool", - "computed": true - }, - { - "name": "worker_pool_id", - "type": "TypeString", - "computed": true - }, { "name": "worker_count", "type": "TypeInt", @@ -105043,41 +107929,11 @@ "required": true }, { - "name": "resource_controller_url", - "type": "TypeString", - "description": "Resource Controller URL", + "name": "autoscale_enabled", + "type": "TypeBool", + "description": "Autoscaling is enabled on the workerpool", "computed": true }, - { - "name": "crk", - "type": "TypeString", - "description": "Root Key ID for boot volume encryption", - "optional": true - }, - { - "name": "vpc_id", - "type": "TypeString", - "description": "The vpc id where the cluster is", - "immutable": true, - "required": true - }, - { - "name": "entitlement", - "type": "TypeString", - "description": "Entitlement option reduces additional OCP Licence cost in Openshift Clusters", - "optional": true - }, - { - "name": "cluster", - "type": "TypeString", - "description": "Cluster name", - "cloud_data_type": "cluster", - "immutable": true, - "required": true, - "cloud_data_range": [ - "resolved_to:id" - ] - }, { "name": "flavor", "type": "TypeString", @@ -105086,40 +107942,37 @@ "required": true }, { - "name": "labels", - "type": "TypeMap", - "description": "Labels", - "optional": true, - "computed": true, + "name": "zones", + "type": "TypeSet", + "description": "Zones info", + "required": true, "elem": { - "type": "TypeString" + "name": { + "name": "name", + "type": "TypeString", + "description": "zone name", + "required": true + }, + "subnet_id": { + "name": "subnet_id", + "type": "TypeString", + "description": "subnet ID", + "required": true + } } - }, - { - "name": "resource_group_id", - "type": "TypeString", - "description": "ID of the resource group.", - "cloud_data_type": "resource_group", - "immutable": true, - "optional": true, - "computed": true } ], "ibm_container_worker_pool": [ { - "name": "hardware", - "type": "TypeString", - "description": "Hardware type", - "default_value": "shared", - "immutable": true, - "optional": true - }, - { - "name": "worker_pool_name", + "name": "cluster", "type": "TypeString", - "description": "worker pool name", + "description": "Cluster name", + "cloud_data_type": "cluster", "immutable": true, - "required": true + "required": true, + "cloud_data_range": [ + "resolved_to:id" + ] }, { "name": "entitlement", @@ -105127,14 +107980,6 @@ "description": "Entitlement option reduces additional OCP Licence cost in Openshift Clusters", "optional": true }, - { - "name": "operating_system", - "type": "TypeString", - "description": "The operating system of the workers in the worker pool.", - "immutable": true, - "optional": true, - "computed": true - }, { "name": "worker_pool_id", "type": "TypeString", @@ -105167,21 +108012,10 @@ } }, { - "name": "region", - "type": "TypeString", - "description": "The worker pool region", - "cloud_data_type": "region", - "optional": true, - "computed": true, - "deprecated": "This field is deprecated" - }, - { - "name": "resource_group_id", - "type": "TypeString", - "description": "ID of the resource group.", - "cloud_data_type": "resource_group", - "immutable": true, - "optional": true + "name": "autoscale_enabled", + "type": "TypeBool", + "description": "Autoscaling is enabled on the workerpool", + "computed": true }, { "name": "machine_type", @@ -105191,10 +108025,12 @@ "required": true }, { - "name": "size_per_zone", - "type": "TypeInt", - "description": "Number of nodes per zone", - "required": true + "name": "hardware", + "type": "TypeString", + "description": "Hardware type", + "default_value": "shared", + "immutable": true, + "optional": true }, { "name": "state", @@ -105203,37 +108039,27 @@ "computed": true }, { - "name": "labels", - "type": "TypeMap", - "description": "list of labels to worker pool", + "name": "region", + "type": "TypeString", + "description": "The worker pool region", + "cloud_data_type": "region", "optional": true, "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "resource_controller_url", - "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this cluster", - "computed": true + "deprecated": "This field is deprecated" }, { - "name": "autoscale_enabled", - "type": "TypeBool", - "description": "Autoscaling is enabled on the workerpool", - "computed": true + "name": "size_per_zone", + "type": "TypeInt", + "description": "Number of nodes per zone", + "required": true }, { - "name": "cluster", + "name": "operating_system", "type": "TypeString", - "description": "Cluster name", - "cloud_data_type": "cluster", + "description": "The operating system of the workers in the worker pool.", "immutable": true, - "required": true, - "cloud_data_range": [ - "resolved_to:id" - ] + "optional": true, + "computed": true }, { "name": "disk_encryption", @@ -105243,6 +108069,27 @@ "immutable": true, "optional": true }, + { + "name": "resource_group_id", + "type": "TypeString", + "description": "ID of the resource group.", + "cloud_data_type": "resource_group", + "immutable": true, + "optional": true + }, + { + "name": "resource_controller_url", + "type": "TypeString", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this cluster", + "computed": true + }, + { + "name": "worker_pool_name", + "type": "TypeString", + "description": "worker pool name", + "immutable": true, + "required": true + }, { "name": "zones", "type": "TypeList", @@ -105269,9 +108116,33 @@ "computed": true } } + }, + { + "name": "labels", + "type": "TypeMap", + "description": "list of labels to worker pool", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } } ], "ibm_container_worker_pool_zone_attachment": [ + { + "name": "wait_till_albs", + "type": "TypeBool", + "description": "wait_till_albs can be configured to wait for albs during the worker pool zone attachment.", + "default_value": true, + "optional": true + }, + { + "name": "zone", + "type": "TypeString", + "description": "Zone name", + "immutable": true, + "required": true + }, { "name": "cluster", "type": "TypeString", @@ -105283,12 +108154,30 @@ "resolved_to:id" ] }, + { + "name": "private_vlan_id", + "type": "TypeString", + "optional": true, + "computed": true + }, { "name": "public_vlan_id", "type": "TypeString", "optional": true, "computed": true }, + { + "name": "worker_count", + "type": "TypeInt", + "computed": true + }, + { + "name": "worker_pool", + "type": "TypeString", + "description": "Workerpool name", + "immutable": true, + "required": true + }, { "name": "resource_group_id", "type": "TypeString", @@ -105305,41 +108194,16 @@ "optional": true, "computed": true, "deprecated": "This field is deprecated" - }, - { - "name": "zone", - "type": "TypeString", - "description": "Zone name", - "immutable": true, - "required": true - }, + } + ], + "ibm_cos_bucket": [ { - "name": "worker_pool", + "name": "kms_key_crn", "type": "TypeString", - "description": "Workerpool name", + "description": "CRN of the key you want to use data at rest encryption", "immutable": true, - "required": true - }, - { - "name": "private_vlan_id", - "type": "TypeString", - "optional": true, - "computed": true - }, - { - "name": "worker_count", - "type": "TypeInt", - "computed": true - }, - { - "name": "wait_till_albs", - "type": "TypeBool", - "description": "wait_till_albs can be configured to wait for albs during the worker pool zone attachment.", - "default_value": true, "optional": true - } - ], - "ibm_cos_bucket": [ + }, { "name": "single_site_location", "type": "TypeString", @@ -105349,19 +108213,39 @@ "optional": true }, { - "name": "region_location", + "name": "s3_endpoint_public", "type": "TypeString", - "description": "Region Location info.", - "immutable": true, - "optional": true + "description": "Public endpoint for the COS bucket", + "computed": true }, { - "name": "cross_region_location", - "type": "TypeString", - "description": "Cros region location info", - "immutable": true, - "options": "us,eu,ap", - "optional": true + "name": "metrics_monitoring", + "type": "TypeList", + "description": "Enables sending metrics to IBM Cloud Monitoring.", + "optional": true, + "elem": { + "metrics_monitoring_crn": { + "name": "metrics_monitoring_crn", + "type": "TypeString", + "description": "Instance of IBM Cloud Monitoring that will receive the bucket metrics.", + "required": true + }, + "request_metrics_enabled": { + "name": "request_metrics_enabled", + "type": "TypeBool", + "description": "Request metrics will be sent to the monitoring service.", + "default_value": false, + "optional": true + }, + "usage_metrics_enabled": { + "name": "usage_metrics_enabled", + "type": "TypeBool", + "description": "Usage metrics will be sent to the monitoring service.", + "default_value": false, + "optional": true + } + }, + "max_items": 1 }, { "name": "abort_incomplete_multipart_upload_days", @@ -105399,41 +108283,91 @@ "max_items": 1 }, { - "name": "kms_key_crn", - "type": "TypeString", - "description": "CRN of the key you want to use data at rest encryption", - "immutable": true, - "optional": true - }, - { - "name": "activity_tracking", + "name": "retention_rule", "type": "TypeList", - "description": "Enables sending log data to Activity Tracker and LogDNA to provide visibility into object read and write events", + "description": "A retention policy is enabled at the IBM Cloud Object Storage bucket level. Minimum, maximum and default retention period are defined by this policy and apply to all objects in the bucket.", + "immutable": true, "optional": true, "elem": { - "activity_tracker_crn": { - "name": "activity_tracker_crn", - "type": "TypeString", - "description": "The instance of Activity Tracker that will receive object event data", + "default": { + "name": "default", + "type": "TypeInt", + "description": "If an object is stored in the bucket without specifying a custom retention period.", "required": true }, - "read_data_events": { - "name": "read_data_events", + "maximum": { + "name": "maximum", + "type": "TypeInt", + "description": "Maximum duration of time an object can be kept unmodified in the bucket.", + "required": true + }, + "minimum": { + "name": "minimum", + "type": "TypeInt", + "description": "Minimum duration of time an object must be kept unmodified in the bucket", + "required": true + }, + "permanent": { + "name": "permanent", "type": "TypeBool", - "description": "If set to true, all object read events will be sent to Activity Tracker.", + "description": "Enable or disable the permanent retention policy on the bucket", "default_value": false, "optional": true - }, - "write_data_events": { - "name": "write_data_events", + } + }, + "max_items": 1 + }, + { + "name": "object_versioning", + "type": "TypeList", + "description": "Protect objects from accidental deletion or overwrites. Versioning allows you to keep multiple versions of an object protecting from unintentional data loss.", + "optional": true, + "elem": { + "enable": { + "name": "enable", "type": "TypeBool", - "description": "If set to true, all object write events will be sent to Activity Tracker.", + "description": "Enable or suspend the versioning for objects in the bucket", "default_value": false, "optional": true } }, "max_items": 1 }, + { + "name": "resource_instance_id", + "type": "TypeString", + "description": "resource instance ID", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true, + "matches": "^crn:.+:.+:.+:.+:.+:a\\/[0-9a-f]{32}:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\:\\:$", + "cloud_data_range": [ + "service:cloud-object-storage" + ] + }, + { + "name": "key_protect", + "type": "TypeString", + "description": "CRN of the key you want to use data at rest encryption", + "immutable": true, + "optional": true + }, + { + "name": "satellite_location_id", + "type": "TypeString", + "description": "Provide satellite location info.", + "immutable": true, + "optional": true + }, + { + "name": "allowed_ip", + "type": "TypeList", + "description": "List of IPv4 or IPv6 addresses", + "optional": true, + "elem": { + "type": "TypeString" + } + }, { "name": "archive_rule", "type": "TypeList", @@ -105469,83 +108403,51 @@ "max_items": 1 }, { - "name": "object_lock", - "type": "TypeBool", - "description": "Enable objectlock for the bucket. When enabled, buckets within the container vault can have Object Lock Configuration applied to the bucket.", - "optional": true - }, - { - "name": "allowed_ip", - "type": "TypeList", - "description": "List of IPv4 or IPv6 addresses", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "object_versioning", + "name": "expire_rule", "type": "TypeList", - "description": "Protect objects from accidental deletion or overwrites. Versioning allows you to keep multiple versions of an object protecting from unintentional data loss.", + "description": "Enable configuration expire_rule to COS Bucket after a defined period of time", "optional": true, "elem": { + "date": { + "name": "date", + "type": "TypeString", + "description": "Specify a rule to expire the current version of objects in bucket after a specific date.", + "optional": true + }, + "days": { + "name": "days", + "type": "TypeInt", + "description": "Specifies the number of days when the specific rule action takes effect.", + "optional": true + }, "enable": { "name": "enable", "type": "TypeBool", - "description": "Enable or suspend the versioning for objects in the bucket", - "default_value": false, + "description": "Enable or disable an expire rule for a bucket", + "required": true + }, + "expired_object_delete_marker": { + "name": "expired_object_delete_marker", + "type": "TypeBool", + "description": "Expired object delete markers can be automatically cleaned up to improve performance in bucket. This cannot be used alongside version expiration.", "optional": true + }, + "prefix": { + "name": "prefix", + "type": "TypeString", + "description": "The rule applies to any objects with keys that match this prefix", + "optional": true, + "computed": true + }, + "rule_id": { + "name": "rule_id", + "type": "TypeString", + "description": "Unique identifier for the rule.Expire rules allow you to set a specific time frame after which objects are deleted. Set Rule ID for cos bucket", + "optional": true, + "computed": true } }, - "max_items": 1 - }, - { - "name": "bucket_name", - "type": "TypeString", - "description": "COS Bucket name", - "immutable": true, - "required": true - }, - { - "name": "resource_instance_id", - "type": "TypeString", - "description": "resource instance ID", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true, - "matches": "^crn:.+:.+:.+:.+:.+:a\\/[0-9a-f]{32}:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\:\\:$", - "cloud_data_range": [ - "service:cloud-object-storage" - ] - }, - { - "name": "storage_class", - "type": "TypeString", - "description": "Storage class info", - "immutable": true, - "options": "standard,vault,cold,smart,flex,onerate_active", - "optional": true, - "computed": true - }, - { - "name": "endpoint_type", - "type": "TypeString", - "description": "public or private", - "default_value": "public", - "options": "public,private,direct", - "optional": true - }, - { - "name": "s3_endpoint_private", - "type": "TypeString", - "description": "Private endpoint for the COS bucket", - "computed": true - }, - { - "name": "s3_endpoint_direct", - "type": "TypeString", - "description": "Direct endpoint for the COS bucket", - "computed": true + "max_items": 1000 }, { "name": "noncurrent_version_expiration", @@ -105583,46 +108485,25 @@ "max_items": 1 }, { - "name": "retention_rule", - "type": "TypeList", - "description": "A retention policy is enabled at the IBM Cloud Object Storage bucket level. Minimum, maximum and default retention period are defined by this policy and apply to all objects in the bucket.", - "immutable": true, - "optional": true, - "elem": { - "default": { - "name": "default", - "type": "TypeInt", - "description": "If an object is stored in the bucket without specifying a custom retention period.", - "required": true - }, - "maximum": { - "name": "maximum", - "type": "TypeInt", - "description": "Maximum duration of time an object can be kept unmodified in the bucket.", - "required": true - }, - "minimum": { - "name": "minimum", - "type": "TypeInt", - "description": "Minimum duration of time an object must be kept unmodified in the bucket", - "required": true - }, - "permanent": { - "name": "permanent", - "type": "TypeBool", - "description": "Enable or disable the permanent retention policy on the bucket", - "default_value": false, - "optional": true - } - }, - "max_items": 1 + "name": "force_delete", + "type": "TypeBool", + "description": "COS buckets need to be empty before they can be deleted. force_delete option empty the bucket and delete it.", + "default_value": true, + "optional": true }, { - "name": "hard_quota", - "type": "TypeInt", - "description": "sets a maximum amount of storage (in bytes) available for a bucket", + "name": "object_lock", + "type": "TypeBool", + "description": "Enable objectlock for the bucket. When enabled, buckets within the container vault can have Object Lock Configuration applied to the bucket.", "optional": true }, + { + "name": "bucket_name", + "type": "TypeString", + "description": "COS Bucket name", + "immutable": true, + "required": true + }, { "name": "crn", "type": "TypeString", @@ -105631,48 +108512,72 @@ "computed": true }, { - "name": "key_protect", + "name": "cross_region_location", "type": "TypeString", - "description": "CRN of the key you want to use data at rest encryption", + "description": "Cros region location info", "immutable": true, + "options": "us,eu,ap", "optional": true }, { - "name": "satellite_location_id", + "name": "endpoint_type", "type": "TypeString", - "description": "Provide satellite location info.", + "description": "public or private", + "default_value": "public", + "options": "public,private,direct", + "optional": true + }, + { + "name": "s3_endpoint_private", + "type": "TypeString", + "description": "Private endpoint for the COS bucket", + "computed": true + }, + { + "name": "region_location", + "type": "TypeString", + "description": "Region Location info.", "immutable": true, "optional": true }, { - "name": "s3_endpoint_public", + "name": "storage_class", "type": "TypeString", - "description": "Public endpoint for the COS bucket", + "description": "Storage class info", + "immutable": true, + "options": "standard,vault,cold,smart,flex,onerate_active", + "optional": true, "computed": true }, { - "name": "metrics_monitoring", + "name": "s3_endpoint_direct", + "type": "TypeString", + "description": "Direct endpoint for the COS bucket", + "computed": true + }, + { + "name": "activity_tracking", "type": "TypeList", - "description": "Enables sending metrics to IBM Cloud Monitoring.", + "description": "Enables sending log data to Activity Tracker and LogDNA to provide visibility into object read and write events", "optional": true, "elem": { - "metrics_monitoring_crn": { - "name": "metrics_monitoring_crn", + "activity_tracker_crn": { + "name": "activity_tracker_crn", "type": "TypeString", - "description": "Instance of IBM Cloud Monitoring that will receive the bucket metrics.", + "description": "The instance of Activity Tracker that will receive object event data", "required": true }, - "request_metrics_enabled": { - "name": "request_metrics_enabled", + "read_data_events": { + "name": "read_data_events", "type": "TypeBool", - "description": "Request metrics will be sent to the monitoring service.", + "description": "If set to true, all object read events will be sent to Activity Tracker.", "default_value": false, "optional": true }, - "usage_metrics_enabled": { - "name": "usage_metrics_enabled", + "write_data_events": { + "name": "write_data_events", "type": "TypeBool", - "description": "Usage metrics will be sent to the monitoring service.", + "description": "If set to true, all object write events will be sent to Activity Tracker.", "default_value": false, "optional": true } @@ -105680,108 +108585,73 @@ "max_items": 1 }, { - "name": "expire_rule", - "type": "TypeList", - "description": "Enable configuration expire_rule to COS Bucket after a defined period of time", - "optional": true, - "elem": { - "date": { - "name": "date", - "type": "TypeString", - "description": "Specify a rule to expire the current version of objects in bucket after a specific date.", - "optional": true - }, - "days": { - "name": "days", - "type": "TypeInt", - "description": "Specifies the number of days when the specific rule action takes effect.", - "optional": true - }, - "enable": { - "name": "enable", - "type": "TypeBool", - "description": "Enable or disable an expire rule for a bucket", - "required": true - }, - "expired_object_delete_marker": { - "name": "expired_object_delete_marker", - "type": "TypeBool", - "description": "Expired object delete markers can be automatically cleaned up to improve performance in bucket. This cannot be used alongside version expiration.", - "optional": true - }, - "prefix": { - "name": "prefix", - "type": "TypeString", - "description": "The rule applies to any objects with keys that match this prefix", - "optional": true, - "computed": true - }, - "rule_id": { - "name": "rule_id", - "type": "TypeString", - "description": "Unique identifier for the rule.Expire rules allow you to set a specific time frame after which objects are deleted. Set Rule ID for cos bucket", - "optional": true, - "computed": true - } - }, - "max_items": 1000 - }, - { - "name": "force_delete", - "type": "TypeBool", - "description": "COS buckets need to be empty before they can be deleted. force_delete option empty the bucket and delete it.", - "default_value": true, + "name": "hard_quota", + "type": "TypeInt", + "description": "sets a maximum amount of storage (in bytes) available for a bucket", "optional": true } ], "ibm_cos_bucket_object": [ { - "name": "force_delete", - "type": "TypeBool", - "description": "COS buckets need to be empty before they can be deleted. force_delete option empty the bucket and delete it.", - "default_value": true, - "optional": true + "name": "content_length", + "type": "TypeInt", + "description": "COS object content length", + "computed": true }, { - "name": "object_lock_retain_until_date", + "name": "object_sql_url", "type": "TypeString", - "description": "An object cannot be deleted when the current time is earlier than the retainUntilDate. After this date, the object can be deleted.", + "description": "Access the object using an SQL Query instance.The reference url is used to perform queries against objects storing structured data.", + "computed": true + }, + { + "name": "object_lock_mode", + "type": "TypeString", + "description": "Retention modes apply different levels of protection to the objects.", "optional": true }, { - "name": "last_modified", + "name": "website_redirect", "type": "TypeString", - "description": "COS object last modified date", - "computed": true + "description": "Redirect a request to another object or an URL", + "optional": true }, { - "name": "content_length", - "type": "TypeInt", - "description": "COS object content length", + "name": "body", + "type": "TypeString", + "description": "COS object body", "computed": true }, { - "name": "object_sql_url", + "name": "bucket_crn", "type": "TypeString", - "description": "Access the object using an SQL Query instance.The reference url is used to perform queries against objects storing structured data.", - "computed": true + "description": "COS bucket CRN", + "immutable": true, + "required": true }, { - "name": "object_lock_legal_hold_status", + "name": "content_file", "type": "TypeString", - "description": "An object lock configuration on the object, the valid states are ON/OFF. When ON prevents deletion of the object version.", + "description": "COS object content file path", "optional": true }, { - "name": "website_redirect", + "name": "last_modified", "type": "TypeString", - "description": "Redirect a request to another object or an URL", + "description": "COS object last modified date", + "computed": true + }, + { + "name": "force_delete", + "type": "TypeBool", + "description": "COS buckets need to be empty before they can be deleted. force_delete option empty the bucket and delete it.", + "default_value": true, "optional": true }, { - "name": "content", + "name": "object_lock_retain_until_date", "type": "TypeString", - "description": "COS object content", + "description": "An object cannot be deleted when the current time is earlier than the retainUntilDate. After this date, the object can be deleted.", "optional": true }, { @@ -105792,9 +108662,9 @@ "required": true }, { - "name": "content_file", + "name": "content_base64", "type": "TypeString", - "description": "COS object content file path", + "description": "COS object content in base64 encoding", "optional": true }, { @@ -105810,16 +108680,15 @@ "computed": true }, { - "name": "bucket_crn", + "name": "object_lock_legal_hold_status", "type": "TypeString", - "description": "COS bucket CRN", - "immutable": true, - "required": true + "description": "An object lock configuration on the object, the valid states are ON/OFF. When ON prevents deletion of the object version.", + "optional": true }, { - "name": "content_base64", + "name": "content", "type": "TypeString", - "description": "COS object content in base64 encoding", + "description": "COS object content", "optional": true }, { @@ -105841,21 +108710,30 @@ "description": "COS object key", "immutable": true, "required": true + } + ], + "ibm_cos_bucket_object_lock_configuration": [ + { + "name": "bucket_crn", + "type": "TypeString", + "description": "COS bucket CRN", + "immutable": true, + "required": true }, { - "name": "object_lock_mode", + "name": "bucket_location", "type": "TypeString", - "description": "Retention modes apply different levels of protection to the objects.", - "optional": true + "description": "COS bucket location", + "immutable": true, + "required": true }, { - "name": "body", + "name": "endpoint_type", "type": "TypeString", - "description": "COS object body", - "computed": true - } - ], - "ibm_cos_bucket_object_lock_configuration": [ + "description": "COS endpoint type: public, private, direct", + "default_value": "public", + "optional": true + }, { "name": "object_lock_configuration", "type": "TypeList", @@ -105905,27 +108783,6 @@ } }, "max_items": 1 - }, - { - "name": "bucket_crn", - "type": "TypeString", - "description": "COS bucket CRN", - "immutable": true, - "required": true - }, - { - "name": "bucket_location", - "type": "TypeString", - "description": "COS bucket location", - "immutable": true, - "required": true - }, - { - "name": "endpoint_type", - "type": "TypeString", - "description": "COS endpoint type: public, private, direct", - "default_value": "public", - "optional": true } ], "ibm_cos_bucket_replication_rule": [ @@ -105999,6 +108856,13 @@ } ], "ibm_cos_bucket_website_configuration": [ + { + "name": "bucket_crn", + "type": "TypeString", + "description": "COS bucket CRN", + "immutable": true, + "required": true + }, { "name": "bucket_location", "type": "TypeString", @@ -106149,70 +109013,9 @@ "name": "website_endpoint", "type": "TypeString", "computed": true - }, - { - "name": "bucket_crn", - "type": "TypeString", - "description": "COS bucket CRN", - "immutable": true, - "required": true } ], "ibm_cr_namespace": [ - { - "name": "resource_created_date", - "type": "TypeString", - "description": "When the namespace was assigned to a resource group.", - "computed": true - }, - { - "name": "updated_on", - "type": "TypeString", - "description": "When the namespace was last updated.", - "computed": true, - "deprecated": "This field is deprecated" - }, - { - "name": "name", - "type": "TypeString", - "description": "The name of the namespace.", - "immutable": true, - "required": true, - "min_length": 4, - "max_length": 30, - "matches": "^[a-z0-9]+[a-z0-9_-]+[a-z0-9]+$" - }, - { - "name": "resource_group_id", - "type": "TypeString", - "description": "The ID of the resource group that the namespace will be created within.", - "cloud_data_type": "resource_group", - "immutable": true, - "optional": true, - "computed": true - }, - { - "name": "tags", - "type": "TypeSet", - "description": "List of tags", - "cloud_data_type": "tags", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "created_date", - "type": "TypeString", - "description": "When the namespace was created.", - "computed": true - }, - { - "name": "account", - "type": "TypeString", - "description": "The IBM Cloud account that owns the namespace.", - "computed": true - }, { "name": "crn", "type": "TypeString", @@ -106221,9 +109024,9 @@ "computed": true }, { - "name": "updated_date", + "name": "resource_created_date", "type": "TypeString", - "description": "When the namespace was last updated.", + "description": "When the namespace was assigned to a resource group.", "computed": true }, { @@ -106232,441 +109035,122 @@ "description": "When the namespace was created.", "computed": true, "deprecated": "This field is deprecated" - } - ], - "ibm_cr_retention_policy": [ - { - "name": "namespace", - "type": "TypeString", - "description": "The namespace to which the retention policy is attached.", - "required": true - }, - { - "name": "images_per_repo", - "type": "TypeInt", - "description": "Determines how many images will be retained for each repository when the retention policy is executed. The value -1 denotes 'Unlimited' (all images are retained).", - "required": true - }, - { - "name": "retain_untagged", - "type": "TypeBool", - "description": "Determines if untagged images are retained when executing the retention policy. This is false by default meaning untagged images will be deleted when the policy is executed.", - "default_value": false, - "optional": true - } - ], - "ibm_database": [ - { - "name": "resource_group_name", - "type": "TypeString", - "description": "The resource group name in which resource is provisioned", - "computed": true - }, - { - "name": "resource_controller_url", - "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about the resource", - "computed": true - }, - { - "name": "plan_validation", - "type": "TypeBool", - "description": "For elasticsearch and postgres perform database parameter validation during the plan phase. Otherwise, database parameter validation happens in apply phase.", - "default_value": true, - "optional": true - }, - { - "name": "remote_leader_id", - "type": "TypeString", - "description": "The CRN of leader database", - "optional": true - }, - { - "name": "backup_encryption_key_crn", - "type": "TypeString", - "description": "The Backup Encryption Key CRN", - "immutable": true, - "optional": true - }, - { - "name": "users", - "type": "TypeSet", - "optional": true, - "elem": { - "name": { - "name": "name", - "type": "TypeString", - "description": "User name", - "required": true - }, - "password": { - "name": "password", - "type": "TypeString", - "description": "User password", - "secure": true, - "required": true - }, - "role": { - "name": "role", - "type": "TypeString", - "description": "User role. Only available for ops_manager user type.", - "optional": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "User type", - "default_value": "database", - "optional": true - } - } - }, - { - "name": "connectionstrings", - "type": "TypeList", - "computed": true, - "elem": { - "bundlebase64": { - "name": "bundlebase64", - "type": "TypeString", - "description": "Cassandra base64 encoding", - "computed": true - }, - "bundlename": { - "name": "bundlename", - "type": "TypeString", - "description": "Cassandra Bundle Name", - "computed": true - }, - "certbase64": { - "name": "certbase64", - "type": "TypeString", - "description": "Certificate in base64 encoding", - "computed": true - }, - "certname": { - "name": "certname", - "type": "TypeString", - "description": "Certificate Name", - "computed": true - }, - "composed": { - "name": "composed", - "type": "TypeString", - "description": "Connection string", - "computed": true - }, - "database": { - "name": "database", - "type": "TypeString", - "description": "DB name", - "computed": true - }, - "hosts": { - "name": "hosts", - "type": "TypeList", - "optional": true, - "elem": { - "hostname": { - "name": "hostname", - "type": "TypeString", - "description": "DB host name", - "computed": true - }, - "port": { - "name": "port", - "type": "TypeString", - "description": "DB port", - "computed": true - } - } - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "User name", - "computed": true - }, - "password": { - "name": "password", - "type": "TypeString", - "description": "Password", - "computed": true - }, - "path": { - "name": "path", - "type": "TypeString", - "description": "DB path", - "computed": true - }, - "queryoptions": { - "name": "queryoptions", - "type": "TypeString", - "description": "DB query options", - "computed": true - }, - "scheme": { - "name": "scheme", - "type": "TypeString", - "description": "DB scheme", - "computed": true - } - }, - "deprecated": "This field is deprecated, please use ibm_database_connection instead" - }, - { - "name": "auto_scaling", - "type": "TypeList", - "description": "ICD Auto Scaling", - "optional": true, - "computed": true, - "elem": { - "cpu": { - "name": "cpu", - "type": "TypeList", - "description": "CPU Auto Scaling", - "optional": true, - "computed": true, - "elem": { - "rate_increase_percent": { - "name": "rate_increase_percent", - "type": "TypeInt", - "description": "Auto Scaling Rate: Increase Percent", - "optional": true, - "computed": true - }, - "rate_limit_count_per_member": { - "name": "rate_limit_count_per_member", - "type": "TypeInt", - "description": "Auto Scaling Rate: Limit count per number", - "optional": true, - "computed": true - }, - "rate_period_seconds": { - "name": "rate_period_seconds", - "type": "TypeInt", - "description": "Auto Scaling Rate: Period Seconds", - "optional": true, - "computed": true - }, - "rate_units": { - "name": "rate_units", - "type": "TypeString", - "description": "Auto Scaling Rate: Units", - "optional": true, - "computed": true - } - }, - "max_items": 1, - "deprecated": "This field is deprecated, auto scaling cpu is unsupported by IBM Cloud Databases" - }, - "disk": { - "name": "disk", - "type": "TypeList", - "description": "Disk Auto Scaling", - "optional": true, - "computed": true, - "elem": { - "capacity_enabled": { - "name": "capacity_enabled", - "type": "TypeBool", - "description": "Auto Scaling Scalar: Capacity Enabled", - "optional": true, - "computed": true - }, - "free_space_less_than_percent": { - "name": "free_space_less_than_percent", - "type": "TypeInt", - "description": "Auto Scaling Scalar: Capacity Free Space Less Than Percent", - "optional": true, - "computed": true - }, - "io_above_percent": { - "name": "io_above_percent", - "type": "TypeInt", - "description": "Auto Scaling Scalar: IO Utilization Above Percent", - "optional": true, - "computed": true - }, - "io_enabled": { - "name": "io_enabled", - "type": "TypeBool", - "description": "Auto Scaling Scalar: IO Utilization Enabled", - "optional": true, - "computed": true - }, - "io_over_period": { - "name": "io_over_period", - "type": "TypeString", - "description": "Auto Scaling Scalar: IO Utilization Over Period", - "optional": true, - "computed": true - }, - "rate_increase_percent": { - "name": "rate_increase_percent", - "type": "TypeInt", - "description": "Auto Scaling Rate: Increase Percent", - "optional": true, - "computed": true - }, - "rate_limit_mb_per_member": { - "name": "rate_limit_mb_per_member", - "type": "TypeInt", - "description": "Auto Scaling Rate: Limit mb per member", - "optional": true, - "computed": true - }, - "rate_period_seconds": { - "name": "rate_period_seconds", - "type": "TypeInt", - "description": "Auto Scaling Rate: Period Seconds", - "optional": true, - "computed": true - }, - "rate_units": { - "name": "rate_units", - "type": "TypeString", - "description": "Auto Scaling Rate: Units", - "optional": true, - "computed": true - } - }, - "max_items": 1 - }, - "memory": { - "name": "memory", - "type": "TypeList", - "description": "Memory Auto Scaling", - "optional": true, - "computed": true, - "elem": { - "io_above_percent": { - "name": "io_above_percent", - "type": "TypeInt", - "description": "Auto Scaling Scalar: IO Utilization Above Percent", - "optional": true, - "computed": true - }, - "io_enabled": { - "name": "io_enabled", - "type": "TypeBool", - "description": "Auto Scaling Scalar: IO Utilization Enabled", - "optional": true, - "computed": true - }, - "io_over_period": { - "name": "io_over_period", - "type": "TypeString", - "description": "Auto Scaling Scalar: IO Utilization Over Period", - "optional": true, - "computed": true - }, - "rate_increase_percent": { - "name": "rate_increase_percent", - "type": "TypeInt", - "description": "Auto Scaling Rate: Increase Percent", - "optional": true, - "computed": true - }, - "rate_limit_mb_per_member": { - "name": "rate_limit_mb_per_member", - "type": "TypeInt", - "description": "Auto Scaling Rate: Limit mb per member", - "optional": true, - "computed": true - }, - "rate_period_seconds": { - "name": "rate_period_seconds", - "type": "TypeInt", - "description": "Auto Scaling Rate: Period Seconds", - "optional": true, - "computed": true - }, - "rate_units": { - "name": "rate_units", - "type": "TypeString", - "description": "Auto Scaling Rate: Units", - "optional": true, - "computed": true - } - }, - "max_items": 1 - } - }, - "max_items": 1 }, { - "name": "members_memory_allocation_mb", - "type": "TypeInt", - "description": "Memory allocation required for cluster", - "optional": true, + "name": "updated_on", + "type": "TypeString", + "description": "When the namespace was last updated.", "computed": true, - "deprecated": "use group instead" + "deprecated": "This field is deprecated" }, { - "name": "members_cpu_allocation_count", - "type": "TypeInt", - "description": "CPU allocation required for cluster", - "optional": true, - "computed": true, - "deprecated": "use group instead" + "name": "name", + "type": "TypeString", + "description": "The name of the namespace.", + "immutable": true, + "required": true, + "min_length": 4, + "max_length": 30, + "matches": "^[a-z0-9]+[a-z0-9_-]+[a-z0-9]+$" }, { "name": "tags", "type": "TypeSet", - "min_length": 1, - "max_length": 128, - "matches": "^[A-Za-z0-9:_ .-]+$", + "description": "List of tags", + "cloud_data_type": "tags", "optional": true, - "computed": true, "elem": { "type": "TypeString" } }, { - "name": "point_in_time_recovery_deployment_id", + "name": "account", "type": "TypeString", - "description": "The CRN of source instance", - "optional": true + "description": "The IBM Cloud account that owns the namespace.", + "computed": true }, { - "name": "status", + "name": "created_date", "type": "TypeString", - "description": "The resource instance status", + "description": "When the namespace was created.", "computed": true }, { - "name": "guid", + "name": "resource_group_id", "type": "TypeString", - "description": "Unique identifier of resource instance", + "description": "The ID of the resource group that the namespace will be created within.", + "cloud_data_type": "resource_group", + "immutable": true, + "optional": true, "computed": true }, { - "name": "resource_crn", + "name": "updated_date", "type": "TypeString", - "description": "The crn of the resource", + "description": "When the namespace was last updated.", "computed": true - }, + } + ], + "ibm_cr_retention_policy": [ { - "name": "location", + "name": "namespace", "type": "TypeString", - "description": "The location or the region in which Database instance exists", - "cloud_data_type": "region", + "description": "The namespace to which the retention policy is attached.", "required": true }, { - "name": "service", - "type": "TypeString", - "description": "The name of the Cloud Internet database service", - "immutable": true, - "required": true, - "options": "databases-for-etcd, databases-for-postgresql, databases-for-redis, databases-for-elasticsearch, databases-for-mongodb, messages-for-rabbitmq, databases-for-mysql, databases-for-cassandra, databases-for-enterprisedb" + "name": "images_per_repo", + "type": "TypeInt", + "description": "Determines how many images will be retained for each repository when the retention policy is executed. The value -1 denotes 'Unlimited' (all images are retained).", + "required": true }, { - "name": "adminuser", + "name": "retain_untagged", + "type": "TypeBool", + "description": "Determines if untagged images are retained when executing the retention policy. This is false by default meaning untagged images will be deleted when the policy is executed.", + "default_value": false, + "optional": true + } + ], + "ibm_database": [ + { + "name": "point_in_time_recovery_deployment_id", "type": "TypeString", - "description": "The admin user id for the instance", - "computed": true + "description": "The CRN of source instance", + "optional": true + }, + { + "name": "users", + "type": "TypeSet", + "optional": true, + "elem": { + "name": { + "name": "name", + "type": "TypeString", + "description": "User name", + "required": true + }, + "password": { + "name": "password", + "type": "TypeString", + "description": "User password", + "secure": true, + "required": true + }, + "role": { + "name": "role", + "type": "TypeString", + "description": "User role. Only available for ops_manager user type.", + "optional": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "User type", + "default_value": "database", + "optional": true + } + } }, { "name": "group", @@ -106733,126 +109217,42 @@ } }, { - "name": "name", + "name": "resource_crn", "type": "TypeString", - "description": "Resource instance name for example, my Database instance", - "required": true - }, - { - "name": "logical_replication_slot", - "type": "TypeSet", - "optional": true, - "elem": { - "database_name": { - "name": "database_name", - "type": "TypeString", - "description": "Database Name", - "required": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Logical Replication Slot name", - "required": true - }, - "plugin_type": { - "name": "plugin_type", - "type": "TypeString", - "description": "Plugin Type", - "required": true - } - } + "description": "The crn of the resource", + "computed": true }, { - "name": "version", + "name": "guid", "type": "TypeString", - "description": "The database version to provision if specified", - "immutable": true, - "optional": true, + "description": "Unique identifier of resource instance", "computed": true }, { - "name": "members_disk_allocation_mb", - "type": "TypeInt", - "description": "Disk allocation required for cluster", - "optional": true, - "computed": true, - "deprecated": "use group instead" - }, - { - "name": "node_count", - "type": "TypeInt", - "description": "Total number of nodes in the cluster", - "optional": true, - "computed": true, - "deprecated": "use group instead" - }, - { - "name": "node_memory_allocation_mb", - "type": "TypeInt", - "description": "Memory allocation per node", - "optional": true, - "computed": true, - "deprecated": "use group instead" - }, - { - "name": "resource_group_id", + "name": "adminuser", "type": "TypeString", - "description": "The id of the resource group in which the Database instance is present", - "cloud_data_type": "resource_group", - "immutable": true, - "optional": true, - "computed": true, - "cloud_data_range": [ - "resolved_to:id" - ] + "description": "The admin user id for the instance", + "computed": true }, { - "name": "plan", + "name": "key_protect_instance", "type": "TypeString", - "description": "The plan type of the Database instance", + "description": "The CRN of Key protect instance", "immutable": true, - "required": true, - "options": "standard, enterprise, enterprise-sharding" - }, - { - "name": "adminpassword", - "type": "TypeString", - "description": "The admin user password for the instance", - "secure": true, "optional": true }, { - "name": "configuration_schema", + "name": "backup_id", "type": "TypeString", - "description": "The configuration schema in JSON format", - "computed": true + "description": "The CRN of backup source database", + "optional": true }, { - "name": "point_in_time_recovery_time", + "name": "remote_leader_id", "type": "TypeString", - "description": "The point in time recovery time stamp of the deployed instance", + "description": "The CRN of leader database", "optional": true }, - { - "name": "allowlist", - "type": "TypeSet", - "optional": true, - "elem": { - "address": { - "name": "address", - "type": "TypeString", - "description": "Allowlist IP address in CIDR notation", - "optional": true - }, - "description": { - "name": "description", - "type": "TypeString", - "description": "Unique allow list description", - "optional": true - } - } - }, { "name": "groups", "type": "TypeList", @@ -107002,305 +109402,470 @@ } }, { - "name": "resource_name", + "name": "service", "type": "TypeString", - "description": "The name of the resource", - "computed": true + "description": "The name of the Cloud Internet database service", + "immutable": true, + "required": true, + "options": "databases-for-etcd, databases-for-postgresql, databases-for-redis, databases-for-elasticsearch, databases-for-mongodb, messages-for-rabbitmq, databases-for-mysql, databases-for-cassandra, databases-for-enterprisedb" }, { - "name": "node_disk_allocation_mb", - "type": "TypeInt", - "description": "Disk allocation per node", + "name": "tags", + "type": "TypeSet", + "min_length": 1, + "max_length": 128, + "matches": "^[A-Za-z0-9:_ .-]+$", "optional": true, "computed": true, - "deprecated": "use group instead" + "elem": { + "type": "TypeString" + } }, { - "name": "node_cpu_allocation_count", - "type": "TypeInt", - "description": "CPU allocation per node", - "optional": true, - "computed": true, - "deprecated": "use group instead" + "name": "location", + "type": "TypeString", + "description": "The location or the region in which Database instance exists", + "cloud_data_type": "region", + "required": true }, { - "name": "backup_id", + "name": "configuration_schema", "type": "TypeString", - "description": "The CRN of backup source database", - "optional": true + "description": "The configuration schema in JSON format", + "computed": true }, { - "name": "key_protect_key", + "name": "resource_controller_url", "type": "TypeString", - "description": "The CRN of Key protect key", - "immutable": true, - "optional": true + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about the resource", + "computed": true }, { - "name": "configuration", + "name": "resource_group_id", "type": "TypeString", - "description": "The configuration in JSON format", - "optional": true + "description": "The id of the resource group in which the Database instance is present", + "cloud_data_type": "resource_group", + "immutable": true, + "optional": true, + "computed": true, + "cloud_data_range": [ + "resolved_to:id" + ] }, { - "name": "service_endpoints", + "name": "adminpassword", "type": "TypeString", - "description": "Types of the service endpoints. Possible values are 'public', 'private', 'public-and-private'.", - "default_value": "public", - "options": "public, private, public-and-private", + "description": "The admin user password for the instance", + "secure": true, "optional": true }, { - "name": "key_protect_instance", + "name": "point_in_time_recovery_time", "type": "TypeString", - "description": "The CRN of Key protect instance", - "immutable": true, + "description": "The point in time recovery time stamp of the deployed instance", "optional": true }, { - "name": "resource_status", - "type": "TypeString", - "description": "The status of the resource", - "computed": true - } - ], - "ibm_dl_gateway": [ - { - "name": "bfd_status", - "type": "TypeString", - "description": "Gateway BFD status", + "name": "logical_replication_slot", + "type": "TypeSet", "optional": true, - "computed": true + "elem": { + "database_name": { + "name": "database_name", + "type": "TypeString", + "description": "Database Name", + "required": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Logical Replication Slot name", + "required": true + }, + "plugin_type": { + "name": "plugin_type", + "type": "TypeString", + "description": "Plugin Type", + "required": true + } + } }, { - "name": "name", - "type": "TypeString", - "description": "The unique user-defined name for this gateway", - "required": true, - "min_length": 1, - "max_length": 63, - "matches": "^([a-zA-Z]|[a-zA-Z][-_a-zA-Z0-9]*[a-zA-Z0-9])$" + "name": "auto_scaling", + "type": "TypeList", + "description": "ICD Auto Scaling", + "optional": true, + "computed": true, + "elem": { + "cpu": { + "name": "cpu", + "type": "TypeList", + "description": "CPU Auto Scaling", + "optional": true, + "computed": true, + "elem": { + "rate_increase_percent": { + "name": "rate_increase_percent", + "type": "TypeInt", + "description": "Auto Scaling Rate: Increase Percent", + "optional": true, + "computed": true + }, + "rate_limit_count_per_member": { + "name": "rate_limit_count_per_member", + "type": "TypeInt", + "description": "Auto Scaling Rate: Limit count per number", + "optional": true, + "computed": true + }, + "rate_period_seconds": { + "name": "rate_period_seconds", + "type": "TypeInt", + "description": "Auto Scaling Rate: Period Seconds", + "optional": true, + "computed": true + }, + "rate_units": { + "name": "rate_units", + "type": "TypeString", + "description": "Auto Scaling Rate: Units", + "optional": true, + "computed": true + } + }, + "max_items": 1, + "deprecated": "This field is deprecated, auto scaling cpu is unsupported by IBM Cloud Databases" + }, + "disk": { + "name": "disk", + "type": "TypeList", + "description": "Disk Auto Scaling", + "optional": true, + "computed": true, + "elem": { + "capacity_enabled": { + "name": "capacity_enabled", + "type": "TypeBool", + "description": "Auto Scaling Scalar: Capacity Enabled", + "optional": true, + "computed": true + }, + "free_space_less_than_percent": { + "name": "free_space_less_than_percent", + "type": "TypeInt", + "description": "Auto Scaling Scalar: Capacity Free Space Less Than Percent", + "optional": true, + "computed": true + }, + "io_above_percent": { + "name": "io_above_percent", + "type": "TypeInt", + "description": "Auto Scaling Scalar: IO Utilization Above Percent", + "optional": true, + "computed": true + }, + "io_enabled": { + "name": "io_enabled", + "type": "TypeBool", + "description": "Auto Scaling Scalar: IO Utilization Enabled", + "optional": true, + "computed": true + }, + "io_over_period": { + "name": "io_over_period", + "type": "TypeString", + "description": "Auto Scaling Scalar: IO Utilization Over Period", + "optional": true, + "computed": true + }, + "rate_increase_percent": { + "name": "rate_increase_percent", + "type": "TypeInt", + "description": "Auto Scaling Rate: Increase Percent", + "optional": true, + "computed": true + }, + "rate_limit_mb_per_member": { + "name": "rate_limit_mb_per_member", + "type": "TypeInt", + "description": "Auto Scaling Rate: Limit mb per member", + "optional": true, + "computed": true + }, + "rate_period_seconds": { + "name": "rate_period_seconds", + "type": "TypeInt", + "description": "Auto Scaling Rate: Period Seconds", + "optional": true, + "computed": true + }, + "rate_units": { + "name": "rate_units", + "type": "TypeString", + "description": "Auto Scaling Rate: Units", + "optional": true, + "computed": true + } + }, + "max_items": 1 + }, + "memory": { + "name": "memory", + "type": "TypeList", + "description": "Memory Auto Scaling", + "optional": true, + "computed": true, + "elem": { + "io_above_percent": { + "name": "io_above_percent", + "type": "TypeInt", + "description": "Auto Scaling Scalar: IO Utilization Above Percent", + "optional": true, + "computed": true + }, + "io_enabled": { + "name": "io_enabled", + "type": "TypeBool", + "description": "Auto Scaling Scalar: IO Utilization Enabled", + "optional": true, + "computed": true + }, + "io_over_period": { + "name": "io_over_period", + "type": "TypeString", + "description": "Auto Scaling Scalar: IO Utilization Over Period", + "optional": true, + "computed": true + }, + "rate_increase_percent": { + "name": "rate_increase_percent", + "type": "TypeInt", + "description": "Auto Scaling Rate: Increase Percent", + "optional": true, + "computed": true + }, + "rate_limit_mb_per_member": { + "name": "rate_limit_mb_per_member", + "type": "TypeInt", + "description": "Auto Scaling Rate: Limit mb per member", + "optional": true, + "computed": true + }, + "rate_period_seconds": { + "name": "rate_period_seconds", + "type": "TypeInt", + "description": "Auto Scaling Rate: Period Seconds", + "optional": true, + "computed": true + }, + "rate_units": { + "name": "rate_units", + "type": "TypeString", + "description": "Auto Scaling Rate: Units", + "optional": true, + "computed": true + } + }, + "max_items": 1 + } + }, + "max_items": 1 }, { - "name": "bgp_status_updated_at", + "name": "resource_name", "type": "TypeString", - "description": "Date and time BGP status was updated", + "description": "The name of the resource", "computed": true }, { - "name": "link_status_updated_at", + "name": "resource_group_name", "type": "TypeString", - "description": "Date and time Link status was updated", + "description": "The resource group name in which resource is provisioned", "computed": true }, { - "name": "default_import_route_filter", + "name": "configuration", "type": "TypeString", - "description": "The default directional route filter action that applies to routes that do not match any directional route filters", - "options": "permit, deny", - "optional": true, - "computed": true - }, - { - "name": "bfd_multiplier", - "type": "TypeInt", - "description": "BFD Multiplier", - "min_value": "1", - "max_value": "255", + "description": "The configuration in JSON format", "optional": true }, { - "name": "operational_status", - "type": "TypeString", - "description": "Gateway operational status", - "computed": true - }, - { - "name": "link_status", + "name": "version", "type": "TypeString", - "description": "Gateway link status", + "description": "The database version to provision if specified", + "immutable": true, + "optional": true, "computed": true }, { - "name": "import_route_filters", - "type": "TypeList", - "description": "List Import Route Filters for a Direct Link gateway", + "name": "allowlist", + "type": "TypeSet", "optional": true, "elem": { - "action": { - "name": "action", - "type": "TypeString", - "description": "Determines whether the routes that match the prefix-set will be permit or deny", - "required": true - }, - "before": { - "name": "before", - "type": "TypeString", - "description": "Identifier of the next route filter to be considered", - "optional": true, - "computed": true - }, - "created_at": { - "name": "created_at", + "address": { + "name": "address", "type": "TypeString", - "description": "The date and time of the export route filter was created", - "computed": true - }, - "ge": { - "name": "ge", - "type": "TypeInt", - "description": "The minimum matching length of the prefix-set", + "description": "Allowlist IP address in CIDR notation", "optional": true }, - "im_filter_id": { - "name": "im_filter_id", + "description": { + "name": "description", "type": "TypeString", - "description": "Import route Filter identifier", - "computed": true - }, - "le": { - "name": "le", - "type": "TypeInt", - "description": "The maximum matching length of the prefix-set", + "description": "Unique allow list description", "optional": true - }, - "prefix": { - "name": "prefix", - "type": "TypeString", - "description": "IP prefix representing an address and mask length of the prefix-set", - "required": true - }, - "updated_at": { - "name": "updated_at", - "type": "TypeString", - "description": "The date and time of the export route filter was last updated", - "computed": true } } }, { - "name": "bgp_asn", - "type": "TypeInt", - "description": "BGP ASN", + "name": "resource_status", + "type": "TypeString", + "description": "The status of the resource", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Resource instance name for example, my Database instance", "required": true }, { - "name": "connection_mode", + "name": "service_endpoints", "type": "TypeString", - "description": "Type of services this Gateway is attached to. Mode transit means this Gateway will be attached to Transit Gateway Service and direct means this Gateway will be attached to vpc or classic connection", - "options": "direct, transit", - "optional": true, - "computed": true + "description": "Types of the service endpoints. Possible values are 'public', 'private', 'public-and-private'.", + "default_value": "public", + "options": "public, private, public-and-private", + "optional": true }, { - "name": "bgp_ibm_cidr", + "name": "key_protect_key", "type": "TypeString", - "description": "BGP IBM CIDR", - "optional": true, - "computed": true + "description": "The CRN of Key protect key", + "immutable": true, + "optional": true }, { - "name": "bgp_status", + "name": "backup_encryption_key_crn", "type": "TypeString", - "description": "Gateway BGP status", - "computed": true + "description": "The Backup Encryption Key CRN", + "immutable": true, + "optional": true }, { - "name": "export_route_filters", + "name": "connectionstrings", "type": "TypeList", - "description": "List Export Route Filters for a Direct Link gateway", - "optional": true, + "computed": true, "elem": { - "action": { - "name": "action", + "bundlebase64": { + "name": "bundlebase64", "type": "TypeString", - "description": "Determines whether the routes that match the prefix-set will be permit or deny", - "required": true + "description": "Cassandra base64 encoding", + "computed": true }, - "before": { - "name": "before", + "bundlename": { + "name": "bundlename", "type": "TypeString", - "description": "Identifier of the next route filter to be considered", - "optional": true, + "description": "Cassandra Bundle Name", "computed": true }, - "created_at": { - "name": "created_at", + "certbase64": { + "name": "certbase64", "type": "TypeString", - "description": "The date and time of the export route filter was created", + "description": "Certificate in base64 encoding", "computed": true }, - "ex_filter_id": { - "name": "ex_filter_id", + "certname": { + "name": "certname", "type": "TypeString", - "description": "Export route Filter identifier", + "description": "Certificate Name", "computed": true }, - "ge": { - "name": "ge", - "type": "TypeInt", - "description": "The minimum matching length of the prefix-set", - "optional": true + "composed": { + "name": "composed", + "type": "TypeString", + "description": "Connection string", + "computed": true }, - "le": { - "name": "le", - "type": "TypeInt", - "description": "The maximum matching length of the prefix-set", - "optional": true + "database": { + "name": "database", + "type": "TypeString", + "description": "DB name", + "computed": true }, - "prefix": { - "name": "prefix", + "hosts": { + "name": "hosts", + "type": "TypeList", + "optional": true, + "elem": { + "hostname": { + "name": "hostname", + "type": "TypeString", + "description": "DB host name", + "computed": true + }, + "port": { + "name": "port", + "type": "TypeString", + "description": "DB port", + "computed": true + } + } + }, + "name": { + "name": "name", "type": "TypeString", - "description": "IP prefix representing an address and mask length of the prefix-set", - "required": true + "description": "User name", + "computed": true }, - "updated_at": { - "name": "updated_at", + "password": { + "name": "password", "type": "TypeString", - "description": "The date and time of the export route filter was last updated", + "description": "Password", + "computed": true + }, + "path": { + "name": "path", + "type": "TypeString", + "description": "DB path", + "computed": true + }, + "queryoptions": { + "name": "queryoptions", + "type": "TypeString", + "description": "DB query options", + "computed": true + }, + "scheme": { + "name": "scheme", + "type": "TypeString", + "description": "DB scheme", "computed": true } - } - }, - { - "name": "bgp_base_cidr", - "type": "TypeString", - "description": "BGP base CIDR", - "optional": true + }, + "deprecated": "This field is deprecated, please use ibm_database_connection instead" }, { - "name": "type", + "name": "plan", "type": "TypeString", - "description": "Gateway type", + "description": "The plan type of the Database instance", "immutable": true, "required": true, - "options": "dedicated, connect" + "options": "standard, enterprise, enterprise-sharding, platinum" }, { - "name": "bgp_cer_cidr", + "name": "status", "type": "TypeString", - "description": "BGP customer edge router CIDR", - "optional": true, + "description": "The resource instance status", "computed": true - }, + } + ], + "ibm_dl_gateway": [ { - "name": "change_request", + "name": "bgp_ibm_cidr", "type": "TypeString", - "description": "Changes pending approval for provider managed Direct Link Connect gateways", + "description": "BGP IBM CIDR", + "optional": true, "computed": true }, - { - "name": "authentication_key", - "type": "TypeString", - "description": "BGP MD5 authentication key", - "optional": true - }, - { - "name": "metered", - "type": "TypeBool", - "description": "Metered billing option", - "required": true - }, { "name": "resource_group", "type": "TypeString", @@ -107310,24 +109875,6 @@ "optional": true, "computed": true }, - { - "name": "vlan", - "type": "TypeInt", - "description": "VLAN allocated for this gateway", - "computed": true - }, - { - "name": "bgp_ibm_asn", - "type": "TypeInt", - "description": "IBM BGP ASN", - "computed": true - }, - { - "name": "completion_notice_reject_reason", - "type": "TypeString", - "description": "Reason for completion notice rejection", - "computed": true - }, { "name": "created_at", "type": "TypeString", @@ -107335,19 +109882,16 @@ "computed": true }, { - "name": "crn", + "name": "link_status_updated_at", "type": "TypeString", - "description": "The CRN (Cloud Resource Name) of this gateway", - "cloud_data_type": "crn", + "description": "Date and time Link status was updated", "computed": true }, { - "name": "default_export_route_filter", + "name": "authentication_key", "type": "TypeString", - "description": "The default directional route filter action that applies to routes that do not match any directional route filters", - "options": "permit, deny", - "optional": true, - "computed": true + "description": "BGP MD5 authentication key", + "optional": true }, { "name": "as_prepends", @@ -107407,30 +109951,10 @@ } }, { - "name": "customer_name", - "type": "TypeString", - "description": "Customer name", - "immutable": true, - "optional": true - }, - { - "name": "provider_api_managed", - "type": "TypeBool", - "description": "Indicates whether gateway was created through a provider portal", - "computed": true - }, - { - "name": "tags", - "type": "TypeSet", - "description": "Tags for the direct link gateway", - "min_length": 1, - "max_length": 128, - "matches": "^[A-Za-z0-9:_ .-]+$", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "bgp_asn", + "type": "TypeInt", + "description": "BGP ASN", + "required": true }, { "name": "resource_name", @@ -107439,34 +109963,40 @@ "computed": true }, { - "name": "bfd_status_updated_at", + "name": "bfd_status", "type": "TypeString", - "description": "Date and time BFD status was updated", + "description": "Gateway BFD status", "optional": true, "computed": true }, { - "name": "global", + "name": "metered", "type": "TypeBool", - "description": "Gateways with global routing (true) can connect to networks outside their associated region", + "description": "Metered billing option", "required": true }, { - "name": "location_display_name", + "name": "operational_status", "type": "TypeString", - "description": "Gateway location long name", + "description": "Gateway operational status", "computed": true }, { - "name": "resource_status", + "name": "resource_controller_url", "type": "TypeString", - "description": "The status of the resource", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", "computed": true }, { - "name": "location_name", + "name": "bgp_base_cidr", "type": "TypeString", - "description": "Gateway location", + "description": "BGP base CIDR", + "optional": true + }, + { + "name": "port", + "type": "TypeString", + "description": "Gateway port", "immutable": true, "optional": true, "computed": true @@ -107478,26 +110008,6 @@ "optional": true, "computed": true }, - { - "name": "cross_connect_router", - "type": "TypeString", - "description": "Cross connect router", - "immutable": true, - "optional": true - }, - { - "name": "carrier_name", - "type": "TypeString", - "description": "Carrier name", - "immutable": true, - "optional": true - }, - { - "name": "speed_mbps", - "type": "TypeInt", - "description": "Gateway speed in megabits per second", - "required": true - }, { "name": "macsec_config", "type": "TypeList", @@ -107581,17 +110091,143 @@ "max_items": 1 }, { - "name": "resource_controller_url", + "name": "bgp_ibm_asn", + "type": "TypeInt", + "description": "IBM BGP ASN", + "computed": true + }, + { + "name": "tags", + "type": "TypeSet", + "description": "Tags for the direct link gateway", + "min_length": 1, + "max_length": 128, + "matches": "^[A-Za-z0-9:_ .-]+$", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "resource_group_name", "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", + "description": "The resource group name in which resource is provisioned", "computed": true }, { - "name": "resource_crn", + "name": "cross_connect_router", "type": "TypeString", - "description": "The crn of the resource", + "description": "Cross connect router", + "immutable": true, + "optional": true + }, + { + "name": "carrier_name", + "type": "TypeString", + "description": "Carrier name", + "immutable": true, + "optional": true + }, + { + "name": "type", + "type": "TypeString", + "description": "Gateway type", + "immutable": true, + "required": true, + "options": "dedicated, connect" + }, + { + "name": "location_name", + "type": "TypeString", + "description": "Gateway location", + "immutable": true, + "optional": true, + "computed": true + }, + { + "name": "customer_name", + "type": "TypeString", + "description": "Customer name", + "immutable": true, + "optional": true + }, + { + "name": "bgp_cer_cidr", + "type": "TypeString", + "description": "BGP customer edge router CIDR", + "optional": true, + "computed": true + }, + { + "name": "vlan", + "type": "TypeInt", + "description": "VLAN allocated for this gateway", + "computed": true + }, + { + "name": "location_display_name", + "type": "TypeString", + "description": "Gateway location long name", "computed": true }, + { + "name": "import_route_filters", + "type": "TypeList", + "description": "List Import Route Filters for a Direct Link gateway", + "optional": true, + "elem": { + "action": { + "name": "action", + "type": "TypeString", + "description": "Determines whether the routes that match the prefix-set will be permit or deny", + "required": true + }, + "before": { + "name": "before", + "type": "TypeString", + "description": "Identifier of the next route filter to be considered", + "optional": true, + "computed": true + }, + "created_at": { + "name": "created_at", + "type": "TypeString", + "description": "The date and time of the export route filter was created", + "computed": true + }, + "ge": { + "name": "ge", + "type": "TypeInt", + "description": "The minimum matching length of the prefix-set", + "optional": true + }, + "im_filter_id": { + "name": "im_filter_id", + "type": "TypeString", + "description": "Import route Filter identifier", + "computed": true + }, + "le": { + "name": "le", + "type": "TypeInt", + "description": "The maximum matching length of the prefix-set", + "optional": true + }, + "prefix": { + "name": "prefix", + "type": "TypeString", + "description": "IP prefix representing an address and mask length of the prefix-set", + "required": true + }, + "updated_at": { + "name": "updated_at", + "type": "TypeString", + "description": "The date and time of the export route filter was last updated", + "computed": true + } + } + }, { "name": "bfd_interval", "type": "TypeInt", @@ -107601,21 +110237,36 @@ "optional": true }, { - "name": "port", + "name": "bfd_status_updated_at", + "type": "TypeString", + "description": "Date and time BFD status was updated", + "optional": true, + "computed": true + }, + { + "name": "speed_mbps", + "type": "TypeInt", + "description": "Gateway speed in megabits per second", + "required": true + }, + { + "name": "provider_api_managed", + "type": "TypeBool", + "description": "Indicates whether gateway was created through a provider portal", + "computed": true + }, + { + "name": "bgp_status_updated_at", "type": "TypeString", - "description": "Gateway port", - "immutable": true, - "optional": true, + "description": "Date and time BGP status was updated", "computed": true }, { - "name": "resource_group_name", + "name": "resource_crn", "type": "TypeString", - "description": "The resource group name in which resource is provisioned", + "description": "The crn of the resource", "computed": true - } - ], - "ibm_dl_gateway_action": [ + }, { "name": "resource_status", "type": "TypeString", @@ -107623,9 +110274,9 @@ "computed": true }, { - "name": "import_route_filters", + "name": "export_route_filters", "type": "TypeList", - "description": "List Import Route Filters for a Direct Link gateway", + "description": "List Export Route Filters for a Direct Link gateway", "optional": true, "elem": { "action": { @@ -107638,7 +110289,8 @@ "name": "before", "type": "TypeString", "description": "Identifier of the next route filter to be considered", - "optional": true + "optional": true, + "computed": true }, "created_at": { "name": "created_at", @@ -107646,18 +110298,18 @@ "description": "The date and time of the export route filter was created", "computed": true }, + "ex_filter_id": { + "name": "ex_filter_id", + "type": "TypeString", + "description": "Export route Filter identifier", + "computed": true + }, "ge": { "name": "ge", "type": "TypeInt", "description": "The minimum matching length of the prefix-set", "optional": true }, - "im_filter_id": { - "name": "im_filter_id", - "type": "TypeString", - "description": "Import route Filter identifier", - "computed": true - }, "le": { "name": "le", "type": "TypeInt", @@ -107679,72 +110331,41 @@ } }, { - "name": "bfd_status_updated_at", - "type": "TypeString", - "description": "Date and time BFD status was updated", - "computed": true - }, - { - "name": "port", + "name": "default_import_route_filter", "type": "TypeString", - "description": "Gateway port", - "immutable": true, + "description": "The default directional route filter action that applies to routes that do not match any directional route filters", + "options": "permit, deny", "optional": true, "computed": true }, { - "name": "speed_mbps", + "name": "bfd_multiplier", "type": "TypeInt", - "description": "Gateway speed in megabits per second", + "description": "BFD Multiplier", + "min_value": "1", + "max_value": "255", "optional": true }, { - "name": "bgp_status", - "type": "TypeString", - "description": "Gateway BGP status", - "computed": true - }, - { - "name": "tags", - "type": "TypeSet", - "description": "Tags for the direct link gateway", - "min_length": 1, - "max_length": 128, - "matches": "^[A-Za-z0-9:_ .-]+$", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "resource_controller_url", + "name": "link_status", "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", + "description": "Gateway link status", "computed": true }, { - "name": "resource_group_name", + "name": "default_export_route_filter", "type": "TypeString", - "description": "The resource group name in which resource is provisioned", + "description": "The default directional route filter action that applies to routes that do not match any directional route filters", + "options": "permit, deny", + "optional": true, "computed": true }, { - "name": "gateway", - "type": "TypeString", - "description": "The Direct Link gateway identifier", + "name": "global", + "type": "TypeBool", + "description": "Gateways with global routing (true) can connect to networks outside their associated region", "required": true }, - { - "name": "name", - "type": "TypeString", - "description": "The unique user-defined name for this gateway", - "min_length": 1, - "max_length": 63, - "matches": "^([a-zA-Z]|[a-zA-Z][-_a-zA-Z0-9]*[a-zA-Z0-9])$", - "optional": true, - "computed": true - }, { "name": "completion_notice_reject_reason", "type": "TypeString", @@ -107752,38 +110373,18 @@ "computed": true }, { - "name": "bfd_status", - "type": "TypeString", - "description": "Gateway BFD status", - "computed": true - }, - { - "name": "type", - "type": "TypeString", - "description": "Gateway type", - "options": "dedicated, connect", - "optional": true, - "computed": true - }, - { - "name": "bgp_cer_cidr", + "name": "change_request", "type": "TypeString", - "description": "BGP customer edge router CIDR", - "optional": true, + "description": "Changes pending approval for provider managed Direct Link Connect gateways", "computed": true }, { - "name": "created_at", + "name": "crn", "type": "TypeString", - "description": "The date and time resource was created", + "description": "The CRN (Cloud Resource Name) of this gateway", + "cloud_data_type": "crn", "computed": true }, - { - "name": "bgp_base_cidr", - "type": "TypeString", - "description": "BGP base CIDR", - "optional": true - }, { "name": "connection_mode", "type": "TypeString", @@ -107793,37 +110394,36 @@ "computed": true }, { - "name": "cross_connect_router", - "type": "TypeString", - "description": "Cross connect router", - "immutable": true, - "optional": true - }, - { - "name": "location_display_name", + "name": "name", "type": "TypeString", - "description": "Gateway location long name", - "computed": true + "description": "The unique user-defined name for this gateway", + "required": true, + "min_length": 1, + "max_length": 63, + "matches": "^([a-zA-Z]|[a-zA-Z][-_a-zA-Z0-9]*[a-zA-Z0-9])$" }, { - "name": "resource_name", + "name": "bgp_status", "type": "TypeString", - "description": "The name of the resource", + "description": "Gateway BGP status", "computed": true - }, - { - "name": "authentication_key", - "type": "TypeString", - "description": "BGP MD5 authentication key", - "secure": true, - "optional": true - }, + } + ], + "ibm_dl_gateway_action": [ { "name": "bgp_asn", "type": "TypeInt", "description": "BGP ASN", "optional": true }, + { + "name": "location_name", + "type": "TypeString", + "description": "Gateway location", + "immutable": true, + "optional": true, + "computed": true + }, { "name": "resource_group", "type": "TypeString", @@ -107834,51 +110434,100 @@ "computed": true }, { - "name": "provider_api_managed", - "type": "TypeBool", - "description": "Indicates whether gateway was created through a provider portal", + "name": "vlan", + "type": "TypeInt", + "description": "VLAN allocated for this gateway", "computed": true }, { - "name": "change_request", + "name": "location_display_name", "type": "TypeString", - "description": "Changes pending approval for provider managed Direct Link Connect gateways", + "description": "Gateway location long name", "computed": true }, { - "name": "vlan", - "type": "TypeInt", - "description": "VLAN allocated for this gateway", + "name": "bgp_ibm_cidr", + "type": "TypeString", + "description": "BGP IBM CIDR", + "optional": true, "computed": true }, { - "name": "action", + "name": "created_at", "type": "TypeString", - "description": "customer action on provider call", - "required": true, - "options": "permit, deny" + "description": "The date and time resource was created", + "computed": true }, { - "name": "default_export_route_filter", + "name": "resource_crn", "type": "TypeString", - "description": "The default directional route filter action that applies to routes that do not match any directional route filters", - "options": "permit, deny", - "optional": true + "description": "The crn of the resource", + "computed": true }, { - "name": "location_name", - "type": "TypeString", - "description": "Gateway location", - "immutable": true, + "name": "as_prepends", + "type": "TypeList", + "description": "List of AS Prepend configuration information", "optional": true, - "computed": true + "elem": { + "created_at": { + "name": "created_at", + "type": "TypeString", + "description": "The date and time AS Prepend was created", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "The unique identifier for this AS Prepend", + "optional": true, + "computed": true + }, + "length": { + "name": "length", + "type": "TypeInt", + "description": "Number of times the ASN to appended to the AS Path", + "required": true + }, + "policy": { + "name": "policy", + "type": "TypeString", + "description": "Route type this AS Prepend applies to", + "required": true + }, + "prefix": { + "name": "prefix", + "type": "TypeString", + "description": "Comma separated list of prefixes this AS Prepend applies to. Maximum of 10 prefixes. If not specified, this AS Prepend applies to all prefixes", + "optional": true, + "deprecated": "prefix will be deprecated and support will be removed. Use specific_prefixes instead" + }, + "specific_prefixes": { + "name": "specific_prefixes", + "type": "TypeList", + "description": "Array of prefixes this AS Prepend applies to", + "optional": true, + "elem": { + "type": "TypeString" + }, + "max_items": 10, + "min_items": 1 + }, + "updated_at": { + "name": "updated_at", + "type": "TypeString", + "description": "The date and time AS Prepend was updated", + "computed": true + } + } }, { - "name": "carrier_name", + "name": "connection_mode", "type": "TypeString", - "description": "Carrier name", - "immutable": true, - "optional": true + "description": "Type of services this Gateway is attached to. Mode transit means this Gateway will be attached to Transit Gateway Service and direct means this Gateway will be attached to vpc or classic connection", + "options": "direct, transit", + "optional": true, + "computed": true }, { "name": "customer_name", @@ -107895,56 +110544,35 @@ "computed": true }, { - "name": "bgp_ibm_cidr", - "type": "TypeString", - "description": "BGP IBM CIDR", - "optional": true, - "computed": true - }, - { - "name": "bgp_ibm_asn", - "type": "TypeInt", - "description": "IBM BGP ASN", - "computed": true - }, - { - "name": "link_status", + "name": "change_request", "type": "TypeString", - "description": "Gateway link status", + "description": "Changes pending approval for provider managed Direct Link Connect gateways", "computed": true }, { - "name": "link_status_updated_at", - "type": "TypeString", - "description": "Date and time Link status was updated", - "computed": true + "name": "metered", + "type": "TypeBool", + "description": "Metered billing option", + "optional": true }, { - "name": "bfd_interval", + "name": "speed_mbps", "type": "TypeInt", - "description": "BFD Interval", - "min_value": "300", - "max_value": "255000", + "description": "Gateway speed in megabits per second", "optional": true }, { - "name": "bgp_status_updated_at", - "type": "TypeString", - "description": "Date and time BGP status was updated", - "computed": true - }, - { - "name": "crn", + "name": "bgp_cer_cidr", "type": "TypeString", - "description": "The CRN (Cloud Resource Name) of this gateway", - "cloud_data_type": "crn", + "description": "BGP customer edge router CIDR", + "optional": true, "computed": true }, { - "name": "resource_crn", + "name": "gateway", "type": "TypeString", - "description": "The crn of the resource", - "computed": true + "description": "The Direct Link gateway identifier", + "required": true }, { "name": "export_route_filters", @@ -108003,69 +110631,181 @@ } }, { - "name": "default_import_route_filter", + "name": "bfd_interval", + "type": "TypeInt", + "description": "BFD Interval", + "min_value": "300", + "max_value": "255000", + "optional": true + }, + { + "name": "bgp_base_cidr", "type": "TypeString", - "description": "The default directional route filter action that applies to routes that do not match any directional route filters", - "options": "permit, deny", + "description": "BGP base CIDR", "optional": true }, { - "name": "as_prepends", + "name": "cross_connect_router", + "type": "TypeString", + "description": "Cross connect router", + "immutable": true, + "optional": true + }, + { + "name": "bgp_status_updated_at", + "type": "TypeString", + "description": "Date and time BGP status was updated", + "computed": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "The CRN (Cloud Resource Name) of this gateway", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "link_status", + "type": "TypeString", + "description": "Gateway link status", + "computed": true + }, + { + "name": "resource_name", + "type": "TypeString", + "description": "The name of the resource", + "computed": true + }, + { + "name": "link_status_updated_at", + "type": "TypeString", + "description": "Date and time Link status was updated", + "computed": true + }, + { + "name": "resource_group_name", + "type": "TypeString", + "description": "The resource group name in which resource is provisioned", + "computed": true + }, + { + "name": "import_route_filters", "type": "TypeList", - "description": "List of AS Prepend configuration information", + "description": "List Import Route Filters for a Direct Link gateway", "optional": true, "elem": { + "action": { + "name": "action", + "type": "TypeString", + "description": "Determines whether the routes that match the prefix-set will be permit or deny", + "required": true + }, + "before": { + "name": "before", + "type": "TypeString", + "description": "Identifier of the next route filter to be considered", + "optional": true + }, "created_at": { "name": "created_at", "type": "TypeString", - "description": "The date and time AS Prepend was created", + "description": "The date and time of the export route filter was created", "computed": true }, - "id": { - "name": "id", + "ge": { + "name": "ge", + "type": "TypeInt", + "description": "The minimum matching length of the prefix-set", + "optional": true + }, + "im_filter_id": { + "name": "im_filter_id", "type": "TypeString", - "description": "The unique identifier for this AS Prepend", - "optional": true, + "description": "Import route Filter identifier", "computed": true }, - "length": { - "name": "length", + "le": { + "name": "le", "type": "TypeInt", - "description": "Number of times the ASN to appended to the AS Path", - "required": true - }, - "policy": { - "name": "policy", - "type": "TypeString", - "description": "Route type this AS Prepend applies to", - "required": true + "description": "The maximum matching length of the prefix-set", + "optional": true }, "prefix": { "name": "prefix", "type": "TypeString", - "description": "Comma separated list of prefixes this AS Prepend applies to. Maximum of 10 prefixes. If not specified, this AS Prepend applies to all prefixes", - "optional": true, - "deprecated": "prefix will be deprecated and support will be removed. Use specific_prefixes instead" - }, - "specific_prefixes": { - "name": "specific_prefixes", - "type": "TypeList", - "description": "Array of prefixes this AS Prepend applies to", - "optional": true, - "elem": { - "type": "TypeString" - }, - "max_items": 10, - "min_items": 1 + "description": "IP prefix representing an address and mask length of the prefix-set", + "required": true }, "updated_at": { "name": "updated_at", "type": "TypeString", - "description": "The date and time AS Prepend was updated", + "description": "The date and time of the export route filter was last updated", "computed": true } } }, + { + "name": "name", + "type": "TypeString", + "description": "The unique user-defined name for this gateway", + "min_length": 1, + "max_length": 63, + "matches": "^([a-zA-Z]|[a-zA-Z][-_a-zA-Z0-9]*[a-zA-Z0-9])$", + "optional": true, + "computed": true + }, + { + "name": "carrier_name", + "type": "TypeString", + "description": "Carrier name", + "immutable": true, + "optional": true + }, + { + "name": "provider_api_managed", + "type": "TypeBool", + "description": "Indicates whether gateway was created through a provider portal", + "computed": true + }, + { + "name": "completion_notice_reject_reason", + "type": "TypeString", + "description": "Reason for completion notice rejection", + "computed": true + }, + { + "name": "tags", + "type": "TypeSet", + "description": "Tags for the direct link gateway", + "min_length": 1, + "max_length": 128, + "matches": "^[A-Za-z0-9:_ .-]+$", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "resource_controller_url", + "type": "TypeString", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", + "computed": true + }, + { + "name": "action", + "type": "TypeString", + "description": "customer action on provider call", + "required": true, + "options": "permit, deny" + }, + { + "name": "default_export_route_filter", + "type": "TypeString", + "description": "The default directional route filter action that applies to routes that do not match any directional route filters", + "options": "permit, deny", + "optional": true + }, { "name": "bfd_multiplier", "type": "TypeInt", @@ -108074,6 +110814,12 @@ "max_value": "255", "optional": true }, + { + "name": "bfd_status_updated_at", + "type": "TypeString", + "description": "Date and time BFD status was updated", + "computed": true + }, { "name": "global", "type": "TypeBool", @@ -108081,54 +110827,67 @@ "optional": true }, { - "name": "metered", - "type": "TypeBool", - "description": "Metered billing option", + "name": "authentication_key", + "type": "TypeString", + "description": "BGP MD5 authentication key", + "secure": true, "optional": true }, { - "name": "operational_status", + "name": "default_import_route_filter", "type": "TypeString", - "description": "Gateway operational status", + "description": "The default directional route filter action that applies to routes that do not match any directional route filters", + "options": "permit, deny", + "optional": true + }, + { + "name": "port", + "type": "TypeString", + "description": "Gateway port", + "immutable": true, + "optional": true, "computed": true - } - ], - "ibm_dl_provider_gateway": [ + }, { - "name": "bgp_asn", - "type": "TypeInt", - "description": "BGP ASN", - "required": true + "name": "resource_status", + "type": "TypeString", + "description": "The status of the resource", + "computed": true }, { - "name": "bgp_cer_cidr", + "name": "bfd_status", "type": "TypeString", - "description": "BGP customer edge router CIDR", - "optional": true, + "description": "Gateway BFD status", "computed": true }, { - "name": "bgp_ibm_cidr", + "name": "type", "type": "TypeString", - "description": "BGP IBM CIDR", + "description": "Gateway type", + "options": "dedicated, connect", "optional": true, "computed": true }, { - "name": "bgp_status", + "name": "operational_status", "type": "TypeString", - "description": "Gateway BGP status", + "description": "Gateway operational status", "computed": true }, { - "name": "name", - "type": "TypeString", - "description": "The unique user-defined name for this gateway", - "required": true, - "min_length": 1, - "max_length": 63, - "matches": "^([a-zA-Z]|[a-zA-Z][-_a-zA-Z0-9]*[a-zA-Z0-9])$" + "name": "bgp_ibm_asn", + "type": "TypeInt", + "description": "IBM BGP ASN", + "computed": true }, + { + "name": "bgp_status", + "type": "TypeString", + "description": "Gateway BGP status", + "computed": true + } + ], + "ibm_dl_provider_gateway": [ { "name": "type", "type": "TypeString", @@ -108136,70 +110895,101 @@ "computed": true }, { - "name": "crn", + "name": "resource_crn", "type": "TypeString", - "description": "The CRN (Cloud Resource Name) of this gateway", - "cloud_data_type": "crn", + "description": "The crn of the resource", "computed": true }, { - "name": "resource_name", + "name": "resource_status", "type": "TypeString", - "description": "The name of the resource", + "description": "The status of the resource", "computed": true }, { - "name": "resource_group_name", + "name": "bgp_asn", + "type": "TypeInt", + "description": "BGP ASN", + "required": true + }, + { + "name": "bgp_ibm_asn", + "type": "TypeInt", + "description": "IBM BGP ASN", + "computed": true + }, + { + "name": "bgp_ibm_cidr", "type": "TypeString", - "description": "The resource group name in which resource is provisioned", + "description": "BGP IBM CIDR", + "optional": true, "computed": true }, { - "name": "customer_account_id", + "name": "bgp_status", "type": "TypeString", - "description": "Customer IBM Cloud account ID for the new gateway. A gateway object containing the pending create request will become available in the specified account.", + "description": "Gateway BGP status", + "computed": true + }, + { + "name": "port", + "type": "TypeString", + "description": "Gateway port", "immutable": true, + "required": true + }, + { + "name": "created_at", + "type": "TypeString", + "description": "The date and time resource was created", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The unique user-defined name for this gateway", "required": true, "min_length": 1, - "max_length": 32, - "matches": "^[0-9a-f]+$" + "max_length": 63, + "matches": "^([a-zA-Z]|[a-zA-Z][-_a-zA-Z0-9]*[a-zA-Z0-9])$" }, { - "name": "vlan", - "type": "TypeInt", - "description": "VLAN allocated for this gateway", - "optional": true, + "name": "provider_api_managed", + "type": "TypeBool", + "description": "Indicates whether gateway was created through a provider portal", "computed": true }, { - "name": "resource_controller_url", + "name": "bgp_cer_cidr", "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", + "description": "BGP customer edge router CIDR", + "optional": true, "computed": true }, { - "name": "resource_status", + "name": "resource_controller_url", "type": "TypeString", - "description": "The status of the resource", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", "computed": true }, { - "name": "bgp_ibm_asn", + "name": "vlan", "type": "TypeInt", - "description": "IBM BGP ASN", + "description": "VLAN allocated for this gateway", + "optional": true, "computed": true }, { - "name": "port", + "name": "operational_status", "type": "TypeString", - "description": "Gateway port", - "immutable": true, - "required": true + "description": "Gateway operational status", + "computed": true }, { - "name": "operational_status", + "name": "crn", "type": "TypeString", - "description": "Gateway operational status", + "description": "The CRN (Cloud Resource Name) of this gateway", + "cloud_data_type": "crn", "computed": true }, { @@ -108216,31 +111006,81 @@ } }, { - "name": "created_at", + "name": "resource_name", "type": "TypeString", - "description": "The date and time resource was created", + "description": "The name of the resource", + "computed": true + }, + { + "name": "resource_group_name", + "type": "TypeString", + "description": "The resource group name in which resource is provisioned", "computed": true }, + { + "name": "customer_account_id", + "type": "TypeString", + "description": "Customer IBM Cloud account ID for the new gateway. A gateway object containing the pending create request will become available in the specified account.", + "immutable": true, + "required": true, + "min_length": 1, + "max_length": 32, + "matches": "^[0-9a-f]+$" + }, { "name": "speed_mbps", "type": "TypeInt", "description": "Gateway speed in megabits per second", "required": true - }, + } + ], + "ibm_dl_route_report": [ { - "name": "provider_api_managed", - "type": "TypeBool", - "description": "Indicates whether gateway was created through a provider portal", + "name": "status", + "type": "TypeString", + "description": "Route report status", "computed": true }, { - "name": "resource_crn", + "name": "created_at", "type": "TypeString", - "description": "The crn of the resource", + "description": "The date and time report was created", "computed": true - } - ], - "ibm_dl_route_report": [ + }, + { + "name": "advertised_routes", + "type": "TypeList", + "description": "List of connection prefixes advertised to the on-prem network", + "computed": true, + "elem": { + "as_path": { + "name": "as_path", + "type": "TypeString", + "description": "The BGP AS path of the route", + "computed": true + }, + "prefix": { + "name": "prefix", + "type": "TypeString", + "description": "Prefix for gateway routes", + "computed": true + } + } + }, + { + "name": "gateway_routes", + "type": "TypeList", + "description": "List of gateway routes", + "computed": true, + "elem": { + "prefix": { + "name": "prefix", + "type": "TypeString", + "description": "Prefix for gateway routes", + "computed": true + } + } + }, { "name": "on_prem_routes", "type": "TypeList", @@ -108267,6 +111107,40 @@ } } }, + { + "name": "overlapping_routes", + "type": "TypeList", + "description": "List of overlapping routes", + "computed": true, + "elem": { + "routes": { + "name": "routes", + "type": "TypeList", + "description": "overlapping routes", + "computed": true, + "elem": { + "prefix": { + "name": "prefix", + "type": "TypeString", + "description": "Prefix for overlapping routes", + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "Type of route", + "computed": true + }, + "virtual_connection_id": { + "name": "virtual_connection_id", + "type": "TypeString", + "description": "Virtual connection ID", + "computed": true + } + } + } + } + }, { "name": "virtual_connection_routes", "type": "TypeList", @@ -108319,18 +111193,6 @@ } } }, - { - "name": "status", - "type": "TypeString", - "description": "Route report status", - "computed": true - }, - { - "name": "created_at", - "type": "TypeString", - "description": "The date and time report was created", - "computed": true - }, { "name": "updated_at", "type": "TypeString", @@ -108349,74 +111211,6 @@ "type": "TypeString", "description": "Id of the route report", "computed": true - }, - { - "name": "overlapping_routes", - "type": "TypeList", - "description": "List of overlapping routes", - "computed": true, - "elem": { - "routes": { - "name": "routes", - "type": "TypeList", - "description": "overlapping routes", - "computed": true, - "elem": { - "prefix": { - "name": "prefix", - "type": "TypeString", - "description": "Prefix for overlapping routes", - "computed": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "Type of route", - "computed": true - }, - "virtual_connection_id": { - "name": "virtual_connection_id", - "type": "TypeString", - "description": "Virtual connection ID", - "computed": true - } - } - } - } - }, - { - "name": "advertised_routes", - "type": "TypeList", - "description": "List of connection prefixes advertised to the on-prem network", - "computed": true, - "elem": { - "as_path": { - "name": "as_path", - "type": "TypeString", - "description": "The BGP AS path of the route", - "computed": true - }, - "prefix": { - "name": "prefix", - "type": "TypeString", - "description": "Prefix for gateway routes", - "computed": true - } - } - }, - { - "name": "gateway_routes", - "type": "TypeList", - "description": "List of gateway routes", - "computed": true, - "elem": { - "prefix": { - "name": "prefix", - "type": "TypeString", - "description": "Prefix for gateway routes", - "computed": true - } - } } ], "ibm_dl_virtual_connection": [ @@ -108429,30 +111223,11 @@ "computed": true }, { - "name": "created_at", - "type": "TypeString", - "description": "The date and time resource was created", - "computed": true - }, - { - "name": "related_crn", - "type": "TypeString", - "description": "The crn of the Direct link gateway", - "computed": true - }, - { - "name": "virtual_connection_id", + "name": "status", "type": "TypeString", - "description": "The Direct Gateway virtual connection identifier", + "description": "Status of the virtual connection.Possible values: [pending,attached,approval_pending,rejected,expired,deleting,detached_by_network_pending,detached_by_network]", "computed": true }, - { - "name": "gateway", - "type": "TypeString", - "description": "The Direct Link gateway identifier", - "immutable": true, - "required": true - }, { "name": "type", "type": "TypeString", @@ -108471,9 +111246,9 @@ "matches": "^([a-zA-Z]|[a-zA-Z][-_a-zA-Z0-9]*[a-zA-Z0-9])$" }, { - "name": "status", + "name": "created_at", "type": "TypeString", - "description": "Status of the virtual connection.Possible values: [pending,attached,approval_pending,rejected,expired,deleting,detached_by_network_pending,detached_by_network]", + "description": "The date and time resource was created", "computed": true }, { @@ -108481,6 +111256,25 @@ "type": "TypeString", "description": "For virtual connections across two different IBM Cloud Accounts network_account indicates the account that owns the target network.", "computed": true + }, + { + "name": "virtual_connection_id", + "type": "TypeString", + "description": "The Direct Gateway virtual connection identifier", + "computed": true + }, + { + "name": "related_crn", + "type": "TypeString", + "description": "The crn of the Direct link gateway", + "computed": true + }, + { + "name": "gateway", + "type": "TypeString", + "description": "The Direct Link gateway identifier", + "immutable": true, + "required": true } ], "ibm_dns_custom_resolver": [ @@ -108490,6 +111284,12 @@ "description": "Time when a custom resolver is created", "computed": true }, + { + "name": "modified_on", + "type": "TypeString", + "description": "The recent time when a custom resolver is modified", + "computed": true + }, { "name": "custom_resolver_id", "type": "TypeString", @@ -108502,12 +111302,6 @@ "description": "Name of the custom resolver", "required": true }, - { - "name": "description", - "type": "TypeString", - "description": "Descriptive text of the custom resolver.", - "optional": true - }, { "name": "enabled", "type": "TypeBool", @@ -108522,6 +111316,12 @@ "default_value": true, "optional": true }, + { + "name": "health", + "type": "TypeString", + "description": "Healthy state of the custom resolver", + "computed": true + }, { "name": "locations", "type": "TypeList", @@ -108602,12 +111402,6 @@ } } }, - { - "name": "modified_on", - "type": "TypeString", - "description": "The recent time when a custom resolver is modified", - "computed": true - }, { "name": "instance_id", "type": "TypeString", @@ -108619,13 +111413,35 @@ ] }, { - "name": "health", + "name": "description", "type": "TypeString", - "description": "Healthy state of the custom resolver", - "computed": true + "description": "Descriptive text of the custom resolver.", + "optional": true } ], "ibm_dns_custom_resolver_forwarding_rule": [ + { + "name": "instance_id", + "type": "TypeString", + "description": "The unique identifier of a service instance.", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:dns-svcs" + ] + }, + { + "name": "resolver_id", + "type": "TypeString", + "description": "The unique identifier of a custom resolver.", + "required": true + }, + { + "name": "description", + "type": "TypeString", + "description": "Descriptive text of the forwarding rule.", + "optional": true + }, { "name": "type", "type": "TypeString", @@ -108654,48 +111470,9 @@ "type": "TypeString", "description": "the time when a forwarding rule ID is created, RFC3339 format.", "computed": true - }, - { - "name": "instance_id", - "type": "TypeString", - "description": "The unique identifier of a service instance.", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:dns-svcs" - ] - }, - { - "name": "resolver_id", - "type": "TypeString", - "description": "The unique identifier of a custom resolver.", - "required": true - }, - { - "name": "description", - "type": "TypeString", - "description": "Descriptive text of the forwarding rule.", - "optional": true } ], "ibm_dns_custom_resolver_location": [ - { - "name": "instance_id", - "type": "TypeString", - "description": "Instance ID", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true, - "cloud_data_range": [ - "service:dns-svcs" - ] - }, - { - "name": "resolver_id", - "type": "TypeString", - "description": "Custom Resolver ID", - "required": true - }, { "name": "location_id", "type": "TypeString", @@ -108732,6 +111509,23 @@ "type": "TypeBool", "default_value": true, "optional": true + }, + { + "name": "instance_id", + "type": "TypeString", + "description": "Instance ID", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true, + "cloud_data_range": [ + "service:dns-svcs" + ] + }, + { + "name": "resolver_id", + "type": "TypeString", + "description": "Custom Resolver ID", + "required": true } ], "ibm_dns_custom_resolver_secondary_zone": [ @@ -108745,10 +111539,10 @@ } }, { - "name": "description", + "name": "created_on", "type": "TypeString", - "description": "Descriptive text of the secondary zone", - "optional": true + "description": "Secondary Zone Creation date", + "computed": true }, { "name": "modified_on", @@ -108756,30 +111550,6 @@ "description": "Secondary Zone Modification date", "computed": true }, - { - "name": "resolver_id", - "type": "TypeString", - "description": "The unique identifier of a custom resolver.", - "required": true - }, - { - "name": "zone", - "type": "TypeString", - "description": "The name of the zone.", - "required": true - }, - { - "name": "enabled", - "type": "TypeBool", - "description": "Enable/Disable the secondary zone", - "required": true - }, - { - "name": "created_on", - "type": "TypeString", - "description": "Secondary Zone Creation date", - "computed": true - }, { "name": "instance_id", "type": "TypeString", @@ -108790,14 +111560,48 @@ "service:dns-svcs" ] }, + { + "name": "resolver_id", + "type": "TypeString", + "description": "The unique identifier of a custom resolver.", + "required": true + }, { "name": "secondary_zone_id", "type": "TypeString", "description": "Secondary Zone ID", "computed": true + }, + { + "name": "zone", + "type": "TypeString", + "description": "The name of the zone.", + "required": true + }, + { + "name": "enabled", + "type": "TypeBool", + "description": "Enable/Disable the secondary zone", + "required": true + }, + { + "name": "description", + "type": "TypeString", + "description": "Descriptive text of the secondary zone", + "optional": true } ], "ibm_dns_domain": [ + { + "name": "tags", + "type": "TypeSet", + "description": "tags associated with reosurce.", + "cloud_data_type": "tags", + "optional": true, + "elem": { + "type": "TypeString" + } + }, { "name": "name", "type": "TypeString", @@ -108822,16 +111626,6 @@ "type": "TypeString", "description": "DNS target info", "optional": true - }, - { - "name": "tags", - "type": "TypeSet", - "description": "tags associated with reosurce.", - "cloud_data_type": "tags", - "optional": true, - "elem": { - "type": "TypeString" - } } ], "ibm_dns_domain_registration_nameservers": [ @@ -108861,6 +111655,41 @@ } ], "ibm_dns_glb": [ + { + "name": "modified_on", + "type": "TypeString", + "description": "GLB Load Balancer Modification date", + "computed": true + }, + { + "name": "instance_id", + "type": "TypeString", + "description": "The GUID of the private DNS.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true, + "cloud_data_range": [ + "service:dns-svcs" + ] + }, + { + "name": "fallback_pool", + "type": "TypeString", + "description": "The pool ID to use when all other pools are detected as unhealthy", + "required": true + }, + { + "name": "created_on", + "type": "TypeString", + "description": "GLB Load Balancer creation date", + "computed": true + }, + { + "name": "description", + "type": "TypeString", + "description": "Descriptive text of the load balancer", + "optional": true + }, { "name": "enabled", "type": "TypeBool", @@ -108881,18 +111710,6 @@ "description": "Healthy state of the load balancer.", "computed": true }, - { - "name": "fallback_pool", - "type": "TypeString", - "description": "The pool ID to use when all other pools are detected as unhealthy", - "required": true - }, - { - "name": "modified_on", - "type": "TypeString", - "description": "GLB Load Balancer Modification date", - "computed": true - }, { "name": "default_pools", "type": "TypeList", @@ -108902,6 +111719,25 @@ "type": "TypeString" } }, + { + "name": "glb_id", + "type": "TypeString", + "description": "Load balancer Id", + "computed": true + }, + { + "name": "zone_id", + "type": "TypeString", + "description": "Zone Id", + "immutable": true, + "required": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Name of the load balancer", + "required": true + }, { "name": "az_pools", "type": "TypeSet", @@ -108924,76 +111760,9 @@ } } } - }, - { - "name": "created_on", - "type": "TypeString", - "description": "GLB Load Balancer creation date", - "computed": true - }, - { - "name": "glb_id", - "type": "TypeString", - "description": "Load balancer Id", - "computed": true - }, - { - "name": "instance_id", - "type": "TypeString", - "description": "The GUID of the private DNS.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true, - "cloud_data_range": [ - "service:dns-svcs" - ] - }, - { - "name": "zone_id", - "type": "TypeString", - "description": "Zone Id", - "immutable": true, - "required": true - }, - { - "name": "name", - "type": "TypeString", - "description": "Name of the load balancer", - "required": true - }, - { - "name": "description", - "type": "TypeString", - "description": "Descriptive text of the load balancer", - "optional": true } ], "ibm_dns_glb_monitor": [ - { - "name": "name", - "type": "TypeString", - "description": "The unique identifier of a service instance.", - "required": true - }, - { - "name": "timeout", - "type": "TypeInt", - "description": "The timeout (in seconds) before marking the health check as failed", - "default_value": 5, - "optional": true - }, - { - "name": "created_on", - "type": "TypeString", - "description": "GLB Monitor creation date", - "computed": true - }, - { - "name": "modified_on", - "type": "TypeString", - "description": "GLB Monitor Modification date", - "computed": true - }, { "name": "monitor_id", "type": "TypeString", @@ -109001,31 +111770,12 @@ "computed": true }, { - "name": "description", + "name": "path", "type": "TypeString", - "description": "Descriptive text of the load balancer monitor", - "optional": true - }, - { - "name": "port", - "type": "TypeInt", - "description": "Port number to connect to for the health check", + "description": "The endpoint path to health check against", "optional": true, "computed": true }, - { - "name": "interval", - "type": "TypeInt", - "description": "The interval between each health check", - "default_value": 60, - "optional": true - }, - { - "name": "expected_body", - "type": "TypeString", - "description": "A case-insensitive sub-string to look for in the response body", - "optional": true - }, { "name": "expected_codes", "type": "TypeString", @@ -109035,15 +111785,10 @@ "computed": true }, { - "name": "instance_id", + "name": "modified_on", "type": "TypeString", - "description": "Instance Id", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true, - "cloud_data_range": [ - "service:dns-svcs" - ] + "description": "GLB Monitor Modification date", + "computed": true }, { "name": "type", @@ -109053,13 +111798,6 @@ "options": "HTTP, HTTPS, TCP", "optional": true }, - { - "name": "retries", - "type": "TypeInt", - "description": "The number of retries to attempt in case of a timeout before marking the origin as unhealthy", - "default_value": 1, - "optional": true - }, { "name": "method", "type": "TypeString", @@ -109069,11 +111807,17 @@ "computed": true }, { - "name": "path", + "name": "name", "type": "TypeString", - "description": "The endpoint path to health check against", - "optional": true, - "computed": true + "description": "The unique identifier of a service instance.", + "required": true + }, + { + "name": "interval", + "type": "TypeInt", + "description": "The interval between each health check", + "default_value": 60, + "optional": true }, { "name": "headers", @@ -109104,59 +111848,82 @@ "description": "Do not validate the certificate when monitor use HTTPS. This parameter is currently only valid for HTTPS monitors.", "optional": true, "computed": true - } - ], - "ibm_dns_glb_pool": [ + }, { - "name": "pool_id", + "name": "expected_body", "type": "TypeString", - "description": "Pool Id", - "computed": true + "description": "A case-insensitive sub-string to look for in the response body", + "optional": true + }, + { + "name": "instance_id", + "type": "TypeString", + "description": "Instance Id", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true, + "cloud_data_range": [ + "service:dns-svcs" + ] }, { "name": "description", "type": "TypeString", - "description": "Descriptive text of the load balancer pool", + "description": "Descriptive text of the load balancer monitor", "optional": true }, { - "name": "enabled", - "type": "TypeBool", - "description": "Whether the load balancer pool is enabled", - "optional": true + "name": "port", + "type": "TypeInt", + "description": "Port number to connect to for the health check", + "optional": true, + "computed": true }, { - "name": "healthy_origins_threshold", + "name": "retries", "type": "TypeInt", - "description": "The minimum number of origins that must be healthy for this pool to serve traffic", + "description": "The number of retries to attempt in case of a timeout before marking the origin as unhealthy", + "default_value": 1, "optional": true }, { - "name": "notification_channel", - "type": "TypeString", - "description": "The notification channel,It is a webhook url", + "name": "timeout", + "type": "TypeInt", + "description": "The timeout (in seconds) before marking the health check as failed", + "default_value": 5, "optional": true }, { "name": "created_on", "type": "TypeString", - "description": "The time when a load balancer pool is created.", + "description": "GLB Monitor creation date", "computed": true + } + ], + "ibm_dns_glb_pool": [ + { + "name": "name", + "type": "TypeString", + "description": "The unique identifier of a service instance.", + "required": true }, { - "name": "health", + "name": "description", "type": "TypeString", + "description": "Descriptive text of the load balancer pool", + "optional": true + }, + { + "name": "enabled", + "type": "TypeBool", "description": "Whether the load balancer pool is enabled", - "computed": true + "optional": true }, { - "name": "healthcheck_subnets", - "type": "TypeList", - "description": "Health check subnet crn of VSIs", - "optional": true, - "elem": { - "type": "TypeString" - } + "name": "health", + "type": "TypeString", + "description": "Whether the load balancer pool is enabled", + "computed": true }, { "name": "origins", @@ -109203,15 +111970,21 @@ } }, { - "name": "monitor", + "name": "healthcheck_region", "type": "TypeString", - "description": "The ID of the load balancer monitor to be associated to this pool", + "description": "Health check region of VSIs", "optional": true }, { - "name": "modified_on", + "name": "pool_id", "type": "TypeString", - "description": "The recent time when a load balancer pool is modified.", + "description": "Pool Id", + "computed": true + }, + { + "name": "created_on", + "type": "TypeString", + "description": "The time when a load balancer pool is created.", "computed": true }, { @@ -109226,30 +111999,55 @@ ] }, { - "name": "name", + "name": "monitor", "type": "TypeString", - "description": "The unique identifier of a service instance.", - "required": true + "description": "The ID of the load balancer monitor to be associated to this pool", + "optional": true }, { - "name": "healthcheck_region", + "name": "healthy_origins_threshold", + "type": "TypeInt", + "description": "The minimum number of origins that must be healthy for this pool to serve traffic", + "optional": true + }, + { + "name": "notification_channel", "type": "TypeString", - "description": "Health check region of VSIs", + "description": "The notification channel,It is a webhook url", "optional": true + }, + { + "name": "healthcheck_subnets", + "type": "TypeList", + "description": "Health check subnet crn of VSIs", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "modified_on", + "type": "TypeString", + "description": "The recent time when a load balancer pool is modified.", + "computed": true } ], "ibm_dns_linked_zone": [ { - "name": "created_on", + "name": "instance_id", "type": "TypeString", - "description": "DNS Linked Zone Creation date", - "computed": true + "description": "The unique identifier of a DNS Linked zone.", + "cloud_data_type": "resource_instance", + "required": true, + "cloud_data_range": [ + "service:dns-svcs" + ] }, { - "name": "description", + "name": "name", "type": "TypeString", - "description": "Descriptive text of the DNS Linked zone", - "optional": true + "description": "The name of the DNS Linked zone.", + "required": true }, { "name": "owner_instance_id", @@ -109257,18 +112055,18 @@ "description": "The unique identifier of the owner DNS instance", "required": true }, - { - "name": "linked_to", - "type": "TypeString", - "description": "The zone that is linked to the DNS Linked zone", - "optional": true - }, { "name": "state", "type": "TypeString", "description": "The state of the DNS Linked zone", "computed": true }, + { + "name": "label", + "type": "TypeString", + "description": "The label of the DNS Linked zone", + "optional": true + }, { "name": "approval_required_before", "type": "TypeString", @@ -109276,20 +112074,16 @@ "optional": true }, { - "name": "instance_id", + "name": "modified_on", "type": "TypeString", - "description": "The unique identifier of a DNS Linked zone.", - "cloud_data_type": "resource_instance", - "required": true, - "cloud_data_range": [ - "service:dns-svcs" - ] + "description": "DNS Linked Zone Modification date", + "computed": true }, { - "name": "name", + "name": "description", "type": "TypeString", - "description": "The name of the DNS Linked zone.", - "required": true + "description": "Descriptive text of the DNS Linked zone", + "optional": true }, { "name": "owner_zone_id", @@ -109298,19 +112092,27 @@ "required": true }, { - "name": "label", + "name": "linked_to", "type": "TypeString", - "description": "The label of the DNS Linked zone", + "description": "The zone that is linked to the DNS Linked zone", "optional": true }, { - "name": "modified_on", + "name": "created_on", "type": "TypeString", - "description": "DNS Linked Zone Modification date", + "description": "DNS Linked Zone Creation date", "computed": true } ], "ibm_dns_permitted_network": [ + { + "name": "type", + "type": "TypeString", + "description": "Network Type", + "default_value": "vpc", + "immutable": true, + "optional": true + }, { "name": "vpc_crn", "type": "TypeString", @@ -109359,64 +112161,75 @@ "description": "Zone Id", "immutable": true, "required": true - }, - { - "name": "type", - "type": "TypeString", - "description": "Network Type", - "default_value": "vpc", - "immutable": true, - "optional": true } ], "ibm_dns_record": [ { - "name": "tags", - "type": "TypeSet", - "description": "tags set for the resource", - "cloud_data_type": "tags", - "optional": true, - "elem": { - "type": "TypeString" - } + "name": "protocol", + "type": "TypeString", + "description": "protocol info", + "optional": true }, { - "name": "mx_priority", + "name": "data", + "type": "TypeString", + "description": "DNS record data", + "required": true + }, + { + "name": "domain_id", "type": "TypeInt", - "description": "Maximum priority", - "default_value": 0, - "optional": true + "description": "Domain ID of dns record instance", + "immutable": true, + "required": true }, { - "name": "refresh", + "name": "expire", "type": "TypeInt", - "description": "refresh rate", + "description": "DNS record expiry info", "optional": true, "computed": true }, { - "name": "port", - "type": "TypeInt", - "description": "port number", - "optional": true + "name": "host", + "type": "TypeString", + "description": "Hostname", + "required": true }, { - "name": "priority", + "name": "mx_priority", "type": "TypeInt", - "description": "priority info", + "description": "Maximum priority", "default_value": 0, "optional": true }, { - "name": "data", + "name": "responsible_person", "type": "TypeString", - "description": "DNS record data", - "required": true + "description": "Responsible person for DNS record", + "optional": true, + "computed": true }, { - "name": "expire", + "name": "service", + "type": "TypeString", + "description": "service info", + "optional": true + }, + { + "name": "tags", + "type": "TypeSet", + "description": "tags set for the resource", + "cloud_data_type": "tags", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "refresh", "type": "TypeInt", - "description": "DNS record expiry info", + "description": "refresh rate", "optional": true, "computed": true }, @@ -109427,30 +112240,17 @@ "required": true }, { - "name": "protocol", - "type": "TypeString", - "description": "protocol info", + "name": "port", + "type": "TypeInt", + "description": "port number", "optional": true }, { - "name": "host", - "type": "TypeString", - "description": "Hostname", - "required": true - }, - { - "name": "minimum_ttl", + "name": "priority", "type": "TypeInt", - "description": "Minimun TTL configuration", - "optional": true, - "computed": true - }, - { - "name": "type", - "type": "TypeString", - "description": "DNS record type", - "immutable": true, - "required": true + "description": "priority info", + "default_value": 0, + "optional": true }, { "name": "weight", @@ -109460,46 +112260,40 @@ "optional": true }, { - "name": "domain_id", + "name": "retry", "type": "TypeInt", - "description": "Domain ID of dns record instance", - "immutable": true, - "required": true - }, - { - "name": "responsible_person", - "type": "TypeString", - "description": "Responsible person for DNS record", + "description": "Retry count", "optional": true, "computed": true }, { - "name": "retry", + "name": "minimum_ttl", "type": "TypeInt", - "description": "Retry count", + "description": "Minimun TTL configuration", "optional": true, "computed": true }, { - "name": "service", + "name": "type", "type": "TypeString", - "description": "service info", - "optional": true + "description": "DNS record type", + "immutable": true, + "required": true } ], "ibm_dns_resource_record": [ { - "name": "rdata", + "name": "resource_record_id", "type": "TypeString", - "description": "DNS record Data", - "required": true + "description": "Resource record ID", + "computed": true }, { - "name": "ttl", - "type": "TypeInt", - "description": "DNS record TTL", - "default_value": 900, - "optional": true + "name": "type", + "type": "TypeString", + "description": "DNS record Type", + "immutable": true, + "required": true }, { "name": "preference", @@ -109509,10 +112303,10 @@ "optional": true }, { - "name": "service", + "name": "created_on", "type": "TypeString", - "description": "Service info", - "optional": true + "description": "Creation Data", + "computed": true }, { "name": "protocol", @@ -109520,12 +112314,6 @@ "description": "Protocol", "optional": true }, - { - "name": "modified_on", - "type": "TypeString", - "description": "Modification date", - "computed": true - }, { "name": "zone_id", "type": "TypeString", @@ -109540,16 +112328,17 @@ "required": true }, { - "name": "created_on", - "type": "TypeString", - "description": "Creation Data", - "computed": true + "name": "ttl", + "type": "TypeInt", + "description": "DNS record TTL", + "default_value": 900, + "optional": true }, { - "name": "resource_record_id", - "type": "TypeString", - "description": "Resource record ID", - "computed": true + "name": "port", + "type": "TypeInt", + "description": "DNS server Port", + "optional": true }, { "name": "instance_id", @@ -109562,13 +112351,6 @@ "service:dns-svcs" ] }, - { - "name": "type", - "type": "TypeString", - "description": "DNS record Type", - "immutable": true, - "required": true - }, { "name": "priority", "type": "TypeInt", @@ -109577,10 +112359,16 @@ "optional": true }, { - "name": "port", - "type": "TypeInt", - "description": "DNS server Port", - "optional": true + "name": "modified_on", + "type": "TypeString", + "description": "Modification date", + "computed": true + }, + { + "name": "rdata", + "type": "TypeString", + "description": "DNS record Data", + "required": true }, { "name": "weight", @@ -109588,6 +112376,12 @@ "description": "DNS server weight", "default_value": 0, "optional": true + }, + { + "name": "service", + "type": "TypeString", + "description": "Service info", + "optional": true } ], "ibm_dns_reverse_record": [ @@ -109612,6 +112406,25 @@ } ], "ibm_dns_secondary": [ + { + "name": "master_ip_address", + "type": "TypeString", + "description": "Master IP Address", + "required": true + }, + { + "name": "transfer_frequency", + "type": "TypeInt", + "description": "Transfer frequency value", + "required": true + }, + { + "name": "zone_name", + "type": "TypeString", + "description": "Zone name", + "immutable": true, + "required": true + }, { "name": "status_id", "type": "TypeInt", @@ -109633,28 +112446,38 @@ "elem": { "type": "TypeString" } + } + ], + "ibm_dns_zone": [ + { + "name": "label", + "type": "TypeString", + "description": "Label", + "optional": true }, { - "name": "master_ip_address", + "name": "created_on", "type": "TypeString", - "description": "Master IP Address", - "required": true + "description": "Creation date", + "computed": true }, { - "name": "transfer_frequency", - "type": "TypeInt", - "description": "Transfer frequency value", - "required": true + "name": "modified_on", + "type": "TypeString", + "description": "Modification date", + "computed": true }, { - "name": "zone_name", + "name": "instance_id", "type": "TypeString", - "description": "Zone name", + "description": "Instance ID", + "cloud_data_type": "resource_instance", "immutable": true, - "required": true - } - ], - "ibm_dns_zone": [ + "required": true, + "cloud_data_range": [ + "service:dns-svcs" + ] + }, { "name": "zone_id", "type": "TypeString", @@ -109679,50 +112502,54 @@ "type": "TypeString", "description": "Zone state", "computed": true + } + ], + "ibm_en_destination_android": [ + { + "name": "instance_guid", + "type": "TypeString", + "description": "Unique identifier for IBM Cloud Event Notifications instance.", + "immutable": true, + "required": true }, { - "name": "label", + "name": "name", "type": "TypeString", - "description": "Label", - "optional": true + "description": "The Destintion name.", + "required": true }, { - "name": "created_on", + "name": "updated_at", "type": "TypeString", - "description": "Creation date", + "description": "Last updated time.", "computed": true }, { - "name": "modified_on", - "type": "TypeString", - "description": "Modification date", + "name": "subscription_count", + "type": "TypeInt", + "description": "Number of subscriptions.", "computed": true }, { - "name": "instance_id", - "type": "TypeString", - "description": "Instance ID", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true, - "cloud_data_range": [ - "service:dns-svcs" - ] - } - ], - "ibm_en_destination_android": [ + "name": "subscription_names", + "type": "TypeList", + "description": "List of subscriptions.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, { - "name": "instance_guid", + "name": "type", "type": "TypeString", - "description": "Unique identifier for IBM Cloud Event Notifications instance.", - "immutable": true, + "description": "The type of Destination push_android.", "required": true }, { - "name": "name", + "name": "description", "type": "TypeString", - "description": "The Destintion name.", - "required": true + "description": "The Destination description.", + "optional": true }, { "name": "config", @@ -109770,48 +112597,9 @@ "type": "TypeString", "description": "Destination ID", "computed": true - }, - { - "name": "type", - "type": "TypeString", - "description": "The type of Destination push_android.", - "required": true - }, - { - "name": "description", - "type": "TypeString", - "description": "The Destination description.", - "optional": true - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Last updated time.", - "computed": true - }, - { - "name": "subscription_count", - "type": "TypeInt", - "description": "Number of subscriptions.", - "computed": true - }, - { - "name": "subscription_names", - "type": "TypeList", - "description": "List of subscriptions.", - "computed": true, - "elem": { - "type": "TypeString" - } } ], "ibm_en_destination_ce": [ - { - "name": "type", - "type": "TypeString", - "description": "The type of Destination Webhook.", - "required": true - }, { "name": "config", "type": "TypeList", @@ -109887,6 +112675,18 @@ "immutable": true, "required": true }, + { + "name": "name", + "type": "TypeString", + "description": "The Destintion name.", + "required": true + }, + { + "name": "type", + "type": "TypeString", + "description": "The type of Destination Webhook.", + "required": true + }, { "name": "description", "type": "TypeString", @@ -109898,12 +112698,6 @@ "type": "TypeString", "description": "Destination ID", "computed": true - }, - { - "name": "name", - "type": "TypeString", - "description": "The Destintion name.", - "required": true } ], "ibm_en_destination_cf": [ @@ -109914,18 +112708,6 @@ "immutable": true, "required": true }, - { - "name": "name", - "type": "TypeString", - "description": "The Destintion name.", - "required": true - }, - { - "name": "type", - "type": "TypeString", - "description": "The type of Destination ibmcf.", - "required": true - }, { "name": "description", "type": "TypeString", @@ -109961,6 +112743,12 @@ }, "max_items": 1 }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Last updated time.", + "computed": true + }, { "name": "subscription_count", "type": "TypeInt", @@ -109968,15 +112756,21 @@ "computed": true }, { - "name": "destination_id", + "name": "name", "type": "TypeString", - "description": "Destination ID", - "computed": true + "description": "The Destintion name.", + "required": true }, { - "name": "updated_at", + "name": "type", "type": "TypeString", - "description": "Last updated time.", + "description": "The type of Destination ibmcf.", + "required": true + }, + { + "name": "destination_id", + "type": "TypeString", + "description": "Destination ID", "computed": true }, { @@ -109990,12 +112784,58 @@ } ], "ibm_en_destination_chrome": [ + { + "name": "subscription_count", + "type": "TypeInt", + "description": "Number of subscriptions.", + "computed": true + }, + { + "name": "subscription_names", + "type": "TypeList", + "description": "List of subscriptions.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, { "name": "type", "type": "TypeString", "description": "The type of Destination type push_chrome.", "required": true }, + { + "name": "description", + "type": "TypeString", + "description": "The Destination description.", + "optional": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Last updated time.", + "computed": true + }, + { + "name": "destination_id", + "type": "TypeString", + "description": "Destination ID", + "computed": true + }, + { + "name": "instance_guid", + "type": "TypeString", + "description": "Unique identifier for IBM Cloud Event Notifications instance.", + "immutable": true, + "required": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The Destintion name.", + "required": true + }, { "name": "config", "type": "TypeList", @@ -110031,16 +112871,9 @@ } }, "max_items": 1 - }, - { - "name": "subscription_names", - "type": "TypeList", - "description": "List of subscriptions.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, + } + ], + "ibm_en_destination_cos": [ { "name": "instance_guid", "type": "TypeString", @@ -110049,43 +112882,25 @@ "required": true }, { - "name": "name", + "name": "type", "type": "TypeString", - "description": "The Destintion name.", + "description": "The type of Destination Webhook.", "required": true }, - { - "name": "description", - "type": "TypeString", - "description": "The Destination description.", - "optional": true - }, - { - "name": "destination_id", - "type": "TypeString", - "description": "Destination ID", - "computed": true - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Last updated time.", - "computed": true - }, { "name": "subscription_count", "type": "TypeInt", "description": "Number of subscriptions.", "computed": true - } - ], - "ibm_en_destination_cos": [ + }, { - "name": "instance_guid", - "type": "TypeString", - "description": "Unique identifier for IBM Cloud Event Notifications instance.", - "immutable": true, - "required": true + "name": "subscription_names", + "type": "TypeList", + "description": "List of subscriptions.", + "computed": true, + "elem": { + "type": "TypeString" + } }, { "name": "name", @@ -110093,6 +112908,12 @@ "description": "The Destintion name.", "required": true }, + { + "name": "description", + "type": "TypeString", + "description": "The Destination description.", + "optional": true + }, { "name": "config", "type": "TypeList", @@ -110129,9 +112950,23 @@ "max_items": 1 }, { - "name": "type", + "name": "destination_id", "type": "TypeString", - "description": "The type of Destination Webhook.", + "description": "Destination ID", + "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Last updated time.", + "computed": true + } + ], + "ibm_en_destination_custom_email": [ + { + "name": "name", + "type": "TypeString", + "description": "The Destintion name.", "required": true }, { @@ -110141,10 +112976,27 @@ "optional": true }, { - "name": "destination_id", - "type": "TypeString", - "description": "Destination ID", - "computed": true + "name": "config", + "type": "TypeList", + "description": "Payload describing a destination configuration.", + "optional": true, + "elem": { + "params": { + "name": "params", + "type": "TypeList", + "optional": true, + "elem": { + "domain": { + "name": "domain", + "type": "TypeString", + "description": "Domain for the Custom Domain Email Destination", + "required": true + } + }, + "max_items": 1 + } + }, + "max_items": 1 }, { "name": "updated_at", @@ -110152,12 +113004,6 @@ "description": "Last updated time.", "computed": true }, - { - "name": "subscription_count", - "type": "TypeInt", - "description": "Number of subscriptions.", - "computed": true - }, { "name": "subscription_names", "type": "TypeList", @@ -110166,9 +113012,20 @@ "elem": { "type": "TypeString" } - } - ], - "ibm_en_destination_firefox": [ + }, + { + "name": "instance_guid", + "type": "TypeString", + "description": "Unique identifier for IBM Cloud Event Notifications instance.", + "immutable": true, + "required": true + }, + { + "name": "type", + "type": "TypeString", + "description": "The type of Destination type smtp_custom.", + "required": true + }, { "name": "destination_id", "type": "TypeString", @@ -110176,10 +113033,24 @@ "computed": true }, { - "name": "description", + "name": "subscription_count", + "type": "TypeInt", + "description": "Number of subscriptions.", + "computed": true + } + ], + "ibm_en_destination_firefox": [ + { + "name": "name", "type": "TypeString", - "description": "The Destination description.", - "optional": true + "description": "The Destintion name.", + "required": true + }, + { + "name": "type", + "type": "TypeString", + "description": "The type of Destination type push_firefox.", + "required": true }, { "name": "config", @@ -110210,18 +113081,6 @@ }, "max_items": 1 }, - { - "name": "type", - "type": "TypeString", - "description": "The type of Destination type push_firefox.", - "required": true - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Last updated time.", - "computed": true - }, { "name": "subscription_count", "type": "TypeInt", @@ -110234,24 +113093,9 @@ "description": "List of subscriptions.", "computed": true, "elem": { - "type": "TypeString" - } - }, - { - "name": "instance_guid", - "type": "TypeString", - "description": "Unique identifier for IBM Cloud Event Notifications instance.", - "immutable": true, - "required": true - }, - { - "name": "name", - "type": "TypeString", - "description": "The Destintion name.", - "required": true - } - ], - "ibm_en_destination_huawei": [ + "type": "TypeString" + } + }, { "name": "instance_guid", "type": "TypeString", @@ -110260,22 +113104,30 @@ "required": true }, { - "name": "name", + "name": "description", "type": "TypeString", - "description": "The Destintion name.", - "required": true + "description": "The Destination description.", + "optional": true }, { - "name": "subscription_count", - "type": "TypeInt", - "description": "Number of subscriptions.", + "name": "destination_id", + "type": "TypeString", + "description": "Destination ID", "computed": true }, { - "name": "destination_id", + "name": "updated_at", "type": "TypeString", - "description": "Destination ID", + "description": "Last updated time.", "computed": true + } + ], + "ibm_en_destination_huawei": [ + { + "name": "type", + "type": "TypeString", + "description": "The type of Destination push_huawei.", + "required": true }, { "name": "updated_at", @@ -110283,6 +113135,12 @@ "description": "Last updated time.", "computed": true }, + { + "name": "subscription_count", + "type": "TypeInt", + "description": "Number of subscriptions.", + "computed": true + }, { "name": "subscription_names", "type": "TypeList", @@ -110293,9 +113151,16 @@ } }, { - "name": "type", + "name": "instance_guid", "type": "TypeString", - "description": "The type of Destination push_huawei.", + "description": "Unique identifier for IBM Cloud Event Notifications instance.", + "immutable": true, + "required": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The Destintion name.", "required": true }, { @@ -110338,13 +113203,31 @@ } }, "max_items": 1 + }, + { + "name": "destination_id", + "type": "TypeString", + "description": "Destination ID", + "computed": true } ], "ibm_en_destination_ios": [ { - "name": "certificate_content_type", + "name": "name", "type": "TypeString", - "description": "The Certificate Content Type to be set p8/p12.", + "description": "The Destintion name.", + "required": true + }, + { + "name": "type", + "type": "TypeString", + "description": "The type of Destination type push_ios.", + "required": true + }, + { + "name": "certificate", + "type": "TypeString", + "description": "The Certificate File.", "required": true }, { @@ -110407,12 +113290,6 @@ }, "max_items": 1 }, - { - "name": "subscription_count", - "type": "TypeInt", - "description": "Number of subscriptions.", - "computed": true - }, { "name": "subscription_names", "type": "TypeList", @@ -110423,27 +113300,16 @@ } }, { - "name": "description", - "type": "TypeString", - "description": "The Destination description.", - "optional": true - }, - { - "name": "name", - "type": "TypeString", - "description": "The Destintion name.", - "required": true - }, - { - "name": "type", + "name": "instance_guid", "type": "TypeString", - "description": "The type of Destination type push_ios.", + "description": "Unique identifier for IBM Cloud Event Notifications instance.", + "immutable": true, "required": true }, { - "name": "certificate", + "name": "certificate_content_type", "type": "TypeString", - "description": "The Certificate File.", + "description": "The Certificate Content Type to be set p8/p12.", "required": true }, { @@ -110459,26 +113325,25 @@ "computed": true }, { - "name": "instance_guid", + "name": "subscription_count", + "type": "TypeInt", + "description": "Number of subscriptions.", + "computed": true + }, + { + "name": "description", "type": "TypeString", - "description": "Unique identifier for IBM Cloud Event Notifications instance.", - "immutable": true, - "required": true + "description": "The Destination description.", + "optional": true } ], "ibm_en_destination_msteams": [ { - "name": "type", + "name": "name", "type": "TypeString", - "description": "The type of Destination msteams.", + "description": "The Destintion name.", "required": true }, - { - "name": "description", - "type": "TypeString", - "description": "The Destination description.", - "optional": true - }, { "name": "config", "type": "TypeList", @@ -110514,6 +113379,12 @@ "description": "Last updated time.", "computed": true }, + { + "name": "subscription_count", + "type": "TypeInt", + "description": "Number of subscriptions.", + "computed": true + }, { "name": "instance_guid", "type": "TypeString", @@ -110522,16 +113393,16 @@ "required": true }, { - "name": "name", + "name": "type", "type": "TypeString", - "description": "The Destintion name.", + "description": "The type of Destination msteams.", "required": true }, { - "name": "subscription_count", - "type": "TypeInt", - "description": "Number of subscriptions.", - "computed": true + "name": "description", + "type": "TypeString", + "description": "The Destination description.", + "optional": true }, { "name": "subscription_names", @@ -110550,6 +113421,12 @@ "description": "The Destintion name.", "required": true }, + { + "name": "type", + "type": "TypeString", + "description": "The type of Destination type push_chrome.", + "required": true + }, { "name": "description", "type": "TypeString", @@ -110557,9 +113434,9 @@ "optional": true }, { - "name": "destination_id", + "name": "updated_at", "type": "TypeString", - "description": "Destination ID", + "description": "Last updated time.", "computed": true }, { @@ -110584,12 +113461,6 @@ "immutable": true, "required": true }, - { - "name": "type", - "type": "TypeString", - "description": "The type of Destination type push_chrome.", - "required": true - }, { "name": "config", "type": "TypeList", @@ -110621,36 +113492,36 @@ "max_items": 1 }, { - "name": "updated_at", + "name": "destination_id", "type": "TypeString", - "description": "Last updated time.", + "description": "Destination ID", "computed": true } ], "ibm_en_destination_safari": [ { - "name": "type", + "name": "description", "type": "TypeString", - "description": "The type of Destination type push_ios.", - "required": true + "description": "The Destination description.", + "optional": true }, { - "name": "certificate", + "name": "icon_16x16_2x", "type": "TypeString", "description": "The Certificate File.", - "required": true + "optional": true }, { - "name": "icon_16x16_2x", + "name": "icon_32x32_2x_content_type", "type": "TypeString", "description": "The Certificate File.", "optional": true }, { - "name": "icon_128x128_2x", + "name": "destination_id", "type": "TypeString", - "description": "The Certificate File.", - "optional": true + "description": "Destination ID", + "computed": true }, { "name": "subscription_names", @@ -110661,13 +113532,6 @@ "type": "TypeString" } }, - { - "name": "instance_guid", - "type": "TypeString", - "description": "Unique identifier for IBM Cloud Event Notifications instance.", - "immutable": true, - "required": true - }, { "name": "name", "type": "TypeString", @@ -110675,85 +113539,56 @@ "required": true }, { - "name": "icon_32x32_2x", - "type": "TypeString", - "description": "The Certificate File.", - "optional": true - }, - { - "name": "destination_id", - "type": "TypeString", - "description": "Destination ID", - "computed": true - }, - { - "name": "icon_128x128_content_type", + "name": "icon_128x128", "type": "TypeString", "description": "The Certificate File.", "optional": true }, { - "name": "description", - "type": "TypeString", - "description": "The Destination description.", - "optional": true - }, - { - "name": "icon_16x16", + "name": "icon_128x128_2x", "type": "TypeString", "description": "The Certificate File.", "optional": true }, { - "name": "icon_32x32", + "name": "icon_16x16_content_type", "type": "TypeString", "description": "The Certificate File.", "optional": true }, { - "name": "icon_128x128", + "name": "icon_16x16_2x_content_type", "type": "TypeString", "description": "The Certificate File.", "optional": true }, { - "name": "icon_32x32_content_type", + "name": "icon_128x128_2x_content_type", "type": "TypeString", "description": "The Certificate File.", "optional": true }, { - "name": "updated_at", - "type": "TypeString", - "description": "Last updated time.", - "computed": true - }, - { - "name": "subscription_count", - "type": "TypeInt", - "description": "Number of subscriptions.", - "computed": true - }, - { - "name": "icon_16x16_content_type", + "name": "instance_guid", "type": "TypeString", - "description": "The Certificate File.", - "optional": true + "description": "Unique identifier for IBM Cloud Event Notifications instance.", + "immutable": true, + "required": true }, { - "name": "icon_16x16_2x_content_type", + "name": "icon_16x16", "type": "TypeString", "description": "The Certificate File.", "optional": true }, { - "name": "icon_32x32_2x_content_type", + "name": "icon_32x32_content_type", "type": "TypeString", "description": "The Certificate File.", "optional": true }, { - "name": "icon_128x128_2x_content_type", + "name": "icon_128x128_content_type", "type": "TypeString", "description": "The Certificate File.", "optional": true @@ -110817,43 +113652,30 @@ } }, "max_items": 1 - } - ], - "ibm_en_destination_slack": [ - { - "name": "config", - "type": "TypeList", - "description": "Payload describing a destination configuration.", - "optional": true, - "elem": { - "params": { - "name": "params", - "type": "TypeList", - "optional": true, - "elem": { - "url": { - "name": "url", - "type": "TypeString", - "description": "Slack webhook url.", - "required": true - } - }, - "max_items": 1 - } - }, - "max_items": 1 }, { - "name": "destination_id", + "name": "updated_at", "type": "TypeString", - "description": "Destination ID", + "description": "Last updated time.", "computed": true }, { - "name": "updated_at", + "name": "certificate", "type": "TypeString", - "description": "Last updated time.", - "computed": true + "description": "The Certificate File.", + "required": true + }, + { + "name": "icon_32x32", + "type": "TypeString", + "description": "The Certificate File.", + "optional": true + }, + { + "name": "icon_32x32_2x", + "type": "TypeString", + "description": "The Certificate File.", + "optional": true }, { "name": "subscription_count", @@ -110862,30 +113684,31 @@ "computed": true }, { - "name": "instance_guid", + "name": "type", "type": "TypeString", - "description": "Unique identifier for IBM Cloud Event Notifications instance.", - "immutable": true, + "description": "The type of Destination type push_ios.", "required": true - }, + } + ], + "ibm_en_destination_slack": [ { "name": "name", "type": "TypeString", "description": "The Destintion name.", "required": true }, - { - "name": "type", - "type": "TypeString", - "description": "The type of Destination Webhook.", - "required": true - }, { "name": "description", "type": "TypeString", "description": "The Destination description.", "optional": true }, + { + "name": "destination_id", + "type": "TypeString", + "description": "Destination ID", + "computed": true + }, { "name": "subscription_names", "type": "TypeList", @@ -110894,26 +113717,62 @@ "elem": { "type": "TypeString" } - } - ], - "ibm_en_destination_sn": [ + }, { - "name": "name", + "name": "instance_guid", "type": "TypeString", - "description": "The Destintion name.", + "description": "Unique identifier for IBM Cloud Event Notifications instance.", + "immutable": true, "required": true }, { "name": "type", "type": "TypeString", - "description": "The type of Destination type push_chrome.", + "description": "The type of Destination Webhook.", "required": true }, { - "name": "description", + "name": "config", + "type": "TypeList", + "description": "Payload describing a destination configuration.", + "optional": true, + "elem": { + "params": { + "name": "params", + "type": "TypeList", + "optional": true, + "elem": { + "url": { + "name": "url", + "type": "TypeString", + "description": "Slack webhook url.", + "required": true + } + }, + "max_items": 1 + } + }, + "max_items": 1 + }, + { + "name": "updated_at", "type": "TypeString", - "description": "The Destination description.", - "optional": true + "description": "Last updated time.", + "computed": true + }, + { + "name": "subscription_count", + "type": "TypeInt", + "description": "Number of subscriptions.", + "computed": true + } + ], + "ibm_en_destination_sn": [ + { + "name": "name", + "type": "TypeString", + "description": "The Destintion name.", + "required": true }, { "name": "config", @@ -110984,13 +113843,6 @@ "description": "Number of subscriptions.", "computed": true }, - { - "name": "instance_guid", - "type": "TypeString", - "description": "Unique identifier for IBM Cloud Event Notifications instance.", - "immutable": true, - "required": true - }, { "name": "subscription_names", "type": "TypeList", @@ -110999,19 +113851,44 @@ "elem": { "type": "TypeString" } + }, + { + "name": "instance_guid", + "type": "TypeString", + "description": "Unique identifier for IBM Cloud Event Notifications instance.", + "immutable": true, + "required": true + }, + { + "name": "type", + "type": "TypeString", + "description": "The type of Destination type push_chrome.", + "required": true + }, + { + "name": "description", + "type": "TypeString", + "description": "The Destination description.", + "optional": true } ], "ibm_en_destination_webhook": [ { - "name": "updated_at", + "name": "name", "type": "TypeString", - "description": "Last updated time.", - "computed": true + "description": "The Destintion name.", + "required": true }, { - "name": "subscription_count", - "type": "TypeInt", - "description": "Number of subscriptions.", + "name": "type", + "type": "TypeString", + "description": "The type of Destination Webhook.", + "required": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Last updated time.", "computed": true }, { @@ -111030,12 +113907,6 @@ "immutable": true, "required": true }, - { - "name": "type", - "type": "TypeString", - "description": "The type of Destination Webhook.", - "required": true - }, { "name": "description", "type": "TypeString", @@ -111096,10 +113967,10 @@ "computed": true }, { - "name": "name", - "type": "TypeString", - "description": "The Destintion name.", - "required": true + "name": "subscription_count", + "type": "TypeInt", + "description": "Number of subscriptions.", + "computed": true } ], "ibm_en_ibmsource": [ @@ -111130,6 +114001,31 @@ } ], "ibm_en_integration": [ + { + "name": "updated_at", + "type": "TypeString", + "description": "Last updated time.", + "computed": true + }, + { + "name": "instance_guid", + "type": "TypeString", + "description": "Unique identifier for IBM Cloud Event Notifications instance.", + "immutable": true, + "required": true + }, + { + "name": "integration_id", + "type": "TypeString", + "description": "Unique identifier for IBM Cloud Event Notifications instance.", + "required": true + }, + { + "name": "type", + "type": "TypeString", + "description": "The type of key integration kms/hs-crypto.", + "required": true + }, { "name": "metadata", "type": "TypeList", @@ -111155,13 +114051,9 @@ } }, "max_items": 1 - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Last updated time.", - "computed": true - }, + } + ], + "ibm_en_source": [ { "name": "instance_guid", "type": "TypeString", @@ -111169,20 +114061,6 @@ "immutable": true, "required": true }, - { - "name": "integration_id", - "type": "TypeString", - "description": "Unique identifier for IBM Cloud Event Notifications instance.", - "required": true - }, - { - "name": "type", - "type": "TypeString", - "description": "The type of key integration kms/hs-crypto.", - "required": true - } - ], - "ibm_en_source": [ { "name": "name", "type": "TypeString", @@ -111212,16 +114090,28 @@ "type": "TypeString", "description": "Last updated time.", "computed": true - }, + } + ], + "ibm_en_subscription_android": [ { "name": "instance_guid", "type": "TypeString", "description": "Unique identifier for IBM Cloud Event Notifications instance.", "immutable": true, "required": true - } - ], - "ibm_en_subscription_android": [ + }, + { + "name": "name", + "type": "TypeString", + "description": "Subscription name.", + "required": true + }, + { + "name": "description", + "type": "TypeString", + "description": "Subscription description.", + "optional": true + }, { "name": "subscription_id", "type": "TypeString", @@ -111229,9 +114119,9 @@ "computed": true }, { - "name": "destination_type", + "name": "destination_name", "type": "TypeString", - "description": "The type of Destination.", + "description": "The Destintion name.", "computed": true }, { @@ -111241,18 +114131,12 @@ "computed": true }, { - "name": "instance_guid", + "name": "destination_id", "type": "TypeString", - "description": "Unique identifier for IBM Cloud Event Notifications instance.", + "description": "Destination ID.", "immutable": true, "required": true }, - { - "name": "description", - "type": "TypeString", - "description": "Subscription description.", - "optional": true - }, { "name": "topic_id", "type": "TypeString", @@ -111261,9 +114145,9 @@ "required": true }, { - "name": "destination_name", + "name": "destination_type", "type": "TypeString", - "description": "The Destintion name.", + "description": "The type of Destination.", "computed": true }, { @@ -111271,27 +114155,27 @@ "type": "TypeString", "description": "Name of the topic.", "computed": true + } + ], + "ibm_en_subscription_ce": [ + { + "name": "subscription_id", + "type": "TypeString", + "description": "Subscription ID.", + "computed": true }, { - "name": "name", + "name": "topic_name", "type": "TypeString", - "description": "Subscription name.", - "required": true + "description": "Name of the topic.", + "computed": true }, { - "name": "destination_id", + "name": "topic_id", "type": "TypeString", - "description": "Destination ID.", + "description": "Topic ID.", "immutable": true, "required": true - } - ], - "ibm_en_subscription_ce": [ - { - "name": "destination_name", - "type": "TypeString", - "description": "The Destintion name.", - "computed": true }, { "name": "name", @@ -111306,10 +114190,11 @@ "optional": true }, { - "name": "subscription_id", + "name": "destination_id", "type": "TypeString", - "description": "Subscription ID.", - "computed": true + "description": "Destination ID.", + "immutable": true, + "required": true }, { "name": "destination_type", @@ -111317,6 +114202,12 @@ "description": "The type of Destination.", "computed": true }, + { + "name": "destination_name", + "type": "TypeString", + "description": "The Destintion name.", + "computed": true + }, { "name": "updated_at", "type": "TypeString", @@ -111329,45 +114220,45 @@ "description": "Unique identifier for IBM Cloud Event Notifications instance.", "immutable": true, "required": true + } + ], + "ibm_en_subscription_cf": [ + { + "name": "destination_name", + "type": "TypeString", + "description": "The Destintion name.", + "computed": true }, { - "name": "destination_id", + "name": "topic_name", "type": "TypeString", - "description": "Destination ID.", - "immutable": true, - "required": true + "description": "Name of the topic.", + "computed": true }, { - "name": "topic_id", + "name": "instance_guid", "type": "TypeString", - "description": "Topic ID.", + "description": "Unique identifier for IBM Cloud Event Notifications instance.", "immutable": true, "required": true }, { - "name": "topic_name", - "type": "TypeString", - "description": "Name of the topic.", - "computed": true - } - ], - "ibm_en_subscription_cf": [ - { - "name": "name", + "name": "destination_id", "type": "TypeString", - "description": "Subscription name.", + "description": "Destination ID.", + "immutable": true, "required": true }, { - "name": "description", + "name": "subscription_id", "type": "TypeString", - "description": "Subscription description.", - "optional": true + "description": "Subscription ID.", + "computed": true }, { - "name": "topic_name", + "name": "destination_type", "type": "TypeString", - "description": "Name of the topic.", + "description": "The type of Destination.", "computed": true }, { @@ -111377,18 +114268,16 @@ "computed": true }, { - "name": "instance_guid", + "name": "name", "type": "TypeString", - "description": "Unique identifier for IBM Cloud Event Notifications instance.", - "immutable": true, + "description": "Subscription name.", "required": true }, { - "name": "destination_id", + "name": "description", "type": "TypeString", - "description": "Destination ID.", - "immutable": true, - "required": true + "description": "Subscription description.", + "optional": true }, { "name": "topic_id", @@ -111396,7 +114285,9 @@ "description": "Topic ID.", "immutable": true, "required": true - }, + } + ], + "ibm_en_subscription_chrome": [ { "name": "subscription_id", "type": "TypeString", @@ -111410,19 +114301,31 @@ "computed": true }, { - "name": "destination_name", + "name": "topic_name", "type": "TypeString", - "description": "The Destintion name.", + "description": "Name of the topic.", "computed": true - } - ], - "ibm_en_subscription_chrome": [ + }, + { + "name": "instance_guid", + "type": "TypeString", + "description": "Unique identifier for IBM Cloud Event Notifications instance.", + "immutable": true, + "required": true + }, { "name": "description", "type": "TypeString", "description": "Subscription description.", "optional": true }, + { + "name": "topic_id", + "type": "TypeString", + "description": "Topic ID.", + "immutable": true, + "required": true + }, { "name": "destination_name", "type": "TypeString", @@ -111430,15 +114333,36 @@ "computed": true }, { - "name": "topic_name", + "name": "updated_at", "type": "TypeString", - "description": "Name of the topic.", + "description": "Last updated time.", "computed": true }, { - "name": "updated_at", + "name": "name", "type": "TypeString", - "description": "Last updated time.", + "description": "Subscription name.", + "required": true + }, + { + "name": "destination_id", + "type": "TypeString", + "description": "Destination ID.", + "immutable": true, + "required": true + } + ], + "ibm_en_subscription_cos": [ + { + "name": "destination_type", + "type": "TypeString", + "description": "The type of Destination.", + "computed": true + }, + { + "name": "destination_name", + "type": "TypeString", + "description": "The Destintion name.", "computed": true }, { @@ -111461,6 +114385,18 @@ "immutable": true, "required": true }, + { + "name": "subscription_id", + "type": "TypeString", + "description": "Subscription ID.", + "computed": true + }, + { + "name": "description", + "type": "TypeString", + "description": "Subscription description.", + "optional": true + }, { "name": "topic_id", "type": "TypeString", @@ -111469,19 +114405,25 @@ "required": true }, { - "name": "subscription_id", + "name": "topic_name", "type": "TypeString", - "description": "Subscription ID.", + "description": "Name of the topic.", "computed": true }, { - "name": "destination_type", + "name": "updated_at", "type": "TypeString", - "description": "The type of Destination.", + "description": "Last updated time.", "computed": true } ], - "ibm_en_subscription_cos": [ + "ibm_en_subscription_custom_email": [ + { + "name": "description", + "type": "TypeString", + "description": "Subscription description.", + "optional": true + }, { "name": "topic_id", "type": "TypeString", @@ -111489,6 +114431,83 @@ "immutable": true, "required": true }, + { + "name": "attributes", + "type": "TypeList", + "optional": true, + "elem": { + "add": { + "name": "add", + "type": "TypeList", + "description": "The Email address which should be added to smtp_ibm.", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + "add_notification_payload": { + "name": "add_notification_payload", + "type": "TypeBool", + "description": "Whether to add the notification payload to the email.", + "optional": true + }, + "from_email": { + "name": "from_email", + "type": "TypeString", + "description": "The email from where it is sourced", + "optional": true + }, + "from_name": { + "name": "from_name", + "type": "TypeString", + "description": "The name of email address from which email is sourced.", + "optional": true + }, + "invited": { + "name": "invited", + "type": "TypeList", + "description": "The Email address send the invite to in case of smtp_ibm.", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + "remove": { + "name": "remove", + "type": "TypeList", + "description": "The email id to be removed in case of smtp_ibm destination type.", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + "reply_to_mail": { + "name": "reply_to_mail", + "type": "TypeString", + "description": "The email address to reply to.", + "optional": true + }, + "reply_to_name": { + "name": "reply_to_name", + "type": "TypeString", + "description": "The name of the email address user to reply to.", + "optional": true + }, + "template_id_invitation": { + "name": "template_id_invitation", + "type": "TypeString", + "description": "The templete id for invitation", + "optional": true + }, + "template_id_notification": { + "name": "template_id_notification", + "type": "TypeString", + "description": "The templete id for notification", + "optional": true + } + }, + "max_items": 1 + }, { "name": "subscription_id", "type": "TypeString", @@ -111507,31 +114526,12 @@ "description": "Name of the topic.", "computed": true }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Last updated time.", - "computed": true - }, - { - "name": "instance_guid", - "type": "TypeString", - "description": "Unique identifier for IBM Cloud Event Notifications instance.", - "immutable": true, - "required": true - }, { "name": "name", "type": "TypeString", "description": "Subscription name.", "required": true }, - { - "name": "description", - "type": "TypeString", - "description": "Subscription description.", - "optional": true - }, { "name": "destination_id", "type": "TypeString", @@ -111544,13 +114544,11 @@ "type": "TypeString", "description": "The type of Destination.", "computed": true - } - ], - "ibm_en_subscription_email": [ + }, { - "name": "destination_name", + "name": "from", "type": "TypeString", - "description": "The Destintion name.", + "description": "From Email ID (it will be displayed only in case of smtp_ibm destination type).", "computed": true }, { @@ -111560,10 +114558,25 @@ "computed": true }, { - "name": "name", + "name": "instance_guid", "type": "TypeString", - "description": "Subscription name.", + "description": "Unique identifier for IBM Cloud Event Notifications instance.", + "immutable": true, "required": true + } + ], + "ibm_en_subscription_email": [ + { + "name": "updated_at", + "type": "TypeString", + "description": "Last updated time.", + "computed": true + }, + { + "name": "description", + "type": "TypeString", + "description": "Subscription description.", + "optional": true }, { "name": "destination_id", @@ -111572,6 +114585,13 @@ "immutable": true, "required": true }, + { + "name": "topic_id", + "type": "TypeString", + "description": "Topic ID.", + "immutable": true, + "required": true + }, { "name": "attributes", "type": "TypeList", @@ -111631,12 +114651,6 @@ }, "max_items": 1 }, - { - "name": "subscription_id", - "type": "TypeString", - "description": "Subscription ID.", - "computed": true - }, { "name": "destination_type", "type": "TypeString", @@ -111663,38 +114677,36 @@ "required": true }, { - "name": "description", + "name": "name", "type": "TypeString", - "description": "Subscription description.", - "optional": true + "description": "Subscription name.", + "required": true }, { - "name": "topic_id", + "name": "subscription_id", "type": "TypeString", - "description": "Topic ID.", - "immutable": true, - "required": true + "description": "Subscription ID.", + "computed": true + }, + { + "name": "destination_name", + "type": "TypeString", + "description": "The Destintion name.", + "computed": true } ], "ibm_en_subscription_firefox": [ { - "name": "description", - "type": "TypeString", - "description": "Subscription description.", - "optional": true - }, - { - "name": "destination_id", + "name": "instance_guid", "type": "TypeString", - "description": "Destination ID.", + "description": "Unique identifier for IBM Cloud Event Notifications instance.", "immutable": true, "required": true }, { - "name": "topic_id", + "name": "name", "type": "TypeString", - "description": "Topic ID.", - "immutable": true, + "description": "Subscription name.", "required": true }, { @@ -111710,16 +114722,29 @@ "computed": true }, { - "name": "instance_guid", + "name": "updated_at", "type": "TypeString", - "description": "Unique identifier for IBM Cloud Event Notifications instance.", + "description": "Last updated time.", + "computed": true + }, + { + "name": "description", + "type": "TypeString", + "description": "Subscription description.", + "optional": true + }, + { + "name": "destination_id", + "type": "TypeString", + "description": "Destination ID.", "immutable": true, "required": true }, { - "name": "name", + "name": "topic_id", "type": "TypeString", - "description": "Subscription name.", + "description": "Topic ID.", + "immutable": true, "required": true }, { @@ -111733,15 +114758,15 @@ "type": "TypeString", "description": "The Destintion name.", "computed": true - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Last updated time.", - "computed": true } ], "ibm_en_subscription_huawei": [ + { + "name": "subscription_id", + "type": "TypeString", + "description": "Subscription ID.", + "computed": true + }, { "name": "destination_type", "type": "TypeString", @@ -111749,42 +114774,42 @@ "computed": true }, { - "name": "topic_name", + "name": "destination_name", "type": "TypeString", - "description": "Name of the topic.", + "description": "The Destintion name.", "computed": true }, { - "name": "topic_id", + "name": "instance_guid", "type": "TypeString", - "description": "Topic ID.", + "description": "Unique identifier for IBM Cloud Event Notifications instance.", "immutable": true, "required": true }, { - "name": "subscription_id", + "name": "description", "type": "TypeString", - "description": "Subscription ID.", - "computed": true + "description": "Subscription description.", + "optional": true }, { - "name": "destination_name", + "name": "topic_id", "type": "TypeString", - "description": "The Destintion name.", - "computed": true + "description": "Topic ID.", + "immutable": true, + "required": true }, { - "name": "updated_at", + "name": "topic_name", "type": "TypeString", - "description": "Last updated time.", + "description": "Name of the topic.", "computed": true }, { - "name": "instance_guid", + "name": "updated_at", "type": "TypeString", - "description": "Unique identifier for IBM Cloud Event Notifications instance.", - "immutable": true, - "required": true + "description": "Last updated time.", + "computed": true }, { "name": "name", @@ -111792,12 +114817,6 @@ "description": "Subscription name.", "required": true }, - { - "name": "description", - "type": "TypeString", - "description": "Subscription description.", - "optional": true - }, { "name": "destination_id", "type": "TypeString", @@ -111808,40 +114827,41 @@ ], "ibm_en_subscription_ios": [ { - "name": "topic_name", + "name": "description", "type": "TypeString", - "description": "Name of the topic.", - "computed": true + "description": "Subscription description.", + "optional": true }, { - "name": "updated_at", + "name": "destination_type", "type": "TypeString", - "description": "Last updated time.", + "description": "The type of Destination.", "computed": true }, { - "name": "instance_guid", + "name": "name", "type": "TypeString", - "description": "Unique identifier for IBM Cloud Event Notifications instance.", - "immutable": true, + "description": "Subscription name.", "required": true }, { - "name": "description", + "name": "destination_id", "type": "TypeString", - "description": "Subscription description.", - "optional": true + "description": "Destination ID.", + "immutable": true, + "required": true }, { - "name": "subscription_id", + "name": "topic_id", "type": "TypeString", - "description": "Subscription ID.", - "computed": true + "description": "Topic ID.", + "immutable": true, + "required": true }, { - "name": "destination_type", + "name": "subscription_id", "type": "TypeString", - "description": "The type of Destination.", + "description": "Subscription ID.", "computed": true }, { @@ -111851,38 +114871,42 @@ "computed": true }, { - "name": "name", + "name": "topic_name", "type": "TypeString", - "description": "Subscription name.", - "required": true + "description": "Name of the topic.", + "computed": true }, { - "name": "destination_id", + "name": "updated_at", "type": "TypeString", - "description": "Destination ID.", - "immutable": true, - "required": true + "description": "Last updated time.", + "computed": true }, { - "name": "topic_id", + "name": "instance_guid", "type": "TypeString", - "description": "Topic ID.", + "description": "Unique identifier for IBM Cloud Event Notifications instance.", "immutable": true, "required": true } ], "ibm_en_subscription_msteams": [ { - "name": "topic_id", + "name": "destination_name", "type": "TypeString", - "description": "Topic ID.", - "immutable": true, - "required": true + "description": "The Destintion name.", + "computed": true }, { - "name": "subscription_id", + "name": "topic_name", "type": "TypeString", - "description": "Subscription ID.", + "description": "Name of the topic.", + "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Last updated time.", "computed": true }, { @@ -111893,9 +114917,10 @@ "required": true }, { - "name": "name", + "name": "topic_id", "type": "TypeString", - "description": "Subscription name.", + "description": "Topic ID.", + "immutable": true, "required": true }, { @@ -111906,64 +114931,63 @@ "required": true }, { - "name": "topic_name", + "name": "subscription_id", "type": "TypeString", - "description": "Name of the topic.", + "description": "Subscription ID.", "computed": true }, { - "name": "updated_at", + "name": "destination_type", "type": "TypeString", - "description": "Last updated time.", + "description": "The type of Destination.", "computed": true }, { - "name": "description", - "type": "TypeString", - "description": "Subscription description.", - "optional": true - }, - { - "name": "destination_type", + "name": "name", "type": "TypeString", - "description": "The type of Destination.", - "computed": true + "description": "Subscription name.", + "required": true }, { - "name": "destination_name", + "name": "description", "type": "TypeString", - "description": "The Destintion name.", - "computed": true + "description": "Subscription description.", + "optional": true } ], "ibm_en_subscription_pagerduty": [ { - "name": "instance_guid", + "name": "topic_id", "type": "TypeString", - "description": "Unique identifier for IBM Cloud Event Notifications instance.", + "description": "Topic ID.", "immutable": true, "required": true }, { - "name": "name", + "name": "subscription_id", "type": "TypeString", - "description": "Subscription name.", - "required": true + "description": "Subscription ID.", + "computed": true }, { - "name": "destination_id", + "name": "destination_name", "type": "TypeString", - "description": "Destination ID.", - "immutable": true, - "required": true + "description": "The Destintion name.", + "computed": true }, { - "name": "topic_id", + "name": "instance_guid", "type": "TypeString", - "description": "Topic ID.", + "description": "Unique identifier for IBM Cloud Event Notifications instance.", "immutable": true, "required": true }, + { + "name": "description", + "type": "TypeString", + "description": "Subscription description.", + "optional": true + }, { "name": "destination_type", "type": "TypeString", @@ -111971,37 +114995,50 @@ "computed": true }, { - "name": "destination_name", + "name": "topic_name", "type": "TypeString", - "description": "The Destintion name.", + "description": "Name of the topic.", "computed": true }, { - "name": "topic_name", + "name": "updated_at", "type": "TypeString", - "description": "Name of the topic.", + "description": "Last updated time.", "computed": true }, { - "name": "description", + "name": "name", "type": "TypeString", - "description": "Subscription description.", - "optional": true + "description": "Subscription name.", + "required": true }, + { + "name": "destination_id", + "type": "TypeString", + "description": "Destination ID.", + "immutable": true, + "required": true + } + ], + "ibm_en_subscription_safari": [ { "name": "subscription_id", "type": "TypeString", "description": "Subscription ID.", "computed": true }, + { + "name": "topic_name", + "type": "TypeString", + "description": "Name of the topic.", + "computed": true + }, { "name": "updated_at", "type": "TypeString", "description": "Last updated time.", "computed": true - } - ], - "ibm_en_subscription_safari": [ + }, { "name": "instance_guid", "type": "TypeString", @@ -112010,16 +115047,23 @@ "required": true }, { - "name": "subscription_id", + "name": "name", "type": "TypeString", - "description": "Subscription ID.", - "computed": true + "description": "Subscription name.", + "required": true }, { - "name": "destination_name", + "name": "description", "type": "TypeString", - "description": "The Destintion name.", - "computed": true + "description": "Subscription description.", + "optional": true + }, + { + "name": "destination_id", + "type": "TypeString", + "description": "Destination ID.", + "immutable": true, + "required": true }, { "name": "topic_id", @@ -112035,11 +115079,13 @@ "computed": true }, { - "name": "topic_name", + "name": "destination_name", "type": "TypeString", - "description": "Name of the topic.", + "description": "The Destintion name.", "computed": true - }, + } + ], + "ibm_en_subscription_slack": [ { "name": "updated_at", "type": "TypeString", @@ -112064,14 +115110,6 @@ "description": "Destination ID.", "immutable": true, "required": true - } - ], - "ibm_en_subscription_slack": [ - { - "name": "description", - "type": "TypeString", - "description": "Subscription description.", - "optional": true }, { "name": "topic_id", @@ -112095,9 +115133,9 @@ "max_items": 1 }, { - "name": "topic_name", + "name": "destination_name", "type": "TypeString", - "description": "Name of the topic.", + "description": "The Destintion name.", "computed": true }, { @@ -112108,10 +115146,10 @@ "required": true }, { - "name": "name", + "name": "subscription_id", "type": "TypeString", - "description": "Subscription name.", - "required": true + "description": "Subscription ID.", + "computed": true }, { "name": "destination_type", @@ -112120,11 +115158,13 @@ "computed": true }, { - "name": "destination_name", + "name": "topic_name", "type": "TypeString", - "description": "The Destintion name.", + "description": "Name of the topic.", "computed": true - }, + } + ], + "ibm_en_subscription_sms": [ { "name": "updated_at", "type": "TypeString", @@ -112132,38 +115172,28 @@ "computed": true }, { - "name": "destination_id", + "name": "instance_guid", "type": "TypeString", - "description": "Destination ID.", + "description": "Unique identifier for IBM Cloud Event Notifications instance.", "immutable": true, "required": true }, { - "name": "subscription_id", - "type": "TypeString", - "description": "Subscription ID.", - "computed": true - } - ], - "ibm_en_subscription_sms": [ - { - "name": "instance_guid", + "name": "name", "type": "TypeString", - "description": "Unique identifier for IBM Cloud Event Notifications instance.", - "immutable": true, + "description": "Subscription name.", "required": true }, { - "name": "destination_id", + "name": "description", "type": "TypeString", - "description": "Destination ID.", - "immutable": true, - "required": true + "description": "Subscription description.", + "optional": true }, { - "name": "topic_id", + "name": "destination_id", "type": "TypeString", - "description": "Topic ID.", + "description": "Destination ID.", "immutable": true, "required": true }, @@ -112174,23 +115204,18 @@ "computed": true }, { - "name": "updated_at", + "name": "destination_name", "type": "TypeString", - "description": "Last updated time.", + "description": "The Destination name.", "computed": true }, { - "name": "name", + "name": "topic_id", "type": "TypeString", - "description": "Subscription name.", + "description": "Topic ID.", + "immutable": true, "required": true }, - { - "name": "description", - "type": "TypeString", - "description": "Subscription description.", - "optional": true - }, { "name": "attributes", "type": "TypeList", @@ -112232,12 +115257,6 @@ "description": "The type of Destination.", "computed": true }, - { - "name": "destination_name", - "type": "TypeString", - "description": "The Destination name.", - "computed": true - }, { "name": "topic_name", "type": "TypeString", @@ -112246,6 +115265,13 @@ } ], "ibm_en_subscription_sn": [ + { + "name": "destination_id", + "type": "TypeString", + "description": "Destination ID.", + "immutable": true, + "required": true + }, { "name": "subscription_id", "type": "TypeString", @@ -112259,17 +115285,22 @@ "computed": true }, { - "name": "destination_id", + "name": "destination_name", "type": "TypeString", - "description": "Destination ID.", + "description": "The Destintion name.", + "computed": true + }, + { + "name": "instance_guid", + "type": "TypeString", + "description": "Unique identifier for IBM Cloud Event Notifications instance.", "immutable": true, "required": true }, { - "name": "topic_id", + "name": "name", "type": "TypeString", - "description": "Topic ID.", - "immutable": true, + "description": "Subscription name.", "required": true }, { @@ -112279,10 +115310,11 @@ "optional": true }, { - "name": "destination_name", + "name": "topic_id", "type": "TypeString", - "description": "The Destintion name.", - "computed": true + "description": "Topic ID.", + "immutable": true, + "required": true }, { "name": "topic_name", @@ -112295,19 +115327,6 @@ "type": "TypeString", "description": "Last updated time.", "computed": true - }, - { - "name": "instance_guid", - "type": "TypeString", - "description": "Unique identifier for IBM Cloud Event Notifications instance.", - "immutable": true, - "required": true - }, - { - "name": "name", - "type": "TypeString", - "description": "Subscription name.", - "required": true } ], "ibm_en_subscription_webhook": [ @@ -112325,37 +115344,18 @@ "required": true }, { - "name": "destination_id", + "name": "description", "type": "TypeString", - "description": "Destination ID.", - "immutable": true, - "required": true + "description": "Subscription description.", + "optional": true }, { - "name": "topic_id", + "name": "destination_id", "type": "TypeString", - "description": "Topic ID.", + "description": "Destination ID.", "immutable": true, "required": true }, - { - "name": "destination_name", - "type": "TypeString", - "description": "The Destintion name.", - "computed": true - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Last updated time.", - "computed": true - }, - { - "name": "description", - "type": "TypeString", - "description": "Subscription description.", - "optional": true - }, { "name": "attributes", "type": "TypeList", @@ -112372,43 +115372,44 @@ "max_items": 1 }, { - "name": "subscription_id", + "name": "topic_name", "type": "TypeString", - "description": "Subscription ID.", + "description": "Name of the topic.", "computed": true }, { - "name": "destination_type", + "name": "updated_at", "type": "TypeString", - "description": "The type of Destination.", + "description": "Last updated time.", "computed": true }, { - "name": "topic_name", + "name": "topic_id", "type": "TypeString", - "description": "Name of the topic.", - "computed": true - } - ], - "ibm_en_topic": [ + "description": "Topic ID.", + "immutable": true, + "required": true + }, { - "name": "description", + "name": "subscription_id", "type": "TypeString", - "description": "Description of the topic.", - "optional": true + "description": "Subscription ID.", + "computed": true }, { - "name": "topic_id", + "name": "destination_type", "type": "TypeString", - "description": "Topic ID.", + "description": "The type of Destination.", "computed": true }, { - "name": "source_count", - "type": "TypeInt", - "description": "Number of sources.", + "name": "destination_name", + "type": "TypeString", + "description": "The Destintion name.", "computed": true - }, + } + ], + "ibm_en_topic": [ { "name": "instance_guid", "type": "TypeString", @@ -112423,57 +115424,15 @@ "required": true }, { - "name": "sources", - "type": "TypeList", - "description": "List of sources.", - "optional": true, - "elem": { - "id": { - "name": "id", - "type": "TypeString", - "description": "ID of the source.", - "required": true - }, - "rules": { - "name": "rules", - "type": "TypeList", - "description": "List of rules.", - "optional": true, - "elem": { - "enabled": { - "name": "enabled", - "type": "TypeBool", - "description": "Whether the rule is enabled or not.", - "default_value": true, - "optional": true - }, - "event_type_filter": { - "name": "event_type_filter", - "type": "TypeString", - "description": "Event type filter.", - "required": true - }, - "notification_filter": { - "name": "notification_filter", - "type": "TypeString", - "description": "Notification filter.", - "default_value": "", - "optional": true - } - } - } - } - }, - { - "name": "updated_at", + "name": "description", "type": "TypeString", - "description": "Last time the topic was updated.", - "computed": true + "description": "Description of the topic.", + "optional": true }, { - "name": "subscription_count", + "name": "source_count", "type": "TypeInt", - "description": "Number of subscriptions.", + "description": "Number of sources.", "computed": true }, { @@ -112525,38 +115484,74 @@ "computed": true } } - } - ], - "ibm_enterprise": [ - { - "name": "source_account_id", - "type": "TypeString", - "description": "The ID of the account that is used to create the enterprise.", - "immutable": true, - "required": true }, { - "name": "name", - "type": "TypeString", - "description": "The name of the enterprise. This field must have 3 - 60 characters.", - "required": true + "name": "sources", + "type": "TypeList", + "description": "List of sources.", + "optional": true, + "elem": { + "id": { + "name": "id", + "type": "TypeString", + "description": "ID of the source.", + "required": true + }, + "rules": { + "name": "rules", + "type": "TypeList", + "description": "List of rules.", + "optional": true, + "elem": { + "enabled": { + "name": "enabled", + "type": "TypeBool", + "description": "Whether the rule is enabled or not.", + "default_value": true, + "optional": true + }, + "event_type_filter": { + "name": "event_type_filter", + "type": "TypeString", + "description": "Event type filter.", + "required": true + }, + "notification_filter": { + "name": "notification_filter", + "type": "TypeString", + "description": "Notification filter.", + "default_value": "", + "optional": true + } + } + } + } }, { - "name": "primary_contact_iam_id", + "name": "topic_id", "type": "TypeString", - "description": "The IAM ID of the enterprise primary contact, such as `IBMid-0123ABC`. The IAM ID must already exist.", - "required": true + "description": "Topic ID.", + "computed": true }, { - "name": "url", + "name": "updated_at", "type": "TypeString", - "description": "The URL of the enterprise.", + "description": "Last time the topic was updated.", "computed": true }, { - "name": "state", + "name": "subscription_count", + "type": "TypeInt", + "description": "Number of subscriptions.", + "computed": true + } + ], + "ibm_enterprise": [ + { + "name": "crn", "type": "TypeString", - "description": "The state of the enterprise.", + "description": "The Cloud Resource Name (CRN) of the enterprise.", + "cloud_data_type": "crn", "computed": true }, { @@ -112565,6 +115560,12 @@ "description": "The email of the primary contact of the enterprise.", "computed": true }, + { + "name": "created_at", + "type": "TypeString", + "description": "The time stamp at which the enterprise was created.", + "computed": true + }, { "name": "updated_by", "type": "TypeString", @@ -112578,22 +115579,33 @@ "optional": true }, { - "name": "enterprise_account_id", + "name": "name", "type": "TypeString", - "description": "The enterprise account ID.", + "description": "The name of the enterprise. This field must have 3 - 60 characters.", + "required": true + }, + { + "name": "primary_contact_iam_id", + "type": "TypeString", + "description": "The IAM ID of the enterprise primary contact, such as `IBMid-0123ABC`. The IAM ID must already exist.", + "required": true + }, + { + "name": "url", + "type": "TypeString", + "description": "The URL of the enterprise.", "computed": true }, { - "name": "crn", + "name": "enterprise_account_id", "type": "TypeString", - "description": "The Cloud Resource Name (CRN) of the enterprise.", - "cloud_data_type": "crn", + "description": "The enterprise account ID.", "computed": true }, { - "name": "created_at", + "name": "state", "type": "TypeString", - "description": "The time stamp at which the enterprise was created.", + "description": "The state of the enterprise.", "computed": true }, { @@ -112607,17 +115619,48 @@ "type": "TypeString", "description": "The time stamp at which the enterprise was last updated.", "computed": true + }, + { + "name": "source_account_id", + "type": "TypeString", + "description": "The ID of the account that is used to create the enterprise.", + "immutable": true, + "required": true } ], "ibm_enterprise_account": [ { - "name": "owner_iam_id", + "name": "crn", "type": "TypeString", - "description": "The IAM ID of the account owner, such as `IBMid-0123ABC`. The IAM ID must already exist.", - "immutable": true, + "description": "The Cloud Resource Name (CRN) of the account.", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "account_id", + "type": "TypeString", + "description": "The source account id of account to be imported", "optional": true, "computed": true }, + { + "name": "owner_email", + "type": "TypeString", + "description": "The email address of the owner of the account.", + "computed": true + }, + { + "name": "updated_by", + "type": "TypeString", + "description": "The IAM ID of the user or service that updated the account.", + "computed": true + }, + { + "name": "parent", + "type": "TypeString", + "description": "The CRN of the parent under which the account will be created. The parent can be an existing account group or the enterprise itself.", + "required": true + }, { "name": "traits", "type": "TypeSet", @@ -112639,55 +115682,42 @@ } }, { - "name": "url", + "name": "state", "type": "TypeString", - "description": "The URL of the account.", + "description": "The state of the account.", "computed": true }, { - "name": "account_id", + "name": "owner_iam_id", "type": "TypeString", - "description": "The source account id of account to be imported", + "description": "The IAM ID of the account owner, such as `IBMid-0123ABC`. The IAM ID must already exist.", + "immutable": true, "optional": true, "computed": true }, { - "name": "enterprise_path", + "name": "enterprise_account_id", "type": "TypeString", - "description": "The path from the enterprise to this particular account.", + "description": "The enterprise account ID.", + "optional": true, "computed": true }, { - "name": "updated_by", + "name": "enterprise_path", "type": "TypeString", - "description": "The IAM ID of the user or service that updated the account.", + "description": "The path from the enterprise to this particular account.", "computed": true }, { - "name": "parent", - "type": "TypeString", - "description": "The CRN of the parent under which the account will be created. The parent can be an existing account group or the enterprise itself.", - "required": true - }, - { - "name": "name", - "type": "TypeString", - "description": "The name of the account. This field must have 3 - 60 characters.", - "immutable": true, - "optional": true, + "name": "paid", + "type": "TypeBool", + "description": "The type of account - whether it is free or paid.", "computed": true }, { - "name": "enterprise_account_id", + "name": "created_at", "type": "TypeString", - "description": "The enterprise account ID.", - "optional": true, - "computed": true - }, - { - "name": "is_enterprise_account", - "type": "TypeBool", - "description": "The flag to indicate whether the account is an enterprise account or not.", + "description": "The time stamp at which the account was created.", "computed": true }, { @@ -112703,51 +115733,34 @@ "computed": true }, { - "name": "state", - "type": "TypeString", - "description": "The state of the account.", - "computed": true - }, - { - "name": "paid", - "type": "TypeBool", - "description": "The type of account - whether it is free or paid.", - "computed": true - }, - { - "name": "owner_email", + "name": "url", "type": "TypeString", - "description": "The email address of the owner of the account.", + "description": "The URL of the account.", "computed": true }, { - "name": "crn", + "name": "enterprise_id", "type": "TypeString", - "description": "The Cloud Resource Name (CRN) of the account.", - "cloud_data_type": "crn", + "description": "The enterprise ID that the account is a part of.", + "optional": true, "computed": true }, { - "name": "enterprise_id", + "name": "name", "type": "TypeString", - "description": "The enterprise ID that the account is a part of.", + "description": "The name of the account. This field must have 3 - 60 characters.", + "immutable": true, "optional": true, "computed": true }, { - "name": "created_at", - "type": "TypeString", - "description": "The time stamp at which the account was created.", + "name": "is_enterprise_account", + "type": "TypeBool", + "description": "The flag to indicate whether the account is an enterprise account or not.", "computed": true } ], "ibm_enterprise_account_group": [ - { - "name": "url", - "type": "TypeString", - "description": "The URL of the account group.", - "computed": true - }, { "name": "enterprise_account_id", "type": "TypeString", @@ -112755,35 +115768,21 @@ "computed": true }, { - "name": "parent", - "type": "TypeString", - "description": "The CRN of the parent under which the account group will be created. The parent can be an existing account group or the enterprise itself.", - "immutable": true, - "required": true - }, - { - "name": "primary_contact_iam_id", - "type": "TypeString", - "description": "The IAM ID of the primary contact for this account group, such as `IBMid-0123ABC`. The IAM ID must already exist.", - "required": true - }, - { - "name": "crn", + "name": "state", "type": "TypeString", - "description": "The Cloud Resource Name (CRN) of the account group.", - "cloud_data_type": "crn", + "description": "The state of the account group.", "computed": true }, { - "name": "enterprise_id", + "name": "updated_by", "type": "TypeString", - "description": "The enterprise ID that the account group is a part of.", + "description": "The IAM ID of the user or service that updated the account group.", "computed": true }, { - "name": "primary_contact_email", + "name": "created_at", "type": "TypeString", - "description": "The email address of the primary contact of the account group.", + "description": "The time stamp at which the account group was created.", "computed": true }, { @@ -112799,15 +115798,15 @@ "required": true }, { - "name": "state", + "name": "url", "type": "TypeString", - "description": "The state of the account group.", + "description": "The URL of the account group.", "computed": true }, { - "name": "created_at", + "name": "enterprise_path", "type": "TypeString", - "description": "The time stamp at which the account group was created.", + "description": "The path from the enterprise to this particular account group.", "computed": true }, { @@ -112817,33 +115816,39 @@ "computed": true }, { - "name": "enterprise_path", + "name": "parent", "type": "TypeString", - "description": "The path from the enterprise to this particular account group.", - "computed": true + "description": "The CRN of the parent under which the account group will be created. The parent can be an existing account group or the enterprise itself.", + "immutable": true, + "required": true }, { - "name": "updated_by", + "name": "primary_contact_iam_id", "type": "TypeString", - "description": "The IAM ID of the user or service that updated the account group.", - "computed": true - } - ], - "ibm_event_streams_schema": [ + "description": "The IAM ID of the primary contact for this account group, such as `IBMid-0123ABC`. The IAM ID must already exist.", + "required": true + }, { - "name": "schema", + "name": "crn", "type": "TypeString", - "description": "The schema in JSON format", - "required": true + "description": "The Cloud Resource Name (CRN) of the account group.", + "cloud_data_type": "crn", + "computed": true }, { - "name": "schema_id", + "name": "enterprise_id", "type": "TypeString", - "description": "The ID to be assigned to schema, which must be unique. If this value is not specified, a generated UUID is assigned.", - "immutable": true, - "optional": true, + "description": "The enterprise ID that the account group is a part of.", "computed": true }, + { + "name": "primary_contact_email", + "type": "TypeString", + "description": "The email address of the primary contact of the account group.", + "computed": true + } + ], + "ibm_event_streams_schema": [ { "name": "resource_instance_id", "type": "TypeString", @@ -112860,22 +115865,23 @@ "type": "TypeString", "description": "The API endpoint for interacting with an Event Streams REST API", "computed": true - } - ], - "ibm_event_streams_topic": [ - { - "name": "partitions", - "type": "TypeInt", - "description": "The number of partitions", - "default_value": 1, - "optional": true }, { - "name": "config", - "type": "TypeMap", - "description": "The configuration parameters of a topic", - "optional": true + "name": "schema", + "type": "TypeString", + "description": "The schema in JSON format", + "required": true }, + { + "name": "schema_id", + "type": "TypeString", + "description": "The ID to be assigned to schema, which must be unique. If this value is not specified, a generated UUID is assigned.", + "immutable": true, + "optional": true, + "computed": true + } + ], + "ibm_event_streams_topic": [ { "name": "resource_instance_id", "type": "TypeString", @@ -112906,28 +115912,22 @@ "type": "TypeString", "description": "The name of the topic", "required": true - } - ], - "ibm_firewall": [ - { - "name": "location", - "type": "TypeString", - "description": "Location info", - "cloud_data_type": "region", - "computed": true }, { - "name": "primary_ip", - "type": "TypeString", - "description": "Primary IP address", - "computed": true + "name": "partitions", + "type": "TypeInt", + "description": "The number of partitions", + "default_value": 1, + "optional": true }, { - "name": "username", - "type": "TypeString", - "description": "User name", - "computed": true - }, + "name": "config", + "type": "TypeMap", + "description": "The configuration parameters of a topic", + "optional": true + } + ], + "ibm_firewall": [ { "name": "password", "type": "TypeString", @@ -112966,26 +115966,28 @@ "elem": { "type": "TypeString" } - } - ], - "ibm_firewall_policy": [ + }, { - "name": "tags", - "type": "TypeSet", - "description": "List of tags", - "cloud_data_type": "tags", - "optional": true, - "elem": { - "type": "TypeString" - } + "name": "location", + "type": "TypeString", + "description": "Location info", + "cloud_data_type": "region", + "computed": true }, { - "name": "firewall_id", - "type": "TypeInt", - "description": "Firewall ID", - "immutable": true, - "required": true + "name": "primary_ip", + "type": "TypeString", + "description": "Primary IP address", + "computed": true }, + { + "name": "username", + "type": "TypeString", + "description": "User name", + "computed": true + } + ], + "ibm_firewall_policy": [ { "name": "rules", "type": "TypeList", @@ -113038,53 +116040,26 @@ "required": true } } - } - ], - "ibm_function_action": [ - { - "name": "namespace", - "type": "TypeString", - "description": "IBM Cloud function namespace.", - "immutable": true, - "required": true }, { - "name": "limits", - "type": "TypeList", + "name": "tags", + "type": "TypeSet", + "description": "List of tags", + "cloud_data_type": "tags", "optional": true, - "computed": true, "elem": { - "log_size": { - "name": "log_size", - "type": "TypeInt", - "description": "The maximum log size LIMIT in MB for the action.", - "default_value": 10, - "optional": true - }, - "memory": { - "name": "memory", - "type": "TypeInt", - "description": "The maximum memory LIMIT in MB for the action (default 256.", - "default_value": 256, - "optional": true - }, - "timeout": { - "name": "timeout", - "type": "TypeInt", - "description": "The timeout LIMIT in milliseconds after which the action is terminated.", - "default_value": 60000, - "optional": true - } - }, - "max_items": 1 + "type": "TypeString" + } }, { - "name": "user_defined_parameters", - "type": "TypeString", - "description": "Parameters values in KEY VALUE format. Parameter bindings included in the context passed to the action.", - "default_value": "[]", - "optional": true - }, + "name": "firewall_id", + "type": "TypeInt", + "description": "Firewall ID", + "immutable": true, + "required": true + } + ], + "ibm_function_action": [ { "name": "name", "type": "TypeString", @@ -113093,48 +116068,6 @@ "required": true, "matches": "^[^/*][a-zA-Z0-9/_@.-]" }, - { - "name": "publish", - "type": "TypeBool", - "description": "Action visibilty.", - "optional": true - }, - { - "name": "version", - "type": "TypeString", - "description": "Semantic version of the item.", - "computed": true - }, - { - "name": "user_defined_annotations", - "type": "TypeString", - "description": "Annotation values in KEY VALUE format.", - "default_value": "[]", - "optional": true - }, - { - "name": "annotations", - "type": "TypeString", - "description": "All annotations set on action by user and those set by the IBM Cloud Function backend/API.", - "computed": true - }, - { - "name": "parameters", - "type": "TypeString", - "description": "All paramters set on action by user and those set by the IBM Cloud Function backend/API.", - "computed": true - }, - { - "name": "action_id", - "type": "TypeString", - "computed": true - }, - { - "name": "target_endpoint_url", - "type": "TypeString", - "description": "Action target endpoint URL.", - "computed": true - }, { "name": "exec", "type": "TypeList", @@ -113189,6 +116122,92 @@ } }, "max_items": 1 + }, + { + "name": "user_defined_annotations", + "type": "TypeString", + "description": "Annotation values in KEY VALUE format.", + "default_value": "[]", + "optional": true + }, + { + "name": "user_defined_parameters", + "type": "TypeString", + "description": "Parameters values in KEY VALUE format. Parameter bindings included in the context passed to the action.", + "default_value": "[]", + "optional": true + }, + { + "name": "annotations", + "type": "TypeString", + "description": "All annotations set on action by user and those set by the IBM Cloud Function backend/API.", + "computed": true + }, + { + "name": "parameters", + "type": "TypeString", + "description": "All paramters set on action by user and those set by the IBM Cloud Function backend/API.", + "computed": true + }, + { + "name": "action_id", + "type": "TypeString", + "computed": true + }, + { + "name": "target_endpoint_url", + "type": "TypeString", + "description": "Action target endpoint URL.", + "computed": true + }, + { + "name": "namespace", + "type": "TypeString", + "description": "IBM Cloud function namespace.", + "immutable": true, + "required": true + }, + { + "name": "limits", + "type": "TypeList", + "optional": true, + "computed": true, + "elem": { + "log_size": { + "name": "log_size", + "type": "TypeInt", + "description": "The maximum log size LIMIT in MB for the action.", + "default_value": 10, + "optional": true + }, + "memory": { + "name": "memory", + "type": "TypeInt", + "description": "The maximum memory LIMIT in MB for the action (default 256.", + "default_value": 256, + "optional": true + }, + "timeout": { + "name": "timeout", + "type": "TypeInt", + "description": "The timeout LIMIT in milliseconds after which the action is terminated.", + "default_value": 60000, + "optional": true + } + }, + "max_items": 1 + }, + { + "name": "publish", + "type": "TypeBool", + "description": "Action visibilty.", + "optional": true + }, + { + "name": "version", + "type": "TypeString", + "description": "Semantic version of the item.", + "computed": true } ], "ibm_function_namespace": [ @@ -113221,18 +116240,12 @@ ], "ibm_function_package": [ { - "name": "user_defined_parameters", + "name": "bind_package_name", "type": "TypeString", - "description": "Parameters values in KEY VALUE format. Parameter bindings included in the context passed to the package.", - "default_value": "[]", + "description": "Name of package to be binded.", + "immutable": true, "optional": true }, - { - "name": "annotations", - "type": "TypeString", - "description": "All annotations set on package by user and those set by the IBM Cloud Function backend/API.", - "computed": true - }, { "name": "package_id", "type": "TypeString", @@ -113253,13 +116266,6 @@ "required": true, "matches": "\\A([\\w]|[\\w][\\w@ .-]*[\\w@.-]+)\\z" }, - { - "name": "publish", - "type": "TypeBool", - "description": "Package visibilty.", - "default_value": false, - "optional": true - }, { "name": "version", "type": "TypeString", @@ -113267,11 +116273,10 @@ "computed": true }, { - "name": "user_defined_annotations", + "name": "annotations", "type": "TypeString", - "description": "Annotation values in KEY VALUE format.", - "default_value": "[]", - "optional": true + "description": "All annotations set on package by user and those set by the IBM Cloud Function backend/API.", + "computed": true }, { "name": "parameters", @@ -113280,20 +116285,28 @@ "computed": true }, { - "name": "bind_package_name", + "name": "publish", + "type": "TypeBool", + "description": "Package visibilty.", + "default_value": false, + "optional": true + }, + { + "name": "user_defined_annotations", "type": "TypeString", - "description": "Name of package to be binded.", - "immutable": true, + "description": "Annotation values in KEY VALUE format.", + "default_value": "[]", + "optional": true + }, + { + "name": "user_defined_parameters", + "type": "TypeString", + "description": "Parameters values in KEY VALUE format. Parameter bindings included in the context passed to the package.", + "default_value": "[]", "optional": true } ], "ibm_function_rule": [ - { - "name": "publish", - "type": "TypeBool", - "description": "Rule visbility.", - "computed": true - }, { "name": "version", "type": "TypeString", @@ -113337,32 +116350,22 @@ "type": "TypeString", "description": "Status of the rule.", "computed": true - } - ], - "ibm_function_trigger": [ - { - "name": "version", - "type": "TypeString", - "description": "Semantic version of the item.", - "computed": true - }, - { - "name": "annotations", - "type": "TypeString", - "description": "All annotations set on trigger by user and those set by the IBM Cloud Function backend/API.", - "computed": true }, { - "name": "trigger_id", - "type": "TypeString", + "name": "publish", + "type": "TypeBool", + "description": "Rule visbility.", "computed": true - }, + } + ], + "ibm_function_trigger": [ { - "name": "namespace", + "name": "name", "type": "TypeString", - "description": "IBM Cloud function namespace.", + "description": "Name of Trigger.", "immutable": true, - "required": true + "required": true, + "matches": "\\A([\\w]|[\\w][\\w@ .-]*[\\w@.-]+)\\z" }, { "name": "feed", @@ -113388,13 +116391,6 @@ }, "max_items": 1 }, - { - "name": "user_defined_annotations", - "type": "TypeString", - "description": "Annotation values in KEY VALUE format.", - "default_value": "[]", - "optional": true - }, { "name": "user_defined_parameters", "type": "TypeString", @@ -113403,24 +116399,47 @@ "optional": true }, { - "name": "parameters", + "name": "trigger_id", "type": "TypeString", - "description": "All parameters set on trigger by user and those set by the IBM Cloud Function backend/API.", "computed": true }, { - "name": "name", + "name": "namespace", "type": "TypeString", - "description": "Name of Trigger.", + "description": "IBM Cloud function namespace.", "immutable": true, - "required": true, - "matches": "\\A([\\w]|[\\w][\\w@ .-]*[\\w@.-]+)\\z" + "required": true }, { "name": "publish", "type": "TypeBool", "description": "Trigger visbility.", "computed": true + }, + { + "name": "version", + "type": "TypeString", + "description": "Semantic version of the item.", + "computed": true + }, + { + "name": "user_defined_annotations", + "type": "TypeString", + "description": "Annotation values in KEY VALUE format.", + "default_value": "[]", + "optional": true + }, + { + "name": "annotations", + "type": "TypeString", + "description": "All annotations set on trigger by user and those set by the IBM Cloud Function backend/API.", + "computed": true + }, + { + "name": "parameters", + "type": "TypeString", + "description": "All parameters set on trigger by user and those set by the IBM Cloud Function backend/API.", + "computed": true } ], "ibm_hardware_firewall_shared": [ @@ -113454,22 +116473,41 @@ ], "ibm_hpcs": [ { - "name": "failover_units", - "type": "TypeInt", - "description": "The number of failover crypto units for your service instance", + "name": "dashboard_url", + "type": "TypeString", + "description": "Dashboard URL to access resource.", + "computed": true + }, + { + "name": "deleted_by", + "type": "TypeString", + "description": "The subject who deleted the instance.", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "A name for the HPCS instance", + "required": true + }, + { + "name": "service", + "type": "TypeString", + "description": "The name of the service offering `hs-crypto`", + "default_value": "hs-crypto", "optional": true }, { - "name": "scheduled_reclaim_by", + "name": "status", "type": "TypeString", - "description": "The subject who initiated the instance reclamation.", + "description": "Status of HPCS instance", "computed": true }, { - "name": "plan", + "name": "state", "type": "TypeString", - "description": "The plan type of the HPCS Instance", - "required": true + "description": "The current state of the instance.", + "computed": true }, { "name": "created_by", @@ -113484,9 +116522,9 @@ "computed": true }, { - "name": "extensions", - "type": "TypeMap", - "description": "The extended metadata as a map associated with the HPCS instance.", + "name": "restored_by", + "type": "TypeString", + "description": "The subject who restored the instance back from reclamation.", "computed": true }, { @@ -113503,63 +116541,40 @@ "required": true }, { - "name": "resource_group_id", - "type": "TypeString", - "description": "The resource group id", - "cloud_data_type": "resource_group", - "optional": true, - "computed": true + "name": "units", + "type": "TypeInt", + "description": "The number of operational crypto units for your service instance", + "required": true }, { - "name": "state", + "name": "restored_at", "type": "TypeString", - "description": "The current state of the instance.", + "description": "The date when the instance under reclamation was restored.", "computed": true }, { - "name": "update_at", + "name": "resource_bindings_url", "type": "TypeString", - "description": "The date when the instance was last updated.", + "description": "The relative path to the resource bindings for the instance.", "computed": true }, { - "name": "restored_at", + "name": "created_at", "type": "TypeString", - "description": "The date when the instance under reclamation was restored.", + "description": "The date when the instance was created.", "computed": true }, { - "name": "signature_threshold", - "type": "TypeInt", - "description": "Signature Threshold Value", - "required": true + "name": "extensions", + "type": "TypeMap", + "description": "The extended metadata as a map associated with the HPCS instance.", + "computed": true }, { - "name": "admins", - "type": "TypeSet", - "description": "Crypto Unit Administrators", - "required": true, - "elem": { - "key": { - "name": "key", - "type": "TypeString", - "description": "The administrator signature key", - "required": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Admin Name", - "required": true - }, - "token": { - "name": "token", - "type": "TypeString", - "description": "Credential giving access to the administrator signature key", - "secure": true, - "required": true - } - } + "name": "failover_units", + "type": "TypeInt", + "description": "The number of failover crypto units for your service instance", + "optional": true }, { "name": "tags", @@ -113574,58 +116589,98 @@ } }, { - "name": "status", + "name": "guid", "type": "TypeString", - "description": "Status of HPCS instance", + "description": "Guid of HPCS instance", "computed": true }, { - "name": "created_at", + "name": "resource_keys_url", "type": "TypeString", - "description": "The date when the instance was created.", + "description": "The relative path to the resource keys for the instance.", "computed": true }, { - "name": "name", + "name": "scheduled_reclaim_by", "type": "TypeString", - "description": "A name for the HPCS instance", - "required": true + "description": "The subject who initiated the instance reclamation.", + "computed": true }, { - "name": "units", + "name": "signature_threshold", "type": "TypeInt", - "description": "The number of operational crypto units for your service instance", + "description": "Signature Threshold Value", "required": true }, { - "name": "restored_by", + "name": "service_endpoints", "type": "TypeString", - "description": "The subject who restored the instance back from reclamation.", + "description": "Types of the service endpoints. Possible values are `public-and-private`, `private-only`.", + "optional": true, "computed": true }, { - "name": "service", + "name": "crn", "type": "TypeString", - "description": "The name of the service offering `hs-crypto`", - "default_value": "hs-crypto", - "optional": true + "description": "CRN of HPCS instance", + "cloud_data_type": "crn", + "computed": true }, { - "name": "dashboard_url", + "name": "update_at", "type": "TypeString", - "description": "Dashboard URL to access resource.", + "description": "The date when the instance was last updated.", "computed": true }, { - "name": "resource_bindings_url", + "name": "scheduled_reclaim_at", "type": "TypeString", - "description": "The relative path to the resource bindings for the instance.", + "description": "The date when the instance was scheduled for reclamation.", "computed": true }, { - "name": "resource_keys_url", + "name": "signature_server_url", "type": "TypeString", - "description": "The relative path to the resource keys for the instance.", + "description": "URL of signing service", + "optional": true + }, + { + "name": "admins", + "type": "TypeSet", + "description": "Crypto Unit Administrators", + "required": true, + "elem": { + "key": { + "name": "key", + "type": "TypeString", + "description": "The administrator signature key", + "required": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Admin Name", + "required": true + }, + "token": { + "name": "token", + "type": "TypeString", + "description": "Credential giving access to the administrator signature key", + "secure": true, + "required": true + } + } + }, + { + "name": "plan", + "type": "TypeString", + "description": "The plan type of the HPCS Instance", + "required": true + }, + { + "name": "resource_aliases_url", + "type": "TypeString", + "description": "The relative path to the resource aliases for the instance.", "computed": true }, { @@ -113703,75 +116758,26 @@ } }, { - "name": "service_endpoints", + "name": "resource_group_id", "type": "TypeString", - "description": "Types of the service endpoints. Possible values are `public-and-private`, `private-only`.", + "description": "The resource group id", + "cloud_data_type": "resource_group", "optional": true, "computed": true }, - { - "name": "crn", - "type": "TypeString", - "description": "CRN of HPCS instance", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "guid", - "type": "TypeString", - "description": "Guid of HPCS instance", - "computed": true - }, - { - "name": "scheduled_reclaim_at", - "type": "TypeString", - "description": "The date when the instance was scheduled for reclamation.", - "computed": true - }, - { - "name": "signature_server_url", - "type": "TypeString", - "description": "URL of signing service", - "optional": true - }, - { - "name": "resource_aliases_url", - "type": "TypeString", - "description": "The relative path to the resource aliases for the instance.", - "computed": true - }, { "name": "update_by", "type": "TypeString", "description": "The subject who updated the instance.", "computed": true - }, - { - "name": "deleted_by", - "type": "TypeString", - "description": "The subject who deleted the instance.", - "computed": true } ], "ibm_hpcs_key_template": [ { - "name": "instance_id", - "type": "TypeString", - "description": "The ID of the UKO instance this resource exists in.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true, - "cloud_data_range": [ - "service:hs-crypto" - ] - }, - { - "name": "description", + "name": "created_by", "type": "TypeString", - "description": "Description of the key template.", - "max_length": 200, - "matches": "(.|\\\\n)*", - "optional": true + "description": "ID of the user that created the key template.", + "computed": true }, { "name": "uko_vault", @@ -113796,6 +116802,29 @@ "max_items": 1, "min_items": 1 }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Date and time when the key template was updated.", + "computed": true + }, + { + "name": "updated_by", + "type": "TypeString", + "description": "ID of the user that updated the key.", + "computed": true + }, + { + "name": "instance_id", + "type": "TypeString", + "description": "The ID of the UKO instance this resource exists in.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true, + "cloud_data_range": [ + "service:hs-crypto" + ] + }, { "name": "keystores", "type": "TypeList", @@ -113832,30 +116861,32 @@ } }, { - "name": "created_at", + "name": "version", "type": "TypeString", - "description": "Date and time when the key template was created.", + "description": "Version of the key template. Every time the key template is updated, the version will be updated automatically.", "computed": true }, { - "name": "updated_at", + "name": "region", "type": "TypeString", - "description": "Date and time when the key template was updated.", - "computed": true + "description": "The region of the UKO instance this resource exists in.", + "immutable": true, + "required": true, + "options": "au-syd, in-che, jp-osa, jp-tok, kr-seo, eu-de, eu-gb, ca-tor, us-south, us-south-test, us-east, br-sao" }, { - "name": "updated_by", + "name": "description", "type": "TypeString", - "description": "ID of the user that updated the key.", - "computed": true + "description": "Description of the key template.", + "max_length": 200, + "matches": "(.|\\\\n)*", + "optional": true }, { - "name": "region", + "name": "href", "type": "TypeString", - "description": "The region of the UKO instance this resource exists in.", - "immutable": true, - "required": true, - "options": "au-syd, in-che, jp-osa, jp-tok, kr-seo, eu-de, eu-gb, ca-tor, us-south, us-south-test, us-east, br-sao" + "description": "A URL that uniquely identifies your cloud resource.", + "computed": true }, { "name": "name", @@ -113908,217 +116939,208 @@ "min_items": 1 }, { - "name": "version", - "type": "TypeString", - "description": "Version of the key template. Every time the key template is updated, the version will be updated automatically.", - "computed": true - }, - { - "name": "created_by", - "type": "TypeString", - "description": "ID of the user that created the key template.", - "computed": true - }, - { - "name": "href", + "name": "created_at", "type": "TypeString", - "description": "A URL that uniquely identifies your cloud resource.", + "description": "Date and time when the key template was created.", "computed": true } ], "ibm_hpcs_keystore": [ { - "name": "uko_vault", + "name": "region", "type": "TypeString", - "description": "The UUID of the Vault in which the update is to take place.", + "description": "The region of the UKO instance this resource exists in.", "immutable": true, - "required": true + "required": true, + "options": "au-syd, in-che, jp-osa, jp-tok, kr-seo, eu-de, eu-gb, ca-tor, us-south, us-south-test, us-east, br-sao" }, { - "name": "google_location", + "name": "dry_run", + "type": "TypeBool", + "description": "Do not create a keystore, only verify if keystore created with given parameters can be communciated with successfully.", + "default_value": false, + "optional": true + }, + { + "name": "ibm_variant", "type": "TypeString", - "description": "Location represents the geographical region where a Cloud KMS resource is stored and can be accessed. A key's location impacts the performance of applications using the key.", + "description": "Possible IBM Cloud KMS variants.", "optional": true }, { - "name": "google_project_id", + "name": "ibm_api_endpoint", "type": "TypeString", - "description": "The project id associated with this keystore.", + "description": "API endpoint of the IBM Cloud keystore.", "optional": true }, { - "name": "aws_secret_access_key", + "name": "ibm_api_key", "type": "TypeString", - "description": "The secret access key used for connecting to this instance of AWS KMS.", + "description": "The IBM Cloud API key to be used for connecting to this IBM Cloud keystore.", "secure": true, "optional": true }, { - "name": "created_by", + "name": "ibm_instance_id", "type": "TypeString", - "description": "ID of the user that created the key.", - "computed": true + "description": "The instance ID of the IBM Cloud keystore.", + "optional": true }, { - "name": "etag", - "type": "TypeString", - "computed": true + "name": "vault", + "type": "TypeList", + "description": "Reference to a vault.", + "required": true, + "elem": { + "href": { + "name": "href", + "type": "TypeString", + "description": "A URL that uniquely identifies your cloud resource.", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "The v4 UUID used to uniquely identify the resource, as specified by RFC 4122.", + "required": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Name of the referenced vault.", + "computed": true + } + } }, { - "name": "location", + "name": "updated_at", "type": "TypeString", - "description": "Geographic location of the keystore, if available.", - "cloud_data_type": "region", + "description": "Date and time when the target keystore was last updated.", "computed": true }, { - "name": "instance_id", + "name": "created_by", "type": "TypeString", - "description": "The ID of the UKO instance this resource exists in.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true, - "cloud_data_range": [ - "service:hs-crypto" - ] + "description": "ID of the user that created the key.", + "computed": true }, { - "name": "region", + "name": "etag", "type": "TypeString", - "description": "The region of the UKO instance this resource exists in.", - "immutable": true, - "required": true, - "options": "au-syd, in-che, jp-osa, jp-tok, kr-seo, eu-de, eu-gb, ca-tor, us-south, us-south-test, us-east, br-sao" + "computed": true }, { - "name": "google_key_ring", + "name": "google_location", "type": "TypeString", - "description": "A key ring organizes keys in a specific Google Cloud location and allows you to manage access control on groups of keys.", + "description": "Location represents the geographical region where a Cloud KMS resource is stored and can be accessed. A key's location impacts the performance of applications using the key.", "optional": true }, { - "name": "ibm_api_key", + "name": "azure_service_principal_password", "type": "TypeString", - "description": "The IBM Cloud API key to be used for connecting to this IBM Cloud keystore.", + "description": "Azure service principal password.", "secure": true, "optional": true }, { - "name": "ibm_instance_id", + "name": "ibm_iam_endpoint", "type": "TypeString", - "description": "The instance ID of the IBM Cloud keystore.", + "description": "Endpoint of the IAM service for this IBM Cloud keystore.", "optional": true }, { - "name": "updated_at", - "type": "TypeString", - "description": "Date and time when the target keystore was last updated.", - "computed": true - }, - { - "name": "azure_resource_group", + "name": "ibm_key_ring", "type": "TypeString", - "description": "Resource group in Azure.", + "description": "The key ring of an IBM Cloud KMS Keystore.", "optional": true }, { - "name": "azure_location", + "name": "description", "type": "TypeString", - "description": "Location of the Azure Key Vault.", + "description": "Description of the keystore.", "optional": true }, { - "name": "azure_tenant", + "name": "created_at", "type": "TypeString", - "description": "Azure tenant that the Key Vault is associated with,.", - "optional": true + "description": "Date and time when the target keystore was created.", + "computed": true }, { - "name": "description", + "name": "instance_id", "type": "TypeString", - "description": "Description of the keystore.", - "optional": true + "description": "The ID of the UKO instance this resource exists in.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true, + "cloud_data_range": [ + "service:hs-crypto" + ] }, { - "name": "type", + "name": "uko_vault", "type": "TypeString", - "description": "Type of keystore.", + "description": "The UUID of the Vault in which the update is to take place.", + "immutable": true, "required": true }, { - "name": "dry_run", - "type": "TypeBool", - "description": "Do not create a keystore, only verify if keystore created with given parameters can be communciated with successfully.", - "default_value": false, - "optional": true - }, - { - "name": "azure_subscription_id", + "name": "updated_by", "type": "TypeString", - "description": "Subscription ID in Azure.", - "optional": true + "description": "ID of the user that last updated the key.", + "computed": true }, { - "name": "ibm_api_endpoint", + "name": "google_project_id", "type": "TypeString", - "description": "API endpoint of the IBM Cloud keystore.", + "description": "The project id associated with this keystore.", "optional": true }, { - "name": "updated_by", + "name": "location", "type": "TypeString", - "description": "ID of the user that last updated the key.", + "description": "Geographic location of the keystore, if available.", + "cloud_data_type": "region", "computed": true }, { - "name": "ibm_iam_endpoint", + "name": "groups", + "type": "TypeList", + "description": "List of groups that this keystore belongs to.", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "google_private_key_id", "type": "TypeString", - "description": "Endpoint of the IAM service for this IBM Cloud keystore.", + "description": "The private key id associated with this keystore.", "optional": true }, { - "name": "vault", - "type": "TypeList", - "description": "Reference to a vault.", - "required": true, - "elem": { - "href": { - "name": "href", - "type": "TypeString", - "description": "A URL that uniquely identifies your cloud resource.", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "The v4 UUID used to uniquely identify the resource, as specified by RFC 4122.", - "required": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Name of the referenced vault.", - "computed": true - } - } + "name": "aws_region", + "type": "TypeString", + "description": "AWS Region.", + "optional": true }, { - "name": "google_credentials", + "name": "aws_access_key_id", "type": "TypeString", - "description": "The value of the JSON key represented in the Base64 format.", + "description": "The access key id used for connecting to this instance of AWS KMS.", "secure": true, "optional": true }, { - "name": "google_private_key_id", + "name": "azure_subscription_id", "type": "TypeString", - "description": "The private key id associated with this keystore.", + "description": "Subscription ID in Azure.", "optional": true }, { - "name": "aws_region", + "name": "google_key_ring", "type": "TypeString", - "description": "AWS Region.", + "description": "A key ring organizes keys in a specific Google Cloud location and allows you to manage access control on groups of keys.", "optional": true }, { @@ -114128,10 +117150,15 @@ "optional": true }, { - "name": "azure_service_principal_password", + "name": "azure_location", "type": "TypeString", - "description": "Azure service principal password.", - "secure": true, + "description": "Location of the Azure Key Vault.", + "optional": true + }, + { + "name": "azure_service_principal_client_id", + "type": "TypeString", + "description": "Azure service principal client ID.", "optional": true }, { @@ -114140,6 +117167,12 @@ "description": "Azure environment, usually 'Azure'.", "optional": true }, + { + "name": "name", + "type": "TypeString", + "description": "Name of the target keystore. It can be changed in the future.", + "optional": true + }, { "name": "href", "type": "TypeString", @@ -114147,53 +117180,66 @@ "computed": true }, { - "name": "ibm_variant", + "name": "google_credentials", "type": "TypeString", - "description": "Possible IBM Cloud KMS variants.", + "description": "The value of the JSON key represented in the Base64 format.", + "secure": true, "optional": true }, { - "name": "ibm_key_ring", + "name": "aws_secret_access_key", "type": "TypeString", - "description": "The key ring of an IBM Cloud KMS Keystore.", + "description": "The secret access key used for connecting to this instance of AWS KMS.", + "secure": true, "optional": true }, { - "name": "name", + "name": "azure_resource_group", "type": "TypeString", - "description": "Name of the target keystore. It can be changed in the future.", + "description": "Resource group in Azure.", "optional": true }, { - "name": "groups", - "type": "TypeList", - "description": "List of groups that this keystore belongs to.", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "aws_access_key_id", + "name": "azure_tenant", "type": "TypeString", - "description": "The access key id used for connecting to this instance of AWS KMS.", - "secure": true, + "description": "Azure tenant that the Key Vault is associated with,.", "optional": true }, { - "name": "azure_service_principal_client_id", + "name": "type", "type": "TypeString", - "description": "Azure service principal client ID.", - "optional": true + "description": "Type of keystore.", + "required": true + } + ], + "ibm_hpcs_managed_key": [ + { + "name": "updated_by", + "type": "TypeString", + "description": "ID of the user that last updated the key.", + "computed": true }, { - "name": "created_at", + "name": "href", "type": "TypeString", - "description": "Date and time when the target keystore was created.", + "description": "A URL that uniquely identifies your cloud resource.", "computed": true - } - ], - "ibm_hpcs_managed_key": [ + }, + { + "name": "region", + "type": "TypeString", + "description": "The region of the UKO instance this resource exists in.", + "immutable": true, + "required": true, + "options": "au-syd, in-che, jp-osa, jp-tok, kr-seo, eu-de, eu-gb, ca-tor, us-south, us-south-test, us-east, br-sao" + }, + { + "name": "uko_vault", + "type": "TypeString", + "description": "The UUID of the Vault in which the update is to take place.", + "immutable": true, + "required": true + }, { "name": "label", "type": "TypeString", @@ -114203,6 +117249,35 @@ "max_length": 255, "matches": "^[A-Za-z0-9._ \\/-]+$" }, + { + "name": "state", + "type": "TypeString", + "description": "The state of the key.", + "optional": true, + "computed": true + }, + { + "name": "expiration_date", + "type": "TypeString", + "description": "Last day when the key is active.", + "computed": true + }, + { + "name": "vault", + "type": "TypeList", + "description": "ID of the Vault where the entity is to be created in.", + "required": true, + "elem": { + "id": { + "name": "id", + "type": "TypeString", + "description": "The v4 UUID used to uniquely identify the resource, as specified by RFC 4122.", + "required": true + } + }, + "max_items": 1, + "min_items": 1 + }, { "name": "tags", "type": "TypeList", @@ -114225,35 +117300,9 @@ } }, { - "name": "verification_patterns", - "type": "TypeList", - "description": "A list of verification patterns of the key (e.g. public key hash for RSA keys).", - "computed": true, - "elem": { - "method": { - "name": "method", - "type": "TypeString", - "description": "The method used for calculating the verification pattern.", - "required": true - }, - "value": { - "name": "value", - "type": "TypeString", - "description": "The calculated value.", - "required": true - } - } - }, - { - "name": "created_by", - "type": "TypeString", - "description": "ID of the user that created the key.", - "computed": true - }, - { - "name": "referenced_keystores", + "name": "template", "type": "TypeList", - "description": "referenced keystores.", + "description": "Reference to a key template.", "computed": true, "elem": { "href": { @@ -114273,18 +117322,18 @@ "name": { "name": "name", "type": "TypeString", - "description": "Name of the target keystore.", + "description": "Name of the key template.", "optional": true, "computed": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "Type of keystore.", - "required": true } } }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Date and time when the key was last updated.", + "computed": true + }, { "name": "etag", "type": "TypeString", @@ -114302,19 +117351,10 @@ ] }, { - "name": "region", - "type": "TypeString", - "description": "The region of the UKO instance this resource exists in.", - "immutable": true, - "required": true, - "options": "au-syd, in-che, jp-osa, jp-tok, kr-seo, eu-de, eu-gb, ca-tor, us-south, us-south-test, us-east, br-sao" - }, - { - "name": "uko_vault", + "name": "key_id", "type": "TypeString", - "description": "The UUID of the Vault in which the update is to take place.", - "immutable": true, - "required": true + "description": "The UUID of the key.", + "computed": true }, { "name": "template_name", @@ -114331,6 +117371,47 @@ "description": "Date and time when the key was created.", "computed": true }, + { + "name": "referenced_keystores", + "type": "TypeList", + "description": "referenced keystores.", + "computed": true, + "elem": { + "href": { + "name": "href", + "type": "TypeString", + "description": "A URL that uniquely identifies your cloud resource.", + "optional": true, + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "The v4 UUID used to uniquely identify the resource, as specified by RFC 4122.", + "optional": true, + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Name of the target keystore.", + "optional": true, + "computed": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "Type of keystore.", + "required": true + } + } + }, + { + "name": "created_by", + "type": "TypeString", + "description": "ID of the user that created the key.", + "computed": true + }, { "name": "instances", "type": "TypeList", @@ -114394,28 +117475,6 @@ } } }, - { - "name": "key_id", - "type": "TypeString", - "description": "The UUID of the key.", - "computed": true - }, - { - "name": "vault", - "type": "TypeList", - "description": "ID of the Vault where the entity is to be created in.", - "required": true, - "elem": { - "id": { - "name": "id", - "type": "TypeString", - "description": "The v4 UUID used to uniquely identify the resource, as specified by RFC 4122.", - "required": true - } - }, - "max_items": 1, - "min_items": 1 - }, { "name": "description", "type": "TypeString", @@ -114425,94 +117484,73 @@ "optional": true }, { - "name": "algorithm", - "type": "TypeString", - "description": "The algorithm of the key.", - "computed": true - }, - { - "name": "updated_at", + "name": "size", "type": "TypeString", - "description": "Date and time when the key was last updated.", + "description": "The size of the underlying cryptographic key or key pair. E.g. \"256\" for AES keys, or \"2048\" for RSA.", "computed": true }, { - "name": "href", + "name": "algorithm", "type": "TypeString", - "description": "A URL that uniquely identifies your cloud resource.", + "description": "The algorithm of the key.", "computed": true }, { - "name": "template", + "name": "verification_patterns", "type": "TypeList", - "description": "Reference to a key template.", + "description": "A list of verification patterns of the key (e.g. public key hash for RSA keys).", "computed": true, "elem": { - "href": { - "name": "href", - "type": "TypeString", - "description": "A URL that uniquely identifies your cloud resource.", - "optional": true, - "computed": true - }, - "id": { - "name": "id", + "method": { + "name": "method", "type": "TypeString", - "description": "The v4 UUID used to uniquely identify the resource, as specified by RFC 4122.", - "optional": true, - "computed": true + "description": "The method used for calculating the verification pattern.", + "required": true }, - "name": { - "name": "name", + "value": { + "name": "value", "type": "TypeString", - "description": "Name of the key template.", - "optional": true, - "computed": true + "description": "The calculated value.", + "required": true } } }, - { - "name": "state", - "type": "TypeString", - "description": "The state of the key.", - "optional": true, - "computed": true - }, - { - "name": "size", - "type": "TypeString", - "description": "The size of the underlying cryptographic key or key pair. E.g. \"256\" for AES keys, or \"2048\" for RSA.", - "computed": true - }, { "name": "activation_date", "type": "TypeString", "description": "First day when the key is active.", "computed": true - }, + } + ], + "ibm_hpcs_vault": [ { - "name": "expiration_date", + "name": "etag", "type": "TypeString", - "description": "Last day when the key is active.", "computed": true }, { - "name": "updated_by", + "name": "instance_id", "type": "TypeString", - "description": "ID of the user that last updated the key.", - "computed": true - } - ], - "ibm_hpcs_vault": [ + "description": "The ID of the UKO instance this resource exists in.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true, + "cloud_data_range": [ + "service:hs-crypto" + ] + }, { - "name": "href", + "name": "region", "type": "TypeString", - "description": "A URL that uniquely identifies your cloud resource.", - "computed": true + "description": "The region of the UKO instance this resource exists in.", + "immutable": true, + "required": true, + "options": "au-syd, in-che, jp-osa, jp-tok, kr-seo, eu-de, eu-gb, ca-tor, us-south, us-south-test, us-east, br-sao" }, { - "name": "etag", + "name": "vault_id", "type": "TypeString", + "description": "The ID of the vault.", "computed": true }, { @@ -114524,15 +117562,9 @@ "optional": true }, { - "name": "updated_by", - "type": "TypeString", - "description": "ID of the user that last updated the vault.", - "computed": true - }, - { - "name": "vault_id", + "name": "created_at", "type": "TypeString", - "description": "The ID of the vault.", + "description": "Date and time when the vault was created.", "computed": true }, { @@ -114544,12 +117576,6 @@ "max_length": 100, "matches": "^[A-Za-z0-9#@!$%'_-][A-Za-z0-9#@!$% '_-]*$" }, - { - "name": "created_at", - "type": "TypeString", - "description": "Date and time when the vault was created.", - "computed": true - }, { "name": "updated_at", "type": "TypeString", @@ -114563,23 +117589,16 @@ "computed": true }, { - "name": "instance_id", + "name": "updated_by", "type": "TypeString", - "description": "The ID of the UKO instance this resource exists in.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true, - "cloud_data_range": [ - "service:hs-crypto" - ] + "description": "ID of the user that last updated the vault.", + "computed": true }, { - "name": "region", + "name": "href", "type": "TypeString", - "description": "The region of the UKO instance this resource exists in.", - "immutable": true, - "required": true, - "options": "au-syd, in-che, jp-osa, jp-tok, kr-seo, eu-de, eu-gb, ca-tor, us-south, us-south-test, us-east, br-sao" + "description": "A URL that uniquely identifies your cloud resource.", + "computed": true } ], "ibm_iam_access_group": [ @@ -114625,35 +117644,6 @@ } ], "ibm_iam_access_group_dynamic_rule": [ - { - "name": "conditions", - "type": "TypeList", - "description": "conditions info", - "required": true, - "elem": { - "claim": { - "name": "claim", - "type": "TypeString", - "required": true - }, - "operator": { - "name": "operator", - "type": "TypeString", - "required": true - }, - "value": { - "name": "value", - "type": "TypeString", - "required": true - } - } - }, - { - "name": "rule_id", - "type": "TypeString", - "description": "id of the rule", - "computed": true - }, { "name": "access_group_id", "type": "TypeString", @@ -114682,46 +117672,38 @@ "type": "TypeString", "description": "The realm name or identity proivider url", "required": true - } - ], - "ibm_iam_access_group_members": [ - { - "name": "iam_profile_ids", - "type": "TypeSet", - "optional": true, - "elem": { - "type": "TypeString" - } }, { - "name": "members", + "name": "conditions", "type": "TypeList", - "computed": true, + "description": "conditions info", + "required": true, "elem": { - "iam_id": { - "name": "iam_id", + "claim": { + "name": "claim", "type": "TypeString", - "computed": true + "required": true }, - "type": { - "name": "type", + "operator": { + "name": "operator", "type": "TypeString", - "computed": true + "required": true + }, + "value": { + "name": "value", + "type": "TypeString", + "required": true } } }, { - "name": "access_group_id", + "name": "rule_id", "type": "TypeString", - "description": "Unique identifier of the access group", - "cloud_data_type": "iam", - "immutable": true, - "required": true, - "cloud_data_range": [ - "service:access_group", - "resolved_to:id" - ] - }, + "description": "id of the rule", + "computed": true + } + ], + "ibm_iam_access_group_members": [ { "name": "ibm_ids", "type": "TypeSet", @@ -114737,53 +117719,36 @@ "elem": { "type": "TypeString" } - } - ], - "ibm_iam_access_group_policy": [ + }, { - "name": "resource_tags", + "name": "iam_profile_ids", "type": "TypeSet", - "description": "Set access management tags.", "optional": true, "elem": { - "name": { - "name": "name", - "type": "TypeString", - "description": "Name of attribute.", - "required": true - }, - "operator": { - "name": "operator", + "type": "TypeString" + } + }, + { + "name": "members", + "type": "TypeList", + "computed": true, + "elem": { + "iam_id": { + "name": "iam_id", "type": "TypeString", - "description": "Operator of attribute.", - "default_value": "stringEquals", - "optional": true + "computed": true }, - "value": { - "name": "value", + "type": { + "name": "type", "type": "TypeString", - "description": "Value of attribute.", - "required": true + "computed": true } } }, - { - "name": "transaction_id", - "type": "TypeString", - "description": "Set transactionID for debug", - "optional": true, - "computed": true - }, - { - "name": "rule_operator", - "type": "TypeString", - "description": "Operator that multiple rule conditions are evaluated over", - "optional": true - }, { "name": "access_group_id", "type": "TypeString", - "description": "ID of access group", + "description": "Unique identifier of the access group", "cloud_data_type": "iam", "immutable": true, "required": true, @@ -114791,7 +117756,9 @@ "service:access_group", "resolved_to:id" ] - }, + } + ], + "ibm_iam_access_group_policy": [ { "name": "resources", "type": "TypeList", @@ -114856,69 +117823,97 @@ "max_items": 1 }, { - "name": "account_management", - "type": "TypeBool", - "description": "Give access to all account management services", - "default_value": false, + "name": "tags", + "type": "TypeSet", + "cloud_data_type": "tags", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "transaction_id", + "type": "TypeString", + "description": "Set transactionID for debug", + "optional": true, + "computed": true + }, + { + "name": "version", + "type": "TypeString", + "computed": true + }, + { + "name": "rule_operator", + "type": "TypeString", + "description": "Operator that multiple rule conditions are evaluated over", + "optional": true + }, + { + "name": "pattern", + "type": "TypeString", + "description": "Pattern rule follows for time-based condition", "optional": true }, { - "name": "tags", - "type": "TypeSet", - "cloud_data_type": "tags", - "optional": true, + "name": "access_group_id", + "type": "TypeString", + "description": "ID of access group", + "cloud_data_type": "iam", + "immutable": true, + "required": true, + "cloud_data_range": [ + "service:access_group", + "resolved_to:id" + ] + }, + { + "name": "roles", + "type": "TypeList", + "description": "Role names of the policy definition", + "required": true, "elem": { "type": "TypeString" } }, { - "name": "rule_conditions", + "name": "resource_attributes", "type": "TypeSet", - "description": "Rule conditions enforced by the policy", + "description": "Set resource attributes.", "optional": true, "elem": { - "key": { - "name": "key", + "name": { + "name": "name", "type": "TypeString", - "description": "Key of the condition", + "description": "Name of attribute.", "required": true }, "operator": { "name": "operator", "type": "TypeString", - "description": "Operator of the condition", - "required": true + "description": "Operator of attribute.", + "default_value": "stringEquals", + "optional": true }, "value": { "name": "value", - "type": "TypeList", - "description": "Value of the condition", - "required": true, - "elem": { - "type": "TypeString" - } + "type": "TypeString", + "description": "Value of attribute.", + "required": true } } }, { - "name": "pattern", - "type": "TypeString", - "description": "Pattern rule follows for time-based condition", + "name": "account_management", + "type": "TypeBool", + "description": "Give access to all account management services", + "default_value": false, "optional": true }, { - "name": "roles", - "type": "TypeList", - "description": "Role names of the policy definition", - "required": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "resource_attributes", + "name": "resource_tags", "type": "TypeSet", - "description": "Set resource attributes.", + "description": "Set access management tags.", "optional": true, "elem": { "name": { @@ -114949,37 +117944,69 @@ "optional": true }, { - "name": "version", - "type": "TypeString", - "computed": true + "name": "rule_conditions", + "type": "TypeSet", + "description": "Rule conditions enforced by the policy", + "optional": true, + "elem": { + "key": { + "name": "key", + "type": "TypeString", + "description": "Key of the condition", + "required": true + }, + "operator": { + "name": "operator", + "type": "TypeString", + "description": "Operator of the condition", + "required": true + }, + "value": { + "name": "value", + "type": "TypeList", + "description": "Value of the condition", + "required": true, + "elem": { + "type": "TypeString" + } + } + } } ], "ibm_iam_access_group_template": [ { - "name": "committed", - "type": "TypeBool", - "description": "A boolean indicating whether the access group template is committed. You must commit a template before you can assign it to child accounts.", - "optional": true, + "name": "created_by_id", + "type": "TypeString", + "description": "The ID of the user who created the access group template.", "computed": true }, { - "name": "created_at", + "name": "last_modified_at", "type": "TypeString", - "description": "The date and time when the access group template was created.", + "description": "The date and time when the access group template was last modified.", "computed": true }, { - "name": "created_by_id", + "name": "template_id", "type": "TypeString", - "description": "The ID of the user who created the access group template.", + "description": "Template ID.", "computed": true }, { - "name": "last_modified_at", - "type": "TypeString", - "description": "The date and time when the access group template was last modified.", + "name": "committed", + "type": "TypeBool", + "description": "A boolean indicating whether the access group template is committed. You must commit a template before you can assign it to child accounts.", + "optional": true, "computed": true }, + { + "name": "description", + "type": "TypeString", + "description": "The description of the access group template.", + "max_length": 250, + "matches": "^[a-zA-Z0-9!@#$%^\u0026*()_+{}:;\"'\u003c\u003e,.?\\/|\\-\\s]+$", + "optional": true + }, { "name": "last_modified_by_id", "type": "TypeString", @@ -114995,6 +118022,18 @@ "matches": "^[a-zA-Z0-9_-]+$", "optional": true }, + { + "name": "href", + "type": "TypeString", + "description": "The URL of the access group template resource.", + "computed": true + }, + { + "name": "created_at", + "type": "TypeString", + "description": "The date and time when the access group template was created.", + "computed": true + }, { "name": "name", "type": "TypeString", @@ -115004,12 +118043,6 @@ "max_length": 100, "matches": "^[a-zA-Z0-9!@#$%^\u0026*()_+{}:;\"'\u003c\u003e,.?\\/|\\-\\s]+$" }, - { - "name": "account_id", - "type": "TypeString", - "description": "The ID of the account to which the access group template is assigned.", - "computed": true - }, { "name": "group", "type": "TypeList", @@ -115203,12 +118236,6 @@ }, "max_items": 1 }, - { - "name": "template_id", - "type": "TypeString", - "description": "Template ID.", - "computed": true - }, { "name": "policy_template_references", "type": "TypeList", @@ -115230,14 +118257,6 @@ } } }, - { - "name": "description", - "type": "TypeString", - "description": "The description of the access group template.", - "max_length": 250, - "matches": "^[a-zA-Z0-9!@#$%^\u0026*()_+{}:;\"'\u003c\u003e,.?\\/|\\-\\s]+$", - "optional": true - }, { "name": "version", "type": "TypeString", @@ -115245,23 +118264,13 @@ "computed": true }, { - "name": "href", + "name": "account_id", "type": "TypeString", - "description": "The URL of the access group template resource.", + "description": "The ID of the account to which the access group template is assigned.", "computed": true } ], "ibm_iam_access_group_template_assignment": [ - { - "name": "target_type", - "type": "TypeString", - "description": "The type of the entity that the assignment applies to.", - "required": true, - "options": "Account, AccountGroup", - "min_length": 7, - "max_length": 12, - "matches": "^[a-zA-Z-]+$" - }, { "name": "account_id", "type": "TypeString", @@ -115269,9 +118278,9 @@ "computed": true }, { - "name": "operation", + "name": "status", "type": "TypeString", - "description": "The operation that the assignment applies to (e.g. 'assign', 'update', 'remove').", + "description": "The status of the assignment (e.g. 'accepted', 'in_progress', 'succeeded', 'failed', 'superseded').", "computed": true }, { @@ -115279,6 +118288,18 @@ "type": "TypeString", "computed": true }, + { + "name": "created_by_id", + "type": "TypeString", + "description": "The user or system that created the assignment.", + "computed": true + }, + { + "name": "last_modified_at", + "type": "TypeString", + "description": "The date and time when the assignment was last updated.", + "computed": true + }, { "name": "transaction_id", "type": "TypeString", @@ -115297,21 +118318,6 @@ "max_length": 100, "matches": "^[a-zA-Z0-9_-]+$" }, - { - "name": "template_version", - "type": "TypeString", - "description": "The version of the template that the assignment is based on.", - "required": true, - "min_length": 1, - "max_length": 2, - "matches": "^[0-9]+$" - }, - { - "name": "last_modified_at", - "type": "TypeString", - "description": "The date and time when the assignment was last updated.", - "computed": true - }, { "name": "target", "type": "TypeString", @@ -115322,15 +118328,15 @@ "matches": "^[a-zA-Z0-9_-]+$" }, { - "name": "status", + "name": "href", "type": "TypeString", - "description": "The status of the assignment (e.g. 'accepted', 'in_progress', 'succeeded', 'failed', 'superseded').", + "description": "The URL of the assignment resource.", "computed": true }, { - "name": "created_by_id", + "name": "created_at", "type": "TypeString", - "description": "The user or system that created the assignment.", + "description": "The date and time when the assignment was created.", "computed": true }, { @@ -115340,26 +118346,45 @@ "computed": true }, { - "name": "href", + "name": "template_version", "type": "TypeString", - "description": "The URL of the assignment resource.", - "computed": true + "description": "The version of the template that the assignment is based on.", + "required": true, + "min_length": 1, + "max_length": 2, + "matches": "^[0-9]+$" }, { - "name": "created_at", + "name": "target_type", "type": "TypeString", - "description": "The date and time when the assignment was created.", + "description": "The type of the entity that the assignment applies to.", + "required": true, + "options": "Account, AccountGroup", + "min_length": 7, + "max_length": 12, + "matches": "^[a-zA-Z-]+$" + }, + { + "name": "operation", + "type": "TypeString", + "description": "The operation that the assignment applies to (e.g. 'assign', 'update', 'remove').", "computed": true } ], "ibm_iam_access_group_template_version": [ { - "name": "transaction_id", + "name": "created_at", "type": "TypeString", - "description": "An optional transaction id for the request.", + "description": "The date and time when the access group template was created.", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The name of the access group template.", "min_length": 1, - "max_length": 50, - "matches": "^[a-zA-Z0-9_-]+$", + "max_length": 100, + "matches": "^[a-zA-Z0-9!@#$%^\u0026*()_+{}:;\"'\u003c\u003e,.?\\/|\\-\\s]+$", "optional": true }, { @@ -115382,6 +118407,43 @@ } } }, + { + "name": "created_by_id", + "type": "TypeString", + "description": "The ID of the user who created the access group template.", + "computed": true + }, + { + "name": "last_modified_at", + "type": "TypeString", + "description": "The date and time when the access group template was last modified.", + "computed": true + }, + { + "name": "last_modified_by_id", + "type": "TypeString", + "description": "The ID of the user who last modified the access group template.", + "computed": true + }, + { + "name": "template_id", + "type": "TypeString", + "description": "ID of the template that you want to create a new version of.", + "immutable": true, + "required": true, + "min_length": 1, + "max_length": 100, + "matches": "^[a-zA-Z0-9_-]+$" + }, + { + "name": "transaction_id", + "type": "TypeString", + "description": "An optional transaction id for the request.", + "min_length": 1, + "max_length": 50, + "matches": "^[a-zA-Z0-9_-]+$", + "optional": true + }, { "name": "description", "type": "TypeString", @@ -115585,21 +118647,6 @@ }, "max_items": 1 }, - { - "name": "last_modified_at", - "type": "TypeString", - "description": "The date and time when the access group template was last modified.", - "computed": true - }, - { - "name": "name", - "type": "TypeString", - "description": "The name of the access group template.", - "min_length": 1, - "max_length": 100, - "matches": "^[a-zA-Z0-9!@#$%^\u0026*()_+{}:;\"'\u003c\u003e,.?\\/|\\-\\s]+$", - "optional": true - }, { "name": "account_id", "type": "TypeString", @@ -115612,28 +118659,6 @@ "description": "The version of the access group template.", "computed": true }, - { - "name": "created_at", - "type": "TypeString", - "description": "The date and time when the access group template was created.", - "computed": true - }, - { - "name": "last_modified_by_id", - "type": "TypeString", - "description": "The ID of the user who last modified the access group template.", - "computed": true - }, - { - "name": "template_id", - "type": "TypeString", - "description": "ID of the template that you want to create a new version of.", - "immutable": true, - "required": true, - "min_length": 1, - "max_length": 100, - "matches": "^[a-zA-Z0-9_-]+$" - }, { "name": "committed", "type": "TypeBool", @@ -115646,33 +118671,13 @@ "type": "TypeString", "description": "The URL of the access group template resource.", "computed": true - }, - { - "name": "created_by_id", - "type": "TypeString", - "description": "The ID of the user who created the access group template.", - "computed": true } ], "ibm_iam_account_settings": [ { - "name": "restrict_create_platform_apikey", - "type": "TypeString", - "description": "Defines whether or not creating platform API keys is access controlled. Valid values: * RESTRICTED - to apply access control * NOT_RESTRICTED - to remove access control * NOT_SET - to 'unset' a previous set value.", - "options": "RESTRICTED, NOT_RESTRICTED, NOT_SET", - "optional": true, - "computed": true - }, - { - "name": "allowed_ip_addresses", - "type": "TypeString", - "description": "Defines the IP addresses and subnets from which IAM tokens can be created for the account.", - "optional": true - }, - { - "name": "entity_tag", + "name": "system_access_token_expiration_in_seconds", "type": "TypeString", - "description": "Version of the account settings.", + "description": "Defines the access token expiration in seconds. Valid values: * Any whole number between '900' and '3600' * NOT_SET - To unset account setting and use service default.", "optional": true, "computed": true }, @@ -115685,10 +118690,9 @@ "computed": true }, { - "name": "mfa", + "name": "session_expiration_in_seconds", "type": "TypeString", - "description": "Defines the MFA trait for the account. Valid values: * NONE - No MFA trait set * TOTP - For all non-federated IBMId users * TOTP4ALL - For all users * LEVEL1 - Email-based MFA for all users * LEVEL2 - TOTP-based MFA for all users * LEVEL3 - U2F MFA for all users.", - "options": "NONE, TOTP, TOTP4ALL, LEVEL1, LEVEL2, LEVEL3", + "description": "Defines the session expiration in seconds for the account. Valid values: * Any whole number between between '900' and '86400' * NOT_SET - To unset account setting and use service default.", "optional": true, "computed": true }, @@ -115700,31 +118704,39 @@ "computed": true }, { - "name": "system_access_token_expiration_in_seconds", + "name": "include_history", + "type": "TypeBool", + "description": "Defines if the entity history is included in the response.", + "default_value": false, + "optional": true + }, + { + "name": "mfa", "type": "TypeString", - "description": "Defines the access token expiration in seconds. Valid values: * Any whole number between '900' and '3600' * NOT_SET - To unset account setting and use service default.", + "description": "Defines the MFA trait for the account. Valid values: * NONE - No MFA trait set * TOTP - For all non-federated IBMId users * TOTP4ALL - For all users * LEVEL1 - Email-based MFA for all users * LEVEL2 - TOTP-based MFA for all users * LEVEL3 - U2F MFA for all users.", + "options": "NONE, TOTP, TOTP4ALL, LEVEL1, LEVEL2, LEVEL3", "optional": true, "computed": true }, { - "name": "system_refresh_token_expiration_in_seconds", + "name": "max_sessions_per_identity", "type": "TypeString", - "description": "Defines the refresh token expiration in seconds. Valid values: * Any whole number between '900' and '2592000' * NOT_SET - To unset account setting and use service default.", + "description": "Defines the max allowed sessions per identity required by the account. Value values: * Any whole number greater than 0 * NOT_SET - To unset account setting and use service default.", "optional": true, "computed": true }, { - "name": "include_history", - "type": "TypeBool", - "description": "Defines if the entity history is included in the response.", - "default_value": false, - "optional": true + "name": "restrict_create_platform_apikey", + "type": "TypeString", + "description": "Defines whether or not creating platform API keys is access controlled. Valid values: * RESTRICTED - to apply access control * NOT_RESTRICTED - to remove access control * NOT_SET - to 'unset' a previous set value.", + "options": "RESTRICTED, NOT_RESTRICTED, NOT_SET", + "optional": true, + "computed": true }, { - "name": "if_match", + "name": "allowed_ip_addresses", "type": "TypeString", - "description": "Version of the account settings to be updated. Specify the version that you retrieved as entity_tag (ETag header) when reading the account. This value helps identifying parallel usage of this API. Pass * to indicate to update any version available. This might result in stale updates.", - "default_value": "*", + "description": "Defines the IP addresses and subnets from which IAM tokens can be created for the account.", "optional": true }, { @@ -115747,6 +118759,27 @@ } } }, + { + "name": "system_refresh_token_expiration_in_seconds", + "type": "TypeString", + "description": "Defines the refresh token expiration in seconds. Valid values: * Any whole number between '900' and '2592000' * NOT_SET - To unset account setting and use service default.", + "optional": true, + "computed": true + }, + { + "name": "entity_tag", + "type": "TypeString", + "description": "Version of the account settings.", + "optional": true, + "computed": true + }, + { + "name": "if_match", + "type": "TypeString", + "description": "Version of the account settings to be updated. Specify the version that you retrieved as entity_tag (ETag header) when reading the account. This value helps identifying parallel usage of this API. Pass * to indicate to update any version available. This might result in stale updates.", + "default_value": "*", + "optional": true + }, { "name": "history", "type": "TypeList", @@ -115793,20 +118826,6 @@ "required": true } } - }, - { - "name": "session_expiration_in_seconds", - "type": "TypeString", - "description": "Defines the session expiration in seconds for the account. Valid values: * Any whole number between between '900' and '86400' * NOT_SET - To unset account setting and use service default.", - "optional": true, - "computed": true - }, - { - "name": "max_sessions_per_identity", - "type": "TypeString", - "description": "Defines the max allowed sessions per identity required by the account. Value values: * Any whole number greater than 0 * NOT_SET - To unset account setting and use service default.", - "optional": true, - "computed": true } ], "ibm_iam_account_settings_template": [ @@ -115816,49 +118835,6 @@ "description": "ID of the account where the template resides.", "computed": true }, - { - "name": "name", - "type": "TypeString", - "description": "The name of the trusted profile template. This is visible only in the enterprise account.", - "optional": true - }, - { - "name": "description", - "type": "TypeString", - "description": "The description of the trusted profile template. Describe the template for enterprise account users.", - "optional": true - }, - { - "name": "entity_tag", - "type": "TypeString", - "description": "Entity tag for this templateId-version combination.", - "computed": true - }, - { - "name": "created_by_id", - "type": "TypeString", - "description": "IAMid of the creator.", - "computed": true - }, - { - "name": "last_modified_by_id", - "type": "TypeString", - "description": "IAMid of the identity that made the latest modification.", - "computed": true - }, - { - "name": "id", - "type": "TypeString", - "description": "ID of the the template resource.", - "computed": true - }, - { - "name": "committed", - "type": "TypeBool", - "description": "Committed flag determines if the template is ready for assignment.", - "optional": true, - "computed": true - }, { "name": "version", "type": "TypeInt", @@ -115912,6 +118888,36 @@ } } }, + { + "name": "created_by_id", + "type": "TypeString", + "description": "IAMid of the creator.", + "computed": true + }, + { + "name": "last_modified_at", + "type": "TypeString", + "description": "Template last modified at.", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The name of the trusted profile template. This is visible only in the enterprise account.", + "optional": true + }, + { + "name": "id", + "type": "TypeString", + "description": "ID of the the template resource.", + "computed": true + }, + { + "name": "entity_tag", + "type": "TypeString", + "description": "Entity tag for this templateId-version combination.", + "computed": true + }, { "name": "crn", "type": "TypeString", @@ -115919,6 +118925,12 @@ "cloud_data_type": "crn", "computed": true }, + { + "name": "last_modified_by_id", + "type": "TypeString", + "description": "IAMid of the identity that made the latest modification.", + "computed": true + }, { "name": "account_settings", "type": "TypeList", @@ -116001,6 +119013,12 @@ }, "max_items": 1 }, + { + "name": "description", + "type": "TypeString", + "description": "The description of the trusted profile template. Describe the template for enterprise account users.", + "optional": true + }, { "name": "template_id", "type": "TypeString", @@ -116008,19 +119026,26 @@ "optional": true }, { - "name": "created_at", - "type": "TypeString", - "description": "Template Created At.", + "name": "committed", + "type": "TypeBool", + "description": "Committed flag determines if the template is ready for assignment.", + "optional": true, "computed": true }, { - "name": "last_modified_at", + "name": "created_at", "type": "TypeString", - "description": "Template last modified at.", + "description": "Template Created At.", "computed": true } ], "ibm_iam_account_settings_template_assignment": [ + { + "name": "template_id", + "type": "TypeString", + "description": "Template Id.", + "required": true + }, { "name": "target", "type": "TypeString", @@ -116028,78 +119053,10 @@ "required": true }, { - "name": "context", - "type": "TypeList", - "description": "Context with key properties for problem determination.", - "computed": true, - "elem": { - "cluster_name": { - "name": "cluster_name", - "type": "TypeString", - "description": "The cluster name.", - "computed": true - }, - "elapsed_time": { - "name": "elapsed_time", - "type": "TypeString", - "description": "The elapsed time in msec.", - "computed": true - }, - "end_time": { - "name": "end_time", - "type": "TypeString", - "description": "The finish time of the request.", - "computed": true - }, - "host": { - "name": "host", - "type": "TypeString", - "description": "The host of the server instance processing the request.", - "computed": true - }, - "instance_id": { - "name": "instance_id", - "type": "TypeString", - "description": "The instance ID of the server instance processing the request.", - "computed": true - }, - "operation": { - "name": "operation", - "type": "TypeString", - "description": "The operation of the inbound REST request.", - "computed": true - }, - "start_time": { - "name": "start_time", - "type": "TypeString", - "description": "The start time of the request.", - "computed": true - }, - "thread_id": { - "name": "thread_id", - "type": "TypeString", - "description": "The thread ID of the server instance processing the request.", - "computed": true - }, - "transaction_id": { - "name": "transaction_id", - "type": "TypeString", - "description": "The transaction ID of the inbound REST request.", - "computed": true - }, - "url": { - "name": "url", - "type": "TypeString", - "description": "The URL of that cluster.", - "computed": true - }, - "user_agent": { - "name": "user_agent", - "type": "TypeString", - "description": "The user agent of the inbound REST request.", - "computed": true - } - } + "name": "account_id", + "type": "TypeString", + "description": "Enterprise account Id.", + "computed": true }, { "name": "resources", @@ -116174,30 +119131,6 @@ } } }, - { - "name": "created_at", - "type": "TypeString", - "description": "Assignment created at.", - "computed": true - }, - { - "name": "created_by_id", - "type": "TypeString", - "description": "IAMid of the identity that created the assignment.", - "computed": true - }, - { - "name": "last_modified_at", - "type": "TypeString", - "description": "Assignment modified at.", - "computed": true - }, - { - "name": "last_modified_by_id", - "type": "TypeString", - "description": "IAMid of the identity that last modified the assignment.", - "computed": true - }, { "name": "target_type", "type": "TypeString", @@ -116205,30 +119138,6 @@ "required": true, "options": "Account, AccountGroup" }, - { - "name": "href", - "type": "TypeString", - "description": "Href.", - "computed": true - }, - { - "name": "template_version", - "type": "TypeInt", - "description": "Template version.", - "required": true - }, - { - "name": "template_id", - "type": "TypeString", - "description": "Template Id.", - "required": true - }, - { - "name": "status", - "type": "TypeString", - "description": "Assignment status.", - "computed": true - }, { "name": "history", "type": "TypeList", @@ -116276,6 +119185,18 @@ } } }, + { + "name": "created_by_id", + "type": "TypeString", + "description": "IAMid of the identity that created the assignment.", + "computed": true + }, + { + "name": "last_modified_at", + "type": "TypeString", + "description": "Assignment modified at.", + "computed": true + }, { "name": "entity_tag", "type": "TypeString", @@ -116283,13 +119204,117 @@ "computed": true }, { - "name": "account_id", + "name": "context", + "type": "TypeList", + "description": "Context with key properties for problem determination.", + "computed": true, + "elem": { + "cluster_name": { + "name": "cluster_name", + "type": "TypeString", + "description": "The cluster name.", + "computed": true + }, + "elapsed_time": { + "name": "elapsed_time", + "type": "TypeString", + "description": "The elapsed time in msec.", + "computed": true + }, + "end_time": { + "name": "end_time", + "type": "TypeString", + "description": "The finish time of the request.", + "computed": true + }, + "host": { + "name": "host", + "type": "TypeString", + "description": "The host of the server instance processing the request.", + "computed": true + }, + "instance_id": { + "name": "instance_id", + "type": "TypeString", + "description": "The instance ID of the server instance processing the request.", + "computed": true + }, + "operation": { + "name": "operation", + "type": "TypeString", + "description": "The operation of the inbound REST request.", + "computed": true + }, + "start_time": { + "name": "start_time", + "type": "TypeString", + "description": "The start time of the request.", + "computed": true + }, + "thread_id": { + "name": "thread_id", + "type": "TypeString", + "description": "The thread ID of the server instance processing the request.", + "computed": true + }, + "transaction_id": { + "name": "transaction_id", + "type": "TypeString", + "description": "The transaction ID of the inbound REST request.", + "computed": true + }, + "url": { + "name": "url", + "type": "TypeString", + "description": "The URL of that cluster.", + "computed": true + }, + "user_agent": { + "name": "user_agent", + "type": "TypeString", + "description": "The user agent of the inbound REST request.", + "computed": true + } + } + }, + { + "name": "status", "type": "TypeString", - "description": "Enterprise account Id.", + "description": "Assignment status.", + "computed": true + }, + { + "name": "template_version", + "type": "TypeInt", + "description": "Template version.", + "required": true + }, + { + "name": "href", + "type": "TypeString", + "description": "Href.", + "computed": true + }, + { + "name": "created_at", + "type": "TypeString", + "description": "Assignment created at.", + "computed": true + }, + { + "name": "last_modified_by_id", + "type": "TypeString", + "description": "IAMid of the identity that last modified the assignment.", "computed": true } ], "ibm_iam_api_key": [ + { + "name": "file", + "type": "TypeString", + "description": "File where api key is to be stored", + "optional": true + }, { "name": "entity_lock", "type": "TypeString", @@ -116298,23 +119323,16 @@ "optional": true }, { - "name": "entity_tag", + "name": "modified_at", "type": "TypeString", - "description": "Version of the API Key details object. You need to specify this value when updating the API key to avoid stale updates.", + "description": "If set contains a date time string of the last modification date in ISO format.", "computed": true }, { - "name": "crn", + "name": "name", "type": "TypeString", - "description": "Cloud Resource Name of the item. Example Cloud Resource Name: 'crn:v1:bluemix:public:iam-identity:us-south:a/myaccount::apikey:1234-9012-5678'.", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "locked", - "type": "TypeBool", - "description": "The API key cannot be changed if set to true.", - "computed": true + "description": "Name of the API key. The name is not checked for uniqueness. Therefore multiple names with the same value can exist. Access is done via the UUID of the API key.", + "required": true }, { "name": "description", @@ -116322,20 +119340,18 @@ "description": "The optional description of the API key. The 'description' property is only available if a description was provided during a create of an API key.", "optional": true }, - { - "name": "apikey", - "type": "TypeString", - "description": "You can optionally passthrough the API key value for this API key. If passed, NO validation of that apiKey value is done, i.e. the value can be non-URL safe. If omitted, the API key management will create an URL safe opaque API key value. The value of the API key is checked for uniqueness. Please ensure enough variations when passing in this value.", - "secure": true, - "optional": true, - "computed": true - }, { "name": "store_value", "type": "TypeBool", "description": "Send true or false to set whether the API key value is retrievable in the future by using the Get details of an API key request. If you create an API key for a user, you must specify `false` or omit the value. We don't allow storing of API keys for users.", "optional": true }, + { + "name": "entity_tag", + "type": "TypeString", + "description": "Version of the API Key details object. You need to specify this value when updating the API key to avoid stale updates.", + "computed": true + }, { "name": "created_at", "type": "TypeString", @@ -116343,16 +119359,16 @@ "computed": true }, { - "name": "account_id", + "name": "iam_id", "type": "TypeString", - "description": "The account ID of the API key.", + "description": "The iam_id that this API key authenticates.", "computed": true }, { - "name": "file", + "name": "account_id", "type": "TypeString", - "description": "File where api key is to be stored", - "optional": true + "description": "The account ID of the API key.", + "computed": true }, { "name": "apikey_id", @@ -116361,35 +119377,66 @@ "computed": true }, { - "name": "modified_at", - "type": "TypeString", - "description": "If set contains a date time string of the last modification date in ISO format.", + "name": "locked", + "type": "TypeBool", + "description": "The API key cannot be changed if set to true.", "computed": true }, { - "name": "name", + "name": "created_by", "type": "TypeString", - "description": "Name of the API key. The name is not checked for uniqueness. Therefore multiple names with the same value can exist. Access is done via the UUID of the API key.", - "required": true + "description": "IAM ID of the user or service which created the API key.", + "computed": true }, { - "name": "iam_id", + "name": "apikey", "type": "TypeString", - "description": "The iam_id that this API key authenticates.", + "description": "You can optionally passthrough the API key value for this API key. If passed, NO validation of that apiKey value is done, i.e. the value can be non-URL safe. If omitted, the API key management will create an URL safe opaque API key value. The value of the API key is checked for uniqueness. Please ensure enough variations when passing in this value.", + "secure": true, + "optional": true, "computed": true }, { - "name": "created_by", + "name": "crn", "type": "TypeString", - "description": "IAM ID of the user or service which created the API key.", + "description": "Cloud Resource Name of the item. Example Cloud Resource Name: 'crn:v1:bluemix:public:iam-identity:us-south:a/myaccount::apikey:1234-9012-5678'.", + "cloud_data_type": "crn", "computed": true } ], "ibm_iam_authorization_policy": [ { - "name": "resource_attributes", + "name": "target_resource_group_id", + "type": "TypeString", + "description": "The target resource group Id", + "cloud_data_type": "resource_group", + "immutable": true, + "optional": true, + "computed": true, + "cloud_data_range": [ + "resolved_to:id" + ] + }, + { + "name": "source_resource_type", + "type": "TypeString", + "description": "Resource type of source service", + "immutable": true, + "optional": true, + "computed": true + }, + { + "name": "source_service_account", + "type": "TypeString", + "description": "Account GUID of source service", + "immutable": true, + "optional": true, + "computed": true + }, + { + "name": "subject_attributes", "type": "TypeSet", - "description": "Set resource attributes.", + "description": "Set subject attributes.", "immutable": true, "optional": true, "computed": true, @@ -116400,13 +119447,6 @@ "description": "Name of attribute.", "required": true }, - "operator": { - "name": "operator", - "type": "TypeString", - "description": "Operator of attribute.", - "default_value": "stringEquals", - "optional": true - }, "value": { "name": "value", "type": "TypeString", @@ -116430,14 +119470,6 @@ "optional": true, "computed": true }, - { - "name": "target_resource_instance_id", - "type": "TypeString", - "description": "The target resource instance Id", - "immutable": true, - "optional": true, - "computed": true - }, { "name": "target_resource_type", "type": "TypeString", @@ -116446,46 +119478,6 @@ "optional": true, "computed": true }, - { - "name": "source_resource_group_id", - "type": "TypeString", - "description": "The source resource group Id", - "cloud_data_type": "resource_group", - "immutable": true, - "optional": true, - "computed": true, - "cloud_data_range": [ - "resolved_to:id" - ] - }, - { - "name": "target_resource_group_id", - "type": "TypeString", - "description": "The target resource group Id", - "cloud_data_type": "resource_group", - "immutable": true, - "optional": true, - "computed": true, - "cloud_data_range": [ - "resolved_to:id" - ] - }, - { - "name": "source_resource_type", - "type": "TypeString", - "description": "Resource type of source service", - "immutable": true, - "optional": true, - "computed": true - }, - { - "name": "source_service_account", - "type": "TypeString", - "description": "Account GUID of source service", - "immutable": true, - "optional": true, - "computed": true - }, { "name": "description", "type": "TypeString", @@ -116510,22 +119502,29 @@ "computed": true }, { - "name": "version", + "name": "target_resource_instance_id", "type": "TypeString", + "description": "The target resource instance Id", + "immutable": true, + "optional": true, "computed": true }, { - "name": "source_service_name", + "name": "source_resource_group_id", "type": "TypeString", - "description": "The source service name", + "description": "The source resource group Id", + "cloud_data_type": "resource_group", "immutable": true, "optional": true, - "computed": true + "computed": true, + "cloud_data_range": [ + "resolved_to:id" + ] }, { - "name": "subject_attributes", + "name": "resource_attributes", "type": "TypeSet", - "description": "Set subject attributes.", + "description": "Set resource attributes.", "immutable": true, "optional": true, "computed": true, @@ -116536,6 +119535,13 @@ "description": "Name of attribute.", "required": true }, + "operator": { + "name": "operator", + "type": "TypeString", + "description": "Operator of attribute.", + "default_value": "stringEquals", + "optional": true + }, "value": { "name": "value", "type": "TypeString", @@ -116543,6 +119549,19 @@ "required": true } } + }, + { + "name": "source_service_name", + "type": "TypeString", + "description": "The source service name", + "immutable": true, + "optional": true, + "computed": true + }, + { + "name": "version", + "type": "TypeString", + "computed": true } ], "ibm_iam_authorization_policy_detach": [ @@ -116556,30 +119575,22 @@ ], "ibm_iam_custom_role": [ { - "name": "resource_name", - "type": "TypeString", - "description": "The name of the resource", - "computed": true - }, - { - "name": "resource_crn", - "type": "TypeString", - "description": "The crn of the resource", - "computed": true - }, - { - "name": "resource_controller_url", + "name": "name", "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about the resource", - "computed": true + "description": "The name of the custom Role", + "immutable": true, + "required": true, + "min_length": 1, + "max_length": 30, + "matches": "^[A-Z]{1}[A-Za-z0-9]{0,29}$" }, { - "name": "display_name", + "name": "description", "type": "TypeString", - "description": "Display Name of the Custom Role", - "required": true, + "description": "The description of the role", "min_length": 1, - "max_length": 50 + "max_length": 250, + "optional": true }, { "name": "service", @@ -116598,57 +119609,40 @@ } }, { - "name": "name", - "type": "TypeString", - "description": "The name of the custom Role", - "immutable": true, - "required": true, - "min_length": 1, - "max_length": 30, - "matches": "^[A-Z]{1}[A-Za-z0-9]{0,29}$" - }, - { - "name": "description", - "type": "TypeString", - "description": "The description of the role", - "min_length": 1, - "max_length": 250, - "optional": true - }, - { - "name": "crn", - "type": "TypeString", - "description": "crn of the Custom Role", - "cloud_data_type": "crn", - "computed": true - } - ], - "ibm_iam_policy_template": [ - { - "name": "template_id", + "name": "resource_name", "type": "TypeString", - "description": "Template ID.", + "description": "The name of the resource", "computed": true }, { - "name": "version", + "name": "resource_crn", "type": "TypeString", - "description": "Template Version.", + "description": "The crn of the resource", "computed": true }, { - "name": "account_id", + "name": "resource_controller_url", "type": "TypeString", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about the resource", "computed": true }, { - "name": "name", + "name": "display_name", "type": "TypeString", - "description": "name of template.", + "description": "Display Name of the Custom Role", "required": true, "min_length": 1, - "max_length": 300 + "max_length": 50 }, + { + "name": "crn", + "type": "TypeString", + "description": "crn of the Custom Role", + "cloud_data_type": "crn", + "computed": true + } + ], + "ibm_iam_policy_template": [ { "name": "policy", "type": "TypeList", @@ -116796,6 +119790,31 @@ "type": "TypeBool", "description": "committed status for the template.", "optional": true + }, + { + "name": "template_id", + "type": "TypeString", + "description": "Template ID.", + "computed": true + }, + { + "name": "version", + "type": "TypeString", + "description": "Template Version.", + "computed": true + }, + { + "name": "account_id", + "type": "TypeString", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "name of template.", + "required": true, + "min_length": 1, + "max_length": 300 } ], "ibm_iam_policy_template_version": [ @@ -116985,11 +120004,20 @@ ] }, { - "name": "account_id", + "name": "apikey", "type": "TypeString", - "description": "The account ID of the API key", + "description": "API key value for this API key", + "secure": true, + "immutable": true, + "optional": true, "computed": true }, + { + "name": "store_value", + "type": "TypeBool", + "description": "Boolean value deciding whether API key value is retrievable in the future", + "optional": true + }, { "name": "file", "type": "TypeString", @@ -116997,15 +120025,16 @@ "optional": true }, { - "name": "entity_tag", + "name": "crn", "type": "TypeString", - "description": "Version of the API Key details object", + "description": "crn of the Service API Key", + "cloud_data_type": "crn", "computed": true }, { - "name": "created_at", + "name": "entity_tag", "type": "TypeString", - "description": "The date and time Service API Key was created", + "description": "Version of the API Key details object", "computed": true }, { @@ -117014,12 +120043,6 @@ "description": "The date and time Service API Key was modified", "computed": true }, - { - "name": "created_by", - "type": "TypeString", - "description": "IAM ID of the service which created the API key", - "computed": true - }, { "name": "name", "type": "TypeString", @@ -117034,12 +120057,9 @@ "computed": true }, { - "name": "apikey", + "name": "account_id", "type": "TypeString", - "description": "API key value for this API key", - "secure": true, - "immutable": true, - "optional": true, + "description": "The account ID of the API key", "computed": true }, { @@ -117049,20 +120069,32 @@ "optional": true }, { - "name": "store_value", - "type": "TypeBool", - "description": "Boolean value deciding whether API key value is retrievable in the future", - "optional": true + "name": "created_by", + "type": "TypeString", + "description": "IAM ID of the service which created the API key", + "computed": true }, { - "name": "crn", + "name": "created_at", "type": "TypeString", - "description": "crn of the Service API Key", - "cloud_data_type": "crn", + "description": "The date and time Service API Key was created", "computed": true } ], "ibm_iam_service_id": [ + { + "name": "version", + "type": "TypeString", + "description": "version of the serviceID", + "computed": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "crn of the serviceID", + "cloud_data_type": "crn", + "computed": true + }, { "name": "iam_id", "type": "TypeString", @@ -117094,22 +120126,21 @@ "type": "TypeString", "description": "Description of the serviceID", "optional": true - }, - { - "name": "version", - "type": "TypeString", - "description": "version of the serviceID", - "computed": true - }, - { - "name": "crn", - "type": "TypeString", - "description": "crn of the serviceID", - "cloud_data_type": "crn", - "computed": true } ], "ibm_iam_service_policy": [ + { + "name": "iam_service_id", + "type": "TypeString", + "description": "UUID of ServiceID", + "cloud_data_type": "iam", + "immutable": true, + "optional": true, + "cloud_data_range": [ + "service:service_id", + "resolved_to:id" + ] + }, { "name": "roles", "type": "TypeList", @@ -117119,6 +120150,69 @@ "type": "TypeString" } }, + { + "name": "resources", + "type": "TypeList", + "optional": true, + "elem": { + "attributes": { + "name": "attributes", + "type": "TypeMap", + "description": "Set resource attributes in the form of 'name=value,name=value....", + "optional": true, + "elem": "schema.ValueType" + }, + "region": { + "name": "region", + "type": "TypeString", + "description": "Region of the policy definition", + "optional": true + }, + "resource": { + "name": "resource", + "type": "TypeString", + "description": "Resource of the policy definition", + "optional": true + }, + "resource_group_id": { + "name": "resource_group_id", + "type": "TypeString", + "description": "ID of the resource group.", + "optional": true + }, + "resource_instance_id": { + "name": "resource_instance_id", + "type": "TypeString", + "description": "ID of resource instance of the policy definition", + "optional": true + }, + "resource_type": { + "name": "resource_type", + "type": "TypeString", + "description": "Resource type of the policy definition", + "optional": true + }, + "service": { + "name": "service", + "type": "TypeString", + "description": "Service name of the policy definition", + "optional": true + }, + "service_group_id": { + "name": "service_group_id", + "type": "TypeString", + "description": "Service group id of the policy definition", + "optional": true + }, + "service_type": { + "name": "service_type", + "type": "TypeString", + "description": "Service type of the policy definition", + "optional": true + } + }, + "max_items": 1 + }, { "name": "resource_attributes", "type": "TypeSet", @@ -117155,6 +120249,32 @@ "type": "TypeString" } }, + { + "name": "description", + "type": "TypeString", + "description": "Description of the Policy", + "optional": true + }, + { + "name": "pattern", + "type": "TypeString", + "description": "Pattern rule follows for time-based condition", + "optional": true + }, + { + "name": "iam_id", + "type": "TypeString", + "description": "IAM ID of ServiceID", + "immutable": true, + "optional": true + }, + { + "name": "account_management", + "type": "TypeBool", + "description": "Give access to all account management services", + "default_value": false, + "optional": true + }, { "name": "resource_tags", "type": "TypeSet", @@ -117182,12 +120302,6 @@ } } }, - { - "name": "description", - "type": "TypeString", - "description": "Description of the Policy", - "optional": true - }, { "name": "transaction_id", "type": "TypeString", @@ -117224,115 +120338,39 @@ } } }, - { - "name": "iam_service_id", - "type": "TypeString", - "description": "UUID of ServiceID", - "cloud_data_type": "iam", - "immutable": true, - "optional": true, - "cloud_data_range": [ - "service:service_id", - "resolved_to:id" - ] - }, - { - "name": "pattern", - "type": "TypeString", - "description": "Pattern rule follows for time-based condition", - "optional": true - }, { "name": "rule_operator", "type": "TypeString", "description": "Operator that multiple rule conditions are evaluated over", "optional": true - }, - { - "name": "resources", - "type": "TypeList", - "optional": true, - "elem": { - "attributes": { - "name": "attributes", - "type": "TypeMap", - "description": "Set resource attributes in the form of 'name=value,name=value....", - "optional": true, - "elem": "schema.ValueType" - }, - "region": { - "name": "region", - "type": "TypeString", - "description": "Region of the policy definition", - "optional": true - }, - "resource": { - "name": "resource", - "type": "TypeString", - "description": "Resource of the policy definition", - "optional": true - }, - "resource_group_id": { - "name": "resource_group_id", - "type": "TypeString", - "description": "ID of the resource group.", - "optional": true - }, - "resource_instance_id": { - "name": "resource_instance_id", - "type": "TypeString", - "description": "ID of resource instance of the policy definition", - "optional": true - }, - "resource_type": { - "name": "resource_type", - "type": "TypeString", - "description": "Resource type of the policy definition", - "optional": true - }, - "service": { - "name": "service", - "type": "TypeString", - "description": "Service name of the policy definition", - "optional": true - }, - "service_group_id": { - "name": "service_group_id", - "type": "TypeString", - "description": "Service group id of the policy definition", - "optional": true - }, - "service_type": { - "name": "service_type", - "type": "TypeString", - "description": "Service type of the policy definition", - "optional": true - } - }, - "max_items": 1 - }, + } + ], + "ibm_iam_trusted_profile": [ { - "name": "account_management", - "type": "TypeBool", - "description": "Give access to all account management services", - "default_value": false, - "optional": true + "name": "crn", + "type": "TypeString", + "description": "Cloud Resource Name of the item. Example Cloud Resource Name: 'crn:v1:bluemix:public:iam-identity:us-south:a/myaccount::profile:Profile-94497d0d-2ac3-41bf-a993-a49d1b14627c'.", + "cloud_data_type": "crn", + "computed": true }, { - "name": "iam_id", + "name": "created_at", "type": "TypeString", - "description": "IAM ID of ServiceID", - "immutable": true, - "optional": true - } - ], - "ibm_iam_trusted_profile": [ + "description": "If set contains a date time string of the creation date in ISO format.", + "computed": true + }, { "name": "iam_id", "type": "TypeString", "description": "The iam_id of this trusted profile.", "computed": true }, + { + "name": "ims_user_id", + "type": "TypeInt", + "description": "IMS user ID of the trusted profile.", + "computed": true + }, { "name": "history", "type": "TypeList", @@ -117387,10 +120425,10 @@ "required": true }, { - "name": "description", + "name": "account_id", "type": "TypeString", - "description": "The optional description of the trusted profile. The 'description' property is only available if a description was provided during creation of trusted profile.", - "optional": true + "description": "The account ID of the trusted profile.", + "computed": true }, { "name": "profile_id", @@ -117399,28 +120437,27 @@ "computed": true }, { - "name": "modified_at", + "name": "entity_tag", "type": "TypeString", - "description": "If set contains a date time string of the last modification date in ISO format.", + "description": "Version of the trusted profile details object. You need to specify this value when updating the trusted profile to avoid stale updates.", "computed": true }, { - "name": "account_id", - "type": "TypeString", - "description": "The account ID of the trusted profile.", + "name": "ims_account_id", + "type": "TypeInt", + "description": "IMS acount ID of the trusted profile.", "computed": true }, { - "name": "crn", + "name": "description", "type": "TypeString", - "description": "Cloud Resource Name of the item. Example Cloud Resource Name: 'crn:v1:bluemix:public:iam-identity:us-south:a/myaccount::profile:Profile-94497d0d-2ac3-41bf-a993-a49d1b14627c'.", - "cloud_data_type": "crn", - "computed": true + "description": "The optional description of the trusted profile. The 'description' property is only available if a description was provided during creation of trusted profile.", + "optional": true }, { - "name": "created_at", + "name": "modified_at", "type": "TypeString", - "description": "If set contains a date time string of the creation date in ISO format.", + "description": "If set contains a date time string of the last modification date in ISO format.", "computed": true }, { @@ -117434,27 +120471,15 @@ "type": "TypeString", "description": "Id of assignment that assigned the template.", "computed": true - }, - { - "name": "entity_tag", - "type": "TypeString", - "description": "Version of the trusted profile details object. You need to specify this value when updating the trusted profile to avoid stale updates.", - "computed": true - }, - { - "name": "ims_account_id", - "type": "TypeInt", - "description": "IMS acount ID of the trusted profile.", - "computed": true - }, - { - "name": "ims_user_id", - "type": "TypeInt", - "description": "IMS user ID of the trusted profile.", - "computed": true } ], "ibm_iam_trusted_profile_claim_rule": [ + { + "name": "cr_type", + "type": "TypeString", + "description": "The compute resource type the rule applies to, required only if type is specified as 'Profile-CR'. Valid values are VSI, IKS_SA, ROKS_SA.", + "optional": true + }, { "name": "expiration", "type": "TypeInt", @@ -117468,28 +120493,22 @@ "computed": true }, { - "name": "modified_at", + "name": "created_at", "type": "TypeString", - "description": "If set contains a date time string of the last modification date in ISO format.", + "description": "If set contains a date time string of the creation date in ISO format.", "computed": true }, { - "name": "profile_id", + "name": "modified_at", "type": "TypeString", - "description": "ID of the trusted profile to create a claim rule.", - "cloud_data_type": "iam", - "immutable": true, - "required": true, - "cloud_data_range": [ - "service:trusted_profile", - "resolved_to:id" - ] + "description": "If set contains a date time string of the last modification date in ISO format.", + "computed": true }, { - "name": "type", + "name": "rule_id", "type": "TypeString", - "description": "Type of the calim rule, either 'Profile-SAML' or 'Profile-CR'.", - "required": true + "description": "Unique identifier of this claim rule.", + "computed": true }, { "name": "name", @@ -117497,18 +120516,6 @@ "description": "Name of the claim rule to be created or updated.", "optional": true }, - { - "name": "cr_type", - "type": "TypeString", - "description": "The compute resource type the rule applies to, required only if type is specified as 'Profile-CR'. Valid values are VSI, IKS_SA, ROKS_SA.", - "optional": true - }, - { - "name": "rule_id", - "type": "TypeString", - "description": "Unique identifier of this claim rule.", - "computed": true - }, { "name": "conditions", "type": "TypeList", @@ -117542,20 +120549,25 @@ "optional": true }, { - "name": "created_at", + "name": "profile_id", "type": "TypeString", - "description": "If set contains a date time string of the creation date in ISO format.", - "computed": true + "description": "ID of the trusted profile to create a claim rule.", + "cloud_data_type": "iam", + "immutable": true, + "required": true, + "cloud_data_range": [ + "service:trusted_profile", + "resolved_to:id" + ] + }, + { + "name": "type", + "type": "TypeString", + "description": "Type of the calim rule, either 'Profile-SAML' or 'Profile-CR'.", + "required": true } ], "ibm_iam_trusted_profile_identity": [ - { - "name": "description", - "type": "TypeString", - "description": "Description of the identity that can assume the trusted profile. This is optional field for all the types of identities. When this field is not set for the identity type 'serviceid' then the description of the service id is used. Description is recommended for the identity type 'crn' E.g. 'Instance 1234 of IBM Cloud Service project'.", - "immutable": true, - "optional": true - }, { "name": "profile_id", "type": "TypeString", @@ -117595,33 +120607,16 @@ "elem": { "type": "TypeString" } - } - ], - "ibm_iam_trusted_profile_link": [ - { - "name": "created_at", - "type": "TypeString", - "description": "If set contains a date time string of the creation date in ISO format.", - "computed": true }, { - "name": "modified_at", - "type": "TypeString", - "description": "If set contains a date time string of the last modification date in ISO format.", - "computed": true - }, - { - "name": "profile_id", + "name": "description", "type": "TypeString", - "description": "ID of the trusted profile.", - "cloud_data_type": "iam", + "description": "Description of the identity that can assume the trusted profile. This is optional field for all the types of identities. When this field is not set for the identity type 'serviceid' then the description of the service id is used. Description is recommended for the identity type 'crn' E.g. 'Instance 1234 of IBM Cloud Service project'.", "immutable": true, - "required": true, - "cloud_data_range": [ - "service:trusted_profile", - "resolved_to:id" - ] - }, + "optional": true + } + ], + "ibm_iam_trusted_profile_link": [ { "name": "cr_type", "type": "TypeString", @@ -117676,6 +120671,30 @@ "type": "TypeString", "description": "version of the claim rule.", "computed": true + }, + { + "name": "created_at", + "type": "TypeString", + "description": "If set contains a date time string of the creation date in ISO format.", + "computed": true + }, + { + "name": "modified_at", + "type": "TypeString", + "description": "If set contains a date time string of the last modification date in ISO format.", + "computed": true + }, + { + "name": "profile_id", + "type": "TypeString", + "description": "ID of the trusted profile.", + "cloud_data_type": "iam", + "immutable": true, + "required": true, + "cloud_data_range": [ + "service:trusted_profile", + "resolved_to:id" + ] } ], "ibm_iam_trusted_profile_policy": [ @@ -117691,15 +120710,6 @@ "resolved_to:id" ] }, - { - "name": "roles", - "type": "TypeList", - "description": "Role names of the policy definition", - "required": true, - "elem": { - "type": "TypeString" - } - }, { "name": "resources", "type": "TypeList", @@ -117764,18 +120774,9 @@ "max_items": 1 }, { - "name": "tags", - "type": "TypeSet", - "cloud_data_type": "tags", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "resource_tags", + "name": "resource_attributes", "type": "TypeSet", - "description": "Set access management tags.", + "description": "Set resource attributes.", "optional": true, "elem": { "name": { @@ -117799,6 +120800,13 @@ } } }, + { + "name": "transaction_id", + "type": "TypeString", + "description": "Set transactionID for debug", + "optional": true, + "computed": true + }, { "name": "rule_conditions", "type": "TypeSet", @@ -117842,9 +120850,34 @@ "optional": true }, { - "name": "resource_attributes", + "name": "roles", + "type": "TypeList", + "description": "Role names of the policy definition", + "required": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "account_management", + "type": "TypeBool", + "description": "Give access to all account management services", + "default_value": false, + "optional": true + }, + { + "name": "tags", "type": "TypeSet", - "description": "Set resource attributes.", + "cloud_data_type": "tags", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "resource_tags", + "type": "TypeSet", + "description": "Set access management tags.", "optional": true, "elem": { "name": { @@ -117868,26 +120901,12 @@ } } }, - { - "name": "account_management", - "type": "TypeBool", - "description": "Give access to all account management services", - "default_value": false, - "optional": true - }, { "name": "description", "type": "TypeString", "description": "Description of the Policy", "optional": true }, - { - "name": "transaction_id", - "type": "TypeString", - "description": "Set transactionID for debug", - "optional": true, - "computed": true - }, { "name": "rule_operator", "type": "TypeString", @@ -117897,16 +120916,28 @@ ], "ibm_iam_trusted_profile_template": [ { - "name": "committed", - "type": "TypeBool", - "description": "Committed flag determines if the template is ready for assignment.", - "optional": true, + "name": "last_modified_at", + "type": "TypeString", + "description": "Timestamp of when the template was last modified.", "computed": true }, { - "name": "created_by_id", + "name": "description", "type": "TypeString", - "description": "IAMid of the creator.", + "description": "The description of the trusted profile template. Describe the template for enterprise account users.", + "optional": true + }, + { + "name": "template_id", + "type": "TypeString", + "description": "ID of the the template.", + "optional": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "Cloud resource name.", + "cloud_data_type": "crn", "computed": true }, { @@ -117916,15 +120947,60 @@ "computed": true }, { - "name": "template_id", + "name": "account_id", "type": "TypeString", - "description": "ID of the the template.", - "optional": true + "description": "ID of the account where the template resides.", + "computed": true }, { - "name": "id", + "name": "version", + "type": "TypeInt", + "description": "Version of the the template.", + "computed": true + }, + { + "name": "created_at", "type": "TypeString", - "description": "ID of the the template.", + "description": "Timestamp of when the template was created.", + "computed": true + }, + { + "name": "policy_template_references", + "type": "TypeList", + "description": "Existing policy templates that you can reference to assign access in the trusted profile component.", + "optional": true, + "elem": { + "id": { + "name": "id", + "type": "TypeString", + "description": "ID of Access Policy Template.", + "required": true + }, + "version": { + "name": "version", + "type": "TypeString", + "description": "Version of Access Policy Template.", + "required": true + } + } + }, + { + "name": "entity_tag", + "type": "TypeString", + "description": "Entity tag for this templateId-version combination.", + "computed": true + }, + { + "name": "created_by_id", + "type": "TypeString", + "description": "IAMid of the creator.", + "computed": true + }, + { + "name": "committed", + "type": "TypeBool", + "description": "Committed flag determines if the template is ready for assignment.", + "optional": true, "computed": true }, { @@ -117974,6 +121050,12 @@ } } }, + { + "name": "name", + "type": "TypeString", + "description": "The name of the trusted profile template. This is visible only in the enterprise account.", + "optional": true + }, { "name": "profile", "type": "TypeList", @@ -118077,94 +121159,37 @@ "description": "Name of the claim rule to be created or updated.", "optional": true }, - "realm_name": { - "name": "realm_name", - "type": "TypeString", - "description": "The realm name of the Idp this claim rule applies to. This field is required only if the type is specified as 'Profile-SAML'.", - "optional": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "Type of the claim rule.", - "required": true - } - } - } - }, - "max_items": 1 - }, - { - "name": "created_at", - "type": "TypeString", - "description": "Timestamp of when the template was created.", - "computed": true - }, - { - "name": "last_modified_at", - "type": "TypeString", - "description": "Timestamp of when the template was last modified.", - "computed": true - }, - { - "name": "policy_template_references", - "type": "TypeList", - "description": "Existing policy templates that you can reference to assign access in the trusted profile component.", - "optional": true, - "elem": { - "id": { - "name": "id", - "type": "TypeString", - "description": "ID of Access Policy Template.", - "required": true - }, - "version": { - "name": "version", - "type": "TypeString", - "description": "Version of Access Policy Template.", - "required": true + "realm_name": { + "name": "realm_name", + "type": "TypeString", + "description": "The realm name of the Idp this claim rule applies to. This field is required only if the type is specified as 'Profile-SAML'.", + "optional": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "Type of the claim rule.", + "required": true + } + } } - } - }, - { - "name": "version", - "type": "TypeInt", - "description": "Version of the the template.", - "computed": true - }, - { - "name": "entity_tag", - "type": "TypeString", - "description": "Entity tag for this templateId-version combination.", - "computed": true + }, + "max_items": 1 }, { - "name": "crn", + "name": "id", "type": "TypeString", - "description": "Cloud resource name.", - "cloud_data_type": "crn", + "description": "ID of the the template.", "computed": true - }, + } + ], + "ibm_iam_trusted_profile_template_assignment": [ { - "name": "account_id", + "name": "entity_tag", "type": "TypeString", - "description": "ID of the account where the template resides.", + "description": "Entity tag for this assignment record.", "computed": true }, - { - "name": "name", - "type": "TypeString", - "description": "The name of the trusted profile template. This is visible only in the enterprise account.", - "optional": true - }, - { - "name": "description", - "type": "TypeString", - "description": "The description of the trusted profile template. Describe the template for enterprise account users.", - "optional": true - } - ], - "ibm_iam_trusted_profile_template_assignment": [ { "name": "template_version", "type": "TypeInt", @@ -118172,10 +121197,11 @@ "required": true }, { - "name": "target", + "name": "target_type", "type": "TypeString", - "description": "Assignment target.", - "required": true + "description": "Assignment target type.", + "required": true, + "options": "Account, AccountGroup" }, { "name": "context", @@ -118258,70 +121284,11 @@ "computed": true }, { - "name": "last_modified_by_id", - "type": "TypeString", - "description": "IAMid of the identity that last modified the assignment.", - "computed": true - }, - { - "name": "history", - "type": "TypeList", - "description": "Assignment history.", - "computed": true, - "elem": { - "action": { - "name": "action", - "type": "TypeString", - "description": "Action of the history entry.", - "computed": true - }, - "iam_id": { - "name": "iam_id", - "type": "TypeString", - "description": "IAM ID of the identity which triggered the action.", - "computed": true - }, - "iam_id_account": { - "name": "iam_id_account", - "type": "TypeString", - "description": "Account of the identity which triggered the action.", - "computed": true - }, - "message": { - "name": "message", - "type": "TypeString", - "description": "Message which summarizes the executed action.", - "computed": true - }, - "params": { - "name": "params", - "type": "TypeList", - "description": "Params of the history entry.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - "timestamp": { - "name": "timestamp", - "type": "TypeString", - "description": "Timestamp when the action was triggered.", - "computed": true - } - } - }, - { - "name": "href", + "name": "status", "type": "TypeString", - "description": "Href.", + "description": "Assignment status.", "computed": true }, - { - "name": "template_id", - "type": "TypeString", - "description": "Template Id.", - "required": true - }, { "name": "resources", "type": "TypeList", @@ -118480,28 +121447,68 @@ } }, { - "name": "entity_tag", - "type": "TypeString", - "description": "Entity tag for this assignment record.", - "computed": true + "name": "history", + "type": "TypeList", + "description": "Assignment history.", + "computed": true, + "elem": { + "action": { + "name": "action", + "type": "TypeString", + "description": "Action of the history entry.", + "computed": true + }, + "iam_id": { + "name": "iam_id", + "type": "TypeString", + "description": "IAM ID of the identity which triggered the action.", + "computed": true + }, + "iam_id_account": { + "name": "iam_id_account", + "type": "TypeString", + "description": "Account of the identity which triggered the action.", + "computed": true + }, + "message": { + "name": "message", + "type": "TypeString", + "description": "Message which summarizes the executed action.", + "computed": true + }, + "params": { + "name": "params", + "type": "TypeList", + "description": "Params of the history entry.", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "timestamp": { + "name": "timestamp", + "type": "TypeString", + "description": "Timestamp when the action was triggered.", + "computed": true + } + } }, { - "name": "target_type", + "name": "href", "type": "TypeString", - "description": "Assignment target type.", - "required": true, - "options": "Account, AccountGroup" + "description": "Href.", + "computed": true }, { - "name": "status", + "name": "created_at", "type": "TypeString", - "description": "Assignment status.", + "description": "Assignment created at.", "computed": true }, { - "name": "created_at", + "name": "last_modified_by_id", "type": "TypeString", - "description": "Assignment created at.", + "description": "IAMid of the identity that last modified the assignment.", "computed": true }, { @@ -118515,9 +121522,119 @@ "type": "TypeString", "description": "Assignment modified at.", "computed": true + }, + { + "name": "template_id", + "type": "TypeString", + "description": "Template Id.", + "required": true + }, + { + "name": "target", + "type": "TypeString", + "description": "Assignment target.", + "required": true } ], "ibm_iam_user_invite": [ + { + "name": "users", + "type": "TypeSet", + "description": "List of ibm id or email of user", + "required": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "access_groups", + "type": "TypeList", + "description": "access group ids to associate the inviting user", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "iam_policy", + "type": "TypeList", + "optional": true, + "elem": { + "account_management": { + "name": "account_management", + "type": "TypeBool", + "description": "Give access to all account management services", + "default_value": false, + "optional": true + }, + "resources": { + "name": "resources", + "type": "TypeList", + "optional": true, + "computed": true, + "elem": { + "attributes": { + "name": "attributes", + "type": "TypeMap", + "description": "Set resource attributes in the form of 'name=value,name=value....", + "optional": true, + "elem": "schema.ValueType" + }, + "region": { + "name": "region", + "type": "TypeString", + "description": "Region of the policy definition", + "optional": true + }, + "resource": { + "name": "resource", + "type": "TypeString", + "description": "Resource of the policy definition", + "optional": true + }, + "resource_group_id": { + "name": "resource_group_id", + "type": "TypeString", + "description": "ID of the resource group.", + "optional": true + }, + "resource_instance_id": { + "name": "resource_instance_id", + "type": "TypeString", + "description": "ID of resource instance of the policy definition", + "optional": true + }, + "resource_type": { + "name": "resource_type", + "type": "TypeString", + "description": "Resource type of the policy definition", + "optional": true + }, + "service": { + "name": "service", + "type": "TypeString", + "description": "Service name of the policy definition", + "optional": true + } + } + }, + "roles": { + "name": "roles", + "type": "TypeList", + "description": "Role names of the policy definition", + "required": true, + "elem": { + "type": "TypeString" + } + } + } + }, + { + "name": "number_of_invited_users", + "type": "TypeInt", + "description": "Number of users invited to an account", + "computed": true + }, { "name": "invited_users", "type": "TypeList", @@ -118764,92 +121881,44 @@ } } } - }, + } + ], + "ibm_iam_user_policy": [ { - "name": "users", - "type": "TypeSet", - "description": "List of ibm id or email of user", - "required": true, - "elem": { - "type": "TypeString" - } + "name": "account_management", + "type": "TypeBool", + "description": "Give access to all account management services", + "default_value": false, + "optional": true }, { - "name": "access_groups", - "type": "TypeList", - "description": "access group ids to associate the inviting user", - "optional": true, - "elem": { - "type": "TypeString" - } + "name": "description", + "type": "TypeString", + "description": "Description of the Policy", + "optional": true }, { - "name": "iam_policy", - "type": "TypeList", + "name": "rule_conditions", + "type": "TypeSet", + "description": "Rule conditions enforced by the policy", "optional": true, "elem": { - "account_management": { - "name": "account_management", - "type": "TypeBool", - "description": "Give access to all account management services", - "default_value": false, - "optional": true + "key": { + "name": "key", + "type": "TypeString", + "description": "Key of the condition", + "required": true }, - "resources": { - "name": "resources", - "type": "TypeList", - "optional": true, - "computed": true, - "elem": { - "attributes": { - "name": "attributes", - "type": "TypeMap", - "description": "Set resource attributes in the form of 'name=value,name=value....", - "optional": true, - "elem": "schema.ValueType" - }, - "region": { - "name": "region", - "type": "TypeString", - "description": "Region of the policy definition", - "optional": true - }, - "resource": { - "name": "resource", - "type": "TypeString", - "description": "Resource of the policy definition", - "optional": true - }, - "resource_group_id": { - "name": "resource_group_id", - "type": "TypeString", - "description": "ID of the resource group.", - "optional": true - }, - "resource_instance_id": { - "name": "resource_instance_id", - "type": "TypeString", - "description": "ID of resource instance of the policy definition", - "optional": true - }, - "resource_type": { - "name": "resource_type", - "type": "TypeString", - "description": "Resource type of the policy definition", - "optional": true - }, - "service": { - "name": "service", - "type": "TypeString", - "description": "Service name of the policy definition", - "optional": true - } - } + "operator": { + "name": "operator", + "type": "TypeString", + "description": "Operator of the condition", + "required": true }, - "roles": { - "name": "roles", + "value": { + "name": "value", "type": "TypeList", - "description": "Role names of the policy definition", + "description": "Value of the condition", "required": true, "elem": { "type": "TypeString" @@ -118858,24 +121927,24 @@ } }, { - "name": "number_of_invited_users", - "type": "TypeInt", - "description": "Number of users invited to an account", - "computed": true - } - ], - "ibm_iam_user_policy": [ - { - "name": "ibm_id", + "name": "pattern", "type": "TypeString", - "description": "The ibm id or email of user", - "immutable": true, - "required": true + "description": "Pattern rule follows for time-based condition", + "optional": true }, { - "name": "resource_attributes", + "name": "tags", "type": "TypeSet", - "description": "Set resource attributes.", + "cloud_data_type": "tags", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "resource_tags", + "type": "TypeSet", + "description": "Set access management tags.", "optional": true, "elem": { "name": { @@ -118913,10 +121982,11 @@ "optional": true }, { - "name": "pattern", + "name": "ibm_id", "type": "TypeString", - "description": "Pattern rule follows for time-based condition", - "optional": true + "description": "The ibm id or email of user", + "immutable": true, + "required": true }, { "name": "roles", @@ -118991,25 +122061,9 @@ "max_items": 1 }, { - "name": "account_management", - "type": "TypeBool", - "description": "Give access to all account management services", - "default_value": false, - "optional": true - }, - { - "name": "tags", - "type": "TypeSet", - "cloud_data_type": "tags", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "resource_tags", + "name": "resource_attributes", "type": "TypeSet", - "description": "Set access management tags.", + "description": "Set resource attributes.", "optional": true, "elem": { "name": { @@ -119032,41 +122086,6 @@ "required": true } } - }, - { - "name": "description", - "type": "TypeString", - "description": "Description of the Policy", - "optional": true - }, - { - "name": "rule_conditions", - "type": "TypeSet", - "description": "Rule conditions enforced by the policy", - "optional": true, - "elem": { - "key": { - "name": "key", - "type": "TypeString", - "description": "Key of the condition", - "required": true - }, - "operator": { - "name": "operator", - "type": "TypeString", - "description": "Operator of the condition", - "required": true - }, - "value": { - "name": "value", - "type": "TypeList", - "description": "Value of the condition", - "required": true, - "elem": { - "type": "TypeString" - } - } - } } ], "ibm_iam_user_settings": [ @@ -119089,54 +122108,9 @@ ], "ibm_ipsec_vpn": [ { - "name": "datacenter", - "type": "TypeString", - "description": "Datacenter name", - "immutable": true, - "required": true - }, - { - "name": "name", - "type": "TypeString", - "computed": true - }, - { - "name": "phase_two", - "type": "TypeList", - "optional": true, - "elem": { - "authentication": { - "name": "authentication", - "type": "TypeString", - "default_value": "MD5", - "optional": true - }, - "diffie_hellman_group": { - "name": "diffie_hellman_group", - "type": "TypeInt", - "default_value": 2, - "optional": true - }, - "encryption": { - "name": "encryption", - "type": "TypeString", - "default_value": "3DES", - "optional": true - }, - "keylife": { - "name": "keylife", - "type": "TypeInt", - "default_value": 3600, - "optional": true - } - }, - "max_items": 1, - "min_items": 1 - }, - { - "name": "customer_peer_ip", - "type": "TypeString", - "description": "Customer Peer IP Address", + "name": "internal_subnet_id", + "type": "TypeInt", + "description": "Internal subnet ID value", "optional": true }, { @@ -119170,9 +122144,11 @@ "optional": true }, { - "name": "internal_peer_ip_address", + "name": "datacenter", "type": "TypeString", - "computed": true + "description": "Datacenter name", + "immutable": true, + "required": true }, { "name": "phase_one", @@ -119207,6 +122183,39 @@ "max_items": 1, "min_items": 1 }, + { + "name": "phase_two", + "type": "TypeList", + "optional": true, + "elem": { + "authentication": { + "name": "authentication", + "type": "TypeString", + "default_value": "MD5", + "optional": true + }, + "diffie_hellman_group": { + "name": "diffie_hellman_group", + "type": "TypeInt", + "default_value": 2, + "optional": true + }, + "encryption": { + "name": "encryption", + "type": "TypeString", + "default_value": "3DES", + "optional": true + }, + "keylife": { + "name": "keylife", + "type": "TypeInt", + "default_value": 3600, + "optional": true + } + }, + "max_items": 1, + "min_items": 1 + }, { "name": "address_translation", "type": "TypeList", @@ -119238,9 +122247,9 @@ "optional": true }, { - "name": "internal_subnet_id", - "type": "TypeInt", - "description": "Internal subnet ID value", + "name": "customer_peer_ip", + "type": "TypeString", + "description": "Customer Peer IP Address", "optional": true }, { @@ -119248,13 +122257,41 @@ "type": "TypeInt", "description": "Remote subnet ID value", "optional": true + }, + { + "name": "internal_peer_ip_address", + "type": "TypeString", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "computed": true } ], "ibm_is_backup_policy": [ { - "name": "href", + "name": "match_resource_types", + "type": "TypeSet", + "description": "A resource type this backup policy applies to. Resources that have both a matching type and a matching user tag will be subject to the backup policy.", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + }, + "deprecated": "match_resource_types is being deprecated. Use match_resource_type instead" + }, + { + "name": "created_at", "type": "TypeString", - "description": "The URL for this backup policy.", + "description": "The date and time that the backup policy was created.", + "computed": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "The CRN for this backup policy.", + "cloud_data_type": "crn", "computed": true }, { @@ -119264,20 +122301,46 @@ "computed": true }, { - "name": "name", + "name": "lifecycle_state", "type": "TypeString", - "description": "The user-defined name for this backup policy. Names must be unique within the region this backup policy resides in. If unspecified, the name will be a hyphenated list of randomly-selected words.", - "required": true, - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9]|[0-9][-a-z0-9]*([a-z]|[-a-z][-a-z0-9]*[a-z0-9]))$" + "description": "The lifecycle state of the backup policy.", + "computed": true }, { - "name": "crn", + "name": "health_reasons", + "type": "TypeList", + "description": "The reasons for the current health_state (if any).", + "computed": true, + "elem": { + "code": { + "name": "code", + "type": "TypeString", + "description": "A snake case string succinctly identifying the reason for this health state.", + "computed": true + }, + "message": { + "name": "message", + "type": "TypeString", + "description": "An explanation of the reason for this health state.", + "computed": true + }, + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about the reason for this health state.", + "computed": true + } + } + }, + { + "name": "match_resource_type", "type": "TypeString", - "description": "The CRN for this backup policy.", - "cloud_data_type": "crn", - "computed": true + "description": "A resource type this backup policy applies to. Resources that have both a matching type and a matching user tag will be subject to the backup policy.", + "default_value": "volume", + "min_length": 1, + "max_length": 128, + "matches": "^[a-z][a-z0-9]*(_[a-z0-9]+)*$", + "optional": true }, { "name": "resource_group", @@ -119289,16 +122352,46 @@ "computed": true }, { - "name": "created_at", + "name": "version", "type": "TypeString", - "description": "The date and time that the backup policy was created.", "computed": true }, { - "name": "lifecycle_state", + "name": "scope", + "type": "TypeList", + "description": "The scope for this backup policy.", + "optional": true, + "computed": true, + "elem": { + "crn": { + "name": "crn", + "type": "TypeString", + "description": "The CRN for this enterprise.", + "optional": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "The unique identifier for this enterprise or account.", + "computed": true + }, + "resource_type": { + "name": "resource_type", + "type": "TypeString", + "description": "The resource type.", + "computed": true + } + }, + "max_items": 1 + }, + { + "name": "name", "type": "TypeString", - "description": "The lifecycle state of the backup policy.", - "computed": true + "description": "The user-defined name for this backup policy. Names must be unique within the region this backup policy resides in. If unspecified, the name will be a hyphenated list of randomly-selected words.", + "required": true, + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9]|[0-9][-a-z0-9]*([a-z]|[-a-z][-a-z0-9]*[a-z0-9]))$" }, { "name": "resource_type", @@ -119307,23 +122400,11 @@ "computed": true }, { - "name": "version", + "name": "health_state", "type": "TypeString", + "description": "The health of this resource", "computed": true }, - { - "name": "match_resource_types", - "type": "TypeSet", - "description": "A resource type this backup policy applies to. Resources that have both a matching type and a matching user tag will be subject to the backup policy.", - "min_length": 1, - "max_length": 128, - "matches": "^[a-z][a-z0-9]*(_[a-z0-9]+)*$", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, { "name": "match_user_tags", "type": "TypeSet", @@ -119335,24 +122416,97 @@ "elem": { "type": "TypeString" } + }, + { + "name": "href", + "type": "TypeString", + "description": "The URL for this backup policy.", + "computed": true } ], "ibm_is_backup_policy_plan": [ { - "name": "backup_policy_id", + "name": "copy_user_tags", + "type": "TypeBool", + "description": "Indicates whether to copy the source's user tags to the created backups (snapshots).", + "default_value": true, + "optional": true + }, + { + "name": "resource_type", "type": "TypeString", - "description": "The backup policy identifier.", - "immutable": true, - "required": true + "description": "The resource type.", + "computed": true }, { - "name": "attach_user_tags", - "type": "TypeSet", - "description": "User tags to attach to each backup (snapshot) created by this plan. If unspecified, no user tags will be attached.", + "name": "version", + "type": "TypeString", + "description": "Version of the BackupPolicyPlan.", + "computed": true + }, + { + "name": "cron_spec", + "type": "TypeString", + "description": "The cron specification for the backup schedule.", + "required": true, + "min_length": 9, + "max_length": 63, + "matches": "^((((\\d+,)+\\d+|([\\d\\*]+(\\/|-)\\d+)|\\d+|\\*) ?){5,7})$" + }, + { + "name": "deletion_trigger", + "type": "TypeList", "optional": true, + "computed": true, "elem": { - "type": "TypeString" - } + "delete_after": { + "name": "delete_after", + "type": "TypeInt", + "description": "The maximum number of days to keep each backup after creation.", + "default_value": 30, + "optional": true + }, + "delete_over_count": { + "name": "delete_over_count", + "type": "TypeString", + "description": "The maximum number of recent backups to keep. If unspecified, there will be no maximum.", + "optional": true, + "computed": true + } + }, + "max_items": 1 + }, + { + "name": "lifecycle_state", + "type": "TypeString", + "description": "The lifecycle state of this backup policy plan.", + "computed": true + }, + { + "name": "clone_policy", + "type": "TypeList", + "optional": true, + "computed": true, + "elem": { + "max_snapshots": { + "name": "max_snapshots", + "type": "TypeInt", + "description": "The maximum number of recent snapshots (per source) that will keep clones.", + "optional": true, + "computed": true + }, + "zones": { + "name": "zones", + "type": "TypeSet", + "description": "The zone this backup policy plan will create snapshot clones in.", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + } + }, + "max_items": 1 }, { "name": "name", @@ -119363,6 +122517,12 @@ "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9]|[0-9][-a-z0-9]*([a-z]|[-a-z][-a-z0-9]*[a-z0-9]))$", "optional": true }, + { + "name": "href", + "type": "TypeString", + "description": "The URL for this backup policy plan.", + "computed": true + }, { "name": "remote_region_policy", "type": "TypeList", @@ -119392,19 +122552,17 @@ } }, { - "name": "resource_type", + "name": "backup_policy_id", "type": "TypeString", - "description": "The resource type.", - "computed": true + "description": "The backup policy identifier.", + "immutable": true, + "required": true }, { - "name": "cron_spec", + "name": "backup_policy_plan_id", "type": "TypeString", - "description": "The cron specification for the backup schedule.", - "required": true, - "min_length": 9, - "max_length": 63, - "matches": "^((((\\d+,)+\\d+|([\\d\\*]+(\\/|-)\\d+)|\\d+|\\*) ?){5,7})$" + "description": "The backup policy identifier.", + "computed": true }, { "name": "active", @@ -119414,93 +122572,174 @@ "computed": true }, { - "name": "copy_user_tags", + "name": "attach_user_tags", + "type": "TypeSet", + "description": "User tags to attach to each backup (snapshot) created by this plan. If unspecified, no user tags will be attached.", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "created_at", + "type": "TypeString", + "description": "The date and time that the backup policy plan was created.", + "computed": true + } + ], + "ibm_is_bare_metal_server": [ + { + "name": "vpc", + "type": "TypeString", + "description": "The VPC the bare metal server is to be a part of", + "immutable": true, + "optional": true, + "computed": true + }, + { + "name": "access_tags", + "type": "TypeSet", + "description": "List of access management tags", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "enable_secure_boot", "type": "TypeBool", - "description": "Indicates whether to copy the source's user tags to the created backups (snapshots).", - "default_value": true, + "description": "Indicates whether secure boot is enabled. If enabled, the image must support secure boot or the server will fail to boot.", + "optional": true, + "computed": true + }, + { + "name": "action", + "type": "TypeString", + "description": "This restart/start/stops a bare metal server.", + "options": "start, restart, stop", "optional": true }, { - "name": "clone_policy", + "name": "crn", + "type": "TypeString", + "description": "The CRN for this bare metal server", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "disks", "type": "TypeList", - "optional": true, + "description": "The disks for this bare metal server, including any disks that are associated with the boot_target.", "computed": true, "elem": { - "max_snapshots": { - "name": "max_snapshots", - "type": "TypeInt", - "description": "The maximum number of recent snapshots (per source) that will keep clones.", - "optional": true, + "href": { + "name": "href", + "type": "TypeString", + "description": "The URL for this bare metal server disk", "computed": true }, - "zones": { - "name": "zones", - "type": "TypeSet", - "description": "The zone this backup policy plan will create snapshot clones in.", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } + "id": { + "name": "id", + "type": "TypeString", + "description": "The unique identifier for this bare metal server disk", + "computed": true + }, + "interface_type": { + "name": "interface_type", + "type": "TypeString", + "description": "The disk interface used for attaching the disk. Supported values are [ nvme, sata ]", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The user-defined name for this disk", + "computed": true + }, + "resource_type": { + "name": "resource_type", + "type": "TypeString", + "description": "The resource type", + "computed": true + }, + "size": { + "name": "size", + "type": "TypeInt", + "description": "The size of the disk in GB (gigabytes)", + "computed": true } - }, - "max_items": 1 - }, - { - "name": "version", - "type": "TypeString", - "description": "Version of the BackupPolicyPlan.", - "computed": true + } }, { "name": "href", "type": "TypeString", - "description": "The URL for this backup policy plan.", + "description": "The URL for this bare metal server", "computed": true }, { - "name": "backup_policy_plan_id", - "type": "TypeString", - "description": "The backup policy identifier.", + "name": "memory", + "type": "TypeInt", + "description": "The amount of memory, truncated to whole gibibytes", "computed": true }, { - "name": "deletion_trigger", + "name": "status_reasons", "type": "TypeList", - "optional": true, "computed": true, "elem": { - "delete_after": { - "name": "delete_after", - "type": "TypeInt", - "description": "The maximum number of days to keep each backup after creation.", - "default_value": 30, - "optional": true + "code": { + "name": "code", + "type": "TypeString", + "description": "A snake case string succinctly identifying the status reason", + "computed": true }, - "delete_over_count": { - "name": "delete_over_count", + "message": { + "name": "message", "type": "TypeString", - "description": "The maximum number of recent backups to keep. If unspecified, there will be no maximum.", - "optional": true, + "description": "An explanation of the status reason", + "computed": true + }, + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about this status reason", "computed": true } - }, - "max_items": 1 + } }, { - "name": "created_at", + "name": "tags", + "type": "TypeSet", + "description": "Tags for the Bare metal server", + "min_length": 1, + "max_length": 128, + "matches": "^[A-Za-z0-9:_ .-]+$", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "resource_type", "type": "TypeString", - "description": "The date and time that the backup policy plan was created.", + "description": "Resource type name", "computed": true }, { - "name": "lifecycle_state", + "name": "boot_target", "type": "TypeString", - "description": "The lifecycle state of this backup policy plan.", + "description": "The unique identifier for this bare metal server disk", "computed": true - } - ], - "ibm_is_bare_metal_server": [ + }, + { + "name": "delete_type", + "type": "TypeString", + "description": "Enables stopping type of the bare metal server before deleting", + "default_value": "hard", + "optional": true + }, { "name": "primary_network_interface", "type": "TypeList", @@ -119768,6 +123007,20 @@ } } }, + { + "name": "profile", + "type": "TypeString", + "description": "profile name", + "immutable": true, + "required": true + }, + { + "name": "user_data", + "type": "TypeString", + "description": "User data given for the bare metal server", + "immutable": true, + "optional": true + }, { "name": "zone", "type": "TypeString", @@ -119776,49 +123029,23 @@ "required": true }, { - "name": "resource_type", + "name": "resource_group", "type": "TypeString", - "description": "Resource type name", - "computed": true - }, - { - "name": "enable_secure_boot", - "type": "TypeBool", - "description": "Indicates whether secure boot is enabled. If enabled, the image must support secure boot or the server will fail to boot.", + "description": "Resource group name", + "cloud_data_type": "resource_group", + "immutable": true, "optional": true, "computed": true }, { - "name": "action", - "type": "TypeString", - "description": "This restart/start/stops a bare metal server.", - "options": "start, restart, stop", - "optional": true - }, - { - "name": "crn", - "type": "TypeString", - "description": "The CRN for this bare metal server", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "delete_type", + "name": "name", "type": "TypeString", - "description": "Enables stopping type of the bare metal server before deleting", - "default_value": "hard", + "description": "Bare metal server name", + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", "optional": true }, - { - "name": "access_tags", - "type": "TypeSet", - "description": "List of access management tags", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, { "name": "trusted_platform_module", "type": "TypeList", @@ -119850,88 +123077,6 @@ }, "max_items": 1 }, - { - "name": "disks", - "type": "TypeList", - "description": "The disks for this bare metal server, including any disks that are associated with the boot_target.", - "computed": true, - "elem": { - "href": { - "name": "href", - "type": "TypeString", - "description": "The URL for this bare metal server disk", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "The unique identifier for this bare metal server disk", - "computed": true - }, - "interface_type": { - "name": "interface_type", - "type": "TypeString", - "description": "The disk interface used for attaching the disk. Supported values are [ nvme, sata ]", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The user-defined name for this disk", - "computed": true - }, - "resource_type": { - "name": "resource_type", - "type": "TypeString", - "description": "The resource type", - "computed": true - }, - "size": { - "name": "size", - "type": "TypeInt", - "description": "The size of the disk in GB (gigabytes)", - "computed": true - } - } - }, - { - "name": "memory", - "type": "TypeInt", - "description": "The amount of memory, truncated to whole gibibytes", - "computed": true - }, - { - "name": "resource_group", - "type": "TypeString", - "description": "Resource group name", - "cloud_data_type": "resource_group", - "immutable": true, - "optional": true, - "computed": true - }, - { - "name": "vpc", - "type": "TypeString", - "description": "The VPC the bare metal server is to be a part of", - "immutable": true, - "optional": true, - "computed": true - }, - { - "name": "status", - "type": "TypeString", - "description": "Bare metal server status", - "computed": true - }, - { - "name": "name", - "type": "TypeString", - "description": "Bare metal server name", - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", - "optional": true - }, { "name": "bandwidth", "type": "TypeInt", @@ -119970,70 +123115,6 @@ } } }, - { - "name": "image", - "type": "TypeString", - "description": "image id", - "immutable": true, - "required": true - }, - { - "name": "user_data", - "type": "TypeString", - "description": "User data given for the bare metal server", - "immutable": true, - "optional": true - }, - { - "name": "status_reasons", - "type": "TypeList", - "computed": true, - "elem": { - "code": { - "name": "code", - "type": "TypeString", - "description": "A snake case string succinctly identifying the status reason", - "computed": true - }, - "message": { - "name": "message", - "type": "TypeString", - "description": "An explanation of the status reason", - "computed": true - }, - "more_info": { - "name": "more_info", - "type": "TypeString", - "description": "Link to documentation about this status reason", - "computed": true - } - } - }, - { - "name": "tags", - "type": "TypeSet", - "description": "Tags for the Bare metal server", - "min_length": 1, - "max_length": 128, - "matches": "^[A-Za-z0-9:_ .-]+$", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "boot_target", - "type": "TypeString", - "description": "The unique identifier for this bare metal server disk", - "computed": true - }, - { - "name": "href", - "type": "TypeString", - "description": "The URL for this bare metal server", - "computed": true - }, { "name": "keys", "type": "TypeSet", @@ -120044,21 +123125,20 @@ } }, { - "name": "profile", + "name": "image", "type": "TypeString", - "description": "profile name", + "description": "image id", "immutable": true, "required": true + }, + { + "name": "status", + "type": "TypeString", + "description": "Bare metal server status", + "computed": true } ], "ibm_is_bare_metal_server_action": [ - { - "name": "bare_metal_server", - "type": "TypeString", - "description": "Bare metal server identifier", - "immutable": true, - "required": true - }, { "name": "stop_type", "type": "TypeString", @@ -120103,6 +123183,13 @@ "computed": true } } + }, + { + "name": "bare_metal_server", + "type": "TypeString", + "description": "Bare metal server identifier", + "immutable": true, + "required": true } ], "ibm_is_bare_metal_server_disk": [ @@ -120131,14 +123218,33 @@ ], "ibm_is_bare_metal_server_network_interface": [ { - "name": "allowed_vlans", - "type": "TypeSet", - "description": "Indicates what VLAN IDs (for VLAN type only) can use this physical (PCI type) interface. A given VLAN can only be in the allowed_vlans array for one PCI type adapter per bare metal server.", + "name": "hard_stop", + "type": "TypeBool", + "description": "Only used for PCI network interfaces, whether to hard/immediately stop server", + "default_value": true, + "optional": true + }, + { + "name": "mac_address", + "type": "TypeString", + "description": "The MAC address of the interface. If absent, the value is not known.", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The user-defined name for this network interface", + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", "optional": true, - "computed": true, - "elem": { - "type": "TypeInt" - } + "computed": true + }, + { + "name": "port_speed", + "type": "TypeInt", + "description": "The network interface port speed in Mbps", + "computed": true }, { "name": "vlan", @@ -120148,9 +123254,23 @@ "computed": true }, { - "name": "mac_address", + "name": "bare_metal_server", "type": "TypeString", - "description": "The MAC address of the interface. If absent, the value is not known.", + "description": "Bare metal server identifier", + "required": true + }, + { + "name": "href", + "type": "TypeString", + "description": "The URL for this network interface", + "computed": true + }, + { + "name": "interface_type", + "type": "TypeString", + "description": "The network interface type: [ pci, vlan, hipersocket ]", + "options": "pci, hipersocket, vlan", + "optional": true, "computed": true }, { @@ -120203,46 +123323,6 @@ }, "max_items": 1 }, - { - "name": "href", - "type": "TypeString", - "description": "The URL for this network interface", - "computed": true - }, - { - "name": "allow_ip_spoofing", - "type": "TypeBool", - "description": "Indicates whether source IP spoofing is allowed on this interface. If false, source IP spoofing is prevented on this interface. If true, source IP spoofing is allowed on this interface.", - "optional": true, - "computed": true - }, - { - "name": "floating_ips", - "type": "TypeList", - "description": "The floating IPs associated with this network interface.", - "computed": true, - "elem": { - "address": { - "name": "address", - "type": "TypeString", - "description": "The globally unique IP address", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "The globally unique IP identifier", - "computed": true - } - } - }, - { - "name": "enable_infrastructure_nat", - "type": "TypeBool", - "description": "If true, the VPC infrastructure performs any needed NAT operations. If false, the packet is passed unmodified to/from the network interface, allowing the workload to perform any needed NAT operations.", - "optional": true, - "computed": true - }, { "name": "security_groups", "type": "TypeSet", @@ -120253,47 +123333,6 @@ "type": "TypeString" } }, - { - "name": "subnet", - "type": "TypeString", - "description": "The id of the associated subnet", - "required": true - }, - { - "name": "bare_metal_server", - "type": "TypeString", - "description": "Bare metal server identifier", - "required": true - }, - { - "name": "hard_stop", - "type": "TypeBool", - "description": "Only used for PCI network interfaces, whether to hard/immediately stop server", - "default_value": true, - "optional": true - }, - { - "name": "name", - "type": "TypeString", - "description": "The user-defined name for this network interface", - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", - "optional": true, - "computed": true - }, - { - "name": "port_speed", - "type": "TypeInt", - "description": "The network interface port speed in Mbps", - "computed": true - }, - { - "name": "resource_type", - "type": "TypeString", - "description": "The resource type : [ subnet_reserved_ip ]", - "computed": true - }, { "name": "status", "type": "TypeString", @@ -120320,15 +123359,19 @@ "computed": true }, { - "name": "interface_type", - "type": "TypeString", - "description": "The network interface type: [ pci, vlan, hipersocket ]", - "options": "pci, hipersocket, vlan", + "name": "allow_ip_spoofing", + "type": "TypeBool", + "description": "Indicates whether source IP spoofing is allowed on this interface. If false, source IP spoofing is prevented on this interface. If true, source IP spoofing is allowed on this interface.", "optional": true, "computed": true - } - ], - "ibm_is_bare_metal_server_network_interface_allow_float": [ + }, + { + "name": "enable_infrastructure_nat", + "type": "TypeBool", + "description": "If true, the VPC infrastructure performs any needed NAT operations. If false, the packet is passed unmodified to/from the network interface, allowing the workload to perform any needed NAT operations.", + "optional": true, + "computed": true + }, { "name": "floating_ips", "type": "TypeList", @@ -120349,18 +123392,6 @@ } } }, - { - "name": "href", - "type": "TypeString", - "description": "The URL for this network interface", - "computed": true - }, - { - "name": "port_speed", - "type": "TypeInt", - "description": "The network interface port speed in Mbps", - "computed": true - }, { "name": "resource_type", "type": "TypeString", @@ -120368,33 +123399,23 @@ "computed": true }, { - "name": "status", - "type": "TypeString", - "description": "The status of the network interface : [ available, deleting, failed, pending ]", - "computed": true - }, - { - "name": "floating_bare_metal_server", - "type": "TypeString", - "description": "Bare metal server identifier of the server to which nic is floating to", - "computed": true - }, - { - "name": "network_interface", + "name": "subnet", "type": "TypeString", - "description": "The bare metal server network interface identifier", - "computed": true + "description": "The id of the associated subnet", + "required": true }, { - "name": "security_groups", + "name": "allowed_vlans", "type": "TypeSet", - "description": "Collection of security groups ids", + "description": "Indicates what VLAN IDs (for VLAN type only) can use this physical (PCI type) interface. A given VLAN can only be in the allowed_vlans array for one PCI type adapter per bare metal server.", "optional": true, "computed": true, "elem": { - "type": "TypeString" + "type": "TypeInt" } - }, + } + ], + "ibm_is_bare_metal_server_network_interface_allow_float": [ { "name": "primary_ip", "type": "TypeList", @@ -120445,18 +123466,6 @@ }, "max_items": 1 }, - { - "name": "type", - "type": "TypeString", - "description": "The type of this bare metal server network interface : [ primary, secondary ]", - "computed": true - }, - { - "name": "vlan", - "type": "TypeInt", - "description": "Indicates the 802.1Q VLAN ID tag that must be used for all traffic on this interface", - "required": true - }, { "name": "bare_metal_server", "type": "TypeString", @@ -120464,17 +123473,57 @@ "required": true }, { - "name": "mac_address", + "name": "floating_bare_metal_server", "type": "TypeString", - "description": "The MAC address of the interface. If absent, the value is not known.", + "description": "Bare metal server identifier of the server to which nic is floating to", + "computed": true + }, + { + "name": "enable_infrastructure_nat", + "type": "TypeBool", + "description": "If true, the VPC infrastructure performs any needed NAT operations. If false, the packet is passed unmodified to/from the network interface, allowing the workload to perform any needed NAT operations.", + "optional": true, "computed": true }, + { + "name": "floating_ips", + "type": "TypeList", + "description": "The floating IPs associated with this network interface.", + "computed": true, + "elem": { + "address": { + "name": "address", + "type": "TypeString", + "description": "The globally unique IP address", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "The globally unique IP identifier", + "computed": true + } + } + }, { "name": "interface_type", "type": "TypeString", "description": "The network interface type: [ pci, vlan ]", "computed": true }, + { + "name": "allow_ip_spoofing", + "type": "TypeBool", + "description": "Indicates whether source IP spoofing is allowed on this interface. If false, source IP spoofing is prevented on this interface. If true, source IP spoofing is allowed on this interface.", + "optional": true, + "computed": true + }, + { + "name": "mac_address", + "type": "TypeString", + "description": "The MAC address of the interface. If absent, the value is not known.", + "computed": true + }, { "name": "name", "type": "TypeString", @@ -120483,10 +123532,10 @@ "computed": true }, { - "name": "subnet", + "name": "resource_type", "type": "TypeString", - "description": "The id of the associated subnet", - "required": true + "description": "The resource type : [ subnet_reserved_ip ]", + "computed": true }, { "name": "allow_interface_to_float", @@ -120495,37 +123544,63 @@ "computed": true }, { - "name": "allow_ip_spoofing", - "type": "TypeBool", - "description": "Indicates whether source IP spoofing is allowed on this interface. If false, source IP spoofing is prevented on this interface. If true, source IP spoofing is allowed on this interface.", + "name": "security_groups", + "type": "TypeSet", + "description": "Collection of security groups ids", "optional": true, - "computed": true + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "enable_infrastructure_nat", - "type": "TypeBool", - "description": "If true, the VPC infrastructure performs any needed NAT operations. If false, the packet is passed unmodified to/from the network interface, allowing the workload to perform any needed NAT operations.", - "optional": true, + "name": "status", + "type": "TypeString", + "description": "The status of the network interface : [ available, deleting, failed, pending ]", "computed": true - } - ], - "ibm_is_bare_metal_server_network_interface_floating_ip": [ + }, + { + "name": "vlan", + "type": "TypeInt", + "description": "Indicates the 802.1Q VLAN ID tag that must be used for all traffic on this interface", + "required": true + }, { "name": "network_interface", "type": "TypeString", - "description": "Bare metal server network interface identifier", - "required": true + "description": "The bare metal server network interface identifier", + "computed": true }, { - "name": "name", + "name": "href", "type": "TypeString", - "description": "Name of the floating IP", + "description": "The URL for this network interface", "computed": true }, { - "name": "address", + "name": "port_speed", + "type": "TypeInt", + "description": "The network interface port speed in Mbps", + "computed": true + }, + { + "name": "subnet", "type": "TypeString", - "description": "Floating IP address", + "description": "The id of the associated subnet", + "required": true + }, + { + "name": "type", + "type": "TypeString", + "description": "The type of this bare metal server network interface : [ primary, secondary ]", + "computed": true + } + ], + "ibm_is_bare_metal_server_network_interface_floating_ip": [ + { + "name": "name", + "type": "TypeString", + "description": "Name of the floating IP", "computed": true }, { @@ -120535,9 +123610,10 @@ "computed": true }, { - "name": "target", + "name": "crn", "type": "TypeString", - "description": "Target info", + "description": "Floating IP crn", + "cloud_data_type": "crn", "computed": true }, { @@ -120546,12 +123622,24 @@ "description": "Bare metal server identifier", "required": true }, + { + "name": "network_interface", + "type": "TypeString", + "description": "Bare metal server network interface identifier", + "required": true + }, { "name": "floating_ip", "type": "TypeString", "description": "The floating ip identifier of the network interface associated with the bare metal server", "required": true }, + { + "name": "address", + "type": "TypeString", + "description": "Floating IP address", + "computed": true + }, { "name": "status", "type": "TypeString", @@ -120559,36 +123647,30 @@ "computed": true }, { - "name": "crn", + "name": "target", "type": "TypeString", - "description": "Floating IP crn", - "cloud_data_type": "crn", + "description": "Target info", "computed": true } ], "ibm_is_dedicated_host": [ { - "name": "instance_placement_enabled", - "type": "TypeBool", - "description": "If set to true, instances can be placed on this dedicated host.", - "default_value": true, - "optional": true + "name": "profile", + "type": "TypeString", + "description": "The Globally unique name of the dedicated host profile to use for this dedicated host.", + "immutable": true, + "required": true }, { - "name": "name", + "name": "href", "type": "TypeString", - "description": "The unique user-defined name for this dedicated host. If unspecified, the name will be a hyphenated list of randomly-selected words.", - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", - "optional": true, + "description": "The URL for this dedicated host.", "computed": true }, { - "name": "crn", - "type": "TypeString", - "description": "The CRN for this dedicated host.", - "cloud_data_type": "crn", + "name": "provisionable", + "type": "TypeBool", + "description": "Indicates whether this dedicated host is available for instance creation.", "computed": true }, { @@ -120598,9 +123680,9 @@ "computed": true }, { - "name": "provisionable", - "type": "TypeBool", - "description": "Indicates whether this dedicated host is available for instance creation.", + "name": "resource_type", + "type": "TypeString", + "description": "The type of resource referenced.", "computed": true }, { @@ -120610,102 +123692,77 @@ "computed": true }, { - "name": "resource_group", - "type": "TypeString", - "description": "The unique identifier for the resource group to use. If unspecified, the account's [default resourcegroup](https://cloud.ibm.com/apidocs/resource-manager#introduction) is used.", - "cloud_data_type": "resource_group", - "immutable": true, - "optional": true, - "computed": true - }, - { - "name": "host_group", + "name": "state", "type": "TypeString", - "description": "The unique identifier of the dedicated host group for this dedicated host.", - "immutable": true, - "required": true - }, - { - "name": "available_memory", - "type": "TypeInt", - "description": "The amount of memory in gibibytes that is currently available for instances.", + "description": "The administrative state of the dedicated host.The enumerated values for this property are expected to expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the dedicated host on which the unexpected property value was encountered.", "computed": true }, { - "name": "available_vcpu", + "name": "supported_instance_profiles", "type": "TypeList", - "description": "The available VCPU for the dedicated host.", + "description": "Array of instance profiles that can be used by instances placed on this dedicated host.", "computed": true, "elem": { - "architecture": { - "name": "architecture", + "href": { + "name": "href", "type": "TypeString", - "description": "The VCPU architecture.", + "description": "The URL for this virtual server instance profile.", "computed": true }, - "count": { - "name": "count", - "type": "TypeInt", - "description": "The number of VCPUs assigned.", + "name": { + "name": "name", + "type": "TypeString", + "description": "The globally unique name for this virtual server instance profile.", "computed": true } } }, { - "name": "state", - "type": "TypeString", - "description": "The administrative state of the dedicated host.The enumerated values for this property are expected to expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the dedicated host on which the unexpected property value was encountered.", - "computed": true - }, - { - "name": "zone", - "type": "TypeString", - "description": "The globally unique name of the zone this dedicated host resides in.", - "computed": true + "name": "access_tags", + "type": "TypeSet", + "description": "List of access management tags", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "profile", - "type": "TypeString", - "description": "The Globally unique name of the dedicated host profile to use for this dedicated host.", - "immutable": true, - "required": true + "name": "instance_placement_enabled", + "type": "TypeBool", + "description": "If set to true, instances can be placed on this dedicated host.", + "default_value": true, + "optional": true }, { - "name": "created_at", + "name": "name", "type": "TypeString", - "description": "The date and time that the dedicated host was created.", + "description": "The unique user-defined name for this dedicated host. If unspecified, the name will be a hyphenated list of randomly-selected words.", + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", + "optional": true, "computed": true }, { - "name": "resource_type", + "name": "resource_group", "type": "TypeString", - "description": "The type of resource referenced.", + "description": "The unique identifier for the resource group to use. If unspecified, the account's [default resourcegroup](https://cloud.ibm.com/apidocs/resource-manager#introduction) is used.", + "cloud_data_type": "resource_group", + "immutable": true, + "optional": true, "computed": true }, { - "name": "supported_instance_profiles", - "type": "TypeList", - "description": "Array of instance profiles that can be used by instances placed on this dedicated host.", - "computed": true, - "elem": { - "href": { - "name": "href", - "type": "TypeString", - "description": "The URL for this virtual server instance profile.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The globally unique name for this virtual server instance profile.", - "computed": true - } - } + "name": "available_memory", + "type": "TypeInt", + "description": "The amount of memory in gibibytes that is currently available for instances.", + "computed": true }, { - "name": "vcpu", + "name": "available_vcpu", "type": "TypeList", - "description": "The total VCPU of the dedicated host.", + "description": "The available VCPU for the dedicated host.", "computed": true, "elem": { "architecture": { @@ -120723,14 +123780,10 @@ } }, { - "name": "access_tags", - "type": "TypeSet", - "description": "List of access management tags", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "created_at", + "type": "TypeString", + "description": "The date and time that the dedicated host was created.", + "computed": true }, { "name": "disks", @@ -120855,12 +123908,6 @@ } } }, - { - "name": "href", - "type": "TypeString", - "description": "The URL for this dedicated host.", - "computed": true - }, { "name": "instances", "type": "TypeList", @@ -120912,16 +123959,83 @@ "type": "TypeString", "description": "The lifecycle state of the dedicated host resource.", "computed": true - } - ], - "ibm_is_dedicated_host_disk_management": [ + }, { - "name": "dedicated_host", + "name": "zone", "type": "TypeString", - "description": "ID of the dedicated host for which disks has to be managed", + "description": "The globally unique name of the zone this dedicated host resides in.", + "computed": true + }, + { + "name": "numa", + "type": "TypeList", + "description": "The dedicated host NUMA configuration", + "computed": true, + "elem": { + "count": { + "name": "count", + "type": "TypeInt", + "description": "The total number of NUMA nodes for this dedicated host", + "computed": true + }, + "nodes": { + "name": "nodes", + "type": "TypeList", + "description": "The NUMA nodes for this dedicated host.", + "computed": true, + "elem": { + "available_vcpu": { + "name": "available_vcpu", + "type": "TypeInt", + "description": "The available VCPU for this NUMA node.", + "computed": true + }, + "vcpu": { + "name": "vcpu", + "type": "TypeInt", + "description": "The total VCPU capacity for this NUMA node.", + "computed": true + } + } + } + } + }, + { + "name": "host_group", + "type": "TypeString", + "description": "The unique identifier of the dedicated host group for this dedicated host.", "immutable": true, "required": true }, + { + "name": "crn", + "type": "TypeString", + "description": "The CRN for this dedicated host.", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "vcpu", + "type": "TypeList", + "description": "The total VCPU of the dedicated host.", + "computed": true, + "elem": { + "architecture": { + "name": "architecture", + "type": "TypeString", + "description": "The VCPU architecture.", + "computed": true + }, + "count": { + "name": "count", + "type": "TypeInt", + "description": "The number of VCPUs assigned.", + "computed": true + } + } + } + ], + "ibm_is_dedicated_host_disk_management": [ { "name": "disks", "type": "TypeList", @@ -120941,6 +124055,13 @@ "required": true } } + }, + { + "name": "dedicated_host", + "type": "TypeString", + "description": "ID of the dedicated host for which disks has to be managed", + "immutable": true, + "required": true } ], "ibm_is_dedicated_host_group": [ @@ -120963,13 +124084,6 @@ "optional": true, "computed": true }, - { - "name": "zone", - "type": "TypeString", - "description": "The globally unique name of the zone this dedicated host group will reside in.", - "immutable": true, - "required": true - }, { "name": "created_at", "type": "TypeString", @@ -121036,15 +124150,37 @@ } }, { - "name": "href", + "name": "resource_type", "type": "TypeString", - "description": "The URL for this dedicated host group.", + "description": "The type of resource referenced.", "computed": true }, { - "name": "resource_type", + "name": "class", "type": "TypeString", - "description": "The type of resource referenced.", + "description": "The dedicated host profile class for hosts in this group.", + "immutable": true, + "required": true + }, + { + "name": "family", + "type": "TypeString", + "description": "The dedicated host profile family for hosts in this group.", + "immutable": true, + "required": true, + "options": "balanced, compute, memory" + }, + { + "name": "zone", + "type": "TypeString", + "description": "The globally unique name of the zone this dedicated host group will reside in.", + "immutable": true, + "required": true + }, + { + "name": "href", + "type": "TypeString", + "description": "The URL for this dedicated host group.", "computed": true }, { @@ -121066,24 +124202,31 @@ "computed": true } } + } + ], + "ibm_is_floating_ip": [ + { + "name": "crn", + "type": "TypeString", + "description": "The crn of the resource", + "cloud_data_type": "crn", + "computed": true }, { - "name": "class", + "name": "resource_status", "type": "TypeString", - "description": "The dedicated host profile class for hosts in this group.", - "immutable": true, - "required": true + "description": "The status of the resource", + "computed": true }, { - "name": "family", + "name": "name", "type": "TypeString", - "description": "The dedicated host profile family for hosts in this group.", - "immutable": true, + "description": "Name of the floating IP", "required": true, - "options": "balanced, compute, memory" - } - ], - "ibm_is_floating_ip": [ + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" + }, { "name": "resource_group", "type": "TypeString", @@ -121093,6 +124236,18 @@ "optional": true, "computed": true }, + { + "name": "resource_controller_url", + "type": "TypeString", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", + "computed": true + }, + { + "name": "resource_name", + "type": "TypeString", + "description": "The name of the resource", + "computed": true + }, { "name": "resource_crn", "type": "TypeString", @@ -121100,11 +124255,24 @@ "computed": true }, { - "name": "status", + "name": "address", "type": "TypeString", - "description": "Floating IP status", + "description": "Floating IP address", "computed": true }, + { + "name": "tags", + "type": "TypeSet", + "description": "Floating IP tags", + "min_length": 1, + "max_length": 128, + "matches": "^[A-Za-z0-9:_ .-]+$", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, { "name": "zone", "type": "TypeString", @@ -121113,6 +124281,13 @@ "optional": true, "computed": true }, + { + "name": "target", + "type": "TypeString", + "description": "Target info", + "optional": true, + "computed": true + }, { "name": "target_list", "type": "TypeList", @@ -121204,24 +124379,9 @@ } }, { - "name": "resource_name", - "type": "TypeString", - "description": "The name of the resource", - "computed": true - }, - { - "name": "address", - "type": "TypeString", - "description": "Floating IP address", - "computed": true - }, - { - "name": "tags", + "name": "access_tags", "type": "TypeSet", - "description": "Floating IP tags", - "min_length": 1, - "max_length": 128, - "matches": "^[A-Za-z0-9:_ .-]+$", + "description": "List of access management tags", "optional": true, "computed": true, "elem": { @@ -121229,44 +124389,37 @@ } }, { - "name": "resource_controller_url", + "name": "resource_group_name", "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", + "description": "The resource group name in which resource is provisioned", "computed": true }, { - "name": "crn", + "name": "status", "type": "TypeString", - "description": "The crn of the resource", - "cloud_data_type": "crn", + "description": "Floating IP status", "computed": true - }, + } + ], + "ibm_is_flow_log": [ { - "name": "resource_status", + "name": "target", "type": "TypeString", - "description": "The status of the resource", - "computed": true + "description": "The target id that the flow log collector is to collect flow logs", + "immutable": true, + "required": true }, { - "name": "resource_group_name", + "name": "crn", "type": "TypeString", - "description": "The resource group name in which resource is provisioned", + "description": "The CRN for this flow log collector", + "cloud_data_type": "crn", "computed": true }, { - "name": "name", - "type": "TypeString", - "description": "Name of the floating IP", - "required": true, - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" - }, - { - "name": "target", + "name": "href", "type": "TypeString", - "description": "Target info", - "optional": true, + "description": "The URL for this flow log collector", "computed": true }, { @@ -121278,53 +124431,21 @@ "elem": { "type": "TypeString" } - } - ], - "ibm_is_flow_log": [ - { - "name": "resource_name", - "type": "TypeString", - "description": "The name of the resource", - "computed": true }, { - "name": "storage_bucket", + "name": "resource_status", "type": "TypeString", - "description": "The Cloud Object Storage bucket name where the collected flows will be logged", - "immutable": true, - "required": true - }, - { - "name": "active", - "type": "TypeBool", - "description": "Indicates whether this collector is active", - "default_value": true, - "optional": true - }, - { - "name": "auto_delete", - "type": "TypeBool", - "description": "If set to true, this flow log collector will be automatically deleted when the target is deleted", + "description": "The status of the resource", "computed": true }, { - "name": "tags", - "type": "TypeSet", - "description": "Tags for the VPC Flow logs", - "min_length": 1, - "max_length": 128, - "matches": "^[A-Za-z0-9:_ .-]+$", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "resource_group_name", + "name": "name", "type": "TypeString", - "description": "The resource group name in which resource is provisioned", - "computed": true + "description": "Flow Log Collector name", + "required": true, + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" }, { "name": "resource_group", @@ -121342,88 +124463,36 @@ "computed": true }, { - "name": "lifecycle_state", - "type": "TypeString", - "description": "The lifecycle state of the flow log collector", - "computed": true - }, - { - "name": "resource_controller_url", - "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", - "computed": true - }, - { - "name": "href", - "type": "TypeString", - "description": "The URL for this flow log collector", - "computed": true - }, - { - "name": "vpc", - "type": "TypeString", - "description": "The VPC this flow log collector is associated with", - "computed": true - }, - { - "name": "resource_crn", - "type": "TypeString", - "description": "The crn of the resource", - "computed": true - }, - { - "name": "resource_status", - "type": "TypeString", - "description": "The status of the resource", + "name": "auto_delete", + "type": "TypeBool", + "description": "If set to true, this flow log collector will be automatically deleted when the target is deleted", "computed": true }, { - "name": "name", + "name": "resource_name", "type": "TypeString", - "description": "Flow Log Collector name", - "required": true, - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" + "description": "The name of the resource", + "computed": true }, { - "name": "target", + "name": "storage_bucket", "type": "TypeString", - "description": "The target id that the flow log collector is to collect flow logs", + "description": "The Cloud Object Storage bucket name where the collected flows will be logged", "immutable": true, "required": true }, { - "name": "crn", - "type": "TypeString", - "description": "The CRN for this flow log collector", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "access_tags", + "name": "tags", "type": "TypeSet", - "description": "List of access management tags", + "description": "Tags for the VPC Flow logs", + "min_length": 1, + "max_length": 128, + "matches": "^[A-Za-z0-9:_ .-]+$", "optional": true, "computed": true, "elem": { "type": "TypeString" } - } - ], - "ibm_is_ike_policy": [ - { - "name": "ike_version", - "type": "TypeInt", - "description": "IKE version", - "options": "1, 2", - "optional": true - }, - { - "name": "href", - "type": "TypeString", - "description": "IKE href value", - "computed": true }, { "name": "resource_controller_url", @@ -121432,9 +124501,9 @@ "computed": true }, { - "name": "resource_name", + "name": "resource_crn", "type": "TypeString", - "description": "The name of the resource", + "description": "The crn of the resource", "computed": true }, { @@ -121444,34 +124513,32 @@ "computed": true }, { - "name": "authentication_algorithm", - "type": "TypeString", - "description": "Authentication algorithm type", - "required": true, - "options": "md5, sha1, sha256, sha512, sha384" + "name": "active", + "type": "TypeBool", + "description": "Indicates whether this collector is active", + "default_value": true, + "optional": true }, { - "name": "resource_group", + "name": "lifecycle_state", "type": "TypeString", - "description": "IKE resource group ID", - "cloud_data_type": "resource_group", - "immutable": true, - "optional": true, + "description": "The lifecycle state of the flow log collector", "computed": true }, { - "name": "dh_group", - "type": "TypeInt", - "description": "IKE DH group", - "required": true, - "options": "2, 5, 14, 19, 15, 16, 17, 18, 20, 21, 22, 23, 24, 31" - }, + "name": "vpc", + "type": "TypeString", + "description": "The VPC this flow log collector is associated with", + "computed": true + } + ], + "ibm_is_ike_policy": [ { - "name": "key_lifetime", - "type": "TypeInt", - "description": "IKE Key lifetime", - "default_value": 28800, - "optional": true + "name": "authentication_algorithm", + "type": "TypeString", + "description": "Authentication algorithm type", + "required": true, + "options": "md5, sha1, sha256, sha512, sha384" }, { "name": "negotiation_mode", @@ -121479,6 +124546,12 @@ "description": "IKE negotiation mode", "computed": true }, + { + "name": "href", + "type": "TypeString", + "description": "IKE href value", + "computed": true + }, { "name": "vpn_connections", "type": "TypeList", @@ -121501,6 +124574,18 @@ } } }, + { + "name": "resource_controller_url", + "type": "TypeString", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", + "computed": true + }, + { + "name": "resource_group_name", + "type": "TypeString", + "description": "The resource group name in which resource is provisioned", + "computed": true + }, { "name": "name", "type": "TypeString", @@ -121516,61 +124601,51 @@ "description": "Encryption alogorithm type", "required": true, "options": "triple_des, aes128, aes192, aes256" - } - ], - "ibm_is_image": [ - { - "name": "created_at", - "type": "TypeString", - "description": "The date and time that the image was created", - "computed": true }, { - "name": "deprecation_at", - "type": "TypeString", - "description": "The deprecation date and time (UTC) for this image. If absent, no deprecation date and time has been set.", - "optional": true, - "computed": true + "name": "dh_group", + "type": "TypeInt", + "description": "IKE DH group", + "required": true, + "options": "2, 5, 14, 19, 15, 16, 17, 18, 20, 21, 22, 23, 24, 31" }, { - "name": "obsolescence_at", + "name": "resource_group", "type": "TypeString", - "description": "The obsolescence date and time (UTC) for this image. If absent, no obsolescence date and time has been set.", + "description": "IKE resource group ID", + "cloud_data_type": "resource_group", + "immutable": true, "optional": true, "computed": true }, { - "name": "tags", - "type": "TypeSet", - "description": "Tags for the image", - "min_length": 1, - "max_length": 128, - "matches": "^[A-Za-z0-9:_ .-]+$", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "key_lifetime", + "type": "TypeInt", + "description": "IKE Key lifetime", + "default_value": 28800, + "optional": true }, { - "name": "status", - "type": "TypeString", - "description": "The status of this image", - "computed": true + "name": "ike_version", + "type": "TypeInt", + "description": "IKE version", + "options": "1, 2", + "optional": true }, { - "name": "encrypted_data_key", + "name": "resource_name", "type": "TypeString", - "description": "A base64-encoded, encrypted representation of the key that was used to encrypt the data for this image", - "immutable": true, - "optional": true - }, + "description": "The name of the resource", + "computed": true + } + ], + "ibm_is_image": [ { - "name": "encryption_key", + "name": "href", "type": "TypeString", - "description": "The CRN of the Key Protect Root Key or Hyper Protect Crypto Service Root Key for this resource", - "immutable": true, - "optional": true + "description": "Image Href value", + "optional": true, + "computed": true }, { "name": "operating_system", @@ -121581,25 +124656,23 @@ "computed": true }, { - "name": "file", - "type": "TypeInt", - "description": "Details for the stored image file", + "name": "encryption", + "type": "TypeString", + "description": "The type of encryption used on the image", "computed": true }, { - "name": "resource_group", - "type": "TypeString", - "description": "The resource group for this image", - "cloud_data_type": "resource_group", - "immutable": true, - "optional": true, + "name": "size", + "type": "TypeInt", + "description": "The minimum size (in gigabytes) of a volume onto which this image may be provisioned", "computed": true }, { - "name": "resource_controller_url", + "name": "source_volume", "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", - "computed": true + "description": "Image volume id", + "immutable": true, + "optional": true }, { "name": "resource_crn", @@ -121608,17 +124681,31 @@ "computed": true }, { - "name": "crn", + "name": "access_tags", + "type": "TypeSet", + "description": "List of access management tags", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "visibility", "type": "TypeString", - "description": "The crn of the resource", - "cloud_data_type": "crn", + "description": "Whether the image is publicly visible or private to the account", "computed": true }, { - "name": "href", + "name": "file", + "type": "TypeInt", + "description": "Details for the stored image file", + "computed": true + }, + { + "name": "resource_controller_url", "type": "TypeString", - "description": "Image Href value", - "optional": true, + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", "computed": true }, { @@ -121627,6 +124714,12 @@ "description": "The SHA256 checksum of this image", "computed": true }, + { + "name": "resource_group_name", + "type": "TypeString", + "description": "The resource group name in which resource is provisioned", + "computed": true + }, { "name": "obsolete", "type": "TypeBool", @@ -121634,58 +124727,83 @@ "optional": true }, { - "name": "encryption", + "name": "deprecation_at", "type": "TypeString", - "description": "The type of encryption used on the image", + "description": "The deprecation date and time (UTC) for this image. If absent, no deprecation date and time has been set.", + "optional": true, "computed": true }, { - "name": "resource_status", + "name": "obsolescence_at", "type": "TypeString", - "description": "The status of the resource", + "description": "The obsolescence date and time (UTC) for this image. If absent, no obsolescence date and time has been set.", + "optional": true, "computed": true }, { - "name": "deprecate", - "type": "TypeBool", - "description": "Set to deprecate. You can set an image to `deprecated` as a warning to transition away from soon-to-be obsolete images. Deprecated images can be used to provision resources.", + "name": "encryption_key", + "type": "TypeString", + "description": "The CRN of the Key Protect Root Key or Hyper Protect Crypto Service Root Key for this resource", + "immutable": true, "optional": true }, { - "name": "size", - "type": "TypeInt", - "description": "The minimum size (in gigabytes) of a volume onto which this image may be provisioned", + "name": "resource_group", + "type": "TypeString", + "description": "The resource group for this image", + "cloud_data_type": "resource_group", + "immutable": true, + "optional": true, "computed": true }, { - "name": "visibility", + "name": "crn", "type": "TypeString", - "description": "Whether the image is publicly visible or private to the account", + "description": "The crn of the resource", + "cloud_data_type": "crn", "computed": true }, { - "name": "source_volume", + "name": "resource_status", "type": "TypeString", - "description": "Image volume id", + "description": "The status of the resource", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Image name", + "required": true, + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" + }, + { + "name": "encrypted_data_key", + "type": "TypeString", + "description": "A base64-encoded, encrypted representation of the key that was used to encrypt the data for this image", "immutable": true, "optional": true }, { - "name": "resource_name", + "name": "created_at", "type": "TypeString", - "description": "The name of the resource", + "description": "The date and time that the image was created", "computed": true }, { - "name": "resource_group_name", - "type": "TypeString", - "description": "The resource group name in which resource is provisioned", - "computed": true + "name": "deprecate", + "type": "TypeBool", + "description": "Set to deprecate. You can set an image to `deprecated` as a warning to transition away from soon-to-be obsolete images. Deprecated images can be used to provision resources.", + "optional": true }, { - "name": "access_tags", + "name": "tags", "type": "TypeSet", - "description": "List of access management tags", + "description": "Tags for the image", + "min_length": 1, + "max_length": 128, + "matches": "^[A-Za-z0-9:_ .-]+$", "optional": true, "computed": true, "elem": { @@ -121693,22 +124811,19 @@ } }, { - "name": "name", + "name": "status", "type": "TypeString", - "description": "Image name", - "required": true, - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" - } - ], - "ibm_is_image_deprecate": [ + "description": "The status of this image", + "computed": true + }, { - "name": "encryption_key", + "name": "resource_name", "type": "TypeString", - "description": "The CRN of the Key Protect Root Key or Hyper Protect Crypto Service Root Key for this resource", + "description": "The name of the resource", "computed": true - }, + } + ], + "ibm_is_image_deprecate": [ { "name": "encryption", "type": "TypeString", @@ -121716,57 +124831,52 @@ "computed": true }, { - "name": "visibility", - "type": "TypeString", - "description": "Whether the image is publicly visible or private to the account", + "name": "size", + "type": "TypeInt", + "description": "The minimum size (in gigabytes) of a volume onto which this image may be provisioned", "computed": true }, { - "name": "crn", + "name": "source_volume", "type": "TypeString", - "description": "The crn of the resource", - "cloud_data_type": "crn", + "description": "Image volume id", "computed": true }, { - "name": "href", + "name": "created_at", "type": "TypeString", - "description": "Image Href value", + "description": "The date and time that the image was created", "computed": true }, { - "name": "encrypted_data_key", + "name": "obsolescence_at", "type": "TypeString", - "description": "A base64-encoded, encrypted representation of the key that was used to encrypt the data for this image", + "description": "The obsolescence date and time (UTC) for this image. If absent, no obsolescence date and time has been set.", "computed": true }, { - "name": "created_at", + "name": "encryption_key", "type": "TypeString", - "description": "The date and time that the image was created", + "description": "The CRN of the Key Protect Root Key or Hyper Protect Crypto Service Root Key for this resource", "computed": true }, { - "name": "file", - "type": "TypeInt", - "description": "Details for the stored image file", + "name": "operating_system", + "type": "TypeString", + "description": "Image Operating system", "computed": true }, { - "name": "resource_group", + "name": "status", "type": "TypeString", - "description": "The resource group for this image", - "cloud_data_type": "resource_group", + "description": "The status of this image", "computed": true }, { - "name": "access_tags", - "type": "TypeSet", - "description": "List of access management tags", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "href", + "type": "TypeString", + "description": "Image Href value", + "computed": true }, { "name": "image", @@ -121776,33 +124886,37 @@ "required": true }, { - "name": "deprecation_at", + "name": "encrypted_data_key", "type": "TypeString", - "description": "The deprecation date and time (UTC) for this image. If absent, no deprecation date and time has been set.", + "description": "A base64-encoded, encrypted representation of the key that was used to encrypt the data for this image", "computed": true }, { - "name": "operating_system", + "name": "crn", "type": "TypeString", - "description": "Image Operating system", + "description": "The crn of the resource", + "cloud_data_type": "crn", "computed": true }, { - "name": "status", - "type": "TypeString", - "description": "The status of this image", - "computed": true + "name": "access_tags", + "type": "TypeSet", + "description": "List of access management tags", + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "size", - "type": "TypeInt", - "description": "The minimum size (in gigabytes) of a volume onto which this image may be provisioned", + "name": "deprecation_at", + "type": "TypeString", + "description": "The deprecation date and time (UTC) for this image. If absent, no deprecation date and time has been set.", "computed": true }, { - "name": "source_volume", - "type": "TypeString", - "description": "Image volume id", + "name": "file", + "type": "TypeInt", + "description": "Details for the stored image file", "computed": true }, { @@ -121812,15 +124926,16 @@ "computed": true }, { - "name": "name", + "name": "resource_group", "type": "TypeString", - "description": "Image name", + "description": "The resource group for this image", + "cloud_data_type": "resource_group", "computed": true }, { - "name": "obsolescence_at", + "name": "name", "type": "TypeString", - "description": "The obsolescence date and time (UTC) for this image. If absent, no obsolescence date and time has been set.", + "description": "Image name", "computed": true }, { @@ -121832,9 +124947,27 @@ "elem": { "type": "TypeString" } + }, + { + "name": "visibility", + "type": "TypeString", + "description": "Whether the image is publicly visible or private to the account", + "computed": true } ], "ibm_is_image_export_job": [ + { + "name": "started_at", + "type": "TypeString", + "description": "The date and time that the image export job started running.If absent, the export job has not yet started.", + "computed": true + }, + { + "name": "status", + "type": "TypeString", + "description": "The status of this image export job:- `deleting`: Export job is being deleted- `failed`: Export job could not be completed successfully- `queued`: Export job is queued- `running`: Export job is in progress- `succeeded`: Export job was completed successfullyThe exported image object is automatically deleted for `failed` jobs.", + "computed": true + }, { "name": "image", "type": "TypeString", @@ -121870,48 +125003,31 @@ "min_items": 1 }, { - "name": "format", - "type": "TypeString", - "description": "The format to use for the exported image. If the image is encrypted, only `qcow2` is supported.", - "default_value": "qcow2", - "immutable": true, - "options": "qcow2, vhd", - "optional": true - }, - { - "name": "created_at", - "type": "TypeString", - "description": "The date and time that the image export job was created.", - "computed": true - }, - { - "name": "resource_type", - "type": "TypeString", - "description": "The type of resource referenced.", - "computed": true - }, - { - "name": "status", + "name": "name", "type": "TypeString", - "description": "The status of this image export job:- `deleting`: Export job is being deleted- `failed`: Export job could not be completed successfully- `queued`: Export job is queued- `running`: Export job is in progress- `succeeded`: Export job was completed successfullyThe exported image object is automatically deleted for `failed` jobs.", + "description": "The user-defined name for this image export job. Names must be unique within the image this export job resides in. If unspecified, the name will be a hyphenated list of randomly-selected words prefixed with the first 16 characters of the parent image name.The exported image object name in Cloud Object Storage (`storage_object.name` in the response) will be based on this name. The object name will be unique within the bucket.", + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9]|[0-9][-a-z0-9]*([a-z]|[-a-z][-a-z0-9]*[a-z0-9]))$", + "optional": true, "computed": true }, { - "name": "encrypted_data_key", + "name": "completed_at", "type": "TypeString", - "description": "A base64-encoded, encrypted representation of the key that was used to encrypt the data for the exported image. This key can be unwrapped with the image's `encryption_key` root key using either Key Protect or Hyper Protect Crypto Service.If absent, the export job is for an unencrypted image.", + "description": "The date and time that the image export job was completed.If absent, the export job has not yet completed.", "computed": true }, { - "name": "image_export_job", + "name": "created_at", "type": "TypeString", - "description": "The unique identifier for this image export job.", + "description": "The date and time that the image export job was created.", "computed": true }, { - "name": "started_at", + "name": "resource_type", "type": "TypeString", - "description": "The date and time that the image export job started running.If absent, the export job has not yet started.", + "description": "The type of resource referenced.", "computed": true }, { @@ -121955,25 +125071,24 @@ } }, { - "name": "name", + "name": "format", "type": "TypeString", - "description": "The user-defined name for this image export job. Names must be unique within the image this export job resides in. If unspecified, the name will be a hyphenated list of randomly-selected words prefixed with the first 16 characters of the parent image name.The exported image object name in Cloud Object Storage (`storage_object.name` in the response) will be based on this name. The object name will be unique within the bucket.", - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9]|[0-9][-a-z0-9]*([a-z]|[-a-z][-a-z0-9]*[a-z0-9]))$", - "optional": true, - "computed": true + "description": "The format to use for the exported image. If the image is encrypted, only `qcow2` is supported.", + "default_value": "qcow2", + "immutable": true, + "options": "qcow2, vhd", + "optional": true }, { - "name": "completed_at", + "name": "href", "type": "TypeString", - "description": "The date and time that the image export job was completed.If absent, the export job has not yet completed.", + "description": "The URL for this image export job.", "computed": true }, { - "name": "href", + "name": "encrypted_data_key", "type": "TypeString", - "description": "The URL for this image export job.", + "description": "A base64-encoded, encrypted representation of the key that was used to encrypt the data for the exported image. This key can be unwrapped with the image's `encryption_key` root key using either Key Protect or Hyper Protect Crypto Service.If absent, the export job is for an unencrypted image.", "computed": true }, { @@ -121981,50 +125096,53 @@ "type": "TypeString", "description": "The Cloud Object Storage location of the exported image object. The object at this location may not exist until the job is started, and will be incomplete while the job is running.After the job completes, the exported image object is not managed by the IBM VPC service, and may be removed or replaced with a different object by any user or service with IAM authorization to the bucket.", "computed": true + }, + { + "name": "image_export_job", + "type": "TypeString", + "description": "The unique identifier for this image export job.", + "computed": true } ], "ibm_is_image_obsolete": [ { - "name": "visibility", - "type": "TypeString", - "description": "Whether the image is publicly visible or private to the account", + "name": "size", + "type": "TypeInt", + "description": "The minimum size (in gigabytes) of a volume onto which this image may be provisioned", "computed": true }, { - "name": "name", + "name": "source_volume", "type": "TypeString", - "description": "Image name", + "description": "Image volume id", "computed": true }, { - "name": "image", - "type": "TypeString", - "description": "Image identifier", - "immutable": true, - "required": true - }, - { - "name": "created_at", + "name": "resource_group", "type": "TypeString", - "description": "The date and time that the image was created", + "description": "The resource group for this image", + "cloud_data_type": "resource_group", "computed": true }, { - "name": "deprecation_at", - "type": "TypeString", - "description": "The deprecation date and time (UTC) for this image. If absent, no deprecation date and time has been set.", - "computed": true + "name": "access_tags", + "type": "TypeSet", + "description": "List of access management tags", + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "encryption", + "name": "href", "type": "TypeString", - "description": "The type of encryption used on the image", + "description": "Image Href value", "computed": true }, { - "name": "encryption_key", + "name": "name", "type": "TypeString", - "description": "The CRN of the Key Protect Root Key or Hyper Protect Crypto Service Root Key for this resource", + "description": "Image name", "computed": true }, { @@ -122038,32 +125156,17 @@ } }, { - "name": "access_tags", - "type": "TypeSet", - "description": "List of access management tags", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "obsolescence_at", + "name": "operating_system", "type": "TypeString", - "description": "The obsolescence date and time (UTC) for this image. If absent, no obsolescence date and time has been set.", - "computed": true - }, - { - "name": "size", - "type": "TypeInt", - "description": "The minimum size (in gigabytes) of a volume onto which this image may be provisioned", + "description": "Image Operating system", "computed": true }, { - "name": "resource_group", + "name": "image", "type": "TypeString", - "description": "The resource group for this image", - "cloud_data_type": "resource_group", - "computed": true + "description": "Image identifier", + "immutable": true, + "required": true }, { "name": "crn", @@ -122079,33 +125182,27 @@ "computed": true }, { - "name": "source_volume", - "type": "TypeString", - "description": "Image volume id", - "computed": true - }, - { - "name": "href", + "name": "deprecation_at", "type": "TypeString", - "description": "Image Href value", + "description": "The deprecation date and time (UTC) for this image. If absent, no deprecation date and time has been set.", "computed": true }, { - "name": "encrypted_data_key", + "name": "encryption", "type": "TypeString", - "description": "A base64-encoded, encrypted representation of the key that was used to encrypt the data for this image", + "description": "The type of encryption used on the image", "computed": true }, { - "name": "operating_system", + "name": "status", "type": "TypeString", - "description": "Image Operating system", + "description": "The status of this image", "computed": true }, { - "name": "status", + "name": "visibility", "type": "TypeString", - "description": "The status of this image", + "description": "Whether the image is publicly visible or private to the account", "computed": true }, { @@ -122113,119 +125210,72 @@ "type": "TypeInt", "description": "Details for the stored image file", "computed": true - } - ], - "ibm_is_instance": [ + }, { - "name": "resource_group_name", + "name": "encrypted_data_key", "type": "TypeString", - "description": "The resource group name in which resource is provisioned", + "description": "A base64-encoded, encrypted representation of the key that was used to encrypt the data for this image", "computed": true }, { - "name": "zone", + "name": "created_at", "type": "TypeString", - "description": "Zone name", - "immutable": true, - "optional": true, + "description": "The date and time that the image was created", "computed": true }, { - "name": "action", + "name": "obsolescence_at", "type": "TypeString", - "description": "Enables stopping of instance before deleting and waits till deletion is complete", - "options": "stop, start, reboot", - "optional": true + "description": "The obsolescence date and time (UTC) for this image. If absent, no obsolescence date and time has been set.", + "computed": true }, { - "name": "force_action", - "type": "TypeBool", - "description": "If set to true, the action will be forced immediately, and all queued actions deleted. Ignored for the start action.", - "default_value": false, - "optional": true - }, + "name": "encryption_key", + "type": "TypeString", + "description": "The CRN of the Key Protect Root Key or Hyper Protect Crypto Service Root Key for this resource", + "computed": true + } + ], + "ibm_is_instance": [ { - "name": "user_data", + "name": "instance_template", "type": "TypeString", - "description": "User data given for the instance", + "description": "Id of the instance template", "immutable": true, "optional": true }, { - "name": "memory", - "type": "TypeInt", - "description": "Instance memory", - "computed": true - }, - { - "name": "resource_status", + "name": "profile", "type": "TypeString", - "description": "The status of the resource", + "description": "Profile info", + "optional": true, "computed": true }, { - "name": "catalog_offering", - "type": "TypeList", - "description": "The catalog offering or offering version to use when provisioning this virtual server instance. If an offering is specified, the latest version of that offering will be used. The specified offering or offering version may be in a different account in the same enterprise, subject to IAM policies.", - "immutable": true, + "name": "tags", + "type": "TypeSet", + "description": "list of tags for the instance", + "min_length": 1, + "max_length": 128, + "matches": "^[A-Za-z0-9:_ .-]+$", "optional": true, - "elem": { - "offering_crn": { - "name": "offering_crn", - "type": "TypeString", - "description": "Identifies a catalog offering by a unique CRN property", - "immutable": true, - "optional": true - }, - "version_crn": { - "name": "version_crn", - "type": "TypeString", - "description": "Identifies a version of a catalog offering by a unique CRN property", - "immutable": true, - "optional": true - } - }, - "max_items": 1 - }, - { - "name": "gpu", - "type": "TypeList", - "description": "The virtual server instance GPU configuration", "computed": true, "elem": { - "count": { - "name": "count", - "type": "TypeInt", - "description": "The number of GPUs assigned to the instance", - "computed": true - }, - "manufacturer": { - "name": "manufacturer", - "type": "TypeString", - "description": "The GPU manufacturer", - "computed": true - }, - "memory": { - "name": "memory", - "type": "TypeInt", - "description": "The overall amount of GPU memory in GiB (gibibytes)", - "computed": true - }, - "model": { - "name": "model", - "type": "TypeString", - "description": "The GPU model", - "computed": true - } + "type": "TypeString" } }, { - "name": "availability_policy_host_failure", - "type": "TypeString", - "description": "The availability policy to use for this virtual server instance", - "options": "restart, stop", - "optional": true, - "computed": true + "name": "wait_before_delete", + "type": "TypeBool", + "description": "Enables stopping of instance before deleting and waits till deletion is complete", + "default_value": true, + "optional": true + }, + { + "name": "force_recovery_time", + "type": "TypeInt", + "description": "Define timeout to force the instances to start/stop in minutes.", + "optional": true }, { "name": "vpc", @@ -122236,64 +125286,131 @@ "computed": true }, { - "name": "instance_template", + "name": "zone", "type": "TypeString", - "description": "Id of the instance template", + "description": "Zone name", "immutable": true, + "optional": true, + "computed": true + }, + { + "name": "dedicated_host", + "type": "TypeString", + "description": "Unique Identifier of the Dedicated Host where the instance will be placed", "optional": true }, { - "name": "dedicated_host_group", + "name": "bandwidth", + "type": "TypeInt", + "description": "The total bandwidth (in megabits per second) shared across the instance's network interfaces and storage volumes", + "computed": true + }, + { + "name": "user_data", "type": "TypeString", - "description": "Unique Identifier of the Dedicated Host Group where the instance will be placed", + "description": "User data given for the instance", + "immutable": true, "optional": true }, { - "name": "keys", - "type": "TypeSet", - "description": "SSH key Ids for the instance", + "name": "resource_crn", + "type": "TypeString", + "description": "The crn of the resource", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Instance name", + "required": true, + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" + }, + { + "name": "default_trusted_profile_auto_link", + "type": "TypeBool", + "description": "If set to `true`, the system will create a link to the specified `target` trusted profile during instance creation. Regardless of whether a link is created by the system or manually using the IAM Identity service, it will be automatically deleted when the instance is deleted.", + "immutable": true, "optional": true, - "elem": { - "type": "TypeString" - } + "computed": true }, { - "name": "volume_attachments", + "name": "total_volume_bandwidth", + "type": "TypeInt", + "description": "The amount of bandwidth (in megabits per second) allocated exclusively to instance storage volumes", + "min_value": "500", + "optional": true, + "computed": true + }, + { + "name": "boot_volume", "type": "TypeList", + "optional": true, "computed": true, "elem": { - "id": { - "name": "id", + "auto_delete_volume": { + "name": "auto_delete_volume", + "type": "TypeBool", + "description": "Auto delete boot volume along with instance", + "default_value": true, + "optional": true + }, + "encryption": { + "name": "encryption", "type": "TypeString", + "optional": true, + "computed": true + }, + "iops": { + "name": "iops", + "type": "TypeInt", "computed": true }, "name": { "name": "name", "type": "TypeString", + "optional": true, "computed": true }, - "volume_crn": { - "name": "volume_crn", + "profile": { + "name": "profile", "type": "TypeString", "computed": true }, - "volume_id": { - "name": "volume_id", + "size": { + "name": "size", + "type": "TypeInt", + "optional": true, + "computed": true + }, + "snapshot": { + "name": "snapshot", "type": "TypeString", + "immutable": true, + "optional": true, "computed": true }, - "volume_name": { - "name": "volume_name", + "tags": { + "name": "tags", + "type": "TypeSet", + "description": "UserTags for the volume instance", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "volume_id": { + "name": "volume_id", "type": "TypeString", + "description": "The unique identifier for this volume", + "immutable": true, + "optional": true, "computed": true } - } - }, - { - "name": "status", - "type": "TypeString", - "description": "instance status", - "computed": true + }, + "max_items": 1 }, { "name": "resource_controller_url", @@ -122301,28 +125418,6 @@ "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", "computed": true }, - { - "name": "profile", - "type": "TypeString", - "description": "Profile info", - "optional": true, - "computed": true - }, - { - "name": "default_trusted_profile_auto_link", - "type": "TypeBool", - "description": "If set to `true`, the system will create a link to the specified `target` trusted profile during instance creation. Regardless of whether a link is created by the system or manually using the IAM Identity service, it will be automatically deleted when the instance is deleted.", - "immutable": true, - "optional": true, - "computed": true - }, - { - "name": "default_trusted_profile_target", - "type": "TypeString", - "description": "The unique identifier or CRN of the default IAM trusted profile to use for this virtual server instance.", - "immutable": true, - "optional": true - }, { "name": "placement_group", "type": "TypeString", @@ -122331,86 +125426,163 @@ "optional": true }, { - "name": "access_tags", + "name": "keys", "type": "TypeSet", - "description": "list of access tags for the instance", + "description": "SSH key Ids for the instance", "optional": true, - "computed": true, "elem": { "type": "TypeString" } }, { - "name": "force_recovery_time", - "type": "TypeInt", - "description": "Define timeout to force the instances to start/stop in minutes.", + "name": "force_action", + "type": "TypeBool", + "description": "If set to true, the action will be forced immediately, and all queued actions deleted. Ignored for the start action.", + "default_value": false, "optional": true }, { - "name": "name", - "type": "TypeString", - "description": "Instance name", - "required": true, - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" - }, - { - "name": "bandwidth", - "type": "TypeInt", - "description": "The total bandwidth (in megabits per second) shared across the instance's network interfaces and storage volumes", - "computed": true - }, - { - "name": "total_network_bandwidth", - "type": "TypeInt", - "description": "The amount of bandwidth (in megabits per second) allocated exclusively to instance network interfaces.", - "computed": true - }, - { - "name": "tags", - "type": "TypeSet", - "description": "list of tags for the instance", - "min_length": 1, - "max_length": 128, - "matches": "^[A-Za-z0-9:_ .-]+$", + "name": "primary_network_interface", + "type": "TypeList", + "description": "Primary Network interface info", "optional": true, "computed": true, "elem": { - "type": "TypeString" - } + "allow_ip_spoofing": { + "name": "allow_ip_spoofing", + "type": "TypeBool", + "description": "Indicates whether IP spoofing is allowed on this interface.", + "default_value": false, + "optional": true + }, + "id": { + "name": "id", + "type": "TypeString", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "optional": true, + "computed": true + }, + "port_speed": { + "name": "port_speed", + "type": "TypeInt", + "optional": true, + "computed": true, + "deprecated": "This field is deprected" + }, + "primary_ip": { + "name": "primary_ip", + "type": "TypeList", + "description": "The primary IP address to bind to the network interface. This can be specified using an existing reserved IP, or a prototype object for a new reserved IP.", + "optional": true, + "computed": true, + "elem": { + "address": { + "name": "address", + "type": "TypeString", + "description": "The IP address to reserve, which must not already be reserved on the subnet.", + "immutable": true, + "optional": true, + "computed": true + }, + "auto_delete": { + "name": "auto_delete", + "type": "TypeBool", + "description": "Indicates whether this reserved IP member will be automatically deleted when either target is deleted, or the reserved IP is unbound.", + "optional": true, + "computed": true + }, + "href": { + "name": "href", + "type": "TypeString", + "description": "The URL for this reserved IP", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The user-defined name for this reserved IP. If unspecified, the name will be a hyphenated list of randomly-selected words. Names must be unique within the subnet the reserved IP resides in.", + "optional": true, + "computed": true + }, + "reserved_ip": { + "name": "reserved_ip", + "type": "TypeString", + "description": "Identifies a reserved IP by a unique property.", + "immutable": true, + "optional": true, + "computed": true + }, + "resource_type": { + "name": "resource_type", + "type": "TypeString", + "description": "The resource type", + "computed": true + } + }, + "max_items": 1 + }, + "primary_ipv4_address": { + "name": "primary_ipv4_address", + "type": "TypeString", + "immutable": true, + "optional": true, + "computed": true, + "deprecated": "primary_ipv4_address is deprecated and support will be removed. Use primary_ip instead" + }, + "security_groups": { + "name": "security_groups", + "type": "TypeSet", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "subnet": { + "name": "subnet", + "type": "TypeString", + "immutable": true, + "required": true + } + }, + "max_items": 1, + "min_items": 1 }, { - "name": "metadata_service", + "name": "gpu", "type": "TypeList", - "description": "The metadata service configuration", - "optional": true, + "description": "The virtual server instance GPU configuration", "computed": true, "elem": { - "enabled": { - "name": "enabled", - "type": "TypeBool", - "description": "Indicates whether the metadata service endpoint will be available to the virtual server instance", - "optional": true, + "count": { + "name": "count", + "type": "TypeInt", + "description": "The number of GPUs assigned to the instance", "computed": true }, - "protocol": { - "name": "protocol", + "manufacturer": { + "name": "manufacturer", "type": "TypeString", - "description": "The communication protocol to use for the metadata service endpoint. Applies only when the metadata service is enabled.", - "optional": true, + "description": "The GPU manufacturer", "computed": true }, - "response_hop_limit": { - "name": "response_hop_limit", + "memory": { + "name": "memory", "type": "TypeInt", - "description": "The hop limit (IP time to live) for IP response packets from the metadata service", - "optional": true, + "description": "The overall amount of GPU memory in GiB (gibibytes)", + "computed": true + }, + "model": { + "name": "model", + "type": "TypeString", + "description": "The GPU model", "computed": true } - }, - "max_items": 1, - "min_items": 1 + } }, { "name": "resource_name", @@ -122426,85 +125598,55 @@ "computed": true }, { - "name": "total_volume_bandwidth", - "type": "TypeInt", - "description": "The amount of bandwidth (in megabits per second) allocated exclusively to instance storage volumes", - "min_value": "500", - "optional": true, - "computed": true - }, - { - "name": "metadata_service_enabled", - "type": "TypeBool", - "description": "Indicates whether the metadata service endpoint is available to the virtual server instance", + "name": "access_tags", + "type": "TypeSet", + "description": "list of access tags for the instance", "optional": true, "computed": true, - "deprecated": "Use metadata_service instead" - }, - { - "name": "image", - "type": "TypeString", - "description": "image id", - "immutable": true, - "optional": true, - "computed": true - }, - { - "name": "volumes", - "type": "TypeList", - "description": "List of volumes", - "optional": true, "elem": { "type": "TypeString" } }, { - "name": "resource_group", - "type": "TypeString", - "description": "Instance resource group", - "cloud_data_type": "resource_group", - "immutable": true, - "optional": true, - "computed": true - }, - { - "name": "status_reasons", + "name": "volume_attachments", "type": "TypeList", - "description": "The reasons for the current status (if any).", "computed": true, "elem": { - "code": { - "name": "code", + "id": { + "name": "id", "type": "TypeString", - "description": "A snake case string succinctly identifying the status reason", "computed": true }, - "message": { - "name": "message", + "name": { + "name": "name", "type": "TypeString", - "description": "An explanation of the status reason", "computed": true }, - "more_info": { - "name": "more_info", + "volume_crn": { + "name": "volume_crn", + "type": "TypeString", + "computed": true + }, + "volume_id": { + "name": "volume_id", + "type": "TypeString", + "computed": true + }, + "volume_name": { + "name": "volume_name", "type": "TypeString", - "description": "Link to documentation about this status reason", "computed": true } } }, { - "name": "dedicated_host", - "type": "TypeString", - "description": "Unique Identifier of the Dedicated Host where the instance will be placed", - "optional": true - }, - { - "name": "wait_before_delete", - "type": "TypeBool", - "description": "Enables stopping of instance before deleting and waits till deletion is complete", - "default_value": true, - "optional": true + "name": "volumes", + "type": "TypeList", + "description": "List of volumes", + "optional": true, + "elem": { + "type": "TypeString" + } }, { "name": "vcpu", @@ -122530,11 +125672,79 @@ } }, { - "name": "resource_crn", + "name": "numa_count", + "type": "TypeInt", + "description": "The number of NUMA nodes this virtual server instance is provisioned on. This property may be absent if the instance's `status` is not `running`.", + "computed": true + }, + { + "name": "status", "type": "TypeString", - "description": "The crn of the resource", + "description": "instance status", "computed": true }, + { + "name": "lifecycle_state", + "type": "TypeString", + "description": "The lifecycle state of the virtual server instance.", + "computed": true + }, + { + "name": "resource_status", + "type": "TypeString", + "description": "The status of the resource", + "computed": true + }, + { + "name": "disks", + "type": "TypeList", + "description": "Collection of the instance's disks.", + "computed": true, + "elem": { + "created_at": { + "name": "created_at", + "type": "TypeString", + "description": "The date and time that the disk was created.", + "computed": true + }, + "href": { + "name": "href", + "type": "TypeString", + "description": "The URL for this instance disk.", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "The unique identifier for this instance disk.", + "computed": true + }, + "interface_type": { + "name": "interface_type", + "type": "TypeString", + "description": "The disk interface used for attaching the disk.The enumerated values for this property are expected to expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the resource on which the unexpected property value was encountered.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The user-defined name for this disk.", + "computed": true + }, + "resource_type": { + "name": "resource_type", + "type": "TypeString", + "description": "The resource type.", + "computed": true + }, + "size": { + "name": "size", + "type": "TypeInt", + "description": "The size of the disk in GB (gigabytes).", + "computed": true + } + } + }, { "name": "placement_target", "type": "TypeList", @@ -122588,165 +125798,105 @@ } }, { - "name": "disks", + "name": "default_trusted_profile_target", + "type": "TypeString", + "description": "The unique identifier or CRN of the default IAM trusted profile to use for this virtual server instance.", + "immutable": true, + "optional": true + }, + { + "name": "dedicated_host_group", + "type": "TypeString", + "description": "Unique Identifier of the Dedicated Host Group where the instance will be placed", + "optional": true + }, + { + "name": "total_network_bandwidth", + "type": "TypeInt", + "description": "The amount of bandwidth (in megabits per second) allocated exclusively to instance network interfaces.", + "computed": true + }, + { + "name": "action", + "type": "TypeString", + "description": "Enables stopping of instance before deleting and waits till deletion is complete", + "options": "stop, start, reboot", + "optional": true + }, + { + "name": "auto_delete_volume", + "type": "TypeBool", + "description": "Auto delete volume along with instance", + "optional": true + }, + { + "name": "resource_group", + "type": "TypeString", + "description": "Instance resource group", + "cloud_data_type": "resource_group", + "immutable": true, + "optional": true, + "computed": true + }, + { + "name": "status_reasons", "type": "TypeList", - "description": "Collection of the instance's disks.", + "description": "The reasons for the current status (if any).", "computed": true, "elem": { - "created_at": { - "name": "created_at", - "type": "TypeString", - "description": "The date and time that the disk was created.", - "computed": true - }, - "href": { - "name": "href", - "type": "TypeString", - "description": "The URL for this instance disk.", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "The unique identifier for this instance disk.", - "computed": true - }, - "interface_type": { - "name": "interface_type", + "code": { + "name": "code", "type": "TypeString", - "description": "The disk interface used for attaching the disk.The enumerated values for this property are expected to expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the resource on which the unexpected property value was encountered.", + "description": "A snake case string succinctly identifying the status reason", "computed": true }, - "name": { - "name": "name", + "message": { + "name": "message", "type": "TypeString", - "description": "The user-defined name for this disk.", + "description": "An explanation of the status reason", "computed": true }, - "resource_type": { - "name": "resource_type", + "more_info": { + "name": "more_info", "type": "TypeString", - "description": "The resource type.", - "computed": true - }, - "size": { - "name": "size", - "type": "TypeInt", - "description": "The size of the disk in GB (gigabytes).", + "description": "Link to documentation about this status reason", "computed": true } } }, { - "name": "primary_network_interface", + "name": "lifecycle_reasons", "type": "TypeList", - "description": "Primary Network interface info", - "optional": true, + "description": "The reasons for the current lifecycle_state (if any).", "computed": true, "elem": { - "allow_ip_spoofing": { - "name": "allow_ip_spoofing", - "type": "TypeBool", - "description": "Indicates whether IP spoofing is allowed on this interface.", - "default_value": false, - "optional": true - }, - "id": { - "name": "id", + "code": { + "name": "code", "type": "TypeString", + "description": "A snake case string succinctly identifying the reason for this lifecycle state.", "computed": true }, - "name": { - "name": "name", + "message": { + "name": "message", "type": "TypeString", - "optional": true, + "description": "An explanation of the reason for this lifecycle state.", "computed": true }, - "port_speed": { - "name": "port_speed", - "type": "TypeInt", - "optional": true, - "computed": true, - "deprecated": "This field is deprected" - }, - "primary_ip": { - "name": "primary_ip", - "type": "TypeList", - "description": "The primary IP address to bind to the network interface. This can be specified using an existing reserved IP, or a prototype object for a new reserved IP.", - "optional": true, - "computed": true, - "elem": { - "address": { - "name": "address", - "type": "TypeString", - "description": "The IP address to reserve, which must not already be reserved on the subnet.", - "immutable": true, - "optional": true, - "computed": true - }, - "auto_delete": { - "name": "auto_delete", - "type": "TypeBool", - "description": "Indicates whether this reserved IP member will be automatically deleted when either target is deleted, or the reserved IP is unbound.", - "optional": true, - "computed": true - }, - "href": { - "name": "href", - "type": "TypeString", - "description": "The URL for this reserved IP", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The user-defined name for this reserved IP. If unspecified, the name will be a hyphenated list of randomly-selected words. Names must be unique within the subnet the reserved IP resides in.", - "optional": true, - "computed": true - }, - "reserved_ip": { - "name": "reserved_ip", - "type": "TypeString", - "description": "Identifies a reserved IP by a unique property.", - "immutable": true, - "optional": true, - "computed": true - }, - "resource_type": { - "name": "resource_type", - "type": "TypeString", - "description": "The resource type", - "computed": true - } - }, - "max_items": 1 - }, - "primary_ipv4_address": { - "name": "primary_ipv4_address", - "type": "TypeString", - "immutable": true, - "optional": true, - "computed": true, - "deprecated": "primary_ipv4_address is deprecated and support will be removed. Use primary_ip instead" - }, - "security_groups": { - "name": "security_groups", - "type": "TypeSet", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, - "subnet": { - "name": "subnet", + "more_info": { + "name": "more_info", "type": "TypeString", - "immutable": true, - "required": true + "description": "Link to documentation about the reason for this lifecycle state.", + "computed": true } - }, - "max_items": 1, - "min_items": 1 + } + }, + { + "name": "availability_policy_host_failure", + "type": "TypeString", + "description": "The availability policy to use for this virtual server instance", + "options": "restart, stop", + "optional": true, + "computed": true }, { "name": "network_interfaces", @@ -122849,111 +125999,88 @@ } }, { - "name": "boot_volume", + "name": "memory", + "type": "TypeInt", + "description": "Instance memory", + "computed": true + }, + { + "name": "metadata_service_enabled", + "type": "TypeBool", + "description": "Indicates whether the metadata service endpoint is available to the virtual server instance", + "optional": true, + "computed": true, + "deprecated": "Use metadata_service instead" + }, + { + "name": "metadata_service", "type": "TypeList", + "description": "The metadata service configuration", "optional": true, "computed": true, "elem": { - "auto_delete_volume": { - "name": "auto_delete_volume", + "enabled": { + "name": "enabled", "type": "TypeBool", - "description": "Auto delete boot volume along with instance", - "default_value": true, - "optional": true - }, - "encryption": { - "name": "encryption", - "type": "TypeString", + "description": "Indicates whether the metadata service endpoint will be available to the virtual server instance", "optional": true, "computed": true }, - "iops": { - "name": "iops", - "type": "TypeInt", - "computed": true - }, - "name": { - "name": "name", + "protocol": { + "name": "protocol", "type": "TypeString", + "description": "The communication protocol to use for the metadata service endpoint. Applies only when the metadata service is enabled.", "optional": true, "computed": true }, - "profile": { - "name": "profile", - "type": "TypeString", - "computed": true - }, - "size": { - "name": "size", + "response_hop_limit": { + "name": "response_hop_limit", "type": "TypeInt", - "optional": true, - "computed": true - }, - "snapshot": { - "name": "snapshot", - "type": "TypeString", - "immutable": true, - "optional": true, - "computed": true - }, - "tags": { - "name": "tags", - "type": "TypeSet", - "description": "UserTags for the volume instance", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, - "volume_id": { - "name": "volume_id", - "type": "TypeString", - "description": "The unique identifier for this volume", - "immutable": true, + "description": "The hop limit (IP time to live) for IP response packets from the metadata service", "optional": true, "computed": true } }, - "max_items": 1 - }, - { - "name": "auto_delete_volume", - "type": "TypeBool", - "description": "Auto delete volume along with instance", - "optional": true + "max_items": 1, + "min_items": 1 }, { - "name": "lifecycle_state", + "name": "resource_group_name", "type": "TypeString", - "description": "The lifecycle state of the virtual server instance.", + "description": "The resource group name in which resource is provisioned", "computed": true }, { - "name": "lifecycle_reasons", + "name": "catalog_offering", "type": "TypeList", - "description": "The reasons for the current lifecycle_state (if any).", - "computed": true, + "description": "The catalog offering or offering version to use when provisioning this virtual server instance. If an offering is specified, the latest version of that offering will be used. The specified offering or offering version may be in a different account in the same enterprise, subject to IAM policies.", + "immutable": true, + "optional": true, "elem": { - "code": { - "name": "code", - "type": "TypeString", - "description": "A snake case string succinctly identifying the reason for this lifecycle state.", - "computed": true - }, - "message": { - "name": "message", + "offering_crn": { + "name": "offering_crn", "type": "TypeString", - "description": "An explanation of the reason for this lifecycle state.", - "computed": true + "description": "Identifies a catalog offering by a unique CRN property", + "immutable": true, + "optional": true }, - "more_info": { - "name": "more_info", + "version_crn": { + "name": "version_crn", "type": "TypeString", - "description": "Link to documentation about the reason for this lifecycle state.", - "computed": true + "description": "Identifies a version of a catalog offering by a unique CRN property", + "immutable": true, + "optional": true } - } + }, + "max_items": 1 + }, + { + "name": "image", + "type": "TypeString", + "description": "image id", + "immutable": true, + "optional": true, + "computed": true } ], "ibm_is_instance_action": [ @@ -123041,34 +126168,25 @@ ], "ibm_is_instance_group": [ { - "name": "application_port", - "type": "TypeInt", - "description": "Used by the instance group when scaling up instances to supply the port for the load balancer pool member.", - "min_value": "1", - "max_value": "65535", - "optional": true - }, - { - "name": "instance_template", + "name": "name", "type": "TypeString", - "description": "instance template ID", - "required": true + "description": "The user-defined name for this instance group", + "required": true, + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" }, { - "name": "crn", + "name": "load_balancer", "type": "TypeString", - "description": "The CRN of this instance group", - "cloud_data_type": "crn", - "computed": true + "description": "load balancer ID", + "optional": true }, { - "name": "subnets", - "type": "TypeList", - "description": "list of subnet IDs", - "required": true, - "elem": { - "type": "TypeString" - } + "name": "load_balancer_pool", + "type": "TypeString", + "description": "load balancer pool ID", + "optional": true }, { "name": "vpc", @@ -123077,29 +126195,21 @@ "computed": true }, { - "name": "name", + "name": "status", "type": "TypeString", - "description": "The user-defined name for this instance group", - "required": true, - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" + "description": "Instance group status - deleting, healthy, scaling, unhealthy", + "computed": true }, { - "name": "managers", - "type": "TypeList", - "description": "list of Managers associated with instancegroup", + "name": "access_tags", + "type": "TypeSet", + "description": "List of access management tags", + "optional": true, "computed": true, "elem": { "type": "TypeString" } }, - { - "name": "instances", - "type": "TypeInt", - "description": "number of instances in the intances group", - "computed": true - }, { "name": "resource_group", "type": "TypeString", @@ -123109,28 +126219,29 @@ "computed": true }, { - "name": "load_balancer_pool", - "type": "TypeString", - "description": "load balancer pool ID", + "name": "application_port", + "type": "TypeInt", + "description": "Used by the instance group when scaling up instances to supply the port for the load balancer pool member.", + "min_value": "1", + "max_value": "65535", "optional": true }, { - "name": "tags", - "type": "TypeSet", - "description": "List of tags for instance group", - "min_length": 1, - "max_length": 128, - "matches": "^[A-Za-z0-9:_ .-]+$", - "optional": true, + "name": "managers", + "type": "TypeList", + "description": "list of Managers associated with instancegroup", "computed": true, "elem": { "type": "TypeString" } }, { - "name": "access_tags", + "name": "tags", "type": "TypeSet", - "description": "List of access management tags", + "description": "List of tags for instance group", + "min_length": 1, + "max_length": 128, + "matches": "^[A-Za-z0-9:_ .-]+$", "optional": true, "computed": true, "elem": { @@ -123147,27 +126258,40 @@ "optional": true }, { - "name": "load_balancer", + "name": "instance_template", "type": "TypeString", - "description": "load balancer ID", - "optional": true + "description": "instance template ID", + "required": true }, { - "name": "status", + "name": "crn", "type": "TypeString", - "description": "Instance group status - deleting, healthy, scaling, unhealthy", + "description": "The CRN of this instance group", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "subnets", + "type": "TypeList", + "description": "list of subnet IDs", + "required": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "instances", + "type": "TypeInt", + "description": "number of instances in the intances group", "computed": true } ], "ibm_is_instance_group_manager": [ { - "name": "name", + "name": "instance_group", "type": "TypeString", - "description": "instance group manager name", - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9]|[0-9][-a-z0-9]*([a-z]|[-a-z][-a-z0-9]*[a-z0-9]))$", - "optional": true + "description": "instance group ID", + "required": true }, { "name": "aggregation_window", @@ -123178,23 +126302,6 @@ "max_value": "600", "optional": true }, - { - "name": "cooldown", - "type": "TypeInt", - "description": "The duration of time in seconds to pause further scale actions after scaling has taken place", - "default_value": 300, - "min_value": "120", - "max_value": "3600", - "optional": true - }, - { - "name": "max_membership_count", - "type": "TypeInt", - "description": "The maximum number of members in a managed instance group", - "min_value": "1", - "max_value": "1000", - "optional": true - }, { "name": "min_membership_count", "type": "TypeInt", @@ -123205,10 +126312,35 @@ "optional": true }, { - "name": "manager_id", + "name": "actions", + "type": "TypeList", + "computed": true, + "elem": { + "instance_group_manager_action": { + "name": "instance_group_manager_action", + "type": "TypeString", + "computed": true + }, + "instance_group_manager_action_name": { + "name": "instance_group_manager_action_name", + "type": "TypeString", + "computed": true + }, + "resource_type": { + "name": "resource_type", + "type": "TypeString", + "computed": true + } + } + }, + { + "name": "name", "type": "TypeString", - "description": "instance group manager ID", - "computed": true + "description": "instance group manager name", + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9]|[0-9][-a-z0-9]*([a-z]|[-a-z][-a-z0-9]*[a-z0-9]))$", + "optional": true }, { "name": "enable_manager", @@ -123217,12 +126349,6 @@ "default_value": true, "optional": true }, - { - "name": "instance_group", - "type": "TypeString", - "description": "instance group ID", - "required": true - }, { "name": "manager_type", "type": "TypeString", @@ -123232,6 +126358,29 @@ "options": "autoscale, scheduled", "optional": true }, + { + "name": "cooldown", + "type": "TypeInt", + "description": "The duration of time in seconds to pause further scale actions after scaling has taken place", + "default_value": 300, + "min_value": "120", + "max_value": "3600", + "optional": true + }, + { + "name": "max_membership_count", + "type": "TypeInt", + "description": "The maximum number of members in a managed instance group", + "min_value": "1", + "max_value": "1000", + "optional": true + }, + { + "name": "manager_id", + "type": "TypeString", + "description": "instance group manager ID", + "computed": true + }, { "name": "policies", "type": "TypeList", @@ -123240,67 +126389,43 @@ "elem": { "type": "TypeString" } - }, - { - "name": "actions", - "type": "TypeList", - "computed": true, - "elem": { - "instance_group_manager_action": { - "name": "instance_group_manager_action", - "type": "TypeString", - "computed": true - }, - "instance_group_manager_action_name": { - "name": "instance_group_manager_action_name", - "type": "TypeString", - "computed": true - }, - "resource_type": { - "name": "resource_type", - "type": "TypeString", - "computed": true - } - } } ], "ibm_is_instance_group_manager_action": [ { - "name": "updated_at", + "name": "name", "type": "TypeString", - "description": "The date and time that the instance group manager action was modified.", - "computed": true + "description": "instance group manager action name", + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9]|[0-9][-a-z0-9]*([a-z]|[-a-z][-a-z0-9]*[a-z0-9]))$", + "optional": true }, { - "name": "action_type", - "type": "TypeString", - "description": "The type of action for the instance group.", - "computed": true + "name": "max_membership_count", + "type": "TypeInt", + "description": "The maximum number of members in a managed instance group", + "min_value": "1", + "max_value": "1000", + "optional": true }, { - "name": "last_applied_at", + "name": "updated_at", "type": "TypeString", - "description": "The date and time the scheduled action was last applied. If empty the action has never been applied.", + "description": "The date and time that the instance group manager action was modified.", "computed": true }, { - "name": "next_run_at", + "name": "last_applied_at", "type": "TypeString", - "description": "The date and time the scheduled action will next run. If empty the system is currently calculating the next run time.", + "description": "The date and time the scheduled action was last applied. If empty the action has never been applied.", "computed": true }, { - "name": "action_id", - "type": "TypeString", - "description": "Instance group manager action ID", + "name": "auto_delete_timeout", + "type": "TypeInt", "computed": true }, - { - "name": "instance_group", - "type": "TypeString", - "description": "instance group ID", - "required": true - }, { "name": "cron_spec", "type": "TypeString", @@ -123311,50 +126436,36 @@ "optional": true }, { - "name": "max_membership_count", - "type": "TypeInt", - "description": "The maximum number of members in a managed instance group", - "min_value": "1", - "max_value": "1000", - "optional": true - }, - { - "name": "auto_delete_timeout", + "name": "membership_count", "type": "TypeInt", - "computed": true - }, - { - "name": "run_at", - "type": "TypeString", - "description": "The date and time the scheduled action will run.", + "description": "The number of members the instance group should have at the scheduled time.", + "min_value": "0", + "max_value": "100", "optional": true }, { - "name": "target_manager", + "name": "status", "type": "TypeString", - "description": "The unique identifier for this instance group manager of type autoscale.", - "optional": true + "description": "The status of the instance group action- `active`: Action is ready to be run- `completed`: Action was completed successfully- `failed`: Action could not be completed successfully- `incompatible`: Action parameters are not compatible with the group or manager- `omitted`: Action was not applied because this action's manager was disabled.", + "computed": true }, { - "name": "resource_type", + "name": "action_type", "type": "TypeString", - "description": "The resource type.", + "description": "The type of action for the instance group.", "computed": true }, { - "name": "status", + "name": "created_at", "type": "TypeString", - "description": "The status of the instance group action- `active`: Action is ready to be run- `completed`: Action was completed successfully- `failed`: Action could not be completed successfully- `incompatible`: Action parameters are not compatible with the group or manager- `omitted`: Action was not applied because this action's manager was disabled.", + "description": "The date and time that the instance group manager action was modified.", "computed": true }, { - "name": "name", + "name": "action_id", "type": "TypeString", - "description": "instance group manager action name", - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9]|[0-9][-a-z0-9]*([a-z]|[-a-z][-a-z0-9]*[a-z0-9]))$", - "optional": true + "description": "Instance group manager action ID", + "computed": true }, { "name": "instance_group_manager", @@ -123363,18 +126474,10 @@ "required": true }, { - "name": "membership_count", - "type": "TypeInt", - "description": "The number of members the instance group should have at the scheduled time.", - "min_value": "0", - "max_value": "100", - "optional": true - }, - { - "name": "created_at", + "name": "run_at", "type": "TypeString", - "description": "The date and time that the instance group manager action was modified.", - "computed": true + "description": "The date and time the scheduled action will run.", + "optional": true }, { "name": "min_membership_count", @@ -123395,31 +126498,33 @@ "name": "auto_delete", "type": "TypeBool", "computed": true - } - ], - "ibm_is_instance_group_manager_policy": [ + }, { - "name": "policy_type", + "name": "instance_group", "type": "TypeString", - "description": "The type of Policy for the Instance Group", - "required": true, - "options": "target" + "description": "instance group ID", + "required": true }, { - "name": "policy_id", + "name": "target_manager", "type": "TypeString", - "description": "The Policy ID", - "computed": true + "description": "The unique identifier for this instance group manager of type autoscale.", + "optional": true }, { - "name": "name", + "name": "resource_type", "type": "TypeString", - "description": "instance group manager policy name", - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", - "optional": true + "description": "The resource type.", + "computed": true }, + { + "name": "next_run_at", + "type": "TypeString", + "description": "The date and time the scheduled action will next run. If empty the system is currently calculating the next run time.", + "computed": true + } + ], + "ibm_is_instance_group_manager_policy": [ { "name": "instance_group", "type": "TypeString", @@ -123444,68 +126549,65 @@ "type": "TypeInt", "description": "The metric value to be evaluated", "required": true - } - ], - "ibm_is_instance_group_membership": [ + }, { - "name": "instance_group", + "name": "policy_type", "type": "TypeString", - "description": "The instance group identifier.", - "immutable": true, + "description": "The type of Policy for the Instance Group", "required": true, - "min_length": 1, - "max_length": 64, - "matches": "^[-0-9a-z_]+$" + "options": "target" + }, + { + "name": "policy_id", + "type": "TypeString", + "description": "The Policy ID", + "computed": true }, { "name": "name", "type": "TypeString", - "description": "The user-defined name for this instance group membership. Names must be unique within the instance group.", + "description": "instance group manager policy name", "min_length": 1, "max_length": 63, "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", "optional": true - }, + } + ], + "ibm_is_instance_group_membership": [ { - "name": "delete_instance_on_membership_delete", - "type": "TypeBool", - "description": "If set to true, when deleting the membership the instance will also be deleted.", - "computed": true + "name": "instance_group_membership", + "type": "TypeString", + "description": "The unique identifier for this instance group membership.", + "required": true, + "min_length": 1, + "max_length": 64, + "matches": "^[-0-9a-z_]+$" }, { - "name": "instance_template", - "type": "TypeList", - "computed": true, - "elem": { - "crn": { - "name": "crn", - "type": "TypeString", - "description": "The CRN for this instance template.", - "computed": true - }, - "instance_template": { - "name": "instance_template", - "type": "TypeString", - "description": "The unique identifier for this instance template.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The unique user-defined name for this instance template.", - "computed": true - } - } + "name": "load_balancer_pool_member", + "type": "TypeString", + "description": "The unique identifier for this load balancer pool member.", + "computed": true }, { - "name": "instance_group_membership", + "name": "instance_group", "type": "TypeString", - "description": "The unique identifier for this instance group membership.", + "description": "The instance group identifier.", + "immutable": true, "required": true, "min_length": 1, "max_length": 64, "matches": "^[-0-9a-z_]+$" }, + { + "name": "name", + "type": "TypeString", + "description": "The user-defined name for this instance group membership. Names must be unique within the instance group.", + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", + "optional": true + }, { "name": "action_delete", "type": "TypeBool", @@ -123513,6 +126615,12 @@ "default_value": false, "optional": true }, + { + "name": "delete_instance_on_membership_delete", + "type": "TypeBool", + "description": "If set to true, when deleting the membership the instance will also be deleted.", + "computed": true + }, { "name": "instance", "type": "TypeList", @@ -123539,118 +126647,38 @@ } }, { - "name": "load_balancer_pool_member", - "type": "TypeString", - "description": "The unique identifier for this load balancer pool member.", - "computed": true - }, - { - "name": "status", - "type": "TypeString", - "description": "The status of the instance group membership- `deleting`: Membership is deleting dependent resources- `failed`: Membership was unable to maintain dependent resources- `healthy`: Membership is active and serving in the group- `pending`: Membership is waiting for dependent resources- `unhealthy`: Membership has unhealthy dependent resources.", - "computed": true - } - ], - "ibm_is_instance_network_interface": [ - { - "name": "subnet", - "type": "TypeString", - "description": "The unique identifier of the subnet.", - "immutable": true, - "required": true - }, - { - "name": "primary_ipv4_address", - "type": "TypeString", - "description": "The primary IPv4 address. If specified, it must be an available address on the network interface's subnet. If unspecified, an available address on the subnet will be automatically selected.", - "immutable": true, - "matches": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$", - "optional": true, - "computed": true, - "deprecated": "primary_ipv4_address is deprecated and support will be removed. Use primary_ip instead" - }, - { - "name": "created_at", - "type": "TypeString", - "description": "The date and time that the network interface was created.", - "computed": true - }, - { - "name": "floating_ip", - "type": "TypeString", - "description": "The ID of the floating IP to attach to this network interface", - "optional": true - }, - { - "name": "status", - "type": "TypeString", - "description": "The status of the network interface.", - "computed": true - }, - { - "name": "port_speed", - "type": "TypeInt", - "description": "The network interface port speed in Mbps.", - "computed": true - }, - { - "name": "allow_ip_spoofing", - "type": "TypeBool", - "description": "Indicates whether source IP spoofing is allowed on this interface. If false, source IP spoofing is prevented on this interface. If true, source IP spoofing is allowed on this interface.", - "default_value": false, - "optional": true - }, - { - "name": "primary_ip", + "name": "instance_template", "type": "TypeList", - "description": "The primary IP address to bind to the network interface. This can be specified using an existing reserved IP, or a prototype object for a new reserved IP.", - "optional": true, "computed": true, "elem": { - "address": { - "name": "address", - "type": "TypeString", - "description": "The IP address to reserve, which must not already be reserved on the subnet.", - "immutable": true, - "optional": true, - "computed": true - }, - "auto_delete": { - "name": "auto_delete", - "type": "TypeBool", - "description": "Indicates whether this reserved IP member will be automatically deleted when either target is deleted, or the reserved IP is unbound.", - "optional": true, - "computed": true - }, - "href": { - "name": "href", - "type": "TypeString", - "description": "The URL for this reserved IP", - "computed": true - }, - "name": { - "name": "name", + "crn": { + "name": "crn", "type": "TypeString", - "description": "The user-defined name for this reserved IP. If unspecified, the name will be a hyphenated list of randomly-selected words. Names must be unique within the subnet the reserved IP resides in.", - "optional": true, + "description": "The CRN for this instance template.", "computed": true }, - "reserved_ip": { - "name": "reserved_ip", + "instance_template": { + "name": "instance_template", "type": "TypeString", - "description": "Identifies a reserved IP by a unique property.", - "optional": true, + "description": "The unique identifier for this instance template.", "computed": true - }, - "resource_type": { - "name": "resource_type", + }, + "name": { + "name": "name", "type": "TypeString", - "description": "The resource type", + "description": "The unique user-defined name for this instance template.", "computed": true } - }, - "max_items": 1 + } }, + { + "name": "status", + "type": "TypeString", + "description": "The status of the instance group membership- `deleting`: Membership is deleting dependent resources- `failed`: Membership was unable to maintain dependent resources- `healthy`: Membership is active and serving in the group- `pending`: Membership is waiting for dependent resources- `unhealthy`: Membership has unhealthy dependent resources.", + "computed": true + } + ], + "ibm_is_instance_network_interface": [ { "name": "security_groups", "type": "TypeSet", @@ -123661,38 +126689,22 @@ } }, { - "name": "type", + "name": "status", "type": "TypeString", - "description": "The type of this network interface as it relates to an instance.", + "description": "The status of the network interface.", "computed": true }, { - "name": "resource_type", + "name": "created_at", "type": "TypeString", - "description": "The resource type.", + "description": "The date and time that the network interface was created.", "computed": true }, { - "name": "instance", - "type": "TypeString", - "description": "The unique identifier of the instance.", - "immutable": true, - "required": true - }, - { - "name": "name", - "type": "TypeString", - "description": "The user-defined name for this network interface. If unspecified, the name will be a hyphenated list of randomly-selected words.", - "required": true, - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" - }, - { - "name": "network_interface", + "name": "floating_ip", "type": "TypeString", - "description": "The globally unique ID of this network interface", - "computed": true + "description": "The ID of the floating IP to attach to this network interface", + "optional": true }, { "name": "floating_ips", @@ -123747,110 +126759,187 @@ } }, { - "name": "href", + "name": "type", "type": "TypeString", - "description": "The URL for this network interface.", + "description": "The type of this network interface as it relates to an instance.", "computed": true - } - ], - "ibm_is_instance_network_interface_floating_ip": [ + }, { "name": "instance", "type": "TypeString", - "description": "Instance identifier", + "description": "The unique identifier of the instance.", "immutable": true, "required": true }, { - "name": "floating_ip", + "name": "subnet", "type": "TypeString", - "description": "The floating ip identifier of the network interface associated with the Instance", + "description": "The unique identifier of the subnet.", + "immutable": true, "required": true }, { - "name": "zone", + "name": "primary_ip", + "type": "TypeList", + "description": "The primary IP address to bind to the network interface. This can be specified using an existing reserved IP, or a prototype object for a new reserved IP.", + "optional": true, + "computed": true, + "elem": { + "address": { + "name": "address", + "type": "TypeString", + "description": "The IP address to reserve, which must not already be reserved on the subnet.", + "immutable": true, + "optional": true, + "computed": true + }, + "auto_delete": { + "name": "auto_delete", + "type": "TypeBool", + "description": "Indicates whether this reserved IP member will be automatically deleted when either target is deleted, or the reserved IP is unbound.", + "optional": true, + "computed": true + }, + "href": { + "name": "href", + "type": "TypeString", + "description": "The URL for this reserved IP", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The user-defined name for this reserved IP. If unspecified, the name will be a hyphenated list of randomly-selected words. Names must be unique within the subnet the reserved IP resides in.", + "optional": true, + "computed": true + }, + "reserved_ip": { + "name": "reserved_ip", + "type": "TypeString", + "description": "Identifies a reserved IP by a unique property.", + "optional": true, + "computed": true + }, + "resource_type": { + "name": "resource_type", + "type": "TypeString", + "description": "The resource type", + "computed": true + } + }, + "max_items": 1 + }, + { + "name": "href", "type": "TypeString", - "description": "Zone name", + "description": "The URL for this network interface.", "computed": true }, { - "name": "target", + "name": "resource_type", "type": "TypeString", - "description": "Target info", + "description": "The resource type.", "computed": true }, { - "name": "crn", + "name": "allow_ip_spoofing", + "type": "TypeBool", + "description": "Indicates whether source IP spoofing is allowed on this interface. If false, source IP spoofing is prevented on this interface. If true, source IP spoofing is allowed on this interface.", + "default_value": false, + "optional": true + }, + { + "name": "name", "type": "TypeString", - "description": "Floating IP crn", - "cloud_data_type": "crn", - "computed": true + "description": "The user-defined name for this network interface. If unspecified, the name will be a hyphenated list of randomly-selected words.", + "required": true, + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" }, { - "name": "network_interface", + "name": "primary_ipv4_address", "type": "TypeString", - "description": "Instance network interface identifier", + "description": "The primary IPv4 address. If specified, it must be an available address on the network interface's subnet. If unspecified, an available address on the subnet will be automatically selected.", "immutable": true, - "required": true + "matches": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$", + "optional": true, + "computed": true, + "deprecated": "primary_ipv4_address is deprecated and support will be removed. Use primary_ip instead" }, { - "name": "name", + "name": "network_interface", "type": "TypeString", - "description": "Name of the floating IP", + "description": "The globally unique ID of this network interface", "computed": true }, + { + "name": "port_speed", + "type": "TypeInt", + "description": "The network interface port speed in Mbps.", + "computed": true + } + ], + "ibm_is_instance_network_interface_floating_ip": [ { "name": "address", "type": "TypeString", "description": "Floating IP address", "computed": true }, + { + "name": "crn", + "type": "TypeString", + "description": "Floating IP crn", + "cloud_data_type": "crn", + "computed": true + }, { "name": "status", "type": "TypeString", "description": "Floating IP status", "computed": true - } - ], - "ibm_is_instance_template": [ + }, { - "name": "crn", + "name": "zone", "type": "TypeString", - "description": "The CRN for the instance", - "cloud_data_type": "crn", + "description": "Zone name", "computed": true }, { - "name": "name", + "name": "target", "type": "TypeString", - "description": "Instance Template name", - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", - "optional": true + "description": "Target info", + "computed": true }, { - "name": "zone", + "name": "instance", "type": "TypeString", - "description": "Zone name", + "description": "Instance identifier", "immutable": true, "required": true }, { - "name": "default_trusted_profile_auto_link", - "type": "TypeBool", - "description": "If set to `true`, the system will create a link to the specified `target` trusted profile during instance creation. Regardless of whether a link is created by the system or manually using the IAM Identity service, it will be automatically deleted when the instance is deleted.", + "name": "network_interface", + "type": "TypeString", + "description": "Instance network interface identifier", "immutable": true, - "optional": true, - "computed": true + "required": true }, { - "name": "default_trusted_profile_target", + "name": "floating_ip", "type": "TypeString", - "description": "The unique identifier or CRN of the default IAM trusted profile to use for this virtual server instance.", - "immutable": true, - "optional": true + "description": "The floating ip identifier of the network interface associated with the Instance", + "required": true }, + { + "name": "name", + "type": "TypeString", + "description": "Name of the floating IP", + "computed": true + } + ], + "ibm_is_instance_template": [ { "name": "dedicated_host", "type": "TypeString", @@ -123859,18 +126948,10 @@ "optional": true }, { - "name": "dedicated_host_group", + "name": "placement_group", "type": "TypeString", - "description": "Unique Identifier of the Dedicated Host Group where the instance will be placed", - "immutable": true, - "optional": true - }, - { - "name": "total_volume_bandwidth", - "type": "TypeInt", - "description": "The amount of bandwidth (in megabits per second) allocated exclusively to instance storage volumes", + "description": "Unique Identifier of the Placement Group for restricting the placement of the instance", "immutable": true, - "min_value": "500", "optional": true }, { @@ -123898,42 +126979,9 @@ "max_items": 1 }, { - "name": "image", - "type": "TypeString", - "description": "image name", - "immutable": true, - "optional": true - }, - { - "name": "resource_group", - "type": "TypeString", - "description": "Instance template resource group", - "cloud_data_type": "resource_group", - "immutable": true, - "optional": true, - "computed": true - }, - { - "name": "vpc", - "type": "TypeString", - "description": "VPC id", - "immutable": true, - "required": true - }, - { - "name": "keys", - "type": "TypeSet", - "description": "SSH key Ids for the instance template", - "required": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "primary_network_interface", + "name": "network_interfaces", "type": "TypeList", - "description": "Primary Network interface info", - "required": true, + "optional": true, "elem": { "allow_ip_spoofing": { "name": "allow_ip_spoofing", @@ -124011,14 +127059,214 @@ "immutable": true, "required": true } - }, - "max_items": 1, - "min_items": 1 + } }, { - "name": "network_interfaces", + "name": "crn", + "type": "TypeString", + "description": "The CRN for the instance", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "vpc", + "type": "TypeString", + "description": "VPC id", + "immutable": true, + "required": true + }, + { + "name": "profile", + "type": "TypeString", + "description": "Profile info", + "immutable": true, + "required": true + }, + { + "name": "total_volume_bandwidth", + "type": "TypeInt", + "description": "The amount of bandwidth (in megabits per second) allocated exclusively to instance storage volumes", + "immutable": true, + "min_value": "500", + "optional": true + }, + { + "name": "keys", + "type": "TypeSet", + "description": "SSH key Ids for the instance template", + "required": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "volume_attachments", + "type": "TypeList", + "immutable": true, + "optional": true, + "elem": { + "delete_volume_on_instance_delete": { + "name": "delete_volume_on_instance_delete", + "type": "TypeBool", + "description": "If set to true, when deleting the instance the volume will also be deleted.", + "required": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The user-defined name for this volume attachment.", + "required": true + }, + "volume": { + "name": "volume", + "type": "TypeString", + "description": "The unique identifier for this volume.", + "immutable": true, + "optional": true + }, + "volume_prototype": { + "name": "volume_prototype", + "type": "TypeList", + "immutable": true, + "optional": true, + "elem": { + "capacity": { + "name": "capacity", + "type": "TypeInt", + "description": "The capacity of the volume in gigabytes. The specified minimum and maximum capacity values for creating or updating volumes may expand in the future.", + "immutable": true, + "required": true + }, + "encryption_key": { + "name": "encryption_key", + "type": "TypeString", + "description": "The CRN of the [Key Protect Root Key](https://cloud.ibm.com/docs/key-protect?topic=key-protect-getting-started-tutorial) or [Hyper Protect Crypto Service Root Key](https://cloud.ibm.com/docs/hs-crypto?topic=hs-crypto-get-started) for this resource.", + "immutable": true, + "optional": true + }, + "iops": { + "name": "iops", + "type": "TypeInt", + "description": "The maximum I/O operations per second (IOPS) for the volume.", + "immutable": true, + "optional": true + }, + "profile": { + "name": "profile", + "type": "TypeString", + "description": "The globally unique name for the volume profile to use for this volume.", + "immutable": true, + "required": true + }, + "tags": { + "name": "tags", + "type": "TypeSet", + "description": "UserTags for the volume instance", + "immutable": true, + "optional": true, + "elem": { + "type": "TypeString" + } + } + }, + "max_items": 1, + "min_items": 1 + } + } + }, + { + "name": "user_data", + "type": "TypeString", + "description": "User data given for the instance", + "immutable": true, + "optional": true + }, + { + "name": "boot_volume", "type": "TypeList", "optional": true, + "computed": true, + "elem": { + "delete_volume_on_instance_delete": { + "name": "delete_volume_on_instance_delete", + "type": "TypeBool", + "optional": true, + "computed": true + }, + "encryption": { + "name": "encryption", + "type": "TypeString", + "optional": true, + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "optional": true, + "computed": true + }, + "profile": { + "name": "profile", + "type": "TypeString", + "computed": true + }, + "size": { + "name": "size", + "type": "TypeInt", + "computed": true + }, + "tags": { + "name": "tags", + "type": "TypeSet", + "description": "UserTags for the volume instance", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + } + }, + "max_items": 1 + }, + { + "name": "availability_policy_host_failure", + "type": "TypeString", + "description": "The availability policy to use for this virtual server instance", + "immutable": true, + "options": "restart, stop", + "optional": true, + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Instance Template name", + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", + "optional": true + }, + { + "name": "metadata_service_enabled", + "type": "TypeBool", + "description": "Indicates whether the metadata service endpoint is available to the virtual server instance", + "immutable": true, + "optional": true, + "computed": true, + "deprecated": "Use metadata_service instead" + }, + { + "name": "zone", + "type": "TypeString", + "description": "Zone name", + "immutable": true, + "required": true + }, + { + "name": "primary_network_interface", + "type": "TypeList", + "description": "Primary Network interface info", + "required": true, "elem": { "allow_ip_spoofing": { "name": "allow_ip_spoofing", @@ -124096,61 +127344,18 @@ "immutable": true, "required": true } - } + }, + "max_items": 1, + "min_items": 1 }, { - "name": "user_data", + "name": "resource_group", "type": "TypeString", - "description": "User data given for the instance", + "description": "Instance template resource group", + "cloud_data_type": "resource_group", "immutable": true, - "optional": true - }, - { - "name": "boot_volume", - "type": "TypeList", "optional": true, - "computed": true, - "elem": { - "delete_volume_on_instance_delete": { - "name": "delete_volume_on_instance_delete", - "type": "TypeBool", - "optional": true, - "computed": true - }, - "encryption": { - "name": "encryption", - "type": "TypeString", - "optional": true, - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "optional": true, - "computed": true - }, - "profile": { - "name": "profile", - "type": "TypeString", - "computed": true - }, - "size": { - "name": "size", - "type": "TypeInt", - "computed": true - }, - "tags": { - "name": "tags", - "type": "TypeSet", - "description": "UserTags for the volume instance", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - } - }, - "max_items": 1 + "computed": true }, { "name": "placement_target", @@ -124178,24 +127383,6 @@ } } }, - { - "name": "availability_policy_host_failure", - "type": "TypeString", - "description": "The availability policy to use for this virtual server instance", - "immutable": true, - "options": "restart, stop", - "optional": true, - "computed": true - }, - { - "name": "metadata_service_enabled", - "type": "TypeBool", - "description": "Indicates whether the metadata service endpoint is available to the virtual server instance", - "immutable": true, - "optional": true, - "computed": true, - "deprecated": "Use metadata_service instead" - }, { "name": "metadata_service", "type": "TypeList", @@ -124232,137 +127419,83 @@ "min_items": 1 }, { - "name": "profile", + "name": "default_trusted_profile_auto_link", + "type": "TypeBool", + "description": "If set to `true`, the system will create a link to the specified `target` trusted profile during instance creation. Regardless of whether a link is created by the system or manually using the IAM Identity service, it will be automatically deleted when the instance is deleted.", + "immutable": true, + "optional": true, + "computed": true + }, + { + "name": "default_trusted_profile_target", "type": "TypeString", - "description": "Profile info", + "description": "The unique identifier or CRN of the default IAM trusted profile to use for this virtual server instance.", "immutable": true, - "required": true + "optional": true }, { - "name": "placement_group", + "name": "dedicated_host_group", "type": "TypeString", - "description": "Unique Identifier of the Placement Group for restricting the placement of the instance", + "description": "Unique Identifier of the Dedicated Host Group where the instance will be placed", "immutable": true, "optional": true }, { - "name": "volume_attachments", - "type": "TypeList", + "name": "image", + "type": "TypeString", + "description": "image name", "immutable": true, - "optional": true, - "elem": { - "delete_volume_on_instance_delete": { - "name": "delete_volume_on_instance_delete", - "type": "TypeBool", - "description": "If set to true, when deleting the instance the volume will also be deleted.", - "required": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The user-defined name for this volume attachment.", - "required": true - }, - "volume": { - "name": "volume", - "type": "TypeString", - "description": "The unique identifier for this volume.", - "immutable": true, - "optional": true - }, - "volume_prototype": { - "name": "volume_prototype", - "type": "TypeList", - "immutable": true, - "optional": true, - "elem": { - "capacity": { - "name": "capacity", - "type": "TypeInt", - "description": "The capacity of the volume in gigabytes. The specified minimum and maximum capacity values for creating or updating volumes may expand in the future.", - "immutable": true, - "required": true - }, - "encryption_key": { - "name": "encryption_key", - "type": "TypeString", - "description": "The CRN of the [Key Protect Root Key](https://cloud.ibm.com/docs/key-protect?topic=key-protect-getting-started-tutorial) or [Hyper Protect Crypto Service Root Key](https://cloud.ibm.com/docs/hs-crypto?topic=hs-crypto-get-started) for this resource.", - "immutable": true, - "optional": true - }, - "iops": { - "name": "iops", - "type": "TypeInt", - "description": "The maximum I/O operations per second (IOPS) for the volume.", - "immutable": true, - "optional": true - }, - "profile": { - "name": "profile", - "type": "TypeString", - "description": "The globally unique name for the volume profile to use for this volume.", - "immutable": true, - "required": true - }, - "tags": { - "name": "tags", - "type": "TypeSet", - "description": "UserTags for the volume instance", - "immutable": true, - "optional": true, - "elem": { - "type": "TypeString" - } - } - }, - "max_items": 1, - "min_items": 1 - } - } + "optional": true } ], "ibm_is_instance_volume_attachment": [ { - "name": "device", - "type": "TypeString", - "description": "A unique identifier for the device which is exposed to the instance operating system", + "name": "iops", + "type": "TypeInt", + "description": "The maximum I/O operations per second (IOPS) for the volume.", + "optional": true, "computed": true }, { - "name": "href", + "name": "snapshot", "type": "TypeString", - "description": "The URL for this volume attachment", + "description": "The snapshot of the volume to be attached", + "immutable": true, + "optional": true, "computed": true }, { - "name": "delete_volume_on_instance_delete", - "type": "TypeBool", - "description": "If set to true, when deleting the instance the volume will also be deleted.", - "optional": true, + "name": "version", + "type": "TypeString", "computed": true }, { - "name": "delete_volume_on_attachment_delete", - "type": "TypeBool", - "description": "If set to true, when deleting the attachment, the volume will also be deleted. Default value for this true.", - "default_value": true, - "optional": true + "name": "instance", + "type": "TypeString", + "description": "Instance id", + "immutable": true, + "required": true }, { - "name": "volume_name", + "name": "volume_attachment_id", "type": "TypeString", - "description": "The unique user-defined name for this volume", - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", + "description": "The unique identifier for this volume attachment", + "computed": true + }, + { + "name": "capacity", + "type": "TypeInt", + "description": "The capacity of the volume in gigabytes. The specified minimum and maximum capacity values for creating or updating volumes may expand in the future.", + "min_value": "10", + "max_value": "16000", "optional": true, "computed": true }, { - "name": "profile", + "name": "encryption_key", "type": "TypeString", - "description": "The globally unique name for the volume profile to use for this volume.", - "options": "general-purpose, 5iops-tier, 10iops-tier, custom", + "description": "The CRN of the [Key Protect Root Key](https://cloud.ibm.com/docs/key-protect?topic=key-protect-getting-started-tutorial) or [Hyper Protect Crypto Service Root Key](https://cloud.ibm.com/docs/hs-crypto?topic=hs-crypto-get-started) for this resource.", + "immutable": true, "optional": true, "computed": true }, @@ -124373,49 +127506,48 @@ "computed": true }, { - "name": "volume_href", + "name": "device", "type": "TypeString", - "description": "The URL for this volume", + "description": "A unique identifier for the device which is exposed to the instance operating system", "computed": true }, { - "name": "version", + "name": "status", "type": "TypeString", + "description": "The status of this volume attachment, one of [ attached, attaching, deleting, detaching ]", "computed": true }, { - "name": "instance", - "type": "TypeString", - "description": "Instance id", - "immutable": true, - "required": true - }, - { - "name": "volume", + "name": "type", "type": "TypeString", - "description": "Instance id", - "immutable": true, - "optional": true, + "description": "The type of volume attachment one of [ boot, data ]", "computed": true }, { - "name": "snapshot", + "name": "name", "type": "TypeString", - "description": "The snapshot of the volume to be attached", - "immutable": true, + "description": "The user-defined name for this volume attachment.", + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", "optional": true, "computed": true }, { - "name": "status", - "type": "TypeString", - "description": "The status of this volume attachment, one of [ attached, attaching, deleting, detaching ]", + "name": "delete_volume_on_instance_delete", + "type": "TypeBool", + "description": "If set to true, when deleting the instance the volume will also be deleted.", + "optional": true, "computed": true }, { - "name": "type", + "name": "volume_name", "type": "TypeString", - "description": "The type of volume attachment one of [ boot, data ]", + "description": "The unique user-defined name for this volume", + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", + "optional": true, "computed": true }, { @@ -124432,67 +127564,81 @@ } }, { - "name": "encryption_key", + "name": "volume_deleted", "type": "TypeString", - "description": "The CRN of the [Key Protect Root Key](https://cloud.ibm.com/docs/key-protect?topic=key-protect-getting-started-tutorial) or [Hyper Protect Crypto Service Root Key](https://cloud.ibm.com/docs/hs-crypto?topic=hs-crypto-get-started) for this resource.", - "immutable": true, - "optional": true, + "description": "Link to documentation about deleted resources", "computed": true }, { - "name": "volume_attachment_id", + "name": "href", "type": "TypeString", - "description": "The unique identifier for this volume attachment", + "description": "The URL for this volume attachment", "computed": true }, { - "name": "name", - "type": "TypeString", - "description": "The user-defined name for this volume attachment.", - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", - "optional": true, - "computed": true + "name": "delete_volume_on_attachment_delete", + "type": "TypeBool", + "description": "If set to true, when deleting the attachment, the volume will also be deleted. Default value for this true.", + "default_value": true, + "optional": true }, { - "name": "iops", - "type": "TypeInt", - "description": "The maximum I/O operations per second (IOPS) for the volume.", + "name": "volume", + "type": "TypeString", + "description": "Instance id", + "immutable": true, "optional": true, "computed": true }, { - "name": "capacity", - "type": "TypeInt", - "description": "The capacity of the volume in gigabytes. The specified minimum and maximum capacity values for creating or updating volumes may expand in the future.", - "min_value": "10", - "max_value": "16000", + "name": "profile", + "type": "TypeString", + "description": "The globally unique name for the volume profile to use for this volume.", + "options": "general-purpose, 5iops-tier, 10iops-tier, custom", "optional": true, "computed": true }, { - "name": "volume_deleted", + "name": "volume_href", "type": "TypeString", - "description": "Link to documentation about deleted resources", + "description": "The URL for this volume", "computed": true } ], "ibm_is_ipsec_policy": [ { - "name": "resource_crn", + "name": "vpn_connections", + "type": "TypeList", + "computed": true, + "elem": { + "href": { + "name": "href", + "type": "TypeString", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "computed": true + } + } + }, + { + "name": "resource_name", "type": "TypeString", - "description": "The crn of the resource", + "description": "The name of the resource", "computed": true }, { - "name": "name", + "name": "resource_crn", "type": "TypeString", - "description": "IPSEC name", - "required": true, - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" + "description": "The crn of the resource", + "computed": true }, { "name": "encryption_algorithm", @@ -124501,6 +127647,13 @@ "required": true, "options": "triple_des, aes128, aes256, aes128gcm16, aes192gcm16, aes256gcm16" }, + { + "name": "authentication_algorithm", + "type": "TypeString", + "description": "Authentication alorothm", + "required": true, + "options": "md5, sha1, sha256, sha512, sha384, disabled" + }, { "name": "pfs", "type": "TypeString", @@ -124517,31 +127670,6 @@ "optional": true, "computed": true }, - { - "name": "transform_protocol", - "type": "TypeString", - "description": "IPSEC transform protocol", - "computed": true - }, - { - "name": "resource_name", - "type": "TypeString", - "description": "The name of the resource", - "computed": true - }, - { - "name": "resource_group_name", - "type": "TypeString", - "description": "The resource group name in which resource is provisioned", - "computed": true - }, - { - "name": "authentication_algorithm", - "type": "TypeString", - "description": "Authentication alorothm", - "required": true, - "options": "md5, sha1, sha256, sha512, sha384, disabled" - }, { "name": "key_lifetime", "type": "TypeInt", @@ -124556,97 +127684,73 @@ "computed": true }, { - "name": "vpn_connections", - "type": "TypeList", - "computed": true, - "elem": { - "href": { - "name": "href", - "type": "TypeString", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "computed": true - } - } + "name": "transform_protocol", + "type": "TypeString", + "description": "IPSEC transform protocol", + "computed": true }, { "name": "resource_controller_url", "type": "TypeString", "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "IPSEC name", + "required": true, + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" + }, + { + "name": "resource_group_name", + "type": "TypeString", + "description": "The resource group name in which resource is provisioned", + "computed": true } ], "ibm_is_lb": [ { - "name": "private_ips", - "type": "TypeList", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "profile", + "type": "TypeString", + "description": "The profile to use for this load balancer.", + "immutable": true, + "options": "network-fixed", + "optional": true, + "computed": true }, { - "name": "subnets", + "name": "access_tags", "type": "TypeSet", - "description": "Load Balancer subnets list", - "required": true, + "description": "List of access management tags", + "optional": true, + "computed": true, "elem": { "type": "TypeString" - }, - "max_items": 15, - "min_items": 1 + } }, { - "name": "udp_supported", + "name": "route_mode", "type": "TypeBool", - "description": "Indicates whether this load balancer supports UDP.", - "computed": true + "description": "Indicates whether route mode is enabled for this load balancer", + "default_value": false, + "immutable": true, + "optional": true }, { - "name": "resource_controller_url", + "name": "hostname", "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", "computed": true }, { - "name": "dns", - "type": "TypeList", - "description": "The DNS configuration for this load balancer.", - "optional": true, - "elem": { - "instance_crn": { - "name": "instance_crn", - "type": "TypeString", - "description": "The CRN for this DNS instance", - "required": true - }, - "zone_id": { - "name": "zone_id", - "type": "TypeString", - "description": "The unique identifier of the DNS zone.", - "required": true - } - }, - "max_items": 1, - "min_items": 1 - }, - { - "name": "crn", + "name": "status", "type": "TypeString", - "description": "The CRN for this Load Balancer", - "cloud_data_type": "crn", "computed": true }, { - "name": "public_ips", + "name": "private_ips", "type": "TypeList", "computed": true, "elem": { @@ -124692,34 +127796,11 @@ } }, { - "name": "route_mode", + "name": "security_group_supported", "type": "TypeBool", - "description": "Indicates whether route mode is enabled for this load balancer", - "default_value": false, - "immutable": true, - "optional": true - }, - { - "name": "hostname", - "type": "TypeString", + "description": "Security Group Supported for this Load Balancer", "computed": true }, - { - "name": "logging", - "type": "TypeBool", - "description": "Logging of Load Balancer", - "default_value": false, - "optional": true - }, - { - "name": "name", - "type": "TypeString", - "description": "Load Balancer name", - "required": true, - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" - }, { "name": "type", "type": "TypeString", @@ -124730,8 +127811,27 @@ "optional": true }, { - "name": "operating_status", + "name": "tags", + "type": "TypeSet", + "min_length": 1, + "max_length": 128, + "matches": "^[A-Za-z0-9:_ .-]+$", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "udp_supported", + "type": "TypeBool", + "description": "Indicates whether this load balancer supports UDP.", + "computed": true + }, + { + "name": "resource_group_name", "type": "TypeString", + "description": "The resource group name in which resource is provisioned", "computed": true }, { @@ -124753,14 +127853,9 @@ "computed": true }, { - "name": "resource_group_name", - "type": "TypeString", - "description": "The resource group name in which resource is provisioned", - "computed": true - }, - { - "name": "version", + "name": "resource_controller_url", "type": "TypeString", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", "computed": true }, { @@ -124770,64 +127865,92 @@ "computed": true }, { - "name": "status", - "type": "TypeString", - "computed": true - }, - { - "name": "security_group_supported", - "type": "TypeBool", - "description": "Security Group Supported for this Load Balancer", - "computed": true + "name": "dns", + "type": "TypeList", + "description": "The DNS configuration for this load balancer.", + "optional": true, + "elem": { + "instance_crn": { + "name": "instance_crn", + "type": "TypeString", + "description": "The CRN for this DNS instance", + "required": true + }, + "zone_id": { + "name": "zone_id", + "type": "TypeString", + "description": "The unique identifier of the DNS zone.", + "required": true + } + }, + "max_items": 1, + "min_items": 1 }, { - "name": "profile", + "name": "crn", "type": "TypeString", - "description": "The profile to use for this load balancer.", - "immutable": true, - "options": "network-fixed", - "optional": true, + "description": "The CRN for this Load Balancer", + "cloud_data_type": "crn", "computed": true }, { - "name": "tags", - "type": "TypeSet", - "min_length": 1, - "max_length": 128, - "matches": "^[A-Za-z0-9:_ .-]+$", - "optional": true, + "name": "public_ips", + "type": "TypeList", "computed": true, "elem": { "type": "TypeString" } }, { - "name": "access_tags", + "name": "subnets", "type": "TypeSet", - "description": "List of access management tags", - "optional": true, - "computed": true, + "description": "Load Balancer subnets list", + "required": true, "elem": { "type": "TypeString" - } - } - ], - "ibm_is_lb_listener": [ + }, + "max_items": 15, + "min_items": 1 + }, { - "name": "certificate_instance", + "name": "version", "type": "TypeString", - "description": "certificate instance for the Loadbalancer", - "optional": true + "computed": true }, { - "name": "https_redirect_uri", + "name": "name", "type": "TypeString", - "description": "Target URI where traffic will be redirected", + "description": "Load Balancer name", + "required": true, + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" + }, + { + "name": "operating_status", + "type": "TypeString", + "computed": true + }, + { + "name": "logging", + "type": "TypeBool", + "description": "Logging of Load Balancer", + "default_value": false, "optional": true + } + ], + "ibm_is_lb_listener": [ + { + "name": "lb", + "type": "TypeString", + "description": "Loadbalancer listener ID", + "immutable": true, + "required": true }, { - "name": "listener_id", + "name": "status", "type": "TypeString", + "description": "Loadbalancer listener status", "computed": true }, { @@ -124845,11 +127968,10 @@ "computed": true }, { - "name": "protocol", + "name": "certificate_instance", "type": "TypeString", - "description": "Loadbalancer protocol", - "required": true, - "options": "https, http, tcp, udp" + "description": "certificate instance for the Loadbalancer", + "optional": true }, { "name": "https_redirect_status_code", @@ -124858,11 +127980,37 @@ "optional": true }, { - "name": "https_redirect_listener", + "name": "default_pool", "type": "TypeString", - "description": "ID of the listener that will be set as http redirect target", + "description": "Loadbalancer default pool info", + "optional": true, + "computed": true + }, + { + "name": "protocol", + "type": "TypeString", + "description": "Loadbalancer protocol", + "required": true, + "options": "https, http, tcp, udp" + }, + { + "name": "accept_proxy_protocol", + "type": "TypeBool", + "description": "Listener will forward proxy protocol", + "optional": true, + "computed": true + }, + { + "name": "https_redirect_uri", + "type": "TypeString", + "description": "Target URI where traffic will be redirected", "optional": true }, + { + "name": "listener_id", + "type": "TypeString", + "computed": true + }, { "name": "related_crn", "type": "TypeString", @@ -124886,31 +128034,10 @@ "computed": true }, { - "name": "accept_proxy_protocol", - "type": "TypeBool", - "description": "Listener will forward proxy protocol", - "optional": true, - "computed": true - }, - { - "name": "status", - "type": "TypeString", - "description": "Loadbalancer listener status", - "computed": true - }, - { - "name": "default_pool", - "type": "TypeString", - "description": "Loadbalancer default pool info", - "optional": true, - "computed": true - }, - { - "name": "lb", + "name": "https_redirect_listener", "type": "TypeString", - "description": "Loadbalancer listener ID", - "immutable": true, - "required": true + "description": "ID of the listener that will be set as http redirect target", + "optional": true }, { "name": "connection_limit", @@ -124921,24 +128048,17 @@ ], "ibm_is_lb_listener_policy": [ { - "name": "listener", + "name": "provisioning_status", "type": "TypeString", - "description": "Listener ID", - "immutable": true, - "required": true + "description": "Listner Policy status", + "computed": true }, { - "name": "target_https_redirect_listener", + "name": "target_https_redirect_uri", "type": "TypeString", - "description": "ID of the listener that will be set as http redirect target", + "description": "Target URI where traffic will be redirected", "optional": true }, - { - "name": "related_crn", - "type": "TypeString", - "description": "The crn of the LB resource", - "computed": true - }, { "name": "name", "type": "TypeString", @@ -124989,40 +128109,43 @@ } }, { - "name": "provisioning_status", + "name": "policy_id", "type": "TypeString", - "description": "Listner Policy status", + "description": "Listener Policy ID", "computed": true }, { - "name": "target_https_redirect_uri", + "name": "listener", "type": "TypeString", - "description": "Target URI where traffic will be redirected", - "optional": true + "description": "Listener ID", + "immutable": true, + "required": true }, { - "name": "policy_id", + "name": "action", "type": "TypeString", - "description": "Listener Policy ID", - "computed": true + "description": "Policy Action", + "immutable": true, + "required": true, + "options": "forward, redirect, reject, https_redirect" }, { - "name": "target_http_status_code", + "name": "priority", "type": "TypeInt", - "description": "Listener Policy target HTTPS Status code.", - "optional": true + "description": "Listener Policy Priority", + "required": true }, { - "name": "target_id", + "name": "target_url", "type": "TypeString", - "description": "Listener Policy Target ID", + "description": "Policy Target URL", "optional": true }, { - "name": "target_url", + "name": "related_crn", "type": "TypeString", - "description": "Policy Target URL", - "optional": true + "description": "The crn of the LB resource", + "computed": true }, { "name": "lb", @@ -125031,6 +128154,18 @@ "immutable": true, "required": true }, + { + "name": "target_https_redirect_listener", + "type": "TypeString", + "description": "ID of the listener that will be set as http redirect target", + "optional": true + }, + { + "name": "target_http_status_code", + "type": "TypeInt", + "description": "Listener Policy target HTTPS Status code.", + "optional": true + }, { "name": "target_https_redirect_status_code", "type": "TypeInt", @@ -125038,28 +128173,13 @@ "optional": true }, { - "name": "action", + "name": "target_id", "type": "TypeString", - "description": "Policy Action", - "immutable": true, - "required": true, - "options": "forward, redirect, reject, https_redirect" - }, - { - "name": "priority", - "type": "TypeInt", - "description": "Listener Policy Priority", - "required": true + "description": "Listener Policy Target ID", + "optional": true } ], "ibm_is_lb_listener_policy_rule": [ - { - "name": "lb", - "type": "TypeString", - "description": "Loadbalancer ID", - "immutable": true, - "required": true - }, { "name": "policy", "type": "TypeString", @@ -125075,9 +128195,13 @@ "options": "header, hostname, path, body, query" }, { - "name": "related_crn", + "name": "field", + "type": "TypeString", + "optional": true + }, + { + "name": "rule", "type": "TypeString", - "description": "The crn of the LB resource", "computed": true }, { @@ -125085,6 +128209,13 @@ "type": "TypeString", "computed": true }, + { + "name": "lb", + "type": "TypeString", + "description": "Loadbalancer ID", + "immutable": true, + "required": true + }, { "name": "listener", "type": "TypeString", @@ -125106,13 +128237,9 @@ "required": true }, { - "name": "field", - "type": "TypeString", - "optional": true - }, - { - "name": "rule", + "name": "related_crn", "type": "TypeString", + "description": "The crn of the LB resource", "computed": true } ], @@ -125123,6 +128250,28 @@ "description": "The LB Pool id", "computed": true }, + { + "name": "related_crn", + "type": "TypeString", + "description": "The crn of the LB resource", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Load Balancer Pool name", + "required": true, + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" + }, + { + "name": "algorithm", + "type": "TypeString", + "description": "Load Balancer Pool algorithm", + "required": true, + "options": "round_robin, weighted_round_robin, least_connections" + }, { "name": "protocol", "type": "TypeString", @@ -125131,11 +128280,19 @@ "options": "http, tcp, https, udp" }, { - "name": "health_delay", + "name": "health_timeout", "type": "TypeInt", - "description": "Load Blancer health delay time period", + "description": "Load Balancer health timeout interval", "required": true }, + { + "name": "proxy_protocol", + "type": "TypeString", + "description": "PROXY protocol setting for this pool", + "options": "disabled, v1, v2", + "optional": true, + "computed": true + }, { "name": "health_monitor_url", "type": "TypeString", @@ -125153,18 +128310,16 @@ "optional": true }, { - "name": "name", + "name": "lb", "type": "TypeString", - "description": "Load Balancer Pool name", - "required": true, - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" + "description": "Load Balancer ID", + "immutable": true, + "required": true }, { - "name": "health_timeout", + "name": "health_delay", "type": "TypeInt", - "description": "Load Balancer health timeout interval", + "description": "Load Blancer health delay time period", "required": true }, { @@ -125174,6 +128329,12 @@ "required": true, "options": "http, tcp, https, udp" }, + { + "name": "health_retries", + "type": "TypeInt", + "description": "Load Balancer health retry count", + "required": true + }, { "name": "health_monitor_port", "type": "TypeInt", @@ -125181,25 +128342,6 @@ "optional": true, "computed": true }, - { - "name": "provisioning_status", - "type": "TypeString", - "description": "Status of the LB Pool", - "computed": true - }, - { - "name": "algorithm", - "type": "TypeString", - "description": "Load Balancer Pool algorithm", - "required": true, - "options": "round_robin, weighted_round_robin, least_connections" - }, - { - "name": "health_retries", - "type": "TypeInt", - "description": "Load Balancer health retry count", - "required": true - }, { "name": "session_persistence_type", "type": "TypeString", @@ -125214,13 +128356,13 @@ "computed": true }, { - "name": "proxy_protocol", + "name": "provisioning_status", "type": "TypeString", - "description": "PROXY protocol setting for this pool", - "options": "disabled, v1, v2", - "optional": true, + "description": "Status of the LB Pool", "computed": true - }, + } + ], + "ibm_is_lb_pool_member": [ { "name": "related_crn", "type": "TypeString", @@ -125228,18 +128370,9 @@ "computed": true }, { - "name": "lb", - "type": "TypeString", - "description": "Load Balancer ID", - "immutable": true, - "required": true - } - ], - "ibm_is_lb_pool_member": [ - { - "name": "lb", + "name": "pool", "type": "TypeString", - "description": "Load balancer ID", + "description": "Loadblancer Poold ID", "immutable": true, "required": true }, @@ -125256,13 +128389,6 @@ "optional": true, "computed": true }, - { - "name": "pool", - "type": "TypeString", - "description": "Loadblancer Poold ID", - "immutable": true, - "required": true - }, { "name": "target_id", "type": "TypeString", @@ -125270,6 +128396,19 @@ "optional": true, "computed": true }, + { + "name": "health", + "type": "TypeString", + "description": "LB Pool member health", + "computed": true + }, + { + "name": "lb", + "type": "TypeString", + "description": "Load balancer ID", + "immutable": true, + "required": true + }, { "name": "weight", "type": "TypeInt", @@ -125285,78 +128424,14 @@ "description": "Load balancer Pool member provisioning status", "computed": true }, - { - "name": "health", - "type": "TypeString", - "description": "LB Pool member health", - "computed": true - }, { "name": "href", "type": "TypeString", "description": "LB pool member Href value", "computed": true - }, - { - "name": "related_crn", - "type": "TypeString", - "description": "The crn of the LB resource", - "computed": true } ], "ibm_is_network_acl": [ - { - "name": "crn", - "type": "TypeString", - "description": "The crn of the resource", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "name", - "type": "TypeString", - "description": "Network ACL name", - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", - "optional": true, - "computed": true - }, - { - "name": "access_tags", - "type": "TypeSet", - "description": "List of access management tags", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "tags", - "type": "TypeSet", - "description": "List of tags", - "min_length": 1, - "max_length": 128, - "matches": "^[A-Za-z0-9:_ .-]+$", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "resource_controller_url", - "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", - "computed": true - }, - { - "name": "resource_name", - "type": "TypeString", - "description": "The name of the resource", - "computed": true - }, { "name": "resource_crn", "type": "TypeString", @@ -125508,75 +128583,70 @@ "optional": true }, { - "name": "resource_group", - "type": "TypeString", - "description": "Resource group ID for the network ACL", - "cloud_data_type": "resource_group", - "immutable": true, + "name": "access_tags", + "type": "TypeSet", + "description": "List of access management tags", "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "resource_controller_url", + "type": "TypeString", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", "computed": true - } - ], - "ibm_is_network_acl_rule": [ + }, { - "name": "action", + "name": "crn", "type": "TypeString", - "description": "Whether to allow or deny matching traffic", - "required": true, - "options": "allow, deny" + "description": "The crn of the resource", + "cloud_data_type": "crn", + "computed": true }, { - "name": "destination", + "name": "resource_name", "type": "TypeString", - "description": "The destination CIDR block. The CIDR block 0.0.0.0/0 applies to all addresses.", - "required": true + "description": "The name of the resource", + "computed": true }, { - "name": "direction", + "name": "name", "type": "TypeString", - "description": "Direction of traffic to enforce, either inbound or outbound", - "required": true, - "options": "inbound, outbound" + "description": "Network ACL name", + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", + "optional": true, + "computed": true }, { - "name": "tcp", - "type": "TypeList", + "name": "resource_group", + "type": "TypeString", + "description": "Resource group ID for the network ACL", + "cloud_data_type": "resource_group", "immutable": true, "optional": true, - "elem": { - "port_max": { - "name": "port_max", - "type": "TypeInt", - "description": "The highest port in the range of ports to be matched", - "default_value": 65535, - "optional": true - }, - "port_min": { - "name": "port_min", - "type": "TypeInt", - "description": "The lowest port in the range of ports to be matched", - "default_value": 1, - "optional": true - }, - "source_port_max": { - "name": "source_port_max", - "type": "TypeInt", - "description": "The highest port in the range of ports to be matched", - "default_value": 65535, - "optional": true - }, - "source_port_min": { - "name": "source_port_min", - "type": "TypeInt", - "description": "The lowest port in the range of ports to be matched", - "default_value": 1, - "optional": true - } - }, - "max_items": 1 + "computed": true }, { - "name": "udp", + "name": "tags", + "type": "TypeSet", + "description": "List of tags", + "min_length": 1, + "max_length": 128, + "matches": "^[A-Za-z0-9:_ .-]+$", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + } + ], + "ibm_is_network_acl_rule": [ + { + "name": "tcp", "type": "TypeList", "immutable": true, "optional": true, @@ -125613,19 +128683,52 @@ "max_items": 1 }, { - "name": "protocol", + "name": "source", "type": "TypeString", - "description": "The protocol of the rule.", - "computed": true + "description": "The source CIDR block. The CIDR block 0.0.0.0/0 applies to all addresses.", + "required": true }, { - "name": "name", + "name": "destination", "type": "TypeString", - "description": "The user-defined name for this rule. Names must be unique within the network ACL the rule resides in. If unspecified, the name will be a hyphenated list of randomly-selected words.", + "description": "The destination CIDR block. The CIDR block 0.0.0.0/0 applies to all addresses.", + "required": true + }, + { + "name": "network_acl", + "type": "TypeString", + "description": "Network ACL id", + "immutable": true, + "required": true, "min_length": 1, "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", - "optional": true + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" + }, + { + "name": "href", + "type": "TypeString", + "description": "The url of the rule.", + "computed": true + }, + { + "name": "action", + "type": "TypeString", + "description": "Whether to allow or deny matching traffic", + "required": true, + "options": "allow, deny" + }, + { + "name": "ip_version", + "type": "TypeString", + "description": "The IP version for this rule.", + "computed": true + }, + { + "name": "direction", + "type": "TypeString", + "description": "Direction of traffic to enforce, either inbound or outbound", + "required": true, + "options": "inbound, outbound" }, { "name": "icmp", @@ -125649,38 +128752,62 @@ "max_items": 1 }, { - "name": "network_acl", - "type": "TypeString", - "description": "Network ACL id", - "immutable": true, - "required": true, - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" - }, - { - "name": "source", + "name": "rule_id", "type": "TypeString", - "description": "The source CIDR block. The CIDR block 0.0.0.0/0 applies to all addresses.", - "required": true + "description": "The network acl rule id.", + "computed": true }, { - "name": "href", + "name": "protocol", "type": "TypeString", - "description": "The url of the rule.", + "description": "The protocol of the rule.", "computed": true }, { - "name": "ip_version", + "name": "name", "type": "TypeString", - "description": "The IP version for this rule.", - "computed": true + "description": "The user-defined name for this rule. Names must be unique within the network ACL the rule resides in. If unspecified, the name will be a hyphenated list of randomly-selected words.", + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", + "optional": true }, { - "name": "rule_id", - "type": "TypeString", - "description": "The network acl rule id.", - "computed": true + "name": "udp", + "type": "TypeList", + "immutable": true, + "optional": true, + "elem": { + "port_max": { + "name": "port_max", + "type": "TypeInt", + "description": "The highest port in the range of ports to be matched", + "default_value": 65535, + "optional": true + }, + "port_min": { + "name": "port_min", + "type": "TypeInt", + "description": "The lowest port in the range of ports to be matched", + "default_value": 1, + "optional": true + }, + "source_port_max": { + "name": "source_port_max", + "type": "TypeInt", + "description": "The highest port in the range of ports to be matched", + "default_value": 65535, + "optional": true + }, + "source_port_min": { + "name": "source_port_min", + "type": "TypeInt", + "description": "The lowest port in the range of ports to be matched", + "default_value": 1, + "optional": true + } + }, + "max_items": 1 }, { "name": "before", @@ -125691,6 +128818,15 @@ } ], "ibm_is_placement_group": [ + { + "name": "resource_group", + "type": "TypeString", + "description": "The unique identifier of the resource group to use. If unspecified, the account's [default resourcegroup](https://cloud.ibm.com/apidocs/resource-manager#introduction) is used.", + "cloud_data_type": "resource_group", + "immutable": true, + "optional": true, + "computed": true + }, { "name": "created_at", "type": "TypeString", @@ -125705,16 +128841,18 @@ "computed": true }, { - "name": "href", + "name": "lifecycle_state", "type": "TypeString", - "description": "The URL for this placement group.", + "description": "The lifecycle state of the placement group.", "computed": true }, { - "name": "lifecycle_state", + "name": "strategy", "type": "TypeString", - "description": "The lifecycle state of the placement group.", - "computed": true + "description": "The strategy for this placement group- `host_spread`: place on different compute hosts- `power_spread`: place on compute hosts that use different power sourcesThe enumerated values for this property may expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the placement group on which the unexpected strategy was encountered.", + "immutable": true, + "required": true, + "options": "host_spread, power_spread" }, { "name": "name", @@ -125752,20 +128890,9 @@ } }, { - "name": "strategy", - "type": "TypeString", - "description": "The strategy for this placement group- `host_spread`: place on different compute hosts- `power_spread`: place on compute hosts that use different power sourcesThe enumerated values for this property may expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the placement group on which the unexpected strategy was encountered.", - "immutable": true, - "required": true, - "options": "host_spread, power_spread" - }, - { - "name": "resource_group", + "name": "href", "type": "TypeString", - "description": "The unique identifier of the resource group to use. If unspecified, the account's [default resourcegroup](https://cloud.ibm.com/apidocs/resource-manager#introduction) is used.", - "cloud_data_type": "resource_group", - "immutable": true, - "optional": true, + "description": "The URL for this placement group.", "computed": true }, { @@ -125792,20 +128919,37 @@ "computed": true }, { - "name": "resource_group", + "name": "resource_name", "type": "TypeString", - "description": "Public gateway resource group info", - "cloud_data_type": "resource_group", - "immutable": true, + "description": "The name of the resource", + "computed": true + }, + { + "name": "resource_crn", + "type": "TypeString", + "description": "The crn of the resource", + "computed": true + }, + { + "name": "resource_group_name", + "type": "TypeString", + "description": "The resource group name in which resource is provisioned", + "computed": true + }, + { + "name": "floating_ip", + "type": "TypeMap", "optional": true, "computed": true }, { - "name": "vpc", + "name": "resource_group", "type": "TypeString", - "description": "Public gateway VPC info", + "description": "Public gateway resource group info", + "cloud_data_type": "resource_group", "immutable": true, - "required": true + "optional": true, + "computed": true }, { "name": "zone", @@ -125821,16 +128965,11 @@ "computed": true }, { - "name": "resource_name", - "type": "TypeString", - "description": "The name of the resource", - "computed": true - }, - { - "name": "resource_crn", + "name": "vpc", "type": "TypeString", - "description": "The crn of the resource", - "computed": true + "description": "Public gateway VPC info", + "immutable": true, + "required": true }, { "name": "crn", @@ -125845,12 +128984,6 @@ "description": "The status of the resource", "computed": true }, - { - "name": "floating_ip", - "type": "TypeMap", - "optional": true, - "computed": true - }, { "name": "tags", "type": "TypeSet", @@ -125873,15 +129006,38 @@ "elem": { "type": "TypeString" } + } + ], + "ibm_is_security_group": [ + { + "name": "resource_crn", + "type": "TypeString", + "description": "The crn of the resource", + "computed": true }, { - "name": "resource_group_name", + "name": "name", "type": "TypeString", - "description": "The resource group name in which resource is provisioned", + "description": "Security group name", + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", + "optional": true, "computed": true - } - ], - "ibm_is_security_group": [ + }, + { + "name": "tags", + "type": "TypeSet", + "description": "List of tags", + "min_length": 1, + "max_length": 128, + "matches": "^[A-Za-z0-9:_ .-]+$", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, { "name": "rules", "type": "TypeList", @@ -125933,6 +129089,15 @@ } } }, + { + "name": "resource_group", + "type": "TypeString", + "description": "Resource Group ID", + "cloud_data_type": "resource_group", + "immutable": true, + "optional": true, + "computed": true + }, { "name": "resource_name", "type": "TypeString", @@ -125945,19 +129110,6 @@ "description": "The resource group name in which resource is provisioned", "computed": true }, - { - "name": "tags", - "type": "TypeSet", - "description": "List of tags", - "min_length": 1, - "max_length": 128, - "matches": "^[A-Za-z0-9:_ .-]+$", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, { "name": "vpc", "type": "TypeString", @@ -125982,44 +129134,50 @@ "cloud_data_type": "crn", "computed": true }, - { - "name": "resource_group", - "type": "TypeString", - "description": "Resource Group ID", - "cloud_data_type": "resource_group", - "immutable": true, - "optional": true, - "computed": true - }, { "name": "resource_controller_url", "type": "TypeString", "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", "computed": true - }, + } + ], + "ibm_is_security_group_rule": [ { - "name": "resource_crn", + "name": "direction", "type": "TypeString", - "description": "The crn of the resource", - "computed": true + "description": "Direction of traffic to enforce, either inbound or outbound", + "required": true, + "options": "inbound, outbound" }, { - "name": "name", + "name": "remote", "type": "TypeString", - "description": "Security group name", - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", + "description": "Security group id: an IP address, a CIDR block, or a single security group identifier", "optional": true, "computed": true - } - ], - "ibm_is_security_group_rule": [ + }, { - "name": "related_crn", - "type": "TypeString", - "description": "The crn of the Security Group", - "computed": true + "name": "tcp", + "type": "TypeList", + "description": "protocol=tcp", + "immutable": true, + "optional": true, + "elem": { + "port_max": { + "name": "port_max", + "type": "TypeInt", + "default_value": 65535, + "optional": true + }, + "port_min": { + "name": "port_min", + "type": "TypeInt", + "default_value": 1, + "optional": true + } + }, + "max_items": 1, + "min_items": 1 }, { "name": "protocol", @@ -126041,18 +129199,12 @@ "computed": true }, { - "name": "direction", - "type": "TypeString", - "description": "Direction of traffic to enforce, either inbound or outbound", - "required": true, - "options": "inbound, outbound" - }, - { - "name": "remote", + "name": "ip_version", "type": "TypeString", - "description": "Security group id: an IP address, a CIDR block, or a single security group identifier", - "optional": true, - "computed": true + "description": "IP version: ipv4", + "default_value": "ipv4", + "options": "ipv4", + "optional": true }, { "name": "icmp", @@ -126099,35 +129251,10 @@ "min_items": 1 }, { - "name": "ip_version", + "name": "related_crn", "type": "TypeString", - "description": "IP version: ipv4", - "default_value": "ipv4", - "options": "ipv4", - "optional": true - }, - { - "name": "tcp", - "type": "TypeList", - "description": "protocol=tcp", - "immutable": true, - "optional": true, - "elem": { - "port_max": { - "name": "port_max", - "type": "TypeInt", - "default_value": 65535, - "optional": true - }, - "port_min": { - "name": "port_min", - "type": "TypeInt", - "default_value": 1, - "optional": true - } - }, - "max_items": 1, - "min_items": 1 + "description": "The crn of the Security Group", + "computed": true } ], "ibm_is_security_group_target": [ @@ -126173,167 +129300,44 @@ ], "ibm_is_share": [ { - "name": "encryption_key", - "type": "TypeString", - "description": "The CRN of the key to use for encrypting this file share.If no encryption key is provided, the share will not be encrypted.", - "immutable": true, - "optional": true, - "computed": true - }, - { - "name": "replication_status_reasons", - "type": "TypeList", - "description": "The reasons for the current replication status (if any).The enumerated reason code values for this property will expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the resource on which the unexpected reason code was encountered.", - "computed": true, - "elem": { - "code": { - "name": "code", - "type": "TypeString", - "description": "A snake case string succinctly identifying the status reason.", - "required": true - }, - "message": { - "name": "message", - "type": "TypeString", - "description": "An explanation of the status reason.", - "required": true - }, - "more_info": { - "name": "more_info", - "type": "TypeString", - "description": "Link to documentation about this status reason.", - "optional": true - } - } - }, - { - "name": "lifecycle_state", - "type": "TypeString", - "description": "The lifecycle state of the file share.", - "computed": true - }, - { - "name": "resource_group", - "type": "TypeString", - "description": "The unique identifier of the resource group to use. If unspecified, the account's [default resourcegroup](https://cloud.ibm.com/apidocs/resource-manager#introduction) is used.", - "cloud_data_type": "resource_group", - "immutable": true, + "name": "access_tags", + "type": "TypeSet", + "description": "List of access management tags", "optional": true, - "computed": true - }, - { - "name": "latest_job", - "type": "TypeList", - "description": "The latest job associated with this file share.This property will be absent if no jobs have been created for this file share.", "computed": true, "elem": { - "status": { - "name": "status", - "type": "TypeString", - "description": "The status of the file share job.The enumerated values for this property will expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the file share job on which the unexpected property value was encountered.* `cancelled`: This job has been cancelled.* `failed`: This job has failed.* `queued`: This job is queued.* `running`: This job is running.* `succeeded`: This job completed successfully.", - "computed": true - }, - "status_reasons": { - "name": "status_reasons", - "type": "TypeList", - "description": "The reasons for the file share job status (if any).The enumerated reason code values for this property will expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the resource on which the unexpected reason code was encountered.", - "computed": true, - "elem": { - "code": { - "name": "code", - "type": "TypeString", - "description": "A snake case string succinctly identifying the status reason.", - "computed": true - }, - "message": { - "name": "message", - "type": "TypeString", - "description": "An explanation of the status reason.", - "computed": true - }, - "more_info": { - "name": "more_info", - "type": "TypeString", - "description": "Link to documentation about this status reason.", - "computed": true - } - } - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "The type of the file share job.The enumerated values for this property will expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the file share job on which the unexpected property value was encountered.* `replication_failover`: This is a share replication failover job.* `replication_init`: This is a share replication is initialization job.* `replication_split`: This is a share replication split job.* `replication_sync`: This is a share replication synchronization job.", - "computed": true - } + "type": "TypeString" } }, { - "name": "zone", - "type": "TypeString", - "description": "The globally unique name of the zone this file share will reside in.", - "immutable": true, - "required": true - }, - { - "name": "encryption", + "name": "crn", "type": "TypeString", - "description": "The type of encryption used for this file share.", + "description": "The CRN for this share.", + "cloud_data_type": "crn", "computed": true }, { "name": "href", - "type": "TypeString", - "description": "The URL for this share.", - "computed": true - }, - { - "name": "initial_owner", - "type": "TypeList", - "description": "The owner assigned to the file share at creation.", - "immutable": true, - "optional": true, - "elem": { - "gid": { - "name": "gid", - "type": "TypeInt", - "description": "The initial group identifier for the file share.", - "immutable": true, - "optional": true - }, - "uid": { - "name": "uid", - "type": "TypeInt", - "description": "The initial user identifier for the file share.", - "immutable": true, - "optional": true - } - }, - "max_items": 1, - "min_items": 1 - }, - { - "name": "size", - "type": "TypeInt", - "description": "The size of the file share rounded up to the next gigabyte.", - "min_value": "10", - "max_value": "32000", - "optional": true, + "type": "TypeString", + "description": "The URL for this share.", "computed": true }, { - "name": "name", + "name": "encryption_key", "type": "TypeString", - "description": "The unique user-defined name for this file share. If unspecified, the name will be a hyphenated list of randomly-selected words.", - "required": true, - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9]|[0-9][-a-z0-9]*([a-z]|[-a-z][-a-z0-9]*[a-z0-9]))$" + "description": "The CRN of the key to use for encrypting this file share.If no encryption key is provided, the share will not be encrypted.", + "immutable": true, + "optional": true, + "computed": true }, { - "name": "profile", - "type": "TypeString", - "description": "The globally unique name for this share profile.", - "required": true + "name": "iops", + "type": "TypeInt", + "description": "The maximum input/output operation performance bandwidth per second for the file share.", + "min_value": "100", + "max_value": "96000", + "optional": true, + "computed": true }, { "name": "replication_role", @@ -126342,16 +129346,43 @@ "computed": true }, { - "name": "created_at", + "name": "lifecycle_state", "type": "TypeString", - "description": "The date and time that the file share is created.", + "description": "The lifecycle state of the file share.", "computed": true }, { - "name": "replication_status", + "name": "zone", "type": "TypeString", - "description": "The replication status of the file share.* `initializing`: This share is initializing replication.* `active`: This share is actively participating in replication.* `failover_pending`: This share is performing a replication failover.* `split_pending`: This share is performing a replication split.* `none`: This share is not participating in replication.* `degraded`: This share's replication sync is degraded.* `sync_pending`: This share is performing a replication sync.", - "computed": true + "description": "The globally unique name of the zone this file share will reside in.", + "immutable": true, + "required": true + }, + { + "name": "replication_status_reasons", + "type": "TypeList", + "description": "The reasons for the current replication status (if any).The enumerated reason code values for this property will expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the resource on which the unexpected reason code was encountered.", + "computed": true, + "elem": { + "code": { + "name": "code", + "type": "TypeString", + "description": "A snake case string succinctly identifying the status reason.", + "required": true + }, + "message": { + "name": "message", + "type": "TypeString", + "description": "An explanation of the status reason.", + "required": true + }, + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about this status reason.", + "optional": true + } + } }, { "name": "last_sync_at", @@ -126360,9 +129391,26 @@ "computed": true }, { - "name": "access_control_mode", + "name": "created_at", "type": "TypeString", - "description": "The access control mode for the share:", + "description": "The date and time that the file share is created.", + "computed": true + }, + { + "name": "resource_group", + "type": "TypeString", + "description": "The unique identifier of the resource group to use. If unspecified, the account's [default resourcegroup](https://cloud.ibm.com/apidocs/resource-manager#introduction) is used.", + "cloud_data_type": "resource_group", + "immutable": true, + "optional": true, + "computed": true + }, + { + "name": "size", + "type": "TypeInt", + "description": "The size of the file share rounded up to the next gigabyte.", + "min_value": "10", + "max_value": "32000", "optional": true, "computed": true }, @@ -126525,14 +129573,39 @@ } }, { - "name": "iops", - "type": "TypeInt", - "description": "The maximum input/output operation performance bandwidth per second for the file share.", - "min_value": "100", - "max_value": "96000", + "name": "name", + "type": "TypeString", + "description": "The unique user-defined name for this file share. If unspecified, the name will be a hyphenated list of randomly-selected words.", + "required": true, + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9]|[0-9][-a-z0-9]*([a-z]|[-a-z][-a-z0-9]*[a-z0-9]))$" + }, + { + "name": "replication_cron_spec", + "type": "TypeString", + "description": "The cron specification for the file share replication schedule.Replication of a share can be scheduled to occur at most once per hour.", "optional": true, "computed": true }, + { + "name": "encryption", + "type": "TypeString", + "description": "The type of encryption used for this file share.", + "computed": true + }, + { + "name": "resource_type", + "type": "TypeString", + "description": "The type of resource referenced.", + "computed": true + }, + { + "name": "profile", + "type": "TypeString", + "description": "The globally unique name for this share profile.", + "required": true + }, { "name": "replica_share", "type": "TypeList", @@ -126802,18 +129875,56 @@ "max_items": 1 }, { - "name": "source_share", + "name": "replication_status", "type": "TypeString", - "description": "The ID of the source file share for this replica file share. The specified file share must not already have a replica, and must not be a replica.", - "immutable": true, - "optional": true + "description": "The replication status of the file share.* `initializing`: This share is initializing replication.* `active`: This share is actively participating in replication.* `failover_pending`: This share is performing a replication failover.* `split_pending`: This share is performing a replication split.* `none`: This share is not participating in replication.* `degraded`: This share's replication sync is degraded.* `sync_pending`: This share is performing a replication sync.", + "computed": true }, { - "name": "replication_cron_spec", - "type": "TypeString", - "description": "The cron specification for the file share replication schedule.Replication of a share can be scheduled to occur at most once per hour.", - "optional": true, - "computed": true + "name": "latest_job", + "type": "TypeList", + "description": "The latest job associated with this file share.This property will be absent if no jobs have been created for this file share.", + "computed": true, + "elem": { + "status": { + "name": "status", + "type": "TypeString", + "description": "The status of the file share job.The enumerated values for this property will expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the file share job on which the unexpected property value was encountered.* `cancelled`: This job has been cancelled.* `failed`: This job has failed.* `queued`: This job is queued.* `running`: This job is running.* `succeeded`: This job completed successfully.", + "computed": true + }, + "status_reasons": { + "name": "status_reasons", + "type": "TypeList", + "description": "The reasons for the file share job status (if any).The enumerated reason code values for this property will expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the resource on which the unexpected reason code was encountered.", + "computed": true, + "elem": { + "code": { + "name": "code", + "type": "TypeString", + "description": "A snake case string succinctly identifying the status reason.", + "computed": true + }, + "message": { + "name": "message", + "type": "TypeString", + "description": "An explanation of the status reason.", + "computed": true + }, + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about this status reason.", + "computed": true + } + } + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "The type of the file share job.The enumerated values for this property will expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the file share job on which the unexpected property value was encountered.* `replication_failover`: This is a share replication failover job.* `replication_init`: This is a share replication is initialization job.* `replication_split`: This is a share replication split job.* `replication_sync`: This is a share replication synchronization job.", + "computed": true + } + } }, { "name": "tags", @@ -126829,30 +129940,93 @@ } }, { - "name": "access_tags", - "type": "TypeSet", - "description": "List of access management tags", + "name": "initial_owner", + "type": "TypeList", + "description": "The owner assigned to the file share at creation.", + "immutable": true, "optional": true, - "computed": true, "elem": { - "type": "TypeString" - } + "gid": { + "name": "gid", + "type": "TypeInt", + "description": "The initial group identifier for the file share.", + "immutable": true, + "optional": true + }, + "uid": { + "name": "uid", + "type": "TypeInt", + "description": "The initial user identifier for the file share.", + "immutable": true, + "optional": true + } + }, + "max_items": 1, + "min_items": 1 }, { - "name": "crn", + "name": "access_control_mode", "type": "TypeString", - "description": "The CRN for this share.", - "cloud_data_type": "crn", + "description": "The access control mode for the share:", + "optional": true, "computed": true }, { - "name": "resource_type", + "name": "source_share", "type": "TypeString", - "description": "The type of resource referenced.", - "computed": true + "description": "The ID of the source file share for this replica file share. The specified file share must not already have a replica, and must not be a replica.", + "immutable": true, + "optional": true } ], "ibm_is_share_mount_target": [ + { + "name": "resource_type", + "type": "TypeString", + "description": "The type of resource referenced.", + "computed": true + }, + { + "name": "share", + "type": "TypeString", + "description": "The file share identifier.", + "immutable": true, + "required": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The user-defined name for this share target. Names must be unique within the share the share target resides in. If unspecified, the name will be a hyphenated list of randomly-selected words.", + "required": true, + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9]|[0-9][-a-z0-9]*([a-z]|[-a-z][-a-z0-9]*[a-z0-9]))$" + }, + { + "name": "access_control_mode", + "type": "TypeString", + "description": "The access control mode for the share", + "computed": true + }, + { + "name": "vpc", + "type": "TypeString", + "description": "The unique identifier of the VPC in which instances can mount the file share using this share target.This property will be removed in a future release.The `subnet` property should be used instead.", + "optional": true, + "computed": true + }, + { + "name": "mount_target", + "type": "TypeString", + "description": "The unique identifier of this target", + "computed": true + }, + { + "name": "href", + "type": "TypeString", + "description": "The URL for this share target.", + "computed": true + }, { "name": "transit_encryption", "type": "TypeString", @@ -126977,31 +130151,12 @@ "max_items": 1, "min_items": 1 }, - { - "name": "vpc", - "type": "TypeString", - "description": "The unique identifier of the VPC in which instances can mount the file share using this share target.This property will be removed in a future release.The `subnet` property should be used instead.", - "optional": true, - "computed": true - }, - { - "name": "mount_target", - "type": "TypeString", - "description": "The unique identifier of this target", - "computed": true - }, { "name": "created_at", "type": "TypeString", "description": "The date and time that the share target was created.", "computed": true }, - { - "name": "href", - "type": "TypeString", - "description": "The URL for this share target.", - "computed": true - }, { "name": "lifecycle_state", "type": "TypeString", @@ -127013,37 +130168,17 @@ "type": "TypeString", "description": "The mount path for the share.The IP addresses used in the mount path are currently within the IBM services IP range, but are expected to change to be within one of the VPC's subnets in the future.", "computed": true - }, - { - "name": "share", - "type": "TypeString", - "description": "The file share identifier.", - "immutable": true, - "required": true - }, - { - "name": "name", - "type": "TypeString", - "description": "The user-defined name for this share target. Names must be unique within the share the share target resides in. If unspecified, the name will be a hyphenated list of randomly-selected words.", - "required": true, - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9]|[0-9][-a-z0-9]*([a-z]|[-a-z][-a-z0-9]*[a-z0-9]))$" - }, - { - "name": "access_control_mode", - "type": "TypeString", - "description": "The access control mode for the share", - "computed": true - }, - { - "name": "resource_type", - "type": "TypeString", - "description": "The type of resource referenced.", - "computed": true } ], "ibm_is_share_replica_operations": [ + { + "name": "timeout", + "type": "TypeInt", + "description": "The failover timeout in seconds", + "min_value": "300", + "max_value": "3600", + "optional": true + }, { "name": "split_share", "type": "TypeBool", @@ -127067,73 +130202,26 @@ "immutable": true, "options": "fail, split", "optional": true - }, - { - "name": "timeout", - "type": "TypeInt", - "description": "The failover timeout in seconds", - "min_value": "300", - "max_value": "3600", - "optional": true } ], "ibm_is_snapshot": [ { - "name": "backup_policy_plan", - "type": "TypeList", - "description": "If present, the backup policy plan which created this snapshot.", - "computed": true, - "elem": { - "deleted": { - "name": "deleted", - "type": "TypeList", - "description": "If present, this property indicates the referenced resource has been deleted and provides some supplementary information.", - "computed": true, - "elem": { - "more_info": { - "name": "more_info", - "type": "TypeString", - "description": "Link to documentation about deleted resources.", - "computed": true - } - } - }, - "href": { - "name": "href", - "type": "TypeString", - "description": "The URL for this backup policy plan.", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "The unique identifier for this backup policy plan.", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The unique user-defined name for this backup policy plan.", - "computed": true - }, - "resource_type": { - "name": "resource_type", - "type": "TypeString", - "description": "The type of resource referenced", - "computed": true - } - } + "name": "source_snapshot_crn", + "type": "TypeString", + "description": "Source Snapshot CRN", + "immutable": true, + "optional": true }, { - "name": "source_snapshot", + "name": "copies", "type": "TypeList", - "description": "If present, the source snapshot this snapshot was created from.", + "description": "The copies of this snapshot in other regions.", "computed": true, "elem": { "crn": { "name": "crn", "type": "TypeString", - "description": "The CRN of the source snapshot.", + "description": "The CRN for the copied snapshot.", "computed": true }, "deleted": { @@ -127153,19 +130241,19 @@ "href": { "name": "href", "type": "TypeString", - "description": "The URL for the source snapshot.", + "description": "The URL for the copied snapshot.", "computed": true }, "id": { "name": "id", "type": "TypeString", - "description": "The unique identifier for the source snapshot.", + "description": "The unique identifier for the copied snapshot.", "computed": true }, "name": { "name": "name", "type": "TypeString", - "description": "The name for the source snapshot. The name is unique across all snapshots in the source snapshot's native region.", + "description": "The name for the copied snapshot. The name is unique across all snapshots in the copied snapshot's native region.", "computed": true }, "remote": { @@ -127196,12 +130284,6 @@ } } }, - { - "name": "bootable", - "type": "TypeBool", - "description": "Indicates if a boot volume attachment can be created with a volume created from this snapshot", - "computed": true - }, { "name": "crn", "type": "TypeString", @@ -127210,63 +130292,80 @@ "computed": true }, { - "name": "minimum_capacity", - "type": "TypeInt", - "description": "Minimum capacity of the snapshot", - "computed": true - }, - { - "name": "encryption_key", - "type": "TypeString", - "description": "A reference to the root key used to wrap the data encryption key for the source volume.", - "optional": true, - "computed": true - }, - { - "name": "size", - "type": "TypeInt", - "description": "The size of the snapshot", - "computed": true - }, - { - "name": "resource_group", + "name": "href", "type": "TypeString", - "description": "Resource group info", - "cloud_data_type": "resource_group", - "immutable": true, - "optional": true, + "description": "URL for the snapshot", "computed": true }, { - "name": "source_volume", - "type": "TypeString", - "description": "Snapshot source volume", - "immutable": true, + "name": "tags", + "type": "TypeSet", + "description": "User Tags for the snapshot", + "min_length": 1, + "max_length": 128, + "matches": "^[A-Za-z0-9:_ .-]+$", "optional": true, - "computed": true - }, - { - "name": "operating_system", - "type": "TypeString", - "description": "The globally unique name for the operating system included in this image", - "computed": true + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "lifecycle_state", - "type": "TypeString", - "description": "Snapshot lifecycle state", - "computed": true + "name": "backup_policy_plan", + "type": "TypeList", + "description": "If present, the backup policy plan which created this snapshot.", + "computed": true, + "elem": { + "deleted": { + "name": "deleted", + "type": "TypeList", + "description": "If present, this property indicates the referenced resource has been deleted and provides some supplementary information.", + "computed": true, + "elem": { + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about deleted resources.", + "computed": true + } + } + }, + "href": { + "name": "href", + "type": "TypeString", + "description": "The URL for this backup policy plan.", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "The unique identifier for this backup policy plan.", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The unique user-defined name for this backup policy plan.", + "computed": true + }, + "resource_type": { + "name": "resource_type", + "type": "TypeString", + "description": "The type of resource referenced", + "computed": true + } + } }, { - "name": "copies", + "name": "source_snapshot", "type": "TypeList", - "description": "The copies of this snapshot in other regions.", + "description": "If present, the source snapshot this snapshot was created from.", "computed": true, "elem": { "crn": { "name": "crn", "type": "TypeString", - "description": "The CRN for the copied snapshot.", + "description": "The CRN of the source snapshot.", "computed": true }, "deleted": { @@ -127286,19 +130385,19 @@ "href": { "name": "href", "type": "TypeString", - "description": "The URL for the copied snapshot.", + "description": "The URL for the source snapshot.", "computed": true }, "id": { "name": "id", "type": "TypeString", - "description": "The unique identifier for the copied snapshot.", + "description": "The unique identifier for the source snapshot.", "computed": true }, "name": { "name": "name", "type": "TypeString", - "description": "The name for the copied snapshot. The name is unique across all snapshots in the copied snapshot's native region.", + "description": "The name for the source snapshot. The name is unique across all snapshots in the source snapshot's native region.", "computed": true }, "remote": { @@ -127330,32 +130429,24 @@ } }, { - "name": "href", + "name": "source_volume", "type": "TypeString", - "description": "URL for the snapshot", + "description": "Snapshot source volume", + "immutable": true, + "optional": true, "computed": true }, { - "name": "clones", - "type": "TypeSet", - "description": "Zones for creating the snapshot clone", - "optional": true, - "elem": { - "type": "TypeString" - } + "name": "lifecycle_state", + "type": "TypeString", + "description": "Snapshot lifecycle state", + "computed": true }, { - "name": "tags", - "type": "TypeSet", - "description": "User Tags for the snapshot", - "min_length": 1, - "max_length": 128, - "matches": "^[A-Za-z0-9:_ .-]+$", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "minimum_capacity", + "type": "TypeInt", + "description": "Minimum capacity of the snapshot", + "computed": true }, { "name": "resource_type", @@ -127363,16 +130454,6 @@ "description": "The resource type of the snapshot", "computed": true }, - { - "name": "access_tags", - "type": "TypeSet", - "description": "List of access management tags", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, { "name": "name", "type": "TypeString", @@ -127384,16 +130465,52 @@ "computed": true }, { - "name": "source_snapshot_crn", + "name": "source_image", "type": "TypeString", - "description": "Source Snapshot CRN", + "description": "If present, the image id from which the data on this volume was most directly provisioned.", + "computed": true + }, + { + "name": "encryption_key", + "type": "TypeString", + "description": "A reference to the root key used to wrap the data encryption key for the source volume.", + "optional": true, + "computed": true + }, + { + "name": "size", + "type": "TypeInt", + "description": "The size of the snapshot", + "computed": true + }, + { + "name": "clones", + "type": "TypeSet", + "description": "Zones for creating the snapshot clone", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "resource_group", + "type": "TypeString", + "description": "Resource group info", + "cloud_data_type": "resource_group", "immutable": true, - "optional": true + "optional": true, + "computed": true }, { - "name": "source_image", + "name": "operating_system", "type": "TypeString", - "description": "If present, the image id from which the data on this volume was most directly provisioned.", + "description": "The globally unique name for the operating system included in this image", + "computed": true + }, + { + "name": "bootable", + "type": "TypeBool", + "description": "Indicates if a boot volume attachment can be created with a volume created from this snapshot", "computed": true }, { @@ -127401,19 +130518,29 @@ "type": "TypeString", "description": "Encryption type of the snapshot", "computed": true + }, + { + "name": "access_tags", + "type": "TypeSet", + "description": "List of access management tags", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } } ], "ibm_is_ssh_key": [ { - "name": "resource_name", + "name": "resource_controller_url", "type": "TypeString", - "description": "The name of the resource", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", "computed": true }, { - "name": "resource_crn", + "name": "resource_name", "type": "TypeString", - "description": "The crn of the resource", + "description": "The name of the resource", "computed": true }, { @@ -127423,20 +130550,14 @@ "computed": true }, { - "name": "resource_group", - "type": "TypeString", - "description": "Resource group ID", - "cloud_data_type": "resource_group", - "immutable": true, + "name": "access_tags", + "type": "TypeSet", + "description": "List of access management tags for SSH key", "optional": true, - "computed": true - }, - { - "name": "public_key", - "type": "TypeString", - "description": "SSH Public key data", - "immutable": true, - "required": true + "computed": true, + "elem": { + "type": "TypeString" + } }, { "name": "type", @@ -127445,18 +130566,21 @@ "optional": true, "computed": true }, - { - "name": "fingerprint", - "type": "TypeString", - "description": "SSH key Fingerprint info", - "computed": true - }, { "name": "length", "type": "TypeInt", "description": "SSH key Length", "computed": true }, + { + "name": "resource_group", + "type": "TypeString", + "description": "Resource group ID", + "cloud_data_type": "resource_group", + "immutable": true, + "optional": true, + "computed": true + }, { "name": "tags", "type": "TypeSet", @@ -127471,9 +130595,9 @@ } }, { - "name": "resource_controller_url", + "name": "resource_crn", "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", + "description": "The crn of the resource", "computed": true }, { @@ -127493,23 +130617,47 @@ "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" }, { - "name": "access_tags", - "type": "TypeSet", - "description": "List of access management tags for SSH key", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "public_key", + "type": "TypeString", + "description": "SSH Public key data", + "immutable": true, + "required": true + }, + { + "name": "fingerprint", + "type": "TypeString", + "description": "SSH key Fingerprint info", + "computed": true } ], "ibm_is_subnet": [ { - "name": "zone", + "name": "crn", "type": "TypeString", - "description": "Subnet zone info", + "description": "The crn of the resource", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "network_acl", + "type": "TypeString", + "description": "The network ACL for this subnet", + "optional": true, + "computed": true + }, + { + "name": "status", + "type": "TypeString", + "description": "The status of the subnet", + "computed": true + }, + { + "name": "ipv4_cidr_block", + "type": "TypeString", + "description": "IPV4 subnet - CIDR block", "immutable": true, - "required": true + "optional": true, + "computed": true }, { "name": "available_ipv4_address_count", @@ -127526,21 +130674,17 @@ "computed": true }, { - "name": "ip_version", - "type": "TypeString", - "description": "The IP version(s) to support for this subnet.", - "default_value": "ipv4", - "immutable": true, - "optional": true - }, - { - "name": "name", - "type": "TypeString", - "description": "Subnet name", - "required": true, + "name": "tags", + "type": "TypeSet", + "description": "List of tags", "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" + "max_length": 128, + "matches": "^[A-Za-z0-9:_ .-]+$", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } }, { "name": "access_tags", @@ -127556,19 +130700,32 @@ } }, { - "name": "crn", + "name": "resource_controller_url", "type": "TypeString", - "description": "The crn of the resource", - "cloud_data_type": "crn", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", "computed": true }, { - "name": "network_acl", + "name": "ip_version", "type": "TypeString", - "description": "The network ACL for this subnet", - "optional": true, + "description": "The IP version(s) to support for this subnet.", + "default_value": "ipv4", + "immutable": true, + "optional": true + }, + { + "name": "resource_name", + "type": "TypeString", + "description": "The name of the resource", "computed": true }, + { + "name": "vpc", + "type": "TypeString", + "description": "VPC instance ID", + "immutable": true, + "required": true + }, { "name": "resource_group", "type": "TypeString", @@ -127586,9 +130743,9 @@ "computed": true }, { - "name": "resource_controller_url", + "name": "resource_status", "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", + "description": "The status of the resource", "computed": true }, { @@ -127598,31 +130755,13 @@ "computed": true }, { - "name": "ipv4_cidr_block", - "type": "TypeString", - "description": "IPV4 subnet - CIDR block", - "immutable": true, - "optional": true, - "computed": true - }, - { - "name": "status", + "name": "name", "type": "TypeString", - "description": "The status of the subnet", - "computed": true - }, - { - "name": "tags", - "type": "TypeSet", - "description": "List of tags", + "description": "Subnet name", + "required": true, "min_length": 1, - "max_length": 128, - "matches": "^[A-Za-z0-9:_ .-]+$", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" }, { "name": "public_gateway", @@ -127632,39 +130771,20 @@ "computed": true }, { - "name": "vpc", + "name": "zone", "type": "TypeString", - "description": "VPC instance ID", + "description": "Subnet zone info", "immutable": true, "required": true }, - { - "name": "resource_name", - "type": "TypeString", - "description": "The name of the resource", - "computed": true - }, { "name": "resource_crn", "type": "TypeString", "description": "The crn of the resource", "computed": true - }, - { - "name": "resource_status", - "type": "TypeString", - "description": "The status of the resource", - "computed": true } ], "ibm_is_subnet_network_acl_attachment": [ - { - "name": "subnet", - "type": "TypeString", - "description": "The subnet identifier", - "immutable": true, - "required": true - }, { "name": "network_acl", "type": "TypeString", @@ -127826,15 +130946,16 @@ } } } - } - ], - "ibm_is_subnet_public_gateway_attachment": [ + }, { - "name": "public_gateway", + "name": "subnet", "type": "TypeString", - "description": "The unique identifier of public gateway", + "description": "The subnet identifier", + "immutable": true, "required": true - }, + } + ], + "ibm_is_subnet_public_gateway_attachment": [ { "name": "name", "type": "TypeString", @@ -127848,29 +130969,29 @@ "computed": true }, { - "name": "zone", + "name": "resource_group", "type": "TypeString", - "description": "Public gateway zone info", + "description": "Public gateway resource group info", + "cloud_data_type": "resource_group", "computed": true }, { - "name": "resource_group_name", + "name": "crn", "type": "TypeString", - "description": "The resource group name in which resource is provisioned", + "description": "The crn of the resource", + "cloud_data_type": "crn", "computed": true }, { - "name": "crn", + "name": "resource_group_name", "type": "TypeString", - "description": "The crn of the resource", - "cloud_data_type": "crn", + "description": "The resource group name in which resource is provisioned", "computed": true }, { - "name": "subnet", + "name": "public_gateway", "type": "TypeString", - "description": "The subnet identifier", - "immutable": true, + "description": "The unique identifier of public gateway", "required": true }, { @@ -127879,16 +131000,15 @@ "computed": true }, { - "name": "resource_group", + "name": "vpc", "type": "TypeString", - "description": "Public gateway resource group info", - "cloud_data_type": "resource_group", + "description": "Public gateway VPC info", "computed": true }, { - "name": "vpc", + "name": "zone", "type": "TypeString", - "description": "Public gateway VPC info", + "description": "Public gateway zone info", "computed": true }, { @@ -127896,43 +131016,52 @@ "type": "TypeString", "description": "The name of the resource", "computed": true + }, + { + "name": "subnet", + "type": "TypeString", + "description": "The subnet identifier", + "immutable": true, + "required": true } ], "ibm_is_subnet_reserved_ip": [ { - "name": "auto_delete", - "type": "TypeBool", - "description": "If set to true, this reserved IP will be automatically deleted", + "name": "target", + "type": "TypeString", + "description": "The unique identifier for target.", "optional": true, "computed": true }, { - "name": "name", + "name": "target_crn", "type": "TypeString", - "description": "The user-defined or system-provided name for this reserved IP.", - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", + "description": "The crn for target.", "optional": true, "computed": true }, { - "name": "target", + "name": "created_at", "type": "TypeString", - "description": "The unique identifier for target.", - "optional": true, + "description": "The date and time that the reserved IP was created.", "computed": true }, { - "name": "lifecycle_state", + "name": "href", "type": "TypeString", - "description": "The lifecycle state of the reserved IP", + "description": "The URL for this reserved IP.", "computed": true }, { - "name": "reserved_ip", + "name": "resource_type", "type": "TypeString", - "description": "The unique identifier of the reserved IP.", + "description": "The resource type.", + "computed": true + }, + { + "name": "owner", + "type": "TypeString", + "description": "The owner of a reserved IP, defining whether it is managed by the user or the provider.", "computed": true }, { @@ -127943,42 +131072,40 @@ "required": true }, { - "name": "address", - "type": "TypeString", - "description": "The address for this reserved IP.", - "immutable": true, + "name": "auto_delete", + "type": "TypeBool", + "description": "If set to true, this reserved IP will be automatically deleted", "optional": true, "computed": true }, { - "name": "created_at", - "type": "TypeString", - "description": "The date and time that the reserved IP was created.", - "computed": true - }, - { - "name": "href", + "name": "name", "type": "TypeString", - "description": "The URL for this reserved IP.", + "description": "The user-defined or system-provided name for this reserved IP.", + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", + "optional": true, "computed": true }, { - "name": "owner", + "name": "lifecycle_state", "type": "TypeString", - "description": "The owner of a reserved IP, defining whether it is managed by the user or the provider.", + "description": "The lifecycle state of the reserved IP", "computed": true }, { - "name": "resource_type", + "name": "address", "type": "TypeString", - "description": "The resource type.", + "description": "The address for this reserved IP.", + "immutable": true, + "optional": true, "computed": true }, { - "name": "target_crn", + "name": "reserved_ip", "type": "TypeString", - "description": "The crn for target.", - "optional": true, + "description": "The unique identifier of the reserved IP.", "computed": true } ], @@ -127990,37 +131117,30 @@ "computed": true }, { - "name": "routes", + "name": "subnets", "type": "TypeList", "computed": true, "elem": { "id": { "name": "id", "type": "TypeString", - "description": "route ID", + "description": "Subnet ID", "computed": true }, "name": { "name": "name", "type": "TypeString", - "description": "route name", + "description": "Subnet name", "computed": true } } }, { - "name": "subnet", + "name": "routing_table", "type": "TypeString", - "description": "The subnet identifier", - "immutable": true, + "description": "The unique identifier of routing table", "required": true }, - { - "name": "route_direct_link_ingress", - "type": "TypeBool", - "description": "If true, this routing table will be used to route traffic that originates from Direct Link to this VPC.", - "computed": true - }, { "name": "is_default", "type": "TypeBool", @@ -128028,23 +131148,11 @@ "computed": true }, { - "name": "lifecycle_state", + "name": "resource_type", "type": "TypeString", - "description": "he lifecycle state of the routing table [ deleting, failed, pending, stable, suspended, updating, waiting ]", - "computed": true - }, - { - "name": "route_transit_gateway_ingress", - "type": "TypeBool", - "description": "If true, this routing table will be used to route traffic that originates from Transit Gateway to this VPC.", + "description": "The resource type", "computed": true }, - { - "name": "routing_table", - "type": "TypeString", - "description": "The unique identifier of routing table", - "required": true - }, { "name": "name", "type": "TypeString", @@ -128052,75 +131160,80 @@ "computed": true }, { - "name": "resource_type", - "type": "TypeString", - "description": "The resource type", + "name": "route_transit_gateway_ingress", + "type": "TypeBool", + "description": "If true, this routing table will be used to route traffic that originates from Transit Gateway to this VPC.", "computed": true }, { - "name": "subnets", + "name": "routes", "type": "TypeList", "computed": true, "elem": { "id": { "name": "id", "type": "TypeString", - "description": "Subnet ID", + "description": "route ID", "computed": true }, "name": { "name": "name", "type": "TypeString", - "description": "Subnet name", + "description": "route name", "computed": true } } - } - ], - "ibm_is_virtual_endpoint_gateway": [ - { - "name": "vpc", - "type": "TypeString", - "description": "The VPC id", - "immutable": true, - "required": true }, { - "name": "name", + "name": "subnet", "type": "TypeString", - "description": "Endpoint gateway name", + "description": "The subnet identifier", "immutable": true, - "required": true, - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" + "required": true }, { - "name": "resource_type", - "type": "TypeString", - "description": "Endpoint gateway resource type", - "options": "provider_cloud_service, provider_infrastructure_service", + "name": "route_direct_link_ingress", + "type": "TypeBool", + "description": "If true, this routing table will be used to route traffic that originates from Direct Link to this VPC.", "computed": true }, { - "name": "resource_group", + "name": "lifecycle_state", "type": "TypeString", - "description": "The resource group id", - "cloud_data_type": "resource_group", - "immutable": true, - "optional": true, + "description": "he lifecycle state of the routing table [ deleting, failed, pending, stable, suspended, updating, waiting ]", "computed": true - }, + } + ], + "ibm_is_virtual_endpoint_gateway": [ { - "name": "security_groups", + "name": "tags", "type": "TypeSet", - "description": "Endpoint gateway securitygroups list", + "description": "List of tags for VPE", + "min_length": 1, + "max_length": 128, + "matches": "^[A-Za-z0-9:_ .-]+$", "optional": true, "computed": true, "elem": { "type": "TypeString" } }, + { + "name": "name", + "type": "TypeString", + "description": "Endpoint gateway name", + "immutable": true, + "required": true, + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" + }, + { + "name": "health_state", + "type": "TypeString", + "description": "Endpoint gateway health state", + "computed": true + }, { "name": "ips", "type": "TypeList", @@ -128162,6 +131275,45 @@ } } }, + { + "name": "crn", + "type": "TypeString", + "description": "The CRN for this Endpoint gateway", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "security_groups", + "type": "TypeSet", + "description": "Endpoint gateway securitygroups list", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "allow_dns_resolution_binding", + "type": "TypeBool", + "description": "Indicates whether to allow this endpoint gateway to participate in DNS resolution bindings with a VPC that has dns.enable_hub set to true.", + "optional": true, + "computed": true + }, + { + "name": "service_endpoints", + "type": "TypeList", + "description": "The fully qualified domain names for the target service. A fully qualified domain name for the target service", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "lifecycle_state", + "type": "TypeString", + "description": "Endpoint gateway lifecycle state", + "computed": true + }, { "name": "target", "type": "TypeList", @@ -128193,32 +131345,16 @@ "min_items": 1 }, { - "name": "crn", - "type": "TypeString", - "description": "The CRN for this Endpoint gateway", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "health_state", + "name": "vpc", "type": "TypeString", - "description": "Endpoint gateway health state", - "computed": true - }, - { - "name": "allow_dns_resolution_binding", - "type": "TypeBool", - "description": "Indicates whether to allow this endpoint gateway to participate in DNS resolution bindings with a VPC that has dns.enable_hub set to true.", - "optional": true, - "computed": true + "description": "The VPC id", + "immutable": true, + "required": true }, { - "name": "tags", + "name": "access_tags", "type": "TypeSet", - "description": "List of tags for VPE", - "min_length": 1, - "max_length": 128, - "matches": "^[A-Za-z0-9:_ .-]+$", + "description": "List of access management tags", "optional": true, "computed": true, "elem": { @@ -128226,38 +131362,35 @@ } }, { - "name": "created_at", + "name": "resource_type", "type": "TypeString", - "description": "Endpoint gateway created date and time", + "description": "Endpoint gateway resource type", + "options": "provider_cloud_service, provider_infrastructure_service", "computed": true }, { - "name": "service_endpoints", - "type": "TypeList", - "description": "The fully qualified domain names for the target service. A fully qualified domain name for the target service", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "lifecycle_state", + "name": "resource_group", "type": "TypeString", - "description": "Endpoint gateway lifecycle state", + "description": "The resource group id", + "cloud_data_type": "resource_group", + "immutable": true, + "optional": true, "computed": true }, { - "name": "access_tags", - "type": "TypeSet", - "description": "List of access management tags", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "created_at", + "type": "TypeString", + "description": "Endpoint gateway created date and time", + "computed": true } ], "ibm_is_virtual_endpoint_gateway_ip": [ + { + "name": "name", + "type": "TypeString", + "description": "Endpoint gateway IP name", + "computed": true + }, { "name": "resource_type", "type": "TypeString", @@ -128321,183 +131454,21 @@ "description": "Endpoint gateway IP id", "immutable": true, "required": true - }, - { - "name": "name", - "type": "TypeString", - "description": "Endpoint gateway IP name", - "computed": true } ], "ibm_is_volume": [ - { - "name": "resource_crn", - "type": "TypeString", - "description": "The crn of the resource", - "computed": true - }, - { - "name": "resource_status", - "type": "TypeString", - "description": "The status of the resource", - "computed": true - }, - { - "name": "bandwidth", - "type": "TypeInt", - "description": "The maximum bandwidth (in megabits per second) for the volume", - "computed": true - }, - { - "name": "profile", - "type": "TypeString", - "description": "Volume profile name", - "required": true, - "options": "general-purpose, 5iops-tier, 10iops-tier, custom" - }, - { - "name": "capacity", - "type": "TypeInt", - "description": "Volume capacity value", - "min_value": "10", - "max_value": "16000", - "optional": true, - "computed": true - }, - { - "name": "health_state", - "type": "TypeString", - "description": "The health of this resource.", - "computed": true - }, - { - "name": "crn", - "type": "TypeString", - "description": "CRN value for the volume instance", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "access_tags", - "type": "TypeSet", - "description": "Access management tags for the volume instance", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "resource_group_name", - "type": "TypeString", - "description": "The resource group name in which resource is provisioned", - "computed": true - }, - { - "name": "zone", - "type": "TypeString", - "description": "Zone name", - "immutable": true, - "required": true - }, - { - "name": "encryption_type", - "type": "TypeString", - "description": "Volume encryption type info", - "computed": true - }, - { - "name": "iops", - "type": "TypeInt", - "description": "IOPS value for the Volume", - "min_value": "100", - "max_value": "48000", - "optional": true, - "computed": true - }, { "name": "status", "type": "TypeString", "description": "Volume status", "computed": true }, - { - "name": "status_reasons", - "type": "TypeList", - "computed": true, - "elem": { - "code": { - "name": "code", - "type": "TypeString", - "description": "A snake case string succinctly identifying the status reason", - "computed": true - }, - "message": { - "name": "message", - "type": "TypeString", - "description": "An explanation of the status reason", - "computed": true - }, - "more_info": { - "name": "more_info", - "type": "TypeString", - "description": "Link to documentation about this status reason", - "computed": true - } - } - }, - { - "name": "tags", - "type": "TypeSet", - "description": "UserTags for the volume instance", - "min_length": 1, - "max_length": 128, - "matches": "^[A-Za-z0-9:_ .-]+$", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, { "name": "resource_controller_url", "type": "TypeString", "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", "computed": true }, - { - "name": "resource_name", - "type": "TypeString", - "description": "The name of the resource", - "computed": true - }, - { - "name": "name", - "type": "TypeString", - "description": "Volume name", - "required": true, - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" - }, - { - "name": "encryption_key", - "type": "TypeString", - "description": "Volume encryption key info", - "immutable": true, - "optional": true - }, - { - "name": "source_snapshot", - "type": "TypeString", - "description": "The unique identifier for this snapshot", - "immutable": true, - "min_length": 1, - "max_length": 64, - "matches": "^[-0-9a-z_]+$", - "optional": true, - "computed": true - }, { "name": "operating_system", "type": "TypeList", @@ -128555,12 +131526,16 @@ } }, { - "name": "resource_group", + "name": "zone", "type": "TypeString", - "description": "Resource group name", - "cloud_data_type": "resource_group", + "description": "Zone name", "immutable": true, - "optional": true, + "required": true + }, + { + "name": "encryption_type", + "type": "TypeString", + "description": "Volume encryption type info", "computed": true }, { @@ -128589,75 +131564,92 @@ } }, { - "name": "delete_all_snapshots", - "type": "TypeBool", - "description": "Deletes all snapshots created from this volume", - "optional": true - } - ], - "ibm_is_vpc": [ - { - "name": "id", + "name": "health_state", "type": "TypeString", - "description": "Id of the ibm_is_vpc", - "cloud_data_type": "is", + "description": "The health of this resource.", + "computed": true + }, + { + "name": "access_tags", + "type": "TypeSet", + "description": "Access management tags for the volume instance", + "optional": true, "computed": true, - "cloud_data_range": [ - "service:vpc", - "resolved_to:id" - ] + "elem": { + "type": "TypeString" + } }, { - "name": "resource_group", + "name": "resource_crn", "type": "TypeString", - "description": "Resource group info", - "cloud_data_type": "resource_group", - "immutable": true, - "optional": true, + "description": "The crn of the resource", "computed": true }, { - "name": "default_security_group", + "name": "resource_group_name", "type": "TypeString", - "description": "Security group associated with VPC", + "description": "The resource group name in which resource is provisioned", "computed": true }, { - "name": "default_network_acl_name", + "name": "source_snapshot", "type": "TypeString", - "description": "Default Network ACL name", + "description": "The unique identifier for this snapshot", + "immutable": true, "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", + "max_length": 64, + "matches": "^[-0-9a-z_]+$", "optional": true, "computed": true }, { - "name": "default_security_group_crn", - "type": "TypeString", - "description": "Default security group CRN", + "name": "iops", + "type": "TypeInt", + "description": "IOPS value for the Volume", + "min_value": "100", + "max_value": "48000", + "optional": true, "computed": true }, { - "name": "default_network_acl_crn", + "name": "crn", "type": "TypeString", - "description": "Default Network ACL CRN", + "description": "CRN value for the volume instance", + "cloud_data_type": "crn", "computed": true }, { - "name": "default_routing_table_name", - "type": "TypeString", - "description": "Default routing table name", - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", - "optional": true, - "computed": true + "name": "status_reasons", + "type": "TypeList", + "computed": true, + "elem": { + "code": { + "name": "code", + "type": "TypeString", + "description": "A snake case string succinctly identifying the status reason", + "computed": true + }, + "message": { + "name": "message", + "type": "TypeString", + "description": "An explanation of the status reason", + "computed": true + }, + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about this status reason", + "computed": true + } + } }, { - "name": "access_tags", + "name": "tags", "type": "TypeSet", - "description": "List of access management tags", + "description": "UserTags for the volume instance", + "min_length": 1, + "max_length": 128, + "matches": "^[A-Za-z0-9:_ .-]+$", "optional": true, "computed": true, "elem": { @@ -128670,107 +131662,45 @@ "description": "The name of the resource", "computed": true }, + { + "name": "bandwidth", + "type": "TypeInt", + "description": "The maximum bandwidth (in megabits per second) for the volume", + "computed": true + }, { "name": "name", "type": "TypeString", - "description": "VPC name", + "description": "Volume name", "required": true, "min_length": 1, "max_length": 63, "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" }, { - "name": "security_group", - "type": "TypeList", - "computed": true, - "elem": { - "group_id": { - "name": "group_id", - "type": "TypeString", - "description": "Security group id", - "computed": true - }, - "group_name": { - "name": "group_name", - "type": "TypeString", - "description": "Security group name", - "computed": true - }, - "rules": { - "name": "rules", - "type": "TypeList", - "description": "Security Rules", - "computed": true, - "elem": { - "code": { - "name": "code", - "type": "TypeInt", - "computed": true - }, - "direction": { - "name": "direction", - "type": "TypeString", - "description": "Direction of traffic to enforce, either inbound or outbound", - "computed": true - }, - "ip_version": { - "name": "ip_version", - "type": "TypeString", - "description": "IP version: ipv4", - "computed": true - }, - "port_max": { - "name": "port_max", - "type": "TypeInt", - "computed": true - }, - "port_min": { - "name": "port_min", - "type": "TypeInt", - "computed": true - }, - "protocol": { - "name": "protocol", - "type": "TypeString", - "computed": true - }, - "remote": { - "name": "remote", - "type": "TypeString", - "description": "Security group id: an IP address, a CIDR block, or a single security group identifier", - "computed": true - }, - "rule_id": { - "name": "rule_id", - "type": "TypeString", - "description": "Rule ID", - "computed": true - }, - "type": { - "name": "type", - "type": "TypeInt", - "computed": true - } - } - } - } - }, - { - "name": "status", + "name": "resource_group", "type": "TypeString", - "description": "VPC status", + "description": "Resource group name", + "cloud_data_type": "resource_group", + "immutable": true, + "optional": true, "computed": true }, { - "name": "default_security_group_name", - "type": "TypeString", - "description": "Default security group name", - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", + "name": "capacity", + "type": "TypeInt", + "description": "Volume capacity value", + "min_value": "10", + "max_value": "16000", "optional": true, "computed": true }, + { + "name": "delete_all_snapshots", + "type": "TypeBool", + "description": "Deletes all snapshots created from this volume", + "optional": true + }, { "name": "resource_status", "type": "TypeString", @@ -128778,56 +131708,53 @@ "computed": true }, { - "name": "default_routing_table", + "name": "profile", "type": "TypeString", - "description": "Default routing table associated with VPC", - "computed": true + "description": "Volume profile name", + "required": true, + "options": "general-purpose, 5iops-tier, 10iops-tier, custom" }, { - "name": "classic_access", - "type": "TypeBool", - "description": "Set to true if classic access needs to enabled to VPC", - "default_value": false, + "name": "encryption_key", + "type": "TypeString", + "description": "Volume encryption key info", "immutable": true, "optional": true - }, - { - "name": "crn", - "type": "TypeString", - "description": "The crn of the resource", - "cloud_data_type": "crn", - "computed": true - }, + } + ], + "ibm_is_vpc": [ { - "name": "resource_crn", + "name": "id", "type": "TypeString", - "description": "The crn of the resource", - "computed": true + "description": "Id of the ibm_is_vpc", + "cloud_data_type": "is", + "computed": true, + "cloud_data_range": [ + "service:vpc", + "resolved_to:id" + ] }, { - "name": "cse_source_addresses", - "type": "TypeList", + "name": "tags", + "type": "TypeSet", + "description": "List of tags", + "min_length": 1, + "max_length": 128, + "matches": "^[A-Za-z0-9:_ .-]+$", + "optional": true, "computed": true, "elem": { - "address": { - "name": "address", - "type": "TypeString", - "description": "Cloud service endpoint IP Address", - "computed": true - }, - "zone_name": { - "name": "zone_name", - "type": "TypeString", - "description": "Location info of CSE Address", - "computed": true - } + "type": "TypeString" } }, { - "name": "health_state", + "name": "address_prefix_management", "type": "TypeString", - "description": "The health of this resource.- `ok`: No abnormal behavior detected- `degraded`: Experiencing compromised performance, capacity, or connectivity- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.", - "computed": true + "description": "Address Prefix management value", + "default_value": "auto", + "immutable": true, + "options": "auto, manual", + "optional": true }, { "name": "no_sg_acl_rules", @@ -128837,72 +131764,67 @@ "optional": true }, { - "name": "resource_group_name", + "name": "access_tags", + "type": "TypeSet", + "description": "List of access management tags", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "resource_group", "type": "TypeString", - "description": "The resource group name in which resource is provisioned", + "description": "Resource group info", + "cloud_data_type": "resource_group", + "immutable": true, + "optional": true, "computed": true }, { - "name": "subnets", - "type": "TypeList", - "computed": true, - "elem": { - "available_ipv4_address_count": { - "name": "available_ipv4_address_count", - "type": "TypeInt", - "description": "Available IPv4 address count in the subnet", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "subnet ID", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "subent name", - "computed": true - }, - "status": { - "name": "status", - "type": "TypeString", - "description": "subnet status", - "computed": true - }, - "total_ipv4_address_count": { - "name": "total_ipv4_address_count", - "type": "TypeInt", - "description": "Total IPv4 address count in the subnet", - "computed": true - }, - "zone": { - "name": "zone", - "type": "TypeString", - "description": "subnet location", - "computed": true - } - } + "name": "status", + "type": "TypeString", + "description": "VPC status", + "computed": true }, { - "name": "default_network_acl", + "name": "resource_controller_url", "type": "TypeString", - "description": "Default network ACL ID", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", "computed": true }, { - "name": "tags", - "type": "TypeSet", - "description": "List of tags", + "name": "resource_name", + "type": "TypeString", + "description": "The name of the resource", + "computed": true + }, + { + "name": "default_network_acl_name", + "type": "TypeString", + "description": "Default Network ACL name", "min_length": 1, - "max_length": 128, - "matches": "^[A-Za-z0-9:_ .-]+$", + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } + "computed": true + }, + { + "name": "default_security_group_name", + "type": "TypeString", + "description": "Default security group name", + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", + "optional": true, + "computed": true + }, + { + "name": "resource_group_name", + "type": "TypeString", + "description": "The resource group name in which resource is provisioned", + "computed": true }, { "name": "dns", @@ -129023,6 +131945,159 @@ }, "max_items": 1 }, + { + "name": "default_network_acl_crn", + "type": "TypeString", + "description": "Default Network ACL CRN", + "computed": true + }, + { + "name": "resource_crn", + "type": "TypeString", + "description": "The crn of the resource", + "computed": true + }, + { + "name": "cse_source_addresses", + "type": "TypeList", + "computed": true, + "elem": { + "address": { + "name": "address", + "type": "TypeString", + "description": "Cloud service endpoint IP Address", + "computed": true + }, + "zone_name": { + "name": "zone_name", + "type": "TypeString", + "description": "Location info of CSE Address", + "computed": true + } + } + }, + { + "name": "health_state", + "type": "TypeString", + "description": "The health of this resource.- `ok`: No abnormal behavior detected- `degraded`: Experiencing compromised performance, capacity, or connectivity- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.", + "computed": true + }, + { + "name": "default_security_group_crn", + "type": "TypeString", + "description": "Default security group CRN", + "computed": true + }, + { + "name": "resource_status", + "type": "TypeString", + "description": "The status of the resource", + "computed": true + }, + { + "name": "default_routing_table", + "type": "TypeString", + "description": "Default routing table associated with VPC", + "computed": true + }, + { + "name": "default_security_group", + "type": "TypeString", + "description": "Security group associated with VPC", + "computed": true + }, + { + "name": "default_routing_table_name", + "type": "TypeString", + "description": "Default routing table name", + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", + "optional": true, + "computed": true + }, + { + "name": "security_group", + "type": "TypeList", + "computed": true, + "elem": { + "group_id": { + "name": "group_id", + "type": "TypeString", + "description": "Security group id", + "computed": true + }, + "group_name": { + "name": "group_name", + "type": "TypeString", + "description": "Security group name", + "computed": true + }, + "rules": { + "name": "rules", + "type": "TypeList", + "description": "Security Rules", + "computed": true, + "elem": { + "code": { + "name": "code", + "type": "TypeInt", + "computed": true + }, + "direction": { + "name": "direction", + "type": "TypeString", + "description": "Direction of traffic to enforce, either inbound or outbound", + "computed": true + }, + "ip_version": { + "name": "ip_version", + "type": "TypeString", + "description": "IP version: ipv4", + "computed": true + }, + "port_max": { + "name": "port_max", + "type": "TypeInt", + "computed": true + }, + "port_min": { + "name": "port_min", + "type": "TypeInt", + "computed": true + }, + "protocol": { + "name": "protocol", + "type": "TypeString", + "computed": true + }, + "remote": { + "name": "remote", + "type": "TypeString", + "description": "Security group id: an IP address, a CIDR block, or a single security group identifier", + "computed": true + }, + "rule_id": { + "name": "rule_id", + "type": "TypeString", + "description": "Rule ID", + "computed": true + }, + "type": { + "name": "type", + "type": "TypeInt", + "computed": true + } + } + } + } + }, + { + "name": "default_network_acl", + "type": "TypeString", + "description": "Default network ACL ID", + "computed": true + }, { "name": "health_reasons", "type": "TypeList", @@ -129050,22 +132125,88 @@ } }, { - "name": "resource_controller_url", + "name": "crn", "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", + "description": "The crn of the resource", + "cloud_data_type": "crn", "computed": true }, { - "name": "address_prefix_management", - "type": "TypeString", - "description": "Address Prefix management value", - "default_value": "auto", + "name": "subnets", + "type": "TypeList", + "computed": true, + "elem": { + "available_ipv4_address_count": { + "name": "available_ipv4_address_count", + "type": "TypeInt", + "description": "Available IPv4 address count in the subnet", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "subnet ID", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "subent name", + "computed": true + }, + "status": { + "name": "status", + "type": "TypeString", + "description": "subnet status", + "computed": true + }, + "total_ipv4_address_count": { + "name": "total_ipv4_address_count", + "type": "TypeInt", + "description": "Total IPv4 address count in the subnet", + "computed": true + }, + "zone": { + "name": "zone", + "type": "TypeString", + "description": "subnet location", + "computed": true + } + } + }, + { + "name": "classic_access", + "type": "TypeBool", + "description": "Set to true if classic access needs to enabled to VPC", + "default_value": false, "immutable": true, - "options": "auto, manual", "optional": true + }, + { + "name": "name", + "type": "TypeString", + "description": "VPC name", + "required": true, + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" } ], "ibm_is_vpc_address_prefix": [ + { + "name": "is_default", + "type": "TypeBool", + "description": "Is default prefix for this zone in this VPC", + "default_value": false, + "optional": true + }, + { + "name": "vpc", + "type": "TypeString", + "description": "VPC id", + "immutable": true, + "required": true + }, { "name": "has_subnets", "type": "TypeBool", @@ -129103,36 +132244,9 @@ "description": "CIDIR address prefix", "immutable": true, "required": true - }, - { - "name": "is_default", - "type": "TypeBool", - "description": "Is default prefix for this zone in this VPC", - "default_value": false, - "optional": true - }, - { - "name": "vpc", - "type": "TypeString", - "description": "VPC id", - "immutable": true, - "required": true } ], "ibm_is_vpc_dns_resolution_binding": [ - { - "name": "lifecycle_state", - "type": "TypeString", - "description": "The lifecycle state of the DNS resolution binding.", - "computed": true - }, - { - "name": "name", - "type": "TypeString", - "description": "The name for this DNS resolution binding. The name is unique across all DNS resolution bindings for the VPC.", - "optional": true, - "computed": true - }, { "name": "resource_type", "type": "TypeString", @@ -129334,71 +132448,22 @@ "type": "TypeString", "description": "The URL for this DNS resolution binding.", "computed": true - } - ], - "ibm_is_vpc_routing_table": [ - { - "name": "vpc", - "type": "TypeString", - "description": "The VPC identifier.", - "immutable": true, - "required": true - }, - { - "name": "route_internet_ingress", - "type": "TypeBool", - "description": "If set to true, this routing table will be used to route traffic that originates from the internet. For this to succeed, the VPC must not already have a routing table with this property set to true.", - "default_value": false, - "optional": true - }, - { - "name": "resource_type", - "type": "TypeString", - "description": "Routing table Resource Type", - "computed": true }, { - "name": "is_default", - "type": "TypeBool", - "description": "Indicates whether this is the default routing table for this VPC", - "computed": true - }, - { - "name": "created_at", + "name": "lifecycle_state", "type": "TypeString", - "description": "Routing table Created At", + "description": "The lifecycle state of the DNS resolution binding.", "computed": true }, - { - "name": "route_transit_gateway_ingress", - "type": "TypeBool", - "description": "If set to true, this routing table will be used to route traffic that originates from Transit Gateway to this VPC.", - "default_value": false, - "optional": true - }, - { - "name": "route_vpc_zone_ingress", - "type": "TypeBool", - "description": "If set to true, this routing table will be used to route traffic that originates from subnets in other zones in this VPC.", - "default_value": false, - "optional": true - }, { "name": "name", "type": "TypeString", - "description": "The user-defined name for this routing table.", - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", + "description": "The name for this DNS resolution binding. The name is unique across all DNS resolution bindings for the VPC.", "optional": true, "computed": true - }, - { - "name": "routing_table", - "type": "TypeString", - "description": "The routing table identifier.", - "computed": true - }, + } + ], + "ibm_is_vpc_routing_table": [ { "name": "accept_routes_from_resource_type", "type": "TypeSet", @@ -129410,9 +132475,19 @@ } }, { - "name": "href", + "name": "name", "type": "TypeString", - "description": "Routing table Href", + "description": "The user-defined name for this routing table.", + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", + "optional": true, + "computed": true + }, + { + "name": "created_at", + "type": "TypeString", + "description": "Routing table Created At", "computed": true }, { @@ -129434,6 +132509,13 @@ } } }, + { + "name": "vpc", + "type": "TypeString", + "description": "The VPC identifier.", + "immutable": true, + "required": true + }, { "name": "route_direct_link_ingress", "type": "TypeBool", @@ -129441,30 +132523,59 @@ "default_value": false, "optional": true }, + { + "name": "route_transit_gateway_ingress", + "type": "TypeBool", + "description": "If set to true, this routing table will be used to route traffic that originates from Transit Gateway to this VPC.", + "default_value": false, + "optional": true + }, + { + "name": "route_vpc_zone_ingress", + "type": "TypeBool", + "description": "If set to true, this routing table will be used to route traffic that originates from subnets in other zones in this VPC.", + "default_value": false, + "optional": true + }, + { + "name": "resource_type", + "type": "TypeString", + "description": "Routing table Resource Type", + "computed": true + }, { "name": "lifecycle_state", "type": "TypeString", "description": "Routing table Lifecycle State", "computed": true - } - ], - "ibm_is_vpc_routing_table_route": [ + }, + { + "name": "is_default", + "type": "TypeBool", + "description": "Indicates whether this is the default routing table for this VPC", + "computed": true + }, + { + "name": "route_internet_ingress", + "type": "TypeBool", + "description": "If set to true, this routing table will be used to route traffic that originates from the internet. For this to succeed, the VPC must not already have a routing table with this property set to true.", + "default_value": false, + "optional": true + }, { "name": "routing_table", "type": "TypeString", "description": "The routing table identifier.", - "immutable": true, - "required": true + "computed": true }, { - "name": "action", + "name": "href", "type": "TypeString", - "description": "The action to perform with a packet matching the route.", - "default_value": "deliver", - "immutable": true, - "options": "delegate, delegate_vpc, deliver, drop", - "optional": true - }, + "description": "Routing table Href", + "computed": true + } + ], + "ibm_is_vpc_routing_table_route": [ { "name": "name", "type": "TypeString", @@ -129476,16 +132587,28 @@ "computed": true }, { - "name": "vpc", + "name": "route_id", "type": "TypeString", - "description": "The VPC identifier.", + "description": "The routing table route identifier.", + "computed": true + }, + { + "name": "created_at", + "type": "TypeString", + "description": "Routing table route Created At", + "computed": true + }, + { + "name": "routing_table", + "type": "TypeString", + "description": "The routing table identifier.", "immutable": true, "required": true }, { - "name": "destination", + "name": "zone", "type": "TypeString", - "description": "The destination of the route.", + "description": "The zone to apply the route to. Traffic from subnets in this zone will be subject to this route.", "immutable": true, "required": true }, @@ -129496,24 +132619,55 @@ "required": true }, { - "name": "href", + "name": "vpc", "type": "TypeString", - "description": "Routing table route Href", + "description": "The VPC identifier.", + "immutable": true, + "required": true + }, + { + "name": "action", + "type": "TypeString", + "description": "The action to perform with a packet matching the route.", + "default_value": "deliver", + "immutable": true, + "options": "delegate, delegate_vpc, deliver, drop", + "optional": true + }, + { + "name": "priority", + "type": "TypeInt", + "description": "The route's priority. Smaller values have higher priority.", + "min_value": "0", + "max_value": "4", + "optional": true, "computed": true }, { - "name": "created_at", + "name": "lifecycle_state", "type": "TypeString", - "description": "Routing table route Created At", + "description": "Routing table route Lifecycle State", "computed": true }, { - "name": "zone", + "name": "origin", "type": "TypeString", - "description": "The zone to apply the route to. Traffic from subnets in this zone will be subject to this route.", + "description": "The origin of this route.", + "computed": true + }, + { + "name": "destination", + "type": "TypeString", + "description": "The destination of the route.", "immutable": true, "required": true }, + { + "name": "href", + "type": "TypeString", + "description": "Routing table route Href", + "computed": true + }, { "name": "creator", "type": "TypeList", @@ -129565,42 +132719,14 @@ "computed": true } } - }, - { - "name": "route_id", - "type": "TypeString", - "description": "The routing table route identifier.", - "computed": true - }, - { - "name": "lifecycle_state", - "type": "TypeString", - "description": "Routing table route Lifecycle State", - "computed": true - }, - { - "name": "priority", - "type": "TypeInt", - "description": "The route's priority. Smaller values have higher priority.", - "min_value": "0", - "max_value": "4", - "optional": true, - "computed": true - }, - { - "name": "origin", - "type": "TypeString", - "description": "The origin of this route.", - "computed": true } ], "ibm_is_vpn_gateway": [ { - "name": "subnet", + "name": "private_ip_address2", "type": "TypeString", - "description": "VPNGateway subnet info", - "immutable": true, - "required": true + "description": "The Second Private IP address assigned to the VPN gateway member.", + "computed": true }, { "name": "resource_name", @@ -129609,90 +132735,94 @@ "computed": true }, { - "name": "resource_status", - "type": "TypeString", - "description": "The status of the resource", - "computed": true - }, - { - "name": "resource_group_name", + "name": "lifecycle_state", "type": "TypeString", - "description": "The resource group name in which resource is provisioned", + "description": "The lifecycle state of the VPN route.", "computed": true }, { - "name": "name", + "name": "subnet", "type": "TypeString", - "description": "VPN Gateway instance name", - "required": true, - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" + "description": "VPNGateway subnet info", + "immutable": true, + "required": true }, { - "name": "resource_group", - "type": "TypeString", - "description": "The resource group for this VPN gateway", - "cloud_data_type": "resource_group", - "immutable": true, - "optional": true, - "computed": true + "name": "health_reasons", + "type": "TypeList", + "computed": true, + "elem": { + "code": { + "name": "code", + "type": "TypeString", + "description": "A snake case string succinctly identifying the reason for this health state.", + "computed": true + }, + "message": { + "name": "message", + "type": "TypeString", + "description": "An explanation of the reason for this health state.", + "computed": true + }, + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about the reason for this health state.", + "computed": true + } + } }, { - "name": "status", + "name": "private_ip_address", "type": "TypeString", - "description": "The status of the VPN gateway", + "description": "The Private IP address assigned to the VPN gateway member.", "computed": true }, { - "name": "public_ip_address", + "name": "crn", "type": "TypeString", - "description": "The public IP address assigned to the VPN gateway member.", + "description": "The crn of the resource", + "cloud_data_type": "crn", "computed": true }, { - "name": "public_ip_address2", + "name": "resource_group_name", "type": "TypeString", - "description": "The second public IP address assigned to the VPN gateway member.", + "description": "The resource group name in which resource is provisioned", "computed": true }, { - "name": "private_ip_address2", + "name": "created_at", "type": "TypeString", - "description": "The Second Private IP address assigned to the VPN gateway member.", + "description": "Created Time of the VPN Gateway", "computed": true }, { - "name": "tags", - "type": "TypeSet", - "description": "VPN Gateway tags list", - "min_length": 1, - "max_length": 128, - "matches": "^[A-Za-z0-9:_ .-]+$", - "optional": true, + "name": "lifecycle_reasons", + "type": "TypeList", + "description": "The reasons for the current lifecycle_state (if any).", "computed": true, "elem": { - "type": "TypeString" + "code": { + "name": "code", + "type": "TypeString", + "description": "A snake case string succinctly identifying the reason for this lifecycle state.", + "computed": true + }, + "message": { + "name": "message", + "type": "TypeString", + "description": "An explanation of the reason for this lifecycle state.", + "computed": true + }, + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about the reason for this lifecycle state.", + "computed": true + } } }, - { - "name": "resource_controller_url", - "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", - "computed": true - }, - { - "name": "resource_crn", - "type": "TypeString", - "description": "The crn of the resource", - "computed": true - }, - { - "name": "created_at", - "type": "TypeString", - "description": "Created Time of the VPN Gateway", - "computed": true - }, { "name": "mode", "type": "TypeString", @@ -129703,60 +132833,23 @@ "optional": true }, { - "name": "private_ip_address", + "name": "public_ip_address2", "type": "TypeString", - "description": "The Private IP address assigned to the VPN gateway member.", + "description": "The second public IP address assigned to the VPN gateway member.", "computed": true }, { - "name": "access_tags", - "type": "TypeSet", - "description": "List of access management tags", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "resource_controller_url", + "type": "TypeString", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", + "computed": true }, { - "name": "crn", + "name": "resource_crn", "type": "TypeString", "description": "The crn of the resource", - "cloud_data_type": "crn", "computed": true }, - { - "name": "members", - "type": "TypeList", - "description": "Collection of VPN gateway members", - "computed": true, - "elem": { - "address": { - "name": "address", - "type": "TypeString", - "description": "The public IP address assigned to the VPN gateway member", - "computed": true - }, - "private_address": { - "name": "private_address", - "type": "TypeString", - "description": "The private IP address assigned to the VPN gateway member", - "computed": true - }, - "role": { - "name": "role", - "type": "TypeString", - "description": "The high availability role assigned to the VPN gateway member", - "computed": true - }, - "status": { - "name": "status", - "type": "TypeString", - "description": "The status of the VPN gateway member", - "computed": true - } - } - }, { "name": "vpc", "type": "TypeList", @@ -129802,119 +132895,125 @@ "computed": true } } - } - ], - "ibm_is_vpn_gateway_connection": [ - { - "name": "ipsec_policy", - "type": "TypeString", - "description": "IP security policy for vpn gateway connection", - "optional": true - }, - { - "name": "ike_policy", - "type": "TypeString", - "description": "VPN gateway connection IKE Policy", - "optional": true - }, - { - "name": "preshared_key", - "type": "TypeString", - "description": "vpn gateway", - "required": true }, { - "name": "local_cidrs", + "name": "tags", "type": "TypeSet", - "description": "VPN gateway connection local CIDRs", - "immutable": true, + "description": "VPN Gateway tags list", + "min_length": 1, + "max_length": 128, + "matches": "^[A-Za-z0-9:_ .-]+$", "optional": true, + "computed": true, "elem": { "type": "TypeString" } }, { - "name": "action", - "type": "TypeString", - "description": "Action detection for dead peer detection action", - "default_value": "restart", - "options": "restart, clear, hold, none", - "optional": true + "name": "access_tags", + "type": "TypeSet", + "description": "List of access management tags", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "vpn_gateway", - "type": "TypeString", - "description": "VPN Gateway info", - "immutable": true, - "required": true + "name": "members", + "type": "TypeList", + "description": "Collection of VPN gateway members", + "computed": true, + "elem": { + "address": { + "name": "address", + "type": "TypeString", + "description": "The public IP address assigned to the VPN gateway member", + "computed": true + }, + "private_address": { + "name": "private_address", + "type": "TypeString", + "description": "The private IP address assigned to the VPN gateway member", + "computed": true + }, + "role": { + "name": "role", + "type": "TypeString", + "description": "The high availability role assigned to the VPN gateway member", + "computed": true + }, + "status": { + "name": "status", + "type": "TypeString", + "description": "The status of the VPN gateway member", + "computed": true + } + } }, { - "name": "gateway_connection", + "name": "status", "type": "TypeString", - "description": "The unique identifier for this VPN gateway connection", + "description": "The status of the VPN gateway", "computed": true }, { - "name": "status", + "name": "health_state", "type": "TypeString", - "description": "VPN gateway connection status", + "description": "The health of this resource.- `ok`: Healthy- `degraded`: Suffering from compromised performance, capacity, or connectivity- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.", "computed": true }, { - "name": "mode", + "name": "public_ip_address", "type": "TypeString", - "description": "The mode of the VPN gateway", + "description": "The public IP address assigned to the VPN gateway member.", "computed": true }, { "name": "name", "type": "TypeString", - "description": "VPN Gateway connection name", + "description": "VPN Gateway instance name", "required": true, "min_length": 1, "max_length": 63, "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" }, { - "name": "interval", - "type": "TypeInt", - "description": "Interval for dead peer detection interval", - "default_value": 2, - "min_value": "1", - "max_value": "86399", - "optional": true + "name": "resource_group", + "type": "TypeString", + "description": "The resource group for this VPN gateway", + "cloud_data_type": "resource_group", + "immutable": true, + "optional": true, + "computed": true }, { - "name": "authentication_mode", + "name": "resource_status", "type": "TypeString", - "description": "The authentication mode", + "description": "The status of the resource", "computed": true - }, + } + ], + "ibm_is_vpn_gateway_connection": [ { - "name": "timeout", + "name": "interval", "type": "TypeInt", - "description": "Timeout for dead peer detection", - "default_value": 10, - "min_value": "2", + "description": "Interval for dead peer detection interval", + "default_value": 2, + "min_value": "1", "max_value": "86399", "optional": true }, { - "name": "related_crn", - "type": "TypeString", - "description": "The crn of the VPN Gateway resource", - "computed": true - }, - { - "name": "resource_type", + "name": "ipsec_policy", "type": "TypeString", - "description": "The resource type", - "computed": true + "description": "IP security policy for vpn gateway connection", + "optional": true }, { - "name": "created_at", + "name": "status", "type": "TypeString", - "description": "The date and time that this VPN gateway connection was created", + "description": "VPN gateway connection status", "computed": true }, { @@ -129937,12 +133036,6 @@ } } }, - { - "name": "peer_address", - "type": "TypeString", - "description": "VPN gateway connection peer address", - "required": true - }, { "name": "admin_state_up", "type": "TypeBool", @@ -129950,6 +133043,58 @@ "default_value": false, "optional": true }, + { + "name": "action", + "type": "TypeString", + "description": "Action detection for dead peer detection action", + "default_value": "restart", + "options": "restart, clear, hold, none", + "optional": true + }, + { + "name": "status_reasons", + "type": "TypeList", + "description": "The reasons for the current status (if any).", + "computed": true, + "elem": { + "code": { + "name": "code", + "type": "TypeString", + "description": "A snake case string succinctly identifying the status reason.", + "computed": true + }, + "message": { + "name": "message", + "type": "TypeString", + "description": "An explanation of the status reason.", + "computed": true + }, + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about this status reason.", + "computed": true + } + } + }, + { + "name": "authentication_mode", + "type": "TypeString", + "description": "The authentication mode", + "computed": true + }, + { + "name": "resource_type", + "type": "TypeString", + "description": "The resource type", + "computed": true + }, + { + "name": "mode", + "type": "TypeString", + "description": "The mode of the VPN gateway", + "computed": true + }, { "name": "peer_cidrs", "type": "TypeSet", @@ -129959,47 +133104,90 @@ "elem": { "type": "TypeString" } - } - ], - "ibm_is_vpn_server": [ + }, { - "name": "client_auto_delete_timeout", + "name": "timeout", "type": "TypeInt", - "description": "Hours after which disconnected VPN clients will be automatically deleted. If `0`, disconnected VPN clients will be deleted immediately.", - "computed": true + "description": "Timeout for dead peer detection", + "default_value": 10, + "min_value": "2", + "max_value": "86399", + "optional": true }, { - "name": "client_dns_server_ips", + "name": "local_cidrs", "type": "TypeSet", - "description": "The DNS server addresses that will be provided to VPN clients connected to this VPN server. The IP address. This property may add support for IPv6 addresses in the future. When processing a value in this property, verify that the address is in an expected format. If it is not, log an error. Optionally halt processing and surface the error, or bypass the resource on which the unexpected IP address format was encountered.", + "description": "VPN gateway connection local CIDRs", + "immutable": true, "optional": true, "elem": { "type": "TypeString" } }, { - "name": "crn", + "name": "vpn_gateway", "type": "TypeString", - "description": "The CRN for this VPN server.", - "cloud_data_type": "crn", + "description": "VPN Gateway info", + "immutable": true, + "required": true + }, + { + "name": "peer_address", + "type": "TypeString", + "description": "VPN gateway connection peer address", + "required": true + }, + { + "name": "ike_policy", + "type": "TypeString", + "description": "VPN gateway connection IKE Policy", + "optional": true + }, + { + "name": "gateway_connection", + "type": "TypeString", + "description": "The unique identifier for this VPN gateway connection", "computed": true }, { - "name": "health_state", + "name": "related_crn", "type": "TypeString", - "description": "The health of this resource.- `ok`: Healthy- `degraded`: Suffering from compromised performance, capacity, or connectivity- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.", + "description": "The crn of the VPN Gateway resource", "computed": true }, { - "name": "private_ips", + "name": "created_at", + "type": "TypeString", + "description": "The date and time that this VPN gateway connection was created", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "VPN Gateway connection name", + "required": true, + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$" + }, + { + "name": "preshared_key", + "type": "TypeString", + "description": "vpn gateway", + "required": true + } + ], + "ibm_is_vpn_server": [ + { + "name": "vpc", "type": "TypeList", - "description": "The reserved IPs bound to this VPN server.", + "description": "The VPC this VPN server resides in.", "computed": true, "elem": { - "address": { - "name": "address", + "crn": { + "name": "crn", "type": "TypeString", - "description": "The IP address. This property may add support for IPv6 addresses in the future. When processing a value in this property, verify that the address is in an expected format. If it is not, log an error. Optionally halt processing and surface the error, or bypass the resource on which the unexpected IP address format was encountered.", + "description": "The CRN for this VPC.", "computed": true }, "deleted": { @@ -130019,25 +133207,19 @@ "href": { "name": "href", "type": "TypeString", - "description": "The URL for this reserved IP.", + "description": "The URL for this VPC.", "computed": true }, "id": { "name": "id", "type": "TypeString", - "description": "The unique identifier for this reserved IP.", + "description": "The unique identifier for this VPC.", "computed": true }, "name": { "name": "name", "type": "TypeString", - "description": "The user-defined or system-provided name for this reserved IP.", - "computed": true - }, - "resource_type": { - "name": "resource_type", - "type": "TypeString", - "description": "The resource type.", + "description": "The unique user-defined name for this VPC.", "computed": true } } @@ -130053,31 +133235,30 @@ } }, { - "name": "client_authentication", - "type": "TypeList", - "description": "The methods used to authenticate VPN clients to this VPN server. VPN clients must authenticate against all provided methods.", + "name": "client_ip_pool", + "type": "TypeString", + "description": "The VPN client IPv4 address pool, expressed in CIDR format. The request must not overlap with any existing address prefixes in the VPC or any of the following reserved address ranges: - `127.0.0.0/8` (IPv4 loopback addresses) - `161.26.0.0/16` (IBM services) - `166.8.0.0/14` (Cloud Service Endpoints) - `169.254.0.0/16` (IPv4 link-local addresses) - `224.0.0.0/4` (IPv4 multicast addresses)The prefix length of the client IP address pool's CIDR must be between`/9` (8,388,608 addresses) and `/22` (1024 addresses). A CIDR block that contains twice the number of IP addresses that are required to enable the maximum number of concurrent connections is recommended.", "required": true, - "elem": { - "client_ca_crn": { - "name": "client_ca_crn", - "type": "TypeString", - "description": "The crn of certificate instance to use for the VPN client certificate authority (CA).", - "optional": true - }, - "identity_provider": { - "name": "identity_provider", - "type": "TypeString", - "description": "The type of identity provider to be used by the VPN client.- `iam`: IBM identity and access managementThe enumerated values for this property are expected to expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the route on which the unexpected property value was encountered.", - "optional": true - }, - "method": { - "name": "method", - "type": "TypeString", - "description": "The type of authentication.", - "required": true - } - }, - "max_items": 2 + "matches": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\/(3[0-2]|[1-2][0-9]|[0-9]))$" + }, + { + "name": "hostname", + "type": "TypeString", + "description": "Fully qualified domain name assigned to this VPN server.", + "computed": true + }, + { + "name": "resource_type", + "type": "TypeString", + "description": "The type of resource referenced.", + "default_value": "vpn_server", + "optional": true + }, + { + "name": "client_auto_delete", + "type": "TypeBool", + "description": "If set to `true`, disconnected VPN clients will be automatically deleted after the `client_auto_delete_timeout` time has passed.", + "computed": true }, { "name": "enable_split_tunneling", @@ -130087,17 +133268,18 @@ "optional": true }, { - "name": "vpn_server", + "name": "lifecycle_state", "type": "TypeString", - "description": "The unique identifier for this VPN server.", + "description": "The lifecycle state of the VPN server.", "computed": true }, { - "name": "protocol", - "type": "TypeString", - "description": "The transport protocol to use for this VPN server.", - "default_value": "udp", - "options": "tcp, udp", + "name": "port", + "type": "TypeInt", + "description": "The port number to use for this VPN server.", + "default_value": 443, + "min_value": "1", + "max_value": "65535", "optional": true }, { @@ -130120,13 +133302,6 @@ "max_items": 2, "min_items": 1 }, - { - "name": "resource_type", - "type": "TypeString", - "description": "The type of resource referenced.", - "default_value": "vpn_server", - "optional": true - }, { "name": "certificate_crn", "type": "TypeString", @@ -130134,90 +133309,143 @@ "required": true }, { - "name": "client_auto_delete", - "type": "TypeBool", - "description": "If set to `true`, disconnected VPN clients will be automatically deleted after the `client_auto_delete_timeout` time has passed.", + "name": "created_at", + "type": "TypeString", + "description": "The date and time that the VPN server was created.", "computed": true }, { - "name": "client_idle_timeout", - "type": "TypeInt", - "description": "The seconds a VPN client can be idle before this VPN server will disconnect it. Specify `0` to prevent the server from disconnecting idle clients.", - "default_value": 600, - "min_value": "0", - "max_value": "28800", + "name": "vpn_server", + "type": "TypeString", + "description": "The unique identifier for this VPN server.", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The user-defined name for this VPN server. If unspecified, the name will be a hyphenated list of randomly-selected words. Names must be unique within the VPC this VPN server is serving.", + "min_length": 1, + "max_length": 63, + "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", "optional": true }, { - "name": "client_ip_pool", + "name": "protocol", "type": "TypeString", - "description": "The VPN client IPv4 address pool, expressed in CIDR format. The request must not overlap with any existing address prefixes in the VPC or any of the following reserved address ranges: - `127.0.0.0/8` (IPv4 loopback addresses) - `161.26.0.0/16` (IBM services) - `166.8.0.0/14` (Cloud Service Endpoints) - `169.254.0.0/16` (IPv4 link-local addresses) - `224.0.0.0/4` (IPv4 multicast addresses)The prefix length of the client IP address pool's CIDR must be between`/9` (8,388,608 addresses) and `/22` (1024 addresses). A CIDR block that contains twice the number of IP addresses that are required to enable the maximum number of concurrent connections is recommended.", - "required": true, - "matches": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\/(3[0-2]|[1-2][0-9]|[0-9]))$" + "description": "The transport protocol to use for this VPN server.", + "default_value": "udp", + "options": "tcp, udp", + "optional": true }, { - "name": "hostname", + "name": "href", "type": "TypeString", - "description": "Fully qualified domain name assigned to this VPN server.", + "description": "The URL for this VPN server.", "computed": true }, { - "name": "security_groups", - "type": "TypeSet", - "description": "The unique identifier for this security group. The security groups to use for this VPN server. If unspecified, the VPC's default security group is used.", - "immutable": true, - "optional": true, - "computed": true, + "name": "client_authentication", + "type": "TypeList", + "description": "The methods used to authenticate VPN clients to this VPN server. VPN clients must authenticate against all provided methods.", + "required": true, "elem": { - "type": "TypeString" - } + "client_ca_crn": { + "name": "client_ca_crn", + "type": "TypeString", + "description": "The crn of certificate instance to use for the VPN client certificate authority (CA).", + "optional": true + }, + "identity_provider": { + "name": "identity_provider", + "type": "TypeString", + "description": "The type of identity provider to be used by the VPN client.- `iam`: IBM identity and access managementThe enumerated values for this property are expected to expand in the future. When processing this property, check for and log unknown values. Optionally halt processing and surface the error, or bypass the route on which the unexpected property value was encountered.", + "optional": true + }, + "method": { + "name": "method", + "type": "TypeString", + "description": "The type of authentication.", + "required": true + } + }, + "max_items": 2 }, { - "name": "created_at", - "type": "TypeString", - "description": "The date and time that the VPN server was created.", - "computed": true + "name": "client_idle_timeout", + "type": "TypeInt", + "description": "The seconds a VPN client can be idle before this VPN server will disconnect it. Specify `0` to prevent the server from disconnecting idle clients.", + "default_value": 600, + "min_value": "0", + "max_value": "28800", + "optional": true }, { - "name": "href", - "type": "TypeString", - "description": "The URL for this VPN server.", - "computed": true + "name": "health_reasons", + "type": "TypeList", + "computed": true, + "elem": { + "code": { + "name": "code", + "type": "TypeString", + "description": "A snake case string succinctly identifying the reason for this health state.", + "computed": true + }, + "message": { + "name": "message", + "type": "TypeString", + "description": "An explanation of the reason for this health state.", + "computed": true + }, + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about the reason for this health state.", + "computed": true + } + } }, { - "name": "lifecycle_state", + "name": "health_state", "type": "TypeString", - "description": "The lifecycle state of the VPN server.", + "description": "The health of this resource.- `ok`: Healthy- `degraded`: Suffering from compromised performance, capacity, or connectivity- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.", "computed": true }, { - "name": "name", - "type": "TypeString", - "description": "The user-defined name for this VPN server. If unspecified, the name will be a hyphenated list of randomly-selected words. Names must be unique within the VPC this VPN server is serving.", - "min_length": 1, - "max_length": 63, - "matches": "^([a-z]|[a-z][-a-z0-9]*[a-z0-9])$", - "optional": true - }, - { - "name": "port", - "type": "TypeInt", - "description": "The port number to use for this VPN server.", - "default_value": 443, - "min_value": "1", - "max_value": "65535", - "optional": true + "name": "lifecycle_reasons", + "type": "TypeList", + "description": "The reasons for the current lifecycle_state (if any).", + "computed": true, + "elem": { + "code": { + "name": "code", + "type": "TypeString", + "description": "A snake case string succinctly identifying the reason for this lifecycle state.", + "computed": true + }, + "message": { + "name": "message", + "type": "TypeString", + "description": "An explanation of the reason for this lifecycle state.", + "computed": true + }, + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about the reason for this lifecycle state.", + "computed": true + } + } }, { - "name": "vpc", + "name": "private_ips", "type": "TypeList", - "description": "The VPC this VPN server resides in.", + "description": "The reserved IPs bound to this VPN server.", "computed": true, "elem": { - "crn": { - "name": "crn", + "address": { + "name": "address", "type": "TypeString", - "description": "The CRN for this VPC.", + "description": "The IP address. This property may add support for IPv6 addresses in the future. When processing a value in this property, verify that the address is in an expected format. If it is not, log an error. Optionally halt processing and surface the error, or bypass the resource on which the unexpected IP address format was encountered.", "computed": true }, "deleted": { @@ -130237,22 +133465,61 @@ "href": { "name": "href", "type": "TypeString", - "description": "The URL for this VPC.", + "description": "The URL for this reserved IP.", "computed": true }, "id": { "name": "id", "type": "TypeString", - "description": "The unique identifier for this VPC.", + "description": "The unique identifier for this reserved IP.", "computed": true }, "name": { "name": "name", "type": "TypeString", - "description": "The unique user-defined name for this VPC.", + "description": "The user-defined or system-provided name for this reserved IP.", + "computed": true + }, + "resource_type": { + "name": "resource_type", + "type": "TypeString", + "description": "The resource type.", "computed": true } } + }, + { + "name": "security_groups", + "type": "TypeSet", + "description": "The unique identifier for this security group. The security groups to use for this VPN server. If unspecified, the VPC's default security group is used.", + "immutable": true, + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "client_auto_delete_timeout", + "type": "TypeInt", + "description": "Hours after which disconnected VPN clients will be automatically deleted. If `0`, disconnected VPN clients will be deleted immediately.", + "computed": true + }, + { + "name": "client_dns_server_ips", + "type": "TypeSet", + "description": "The DNS server addresses that will be provided to VPN clients connected to this VPN server. The IP address. This property may add support for IPv6 addresses in the future. When processing a value in this property, verify that the address is in an expected format. If it is not, log an error. Optionally halt processing and surface the error, or bypass the resource on which the unexpected IP address format was encountered.", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "crn", + "type": "TypeString", + "description": "The CRN for this VPN server.", + "cloud_data_type": "crn", + "computed": true } ], "ibm_is_vpn_server_client": [ @@ -130292,23 +133559,12 @@ ], "ibm_is_vpn_server_route": [ { - "name": "resource_type", - "type": "TypeString", - "description": "The resource type.", - "computed": true - }, - { - "name": "vpn_server", + "name": "destination", "type": "TypeString", - "description": "The VPN server identifier.", + "description": "The destination to use for this VPN route in the VPN server. Must be unique within the VPN server. If an incoming packet does not match any destination, it will be dropped.", "immutable": true, - "required": true - }, - { - "name": "href", - "type": "TypeString", - "description": "The URL for this VPN route.", - "computed": true + "required": true, + "matches": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\/(3[0-2]|[1-2][0-9]|[0-9]))$" }, { "name": "action", @@ -130336,11 +133592,24 @@ "computed": true }, { - "name": "lifecycle_state", + "name": "href", "type": "TypeString", - "description": "The lifecycle state of the VPN route.", + "description": "The URL for this VPN route.", "computed": true }, + { + "name": "resource_type", + "type": "TypeString", + "description": "The resource type.", + "computed": true + }, + { + "name": "vpn_server", + "type": "TypeString", + "description": "The VPN server identifier.", + "immutable": true, + "required": true + }, { "name": "vpn_route", "type": "TypeString", @@ -130348,21 +133617,90 @@ "computed": true }, { - "name": "destination", + "name": "health_state", "type": "TypeString", - "description": "The destination to use for this VPN route in the VPN server. Must be unique within the VPN server. If an incoming packet does not match any destination, it will be dropped.", - "immutable": true, - "required": true, - "matches": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\/(3[0-2]|[1-2][0-9]|[0-9]))$" + "description": "The health of this resource.- `ok`: Healthy- `degraded`: Suffering from compromised performance, capacity, or connectivity- `faulted`: Completely unreachable, inoperative, or otherwise entirely incapacitated- `inapplicable`: The health state does not apply because of the current lifecycle state. A resource with a lifecycle state of `failed` or `deleting` will have a health state of `inapplicable`. A `pending` resource may also have this state.", + "computed": true + }, + { + "name": "health_reasons", + "type": "TypeList", + "computed": true, + "elem": { + "code": { + "name": "code", + "type": "TypeString", + "description": "A snake case string succinctly identifying the reason for this health state.", + "computed": true + }, + "message": { + "name": "message", + "type": "TypeString", + "description": "An explanation of the reason for this health state.", + "computed": true + }, + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about the reason for this health state.", + "computed": true + } + } + }, + { + "name": "lifecycle_state", + "type": "TypeString", + "description": "The lifecycle state of the VPN route.", + "computed": true + }, + { + "name": "lifecycle_reasons", + "type": "TypeList", + "description": "The reasons for the current lifecycle_state (if any).", + "computed": true, + "elem": { + "code": { + "name": "code", + "type": "TypeString", + "description": "A snake case string succinctly identifying the reason for this lifecycle state.", + "computed": true + }, + "message": { + "name": "message", + "type": "TypeString", + "description": "An explanation of the reason for this lifecycle state.", + "computed": true + }, + "more_info": { + "name": "more_info", + "type": "TypeString", + "description": "Link to documentation about the reason for this lifecycle state.", + "computed": true + } + } } ], "ibm_kms_instance_policies": [ { - "name": "metrics", + "name": "key_create_import_access", "type": "TypeList", - "description": "Data associated with the metric policy for instance", + "description": "Data associated with the key create import access policy for the instance", "optional": true, "elem": { + "create_root_key": { + "name": "create_root_key", + "type": "TypeBool", + "description": "If set to true, Key Protect allows you or any authorized users to create root keys in the instance.", + "default_value": true, + "optional": true + }, + "create_standard_key": { + "name": "create_standard_key", + "type": "TypeBool", + "description": "If set to true, Key Protect allows you or any authorized users to create standard keys in the instance.", + "default_value": true, + "optional": true + }, "created_by": { "name": "created_by", "type": "TypeString", @@ -130378,9 +133716,30 @@ "enabled": { "name": "enabled", "type": "TypeBool", - "description": "If set to true, Key Protect enables a metrics policy on the instance.", + "description": "If set to true, Key Protect enables a KCIA policy for the instance.", "required": true }, + "enforce_token": { + "name": "enforce_token", + "type": "TypeBool", + "description": "If set to true, the service prevents you or any authorized users from importing key material into the specified service instance without using an import token.", + "default_value": false, + "optional": true + }, + "import_root_key": { + "name": "import_root_key", + "type": "TypeBool", + "description": "If set to true, Key Protect allows you or any authorized users to import root keys into the instance.", + "default_value": true, + "optional": true + }, + "import_standard_key": { + "name": "import_standard_key", + "type": "TypeBool", + "description": "If set to true, Key Protect allows you or any authorized users to import standard keys into the instance.", + "default_value": true, + "optional": true + }, "last_updated": { "name": "last_updated", "type": "TypeString", @@ -130397,20 +133756,9 @@ "max_items": 1 }, { - "name": "instance_id", - "type": "TypeString", - "description": "Key protect or hpcs instance GUID or CRN", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true, - "cloud_data_range": [ - "service:kms|hs-crypto" - ] - }, - { - "name": "dual_auth_delete", + "name": "metrics", "type": "TypeList", - "description": "Data associated with the dual authorization delete policy for instance", + "description": "Data associated with the metric policy for instance", "optional": true, "elem": { "created_by": { @@ -130428,7 +133776,7 @@ "enabled": { "name": "enabled", "type": "TypeBool", - "description": "If set to true, Key Protect enables a dual authorization policy for the instance.", + "description": "If set to true, Key Protect enables a metrics policy on the instance.", "required": true }, "last_updated": { @@ -130447,9 +133795,20 @@ "max_items": 1 }, { - "name": "rotation", + "name": "instance_id", + "type": "TypeString", + "description": "Key protect or hpcs instance GUID or CRN", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true, + "cloud_data_range": [ + "service:kms|hs-crypto" + ] + }, + { + "name": "dual_auth_delete", "type": "TypeList", - "description": "Data associated with the rotation policy for instance", + "description": "Data associated with the dual authorization delete policy for instance", "optional": true, "elem": { "created_by": { @@ -130466,15 +133825,9 @@ }, "enabled": { "name": "enabled", - "type": "TypeBool", - "description": "If set to true, Key Protect enables a rotation policy for the instance.", - "required": true - }, - "interval_month": { - "name": "interval_month", - "type": "TypeInt", - "description": "Specifies the rotation time interval in months for the instance.", - "optional": true + "type": "TypeBool", + "description": "If set to true, Key Protect enables a dual authorization policy for the instance.", + "required": true }, "last_updated": { "name": "last_updated", @@ -130492,25 +133845,11 @@ "max_items": 1 }, { - "name": "key_create_import_access", + "name": "rotation", "type": "TypeList", - "description": "Data associated with the key create import access policy for the instance", + "description": "Data associated with the rotation policy for instance", "optional": true, "elem": { - "create_root_key": { - "name": "create_root_key", - "type": "TypeBool", - "description": "If set to true, Key Protect allows you or any authorized users to create root keys in the instance.", - "default_value": true, - "optional": true - }, - "create_standard_key": { - "name": "create_standard_key", - "type": "TypeBool", - "description": "If set to true, Key Protect allows you or any authorized users to create standard keys in the instance.", - "default_value": true, - "optional": true - }, "created_by": { "name": "created_by", "type": "TypeString", @@ -130526,28 +133865,13 @@ "enabled": { "name": "enabled", "type": "TypeBool", - "description": "If set to true, Key Protect enables a KCIA policy for the instance.", + "description": "If set to true, Key Protect enables a rotation policy for the instance.", "required": true }, - "enforce_token": { - "name": "enforce_token", - "type": "TypeBool", - "description": "If set to true, the service prevents you or any authorized users from importing key material into the specified service instance without using an import token.", - "default_value": false, - "optional": true - }, - "import_root_key": { - "name": "import_root_key", - "type": "TypeBool", - "description": "If set to true, Key Protect allows you or any authorized users to import root keys into the instance.", - "default_value": true, - "optional": true - }, - "import_standard_key": { - "name": "import_standard_key", - "type": "TypeBool", - "description": "If set to true, Key Protect allows you or any authorized users to import standard keys into the instance.", - "default_value": true, + "interval_month": { + "name": "interval_month", + "type": "TypeInt", + "description": "Specifies the rotation time interval in months for the instance.", "optional": true }, "last_updated": { @@ -130568,35 +133892,38 @@ ], "ibm_kms_key": [ { - "name": "key_id", + "name": "resource_status", "type": "TypeString", - "description": "Key ID", + "description": "The status of the resource", "computed": true }, { - "name": "key_name", + "name": "instance_id", "type": "TypeString", - "description": "Key name", + "description": "Key protect or hpcs instance GUID or CRN", + "cloud_data_type": "resource_instance", "immutable": true, - "required": true + "required": true, + "cloud_data_range": [ + "service:kms|hs-crypto" + ] }, { - "name": "resource_crn", + "name": "key_id", "type": "TypeString", - "description": "The crn of the resource", + "description": "Key ID", "computed": true }, { - "name": "resource_status", + "name": "type", "type": "TypeString", - "description": "The status of the resource", + "description": "type of service hs-crypto or kms", "computed": true }, { - "name": "key_ring_id", + "name": "iv_value", "type": "TypeString", - "description": "Key Ring for the Key", - "default_value": "default", + "description": "Only for imported root key", "immutable": true, "optional": true }, @@ -130607,6 +133934,13 @@ "default_value": false, "optional": true }, + { + "name": "expiration_date", + "type": "TypeString", + "description": "The date the key material expires. The date format follows RFC 3339. You can set an expiration date on any key on its creation. A key moves into the Deactivated state within one hour past its expiration date, if one is assigned. If you create a key without specifying an expiration date, the key does not expire", + "immutable": true, + "optional": true + }, { "name": "instance_crn", "type": "TypeString", @@ -130614,11 +133948,11 @@ "computed": true }, { - "name": "expiration_date", + "name": "endpoint_type", "type": "TypeString", - "description": "The date the key material expires. The date format follows RFC 3339. You can set an expiration date on any key on its creation. A key moves into the Deactivated state within one hour past its expiration date, if one is assigned. If you create a key without specifying an expiration date, the key does not expire", - "immutable": true, - "optional": true + "description": "public or private", + "optional": true, + "computed": true }, { "name": "resource_name", @@ -130627,27 +133961,23 @@ "computed": true }, { - "name": "resource_controller_url", + "name": "resource_crn", "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about the resource", + "description": "The crn of the resource", "computed": true }, { - "name": "instance_id", + "name": "resource_group_name", "type": "TypeString", - "description": "Key protect or hpcs instance GUID or CRN", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true, - "cloud_data_range": [ - "service:kms|hs-crypto" - ] + "description": "The resource group name in which resource is provisioned", + "computed": true }, { - "name": "type", + "name": "key_name", "type": "TypeString", - "description": "type of service hs-crypto or kms", - "computed": true + "description": "Key name", + "immutable": true, + "required": true }, { "name": "description", @@ -130656,6 +133986,29 @@ "immutable": true, "optional": true }, + { + "name": "payload", + "type": "TypeString", + "secure": true, + "immutable": true, + "optional": true, + "computed": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "Crn of the key", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "key_ring_id", + "type": "TypeString", + "description": "Key Ring for the Key", + "default_value": "default", + "immutable": true, + "optional": true + }, { "name": "standard_key", "type": "TypeBool", @@ -130672,42 +134025,31 @@ "optional": true }, { - "name": "endpoint_type", + "name": "resource_controller_url", "type": "TypeString", - "description": "public or private", - "optional": true, + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about the resource", "computed": true - }, + } + ], + "ibm_kms_key_alias": [ { - "name": "payload", + "name": "instance_id", "type": "TypeString", - "secure": true, + "description": "Key ID", + "cloud_data_type": "resource_instance", "immutable": true, - "optional": true, - "computed": true + "required": true, + "cloud_data_range": [ + "service:kms|hs-crypto" + ] }, { - "name": "iv_value", + "name": "alias", "type": "TypeString", - "description": "Only for imported root key", + "description": "Key protect or hpcs key alias name", "immutable": true, - "optional": true - }, - { - "name": "crn", - "type": "TypeString", - "description": "Crn of the key", - "cloud_data_type": "crn", - "computed": true + "required": true }, - { - "name": "resource_group_name", - "type": "TypeString", - "description": "The resource group name in which resource is provisioned", - "computed": true - } - ], - "ibm_kms_key_alias": [ { "name": "key_id", "type": "TypeString", @@ -130729,11 +134071,13 @@ "immutable": true, "optional": true, "computed": true - }, + } + ], + "ibm_kms_key_policies": [ { "name": "instance_id", "type": "TypeString", - "description": "Key ID", + "description": "Key protect or hpcs instance GUID", "cloud_data_type": "resource_instance", "immutable": true, "required": true, @@ -130744,24 +134088,6 @@ { "name": "alias", "type": "TypeString", - "description": "Key protect or hpcs key alias name", - "immutable": true, - "required": true - } - ], - "ibm_kms_key_policies": [ - { - "name": "key_id", - "type": "TypeString", - "description": "Key ID", - "optional": true - }, - { - "name": "endpoint_type", - "type": "TypeString", - "description": "public or private", - "default_value": "public", - "immutable": true, "optional": true }, { @@ -130771,9 +134097,9 @@ "computed": true }, { - "name": "resource_crn", + "name": "resource_status", "type": "TypeString", - "description": "The crn of the resource", + "description": "The status of the resource", "computed": true }, { @@ -130783,19 +134109,17 @@ "computed": true }, { - "name": "instance_id", + "name": "key_id", "type": "TypeString", - "description": "Key protect or hpcs instance GUID", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true, - "cloud_data_range": [ - "service:kms|hs-crypto" - ] + "description": "Key ID", + "optional": true }, { - "name": "alias", + "name": "endpoint_type", "type": "TypeString", + "description": "public or private", + "default_value": "public", + "immutable": true, "optional": true }, { @@ -130907,9 +134231,9 @@ } }, { - "name": "resource_status", + "name": "resource_crn", "type": "TypeString", - "description": "The status of the resource", + "description": "The crn of the resource", "computed": true } ], @@ -130953,42 +134277,44 @@ ], "ibm_kms_key_with_policy_overrides": [ { - "name": "resource_status", - "type": "TypeString", - "description": "The status of the resource", - "computed": true + "name": "rotation", + "type": "TypeList", + "description": "Data associated with the key rotation policy", + "optional": true, + "computed": true, + "elem": { + "enabled": { + "name": "enabled", + "type": "TypeBool", + "description": "If set to true, Key Protect enables a rotation policy on a single key.", + "required": true + }, + "interval_month": { + "name": "interval_month", + "type": "TypeInt", + "description": "Specifies the key rotation time interval in months, with a minimum of 1, and a maximum of 12", + "required": true + } + } }, { - "name": "instance_id", + "name": "description", "type": "TypeString", - "description": "Key protect or HPCS instance GUID or CRN", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true, - "cloud_data_range": [ - "service:kms|hs-crypto" - ] - }, - { - "name": "standard_key", - "type": "TypeBool", - "description": "Standard key type", - "default_value": false, + "description": "description of the key", "immutable": true, "optional": true }, { - "name": "payload", + "name": "type", "type": "TypeString", - "secure": true, - "immutable": true, - "optional": true, + "description": "Type of service hs-crypto or kms", "computed": true }, { - "name": "iv_value", - "type": "TypeString", - "description": "Only for imported root key", + "name": "standard_key", + "type": "TypeBool", + "description": "Standard key type", + "default_value": false, "immutable": true, "optional": true }, @@ -130999,41 +134325,6 @@ "default_value": false, "optional": true }, - { - "name": "resource_name", - "type": "TypeString", - "description": "The name of the resource", - "computed": true - }, - { - "name": "resource_controller_url", - "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about the resource", - "computed": true - }, - { - "name": "description", - "type": "TypeString", - "description": "description of the key", - "immutable": true, - "optional": true - }, - { - "name": "key_ring_id", - "type": "TypeString", - "description": "Key Ring for the Key", - "default_value": "default", - "immutable": true, - "optional": true - }, - { - "name": "endpoint_type", - "type": "TypeString", - "description": "Public or Private", - "immutable": true, - "optional": true, - "computed": true - }, { "name": "crn", "type": "TypeString", @@ -131041,25 +134332,6 @@ "cloud_data_type": "crn", "computed": true }, - { - "name": "expiration_date", - "type": "TypeString", - "description": "The date the key material expires. The date format follows RFC 3339. You can set an expiration date on any key on its creation. A key moves into the Deactivated state within one hour past its expiration date, if one is assigned. If you create a key without specifying an expiration date, the key does not expire", - "immutable": true, - "optional": true - }, - { - "name": "resource_group_name", - "type": "TypeString", - "description": "The resource group name in which resource is provisioned", - "computed": true - }, - { - "name": "type", - "type": "TypeString", - "description": "Type of service hs-crypto or kms", - "computed": true - }, { "name": "instance_crn", "type": "TypeString", @@ -131067,25 +134339,11 @@ "computed": true }, { - "name": "rotation", - "type": "TypeList", - "description": "Data associated with the key rotation policy", - "optional": true, - "computed": true, - "elem": { - "enabled": { - "name": "enabled", - "type": "TypeBool", - "description": "If set to true, Key Protect enables a rotation policy on a single key.", - "required": true - }, - "interval_month": { - "name": "interval_month", - "type": "TypeInt", - "description": "Specifies the key rotation time interval in months, with a minimum of 1, and a maximum of 12", - "required": true - } - } + "name": "expiration_date", + "type": "TypeString", + "description": "The date the key material expires. The date format follows RFC 3339. You can set an expiration date on any key on its creation. A key moves into the Deactivated state within one hour past its expiration date, if one is assigned. If you create a key without specifying an expiration date, the key does not expire", + "immutable": true, + "optional": true }, { "name": "dual_auth_delete", @@ -131103,15 +134361,15 @@ } }, { - "name": "resource_crn", + "name": "resource_name", "type": "TypeString", - "description": "The crn of the resource", + "description": "The name of the resource", "computed": true }, { - "name": "key_id", + "name": "resource_controller_url", "type": "TypeString", - "description": "Key ID", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about the resource", "computed": true }, { @@ -131121,20 +134379,20 @@ "immutable": true, "required": true }, + { + "name": "endpoint_type", + "type": "TypeString", + "description": "Public or Private", + "immutable": true, + "optional": true, + "computed": true + }, { "name": "encrypted_nonce", "type": "TypeString", "description": "Only for imported root key", "immutable": true, "optional": true - } - ], - "ibm_kp_key": [ - { - "name": "payload", - "type": "TypeString", - "optional": true, - "computed": true }, { "name": "iv_value", @@ -131144,38 +134402,64 @@ "optional": true }, { - "name": "resource_group_name", + "name": "resource_status", "type": "TypeString", - "description": "The resource group name in which resource is provisioned", + "description": "The status of the resource", "computed": true }, { - "name": "standard_key", - "type": "TypeBool", - "description": "Standard key type", - "default_value": false, + "name": "instance_id", + "type": "TypeString", + "description": "Key protect or HPCS instance GUID or CRN", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true, + "cloud_data_range": [ + "service:kms|hs-crypto" + ] + }, + { + "name": "key_ring_id", + "type": "TypeString", + "description": "Key Ring for the Key", + "default_value": "default", "immutable": true, "optional": true }, { - "name": "resource_controller_url", + "name": "key_id", "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about the resource", + "description": "Key ID", "computed": true }, { - "name": "key_protect_id", + "name": "payload", "type": "TypeString", - "description": "Key protect instance ID", + "secure": true, "immutable": true, - "required": true + "optional": true, + "computed": true }, { - "name": "key_name", + "name": "resource_crn", "type": "TypeString", - "description": "Key name", + "description": "The crn of the resource", + "computed": true + }, + { + "name": "resource_group_name", + "type": "TypeString", + "description": "The resource group name in which resource is provisioned", + "computed": true + } + ], + "ibm_kp_key": [ + { + "name": "iv_value", + "type": "TypeString", + "description": "Only for imported root key", "immutable": true, - "required": true + "optional": true }, { "name": "crn", @@ -131191,9 +134475,15 @@ "computed": true }, { - "name": "resource_status", + "name": "resource_group_name", "type": "TypeString", - "description": "The status of the resource", + "description": "The resource group name in which resource is provisioned", + "computed": true + }, + { + "name": "resource_controller_url", + "type": "TypeString", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about the resource", "computed": true }, { @@ -131209,6 +134499,33 @@ "default_value": false, "optional": true }, + { + "name": "standard_key", + "type": "TypeBool", + "description": "Standard key type", + "default_value": false, + "immutable": true, + "optional": true + }, + { + "name": "resource_status", + "type": "TypeString", + "description": "The status of the resource", + "computed": true + }, + { + "name": "key_protect_id", + "type": "TypeString", + "description": "Key protect instance ID", + "immutable": true, + "required": true + }, + { + "name": "payload", + "type": "TypeString", + "optional": true, + "computed": true + }, { "name": "encrypted_nonce", "type": "TypeString", @@ -131221,16 +134538,25 @@ "type": "TypeString", "description": "The crn of the resource", "computed": true + }, + { + "name": "key_name", + "type": "TypeString", + "description": "Key name", + "immutable": true, + "required": true } ], "ibm_lb": [ { - "name": "dedicated", - "type": "TypeBool", - "description": "Boolena value true if Load balncer is dedicated type", - "default_value": false, - "immutable": true, - "optional": true + "name": "tags", + "type": "TypeSet", + "description": "Tags associated with resource", + "cloud_data_type": "tags", + "optional": true, + "elem": { + "type": "TypeString" + } }, { "name": "hostname", @@ -131238,15 +134564,26 @@ "computed": true }, { - "name": "connections", - "type": "TypeInt", - "description": "Connections value", - "required": true + "name": "ssl_offload", + "type": "TypeBool", + "description": "boolean value true if SSL offload is enabled", + "default_value": false, + "optional": true }, { - "name": "ip_address", + "name": "datacenter", "type": "TypeString", - "computed": true + "description": "Datacenter name info", + "immutable": true, + "required": true + }, + { + "name": "ha_enabled", + "type": "TypeBool", + "description": "true if High availability is enabled", + "default_value": false, + "immutable": true, + "optional": true }, { "name": "security_certificate_id", @@ -131255,49 +134592,46 @@ "optional": true }, { - "name": "subnet_id", - "type": "TypeInt", + "name": "ip_address", + "type": "TypeString", "computed": true }, { - "name": "ssl_enabled", - "type": "TypeBool", + "name": "subnet_id", + "type": "TypeInt", "computed": true }, { - "name": "ssl_offload", + "name": "dedicated", "type": "TypeBool", - "description": "boolean value true if SSL offload is enabled", + "description": "Boolena value true if Load balncer is dedicated type", "default_value": false, + "immutable": true, "optional": true }, + { + "name": "ssl_enabled", + "type": "TypeBool", + "computed": true + }, + { + "name": "connections", + "type": "TypeInt", + "description": "Connections value", + "required": true + } + ], + "ibm_lb_service": [ { "name": "tags", "type": "TypeSet", - "description": "Tags associated with resource", + "description": "Tags for the resource", "cloud_data_type": "tags", "optional": true, "elem": { "type": "TypeString" } }, - { - "name": "datacenter", - "type": "TypeString", - "description": "Datacenter name info", - "immutable": true, - "required": true - }, - { - "name": "ha_enabled", - "type": "TypeBool", - "description": "true if High availability is enabled", - "default_value": false, - "immutable": true, - "optional": true - } - ], - "ibm_lb_service": [ { "name": "service_group_id", "type": "TypeInt", @@ -131335,19 +134669,21 @@ "type": "TypeInt", "description": "Weight value", "required": true - }, - { - "name": "tags", - "type": "TypeSet", - "description": "Tags for the resource", - "cloud_data_type": "tags", - "optional": true, - "elem": { - "type": "TypeString" - } } ], "ibm_lb_service_group": [ + { + "name": "allocation", + "type": "TypeInt", + "description": "Allocation type", + "required": true + }, + { + "name": "timeout", + "type": "TypeInt", + "description": "Timeout value", + "optional": true + }, { "name": "tags", "type": "TypeSet", @@ -131358,6 +134694,12 @@ "type": "TypeString" } }, + { + "name": "virtual_server_id", + "type": "TypeInt", + "description": "Virtual server ID", + "computed": true + }, { "name": "load_balancer_id", "type": "TypeInt", @@ -131365,6 +134707,12 @@ "immutable": true, "required": true }, + { + "name": "port", + "type": "TypeInt", + "description": "Port number", + "required": true + }, { "name": "routing_method", "type": "TypeString", @@ -131377,38 +134725,31 @@ "description": "Routing type", "required": true }, - { - "name": "timeout", - "type": "TypeInt", - "description": "Timeout value", - "optional": true - }, - { - "name": "virtual_server_id", - "type": "TypeInt", - "description": "Virtual server ID", - "computed": true - }, { "name": "service_group_id", "type": "TypeInt", "description": "Service group ID", "computed": true - }, - { - "name": "allocation", - "type": "TypeInt", - "description": "Allocation type", - "required": true - }, - { - "name": "port", - "type": "TypeInt", - "description": "Port number", - "required": true } ], "ibm_lb_vpx": [ + { + "name": "public_subnet", + "type": "TypeString", + "description": "Public subnet", + "immutable": true, + "optional": true, + "computed": true + }, + { + "name": "vip_pool", + "type": "TypeList", + "description": "List of VIP ids", + "computed": true, + "elem": { + "type": "TypeString" + } + }, { "name": "datacenter", "type": "TypeString", @@ -131417,12 +134758,24 @@ "required": true }, { - "name": "private_vlan_id", + "name": "type", + "type": "TypeString", + "description": "Type of the VPX", + "computed": true + }, + { + "name": "speed", "type": "TypeInt", - "description": "Private VLAN id", + "description": "Speed value", "immutable": true, - "optional": true, - "computed": true + "required": true + }, + { + "name": "ip_count", + "type": "TypeInt", + "description": "IP address count", + "immutable": true, + "required": true }, { "name": "name", @@ -131431,9 +134784,11 @@ "computed": true }, { - "name": "type", - "type": "TypeString", - "description": "Type of the VPX", + "name": "private_vlan_id", + "type": "TypeInt", + "description": "Private VLAN id", + "immutable": true, + "optional": true, "computed": true }, { @@ -131461,34 +134816,12 @@ } }, { - "name": "version", - "type": "TypeString", - "description": "version info", - "immutable": true, - "required": true - }, - { - "name": "ip_count", - "type": "TypeInt", - "description": "IP address count", - "immutable": true, - "required": true - }, - { - "name": "vip_pool", - "type": "TypeList", - "description": "List of VIP ids", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "speed", + "name": "public_vlan_id", "type": "TypeInt", - "description": "Speed value", + "description": "Piblic VLAN id", "immutable": true, - "required": true + "optional": true, + "computed": true }, { "name": "plan", @@ -131498,20 +134831,11 @@ "required": true }, { - "name": "public_vlan_id", - "type": "TypeInt", - "description": "Piblic VLAN id", - "immutable": true, - "optional": true, - "computed": true - }, - { - "name": "public_subnet", + "name": "version", "type": "TypeString", - "description": "Public subnet", + "description": "version info", "immutable": true, - "optional": true, - "computed": true + "required": true } ], "ibm_lb_vpx_ha": [ @@ -131549,16 +134873,23 @@ ], "ibm_lb_vpx_service": [ { - "name": "weight", + "name": "vip_id", + "type": "TypeString", + "description": "VIP id", + "immutable": true, + "required": true + }, + { + "name": "destination_port", "type": "TypeInt", - "description": "Weight value", + "description": "Destination Port number", + "immutable": true, "required": true }, { - "name": "vip_id", + "name": "health_check", "type": "TypeString", - "description": "VIP id", - "immutable": true, + "description": "Health check info", "required": true }, { @@ -131569,15 +134900,22 @@ "required": true }, { - "name": "connection_limit", + "name": "destination_ip_address", + "type": "TypeString", + "description": "Destination IP Address", + "immutable": true, + "required": true + }, + { + "name": "weight", "type": "TypeInt", - "description": "Number of connections limit", + "description": "Weight value", "required": true }, { - "name": "health_check", - "type": "TypeString", - "description": "Health check info", + "name": "connection_limit", + "type": "TypeInt", + "description": "Number of connections limit", "required": true }, { @@ -131596,30 +134934,9 @@ "elem": { "type": "TypeString" } - }, - { - "name": "destination_ip_address", - "type": "TypeString", - "description": "Destination IP Address", - "immutable": true, - "required": true - }, - { - "name": "destination_port", - "type": "TypeInt", - "description": "Destination Port number", - "immutable": true, - "required": true } ], "ibm_lb_vpx_vip": [ - { - "name": "persistence", - "type": "TypeString", - "description": "Persistance value", - "optional": true, - "computed": true - }, { "name": "source_port", "type": "TypeInt", @@ -131663,6 +134980,13 @@ "description": "Load balancing method", "required": true }, + { + "name": "persistence", + "type": "TypeString", + "description": "Persistance value", + "optional": true, + "computed": true + }, { "name": "name", "type": "TypeString", @@ -131680,74 +135004,27 @@ ], "ibm_lbaas": [ { - "name": "use_system_public_ip_pool", - "type": "TypeBool", - "description": "\"in public loadbalancer - Public IP address allocation done by system public IP pool or public subnet.\"", - "optional": true, + "name": "datacenter", + "type": "TypeString", "computed": true }, { - "name": "protocols", - "type": "TypeSet", - "description": "Protocols to be assigned to this load balancer.", - "optional": true, + "name": "subnets", + "type": "TypeList", + "description": "The subnet where this Load Balancer will be provisioned.", + "immutable": true, + "required": true, "elem": { - "backend_port": { - "name": "backend_port", - "type": "TypeInt", - "description": "Backend Protocol port number. Should be in range (1, 65535)", - "required": true - }, - "backend_protocol": { - "name": "backend_protocol", - "type": "TypeString", - "description": "Backend protocol, one of 'TCP', 'HTTP', 'HTTPS'.", - "required": true - }, - "frontend_port": { - "name": "frontend_port", - "type": "TypeInt", - "description": "Frontend Protocol port number. Should be in range (1, 65535)", - "required": true - }, - "frontend_protocol": { - "name": "frontend_protocol", - "type": "TypeString", - "description": "Frontend protocol, one of 'TCP', 'HTTP', 'HTTPS'.", - "required": true - }, - "load_balancing_method": { - "name": "load_balancing_method", - "type": "TypeString", - "description": "Load balancing algorithm: 'round_robin', 'weighted_round_robin', 'least_connection'", - "default_value": "round_robin", - "optional": true - }, - "max_conn": { - "name": "max_conn", - "type": "TypeInt", - "description": "No. of connections the listener can accept. Should be between 1-64000", - "optional": true - }, - "protocol_id": { - "name": "protocol_id", - "type": "TypeString", - "description": "The UUID of a load balancer protocol", - "computed": true - }, - "session_stickiness": { - "name": "session_stickiness", - "type": "TypeString", - "description": "Session stickness. Valid values is SOURCE_IP and HTTP_COOKIE", - "optional": true - }, - "tls_certificate_id": { - "name": "tls_certificate_id", - "type": "TypeInt", - "description": "This references to SSL/TLS certificate for a protocol", - "optional": true - } - } + "type": "TypeInt" + }, + "max_items": 1, + "min_items": 1 + }, + { + "name": "vip", + "type": "TypeString", + "description": "The virtual ip address of this load balancer", + "computed": true }, { "name": "wait_time_minutes", @@ -131755,6 +135032,25 @@ "default_value": 90, "optional": true }, + { + "name": "description", + "type": "TypeString", + "description": "Description of a load balancer.", + "optional": true + }, + { + "name": "status", + "type": "TypeString", + "description": "The operation status 'ONLINE' or 'OFFLINE' of a load balancer.", + "computed": true + }, + { + "name": "use_system_public_ip_pool", + "type": "TypeBool", + "description": "\"in public loadbalancer - Public IP address allocation done by system public IP pool or public subnet.\"", + "optional": true, + "computed": true + }, { "name": "health_monitors", "type": "TypeList", @@ -131798,27 +135094,20 @@ } }, { - "name": "subnets", - "type": "TypeList", - "description": "The subnet where this Load Balancer will be provisioned.", - "immutable": true, - "required": true, - "elem": { - "type": "TypeInt" - }, - "max_items": 1, - "min_items": 1 - }, - { - "name": "vip", + "name": "name", "type": "TypeString", - "description": "The virtual ip address of this load balancer", - "computed": true + "description": "The load balancer's name.", + "immutable": true, + "required": true }, { - "name": "datacenter", - "type": "TypeString", - "computed": true + "name": "ssl_ciphers", + "type": "TypeSet", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } }, { "name": "resource_controller_url", @@ -131826,31 +135115,12 @@ "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", "computed": true }, - { - "name": "status", - "type": "TypeString", - "description": "The operation status 'ONLINE' or 'OFFLINE' of a load balancer.", - "computed": true - }, - { - "name": "resource_name", - "type": "TypeString", - "description": "The name of the resource", - "computed": true - }, { "name": "resource_status", "type": "TypeString", "description": "The status of the resource", "computed": true }, - { - "name": "name", - "type": "TypeString", - "description": "The load balancer's name.", - "immutable": true, - "required": true - }, { "name": "type", "type": "TypeString", @@ -131860,29 +135130,76 @@ "optional": true }, { - "name": "description", - "type": "TypeString", - "description": "Description of a load balancer.", - "optional": true - }, - { - "name": "ssl_ciphers", + "name": "protocols", "type": "TypeSet", + "description": "Protocols to be assigned to this load balancer.", "optional": true, - "computed": true, "elem": { - "type": "TypeString" + "backend_port": { + "name": "backend_port", + "type": "TypeInt", + "description": "Backend Protocol port number. Should be in range (1, 65535)", + "required": true + }, + "backend_protocol": { + "name": "backend_protocol", + "type": "TypeString", + "description": "Backend protocol, one of 'TCP', 'HTTP', 'HTTPS'.", + "required": true + }, + "frontend_port": { + "name": "frontend_port", + "type": "TypeInt", + "description": "Frontend Protocol port number. Should be in range (1, 65535)", + "required": true + }, + "frontend_protocol": { + "name": "frontend_protocol", + "type": "TypeString", + "description": "Frontend protocol, one of 'TCP', 'HTTP', 'HTTPS'.", + "required": true + }, + "load_balancing_method": { + "name": "load_balancing_method", + "type": "TypeString", + "description": "Load balancing algorithm: 'round_robin', 'weighted_round_robin', 'least_connection'", + "default_value": "round_robin", + "optional": true + }, + "max_conn": { + "name": "max_conn", + "type": "TypeInt", + "description": "No. of connections the listener can accept. Should be between 1-64000", + "optional": true + }, + "protocol_id": { + "name": "protocol_id", + "type": "TypeString", + "description": "The UUID of a load balancer protocol", + "computed": true + }, + "session_stickiness": { + "name": "session_stickiness", + "type": "TypeString", + "description": "Session stickness. Valid values is SOURCE_IP and HTTP_COOKIE", + "optional": true + }, + "tls_certificate_id": { + "name": "tls_certificate_id", + "type": "TypeInt", + "description": "This references to SSL/TLS certificate for a protocol", + "optional": true + } } + }, + { + "name": "resource_name", + "type": "TypeString", + "description": "The name of the resource", + "computed": true } ], "ibm_lbaas_health_monitor": [ - { - "name": "lbaas_id", - "type": "TypeString", - "description": "LBAAS id", - "immutable": true, - "required": true - }, { "name": "protocol", "type": "TypeString", @@ -131929,15 +135246,16 @@ "description": "Monitor ID", "immutable": true, "required": true + }, + { + "name": "lbaas_id", + "type": "TypeString", + "description": "LBAAS id", + "immutable": true, + "required": true } ], "ibm_lbaas_server_instance_attachment": [ - { - "name": "uuid", - "type": "TypeString", - "description": "The UUID of a load balancer member", - "computed": true - }, { "name": "private_ip_address", "type": "TypeString", @@ -131958,6 +135276,12 @@ "description": "The UUID of a load balancer", "immutable": true, "required": true + }, + { + "name": "uuid", + "type": "TypeString", + "description": "The UUID of a load balancer member", + "computed": true } ], "ibm_metrics_router_route": [ @@ -131967,6 +135291,18 @@ "description": "Id of the ibm_metrics_router_route", "computed": true }, + { + "name": "created_at", + "type": "TypeString", + "description": "The timestamp of the route creation time.", + "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "The timestamp of the route last updated time.", + "computed": true + }, { "name": "name", "type": "TypeString", @@ -132040,18 +135376,6 @@ "description": "The crn of the route resource.", "cloud_data_type": "crn", "computed": true - }, - { - "name": "created_at", - "type": "TypeString", - "description": "The timestamp of the route creation time.", - "computed": true - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "The timestamp of the route last updated time.", - "computed": true } ], "ibm_metrics_router_settings": [ @@ -132061,12 +135385,6 @@ "description": "Id of the ibm_metrics_router_settings", "computed": true }, - { - "name": "private_api_endpoint_only", - "type": "TypeBool", - "description": "If you set this true then you cannot access api through public network.", - "optional": true - }, { "name": "default_targets", "type": "TypeList", @@ -132108,9 +135426,28 @@ "max_length": 256, "matches": "^[a-zA-Z0-9 \\-_]+$", "optional": true + }, + { + "name": "private_api_endpoint_only", + "type": "TypeBool", + "description": "If you set this true then you cannot access api through public network.", + "optional": true } ], "ibm_metrics_router_target": [ + { + "name": "crn", + "type": "TypeString", + "description": "The crn of the target resource.", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "target_type", + "type": "TypeString", + "description": "The type of the target.", + "computed": true + }, { "name": "created_at", "type": "TypeString", @@ -132135,7 +135472,7 @@ { "name": "destination_crn", "type": "TypeString", - "description": "The CRN of a destination service instance or resource.", + "description": "The CRN of a destination service instance or resource. Ensure you have a service authorization between IBM Cloud Metrics Routing and your Cloud resource. Read [S2S authorization](https://cloud.ibm.com/docs/metrics-router?topic=metrics-router-target-monitoring\u0026interface=ui#target-monitoring-ui) for details.", "required": true, "min_length": 3, "max_length": 1000, @@ -132150,22 +135487,22 @@ "max_length": 1000, "matches": "^[a-zA-Z0-9 \\-._:]+$", "optional": true - }, + } + ], + "ibm_multi_vlan_firewall": [ { - "name": "crn", - "type": "TypeString", - "description": "The crn of the target resource.", - "cloud_data_type": "crn", + "name": "private_vlan_id", + "type": "TypeInt", + "description": "Private VLAN id", "computed": true }, { - "name": "target_type", + "name": "firewall_type", "type": "TypeString", - "description": "The type of the target.", - "computed": true - } - ], - "ibm_multi_vlan_firewall": [ + "description": "Firewall type", + "immutable": true, + "required": true + }, { "name": "addon_configuration", "type": "TypeList", @@ -132176,11 +135513,10 @@ } }, { - "name": "datacenter", - "type": "TypeString", - "description": "Datacenter name", - "immutable": true, - "required": true + "name": "public_vlan_id", + "type": "TypeInt", + "description": "Public VLAN id", + "computed": true }, { "name": "pod", @@ -132197,9 +135533,15 @@ "required": true }, { - "name": "private_vlan_id", - "type": "TypeInt", - "description": "Private VLAN id", + "name": "public_ip", + "type": "TypeString", + "description": "Public IP Address", + "computed": true + }, + { + "name": "public_ipv6", + "type": "TypeString", + "description": "Public IPV6 IP", "computed": true }, { @@ -132209,57 +135551,99 @@ "computed": true }, { - "name": "password", + "name": "username", "type": "TypeString", - "description": "Password", - "secure": true, + "description": "User name", "computed": true }, { - "name": "public_vlan_id", - "type": "TypeInt", - "description": "Public VLAN id", + "name": "password", + "type": "TypeString", + "description": "Password", + "secure": true, "computed": true }, { - "name": "firewall_type", + "name": "datacenter", "type": "TypeString", - "description": "Firewall type", + "description": "Datacenter name", "immutable": true, "required": true - }, + } + ], + "ibm_network_gateway": [ { - "name": "public_ip", - "type": "TypeString", - "description": "Public IP Address", + "name": "public_ip_address_id", + "type": "TypeInt", "computed": true }, { - "name": "public_ipv6", - "type": "TypeString", - "description": "Public IPV6 IP", + "name": "public_ipv6_address_id", + "type": "TypeInt", "computed": true }, { - "name": "username", - "type": "TypeString", - "description": "User name", + "name": "public_vlan_id", + "type": "TypeInt", "computed": true - } - ], - "ibm_network_gateway": [ + }, + { + "name": "associated_vlans", + "type": "TypeList", + "description": "The VLAN instances associated with this Network Gateway", + "computed": true, + "elem": { + "bypass": { + "name": "bypass", + "type": "TypeBool", + "description": "Indicates if the VLAN is in bypass or routed modes", + "computed": true + }, + "network_vlan_id": { + "name": "network_vlan_id", + "type": "TypeInt", + "description": "The Identifier of the VLAN which is associated", + "computed": true + }, + "vlan_id": { + "name": "vlan_id", + "type": "TypeInt", + "computed": true + } + } + }, { "name": "private_ipv4_address", "type": "TypeString", "computed": true }, { - "name": "private_vlan_id", + "name": "ssh_key_ids", + "type": "TypeList", + "immutable": true, + "optional": true, + "elem": { + "type": "TypeInt" + } + }, + { + "name": "post_install_script_uri", + "type": "TypeString", + "immutable": true, + "optional": true + }, + { + "name": "private_ip_address_id", "type": "TypeInt", "computed": true }, { - "name": "public_ip_address_id", + "name": "public_ipv4_address", + "type": "TypeString", + "computed": true + }, + { + "name": "private_vlan_id", "type": "TypeInt", "computed": true }, @@ -132489,74 +135873,21 @@ "max_items": 2, "min_items": 1 }, - { - "name": "associated_vlans", - "type": "TypeList", - "description": "The VLAN instances associated with this Network Gateway", - "computed": true, - "elem": { - "bypass": { - "name": "bypass", - "type": "TypeBool", - "description": "Indicates if the VLAN is in bypass or routed modes", - "computed": true - }, - "network_vlan_id": { - "name": "network_vlan_id", - "type": "TypeInt", - "description": "The Identifier of the VLAN which is associated", - "computed": true - }, - "vlan_id": { - "name": "vlan_id", - "type": "TypeInt", - "computed": true - } - } - }, { "name": "name", "type": "TypeString", "description": "The name of the gateway", "required": true - }, - { - "name": "private_ip_address_id", - "type": "TypeInt", - "computed": true - }, - { - "name": "public_ipv4_address", - "type": "TypeString", - "computed": true - }, - { - "name": "public_ipv6_address_id", - "type": "TypeInt", - "computed": true - }, - { - "name": "public_vlan_id", - "type": "TypeInt", - "computed": true - }, - { - "name": "ssh_key_ids", - "type": "TypeList", - "immutable": true, - "optional": true, - "elem": { - "type": "TypeInt" - } - }, - { - "name": "post_install_script_uri", - "type": "TypeString", - "immutable": true, - "optional": true } ], "ibm_network_gateway_vlan_association": [ + { + "name": "bypass", + "type": "TypeBool", + "description": "Indicates if the VLAN should be in bypass or routed modes", + "default_value": true, + "optional": true + }, { "name": "gateway_id", "type": "TypeInt", @@ -132570,13 +135901,6 @@ "description": "The Identifier of the VLAN to be associated", "immutable": true, "required": true - }, - { - "name": "bypass", - "type": "TypeBool", - "description": "Indicates if the VLAN should be in bypass or routed modes", - "default_value": true, - "optional": true } ], "ibm_network_interface_sg_attachment": [ @@ -132604,18 +135928,6 @@ } ], "ibm_network_public_ip": [ - { - "name": "ip_address", - "type": "TypeString", - "description": "IP Address", - "computed": true - }, - { - "name": "routes_to", - "type": "TypeString", - "description": "Route info", - "required": true - }, { "name": "tags", "type": "TypeSet", @@ -132631,9 +135943,27 @@ "type": "TypeString", "description": "Additional notes", "optional": true + }, + { + "name": "ip_address", + "type": "TypeString", + "description": "IP Address", + "computed": true + }, + { + "name": "routes_to", + "type": "TypeString", + "description": "Route info", + "required": true } ], "ibm_network_vlan": [ + { + "name": "child_resource_count", + "type": "TypeInt", + "description": "Child resource count", + "computed": true + }, { "name": "subnets", "type": "TypeSet", @@ -132667,30 +135997,14 @@ } }, { - "name": "name", - "type": "TypeString", - "description": "VLAN name", - "optional": true - }, - { - "name": "router_hostname", - "type": "TypeString", - "description": "router host name", - "immutable": true, + "name": "tags", + "type": "TypeSet", + "description": "List of tags", + "cloud_data_type": "tags", "optional": true, - "computed": true - }, - { - "name": "vlan_number", - "type": "TypeInt", - "description": "VLAN number", - "computed": true - }, - { - "name": "softlayer_managed", - "type": "TypeBool", - "description": "Zzset to true if VLAN is managed by softlayer", - "computed": true + "elem": { + "type": "TypeString" + } }, { "name": "resource_controller_url", @@ -132698,12 +136012,6 @@ "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", "computed": true }, - { - "name": "resource_name", - "type": "TypeString", - "description": "The name of the resource", - "computed": true - }, { "name": "datacenter", "type": "TypeString", @@ -132719,20 +136027,36 @@ "required": true }, { - "name": "child_resource_count", - "type": "TypeInt", - "description": "Child resource count", + "name": "name", + "type": "TypeString", + "description": "VLAN name", + "optional": true + }, + { + "name": "softlayer_managed", + "type": "TypeBool", + "description": "Zzset to true if VLAN is managed by softlayer", "computed": true }, { - "name": "tags", - "type": "TypeSet", - "description": "List of tags", - "cloud_data_type": "tags", + "name": "resource_name", + "type": "TypeString", + "description": "The name of the resource", + "computed": true + }, + { + "name": "router_hostname", + "type": "TypeString", + "description": "router host name", + "immutable": true, "optional": true, - "elem": { - "type": "TypeString" - } + "computed": true + }, + { + "name": "vlan_number", + "type": "TypeInt", + "description": "VLAN number", + "computed": true } ], "ibm_network_vlan_spanning": [ @@ -132745,23 +136069,30 @@ ], "ibm_ob_logging": [ { - "name": "agent_namespace", + "name": "namespace", "type": "TypeString", - "description": "Agent Namespace", + "description": "Namespace", "computed": true }, { - "name": "discovered_agent", - "type": "TypeBool", - "description": "Discovered agent", + "name": "logdna_ingestion_key", + "type": "TypeString", + "description": "LogDNA ingestion key", + "optional": true, "computed": true }, { - "name": "cluster", + "name": "crn", "type": "TypeString", - "description": "Name or ID of the cluster to be used.", - "immutable": true, - "required": true + "description": "CRN", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "discovered_agent", + "type": "TypeBool", + "description": "Discovered agent", + "computed": true }, { "name": "daemonset_name", @@ -132782,24 +136113,24 @@ "computed": true }, { - "name": "namespace", + "name": "agent_namespace", "type": "TypeString", - "description": "Namespace", + "description": "Agent Namespace", "computed": true }, { - "name": "instance_id", + "name": "cluster", "type": "TypeString", - "description": "ID of the LogDNA service instance to latch", - "cloud_data_type": "resource_instance", + "description": "Name or ID of the cluster to be used.", + "immutable": true, "required": true }, { - "name": "logdna_ingestion_key", + "name": "instance_id", "type": "TypeString", - "description": "LogDNA ingestion key", - "optional": true, - "computed": true + "description": "ID of the LogDNA service instance to latch", + "cloud_data_type": "resource_instance", + "required": true }, { "name": "private_endpoint", @@ -132807,27 +136138,20 @@ "description": "Add this option to connect to your LogDNA service instance through the private service endpoint", "optional": true, "computed": true - }, - { - "name": "crn", - "type": "TypeString", - "description": "CRN", - "cloud_data_type": "crn", - "computed": true } ], "ibm_ob_monitoring": [ { - "name": "cluster", - "type": "TypeString", - "description": "Name or ID of the cluster to be used.", - "immutable": true, - "required": true + "name": "private_endpoint", + "type": "TypeBool", + "description": "Add this option to connect to your Sysdig service instance through the private service endpoint", + "optional": true, + "computed": true }, { - "name": "daemonset_name", + "name": "agent_key", "type": "TypeString", - "description": "Daemon Set Name", + "description": "Agent key name", "computed": true }, { @@ -132836,6 +136160,18 @@ "description": "Agent Namespace", "computed": true }, + { + "name": "discovered_agent", + "type": "TypeBool", + "description": "Discovered agent", + "computed": true + }, + { + "name": "namespace", + "type": "TypeString", + "description": "Namespace", + "computed": true + }, { "name": "crn", "type": "TypeString", @@ -132843,6 +136179,13 @@ "cloud_data_type": "crn", "computed": true }, + { + "name": "cluster", + "type": "TypeString", + "description": "Name or ID of the cluster to be used.", + "immutable": true, + "required": true + }, { "name": "instance_id", "type": "TypeString", @@ -132858,10 +136201,9 @@ "computed": true }, { - "name": "private_endpoint", - "type": "TypeBool", - "description": "Add this option to connect to your Sysdig service instance through the private service endpoint", - "optional": true, + "name": "daemonset_name", + "type": "TypeString", + "description": "Daemon Set Name", "computed": true }, { @@ -132869,27 +136211,30 @@ "type": "TypeString", "description": "Sysdig instance Name", "computed": true - }, + } + ], + "ibm_object_storage_account": [ { - "name": "agent_key", + "name": "name", "type": "TypeString", - "description": "Agent key name", "computed": true }, { - "name": "discovered_agent", - "type": "TypeBool", - "description": "Discovered agent", - "computed": true + "name": "local_note", + "type": "TypeString", + "optional": true }, { - "name": "namespace", - "type": "TypeString", - "description": "Namespace", - "computed": true + "name": "tags", + "type": "TypeSet", + "cloud_data_type": "tags", + "optional": true, + "elem": { + "type": "TypeString" + } } ], - "ibm_object_storage_account": [ + "ibm_org": [ { "name": "tags", "type": "TypeSet", @@ -132899,18 +136244,6 @@ "type": "TypeString" } }, - { - "name": "name", - "type": "TypeString", - "computed": true - }, - { - "name": "local_note", - "type": "TypeString", - "optional": true - } - ], - "ibm_org": [ { "name": "name", "type": "TypeString", @@ -132959,39 +136292,22 @@ "elem": { "type": "TypeString" } - }, - { - "name": "tags", - "type": "TypeSet", - "cloud_data_type": "tags", - "optional": true, - "elem": { - "type": "TypeString" - } } ], "ibm_pi_capture": [ { - "name": "pi_instance_name", + "name": "pi_capture_cloud_storage_access_key", "type": "TypeString", - "description": "Instance Name of the Power VM", - "immutable": true, - "required": true - }, - { - "name": "pi_capture_volume_ids", - "type": "TypeSet", - "description": "List of Data volume IDs", + "description": "Name of Cloud Storage Access Key", + "secure": true, "immutable": true, - "optional": true, - "elem": { - "type": "TypeString" - } + "optional": true }, { - "name": "pi_capture_cloud_storage_region", + "name": "pi_capture_cloud_storage_secret_key", "type": "TypeString", - "description": "List of Regions to use", + "description": "Name of the Cloud Storage Secret Key", + "secure": true, "immutable": true, "optional": true }, @@ -133023,20 +136339,18 @@ "required": true }, { - "name": "pi_capture_cloud_storage_access_key", + "name": "pi_capture_cloud_storage_region", "type": "TypeString", - "description": "Name of Cloud Storage Access Key", - "secure": true, + "description": "List of Regions to use", "immutable": true, "optional": true }, { - "name": "pi_capture_cloud_storage_secret_key", + "name": "pi_instance_name", "type": "TypeString", - "description": "Name of the Cloud Storage Secret Key", - "secure": true, + "description": "Instance Name of the Power VM", "immutable": true, - "optional": true + "required": true }, { "name": "pi_capture_name", @@ -133044,51 +136358,56 @@ "description": "Name of the capture to create. Note : this must be unique", "immutable": true, "required": true + }, + { + "name": "pi_capture_volume_ids", + "type": "TypeSet", + "description": "List of Data volume IDs", + "immutable": true, + "optional": true, + "elem": { + "type": "TypeString" + } } ], "ibm_pi_cloud_connection": [ { - "name": "connection_mode", + "name": "port", "type": "TypeString", - "description": "Type of service the gateway is attached to", + "description": "Port", "computed": true }, { - "name": "pi_cloud_instance_id", + "name": "pi_cloud_connection_gre_destination_address", "type": "TypeString", - "description": "PI cloud instance ID", - "required": true - }, - { - "name": "pi_cloud_connection_global_routing", - "type": "TypeBool", - "description": "Enable global routing for this cloud connection", - "default_value": false, + "description": "GRE destination IP address", "optional": true }, { - "name": "pi_cloud_connection_metered", - "type": "TypeBool", - "description": "Enable metered for this cloud connection", - "default_value": false, - "optional": true + "name": "pi_cloud_connection_vpc_crns", + "type": "TypeSet", + "description": "Set of VPCs to attach to this cloud connection", + "optional": true, + "elem": { + "type": "TypeString" + } }, { - "name": "pi_cloud_connection_gre_cidr", + "name": "cloud_connection_id", "type": "TypeString", - "description": "GRE network in CIDR notation", - "optional": true + "description": "Cloud connection ID", + "computed": true }, { - "name": "status", + "name": "gre_source_address", "type": "TypeString", - "description": "Link status", + "description": "GRE auto-assigned source IP address", "computed": true }, { - "name": "gre_source_address", + "name": "connection_mode", "type": "TypeString", - "description": "GRE auto-assigned source IP address", + "description": "Type of service the gateway is attached to", "computed": true }, { @@ -133103,16 +136422,6 @@ "description": "Speed of the cloud connection (speed in megabits per second)", "required": true }, - { - "name": "pi_cloud_connection_networks", - "type": "TypeSet", - "description": "Set of Networks to attach to this cloud connection", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, { "name": "pi_cloud_connection_classic_enabled", "type": "TypeBool", @@ -133121,28 +136430,56 @@ "optional": true }, { - "name": "user_ip_address", + "name": "pi_cloud_connection_gre_cidr", "type": "TypeString", - "description": "User IP address", - "computed": true + "description": "GRE network in CIDR notation", + "optional": true }, { - "name": "port", + "name": "pi_cloud_connection_transit_enabled", + "type": "TypeBool", + "description": "Enable transit gateway for this cloud connection", + "default_value": false, + "optional": true + }, + { + "name": "pi_cloud_instance_id", "type": "TypeString", - "description": "Port", + "description": "PI cloud instance ID", + "required": true + }, + { + "name": "pi_cloud_connection_global_routing", + "type": "TypeBool", + "description": "Enable global routing for this cloud connection", + "default_value": false, + "optional": true + }, + { + "name": "pi_cloud_connection_metered", + "type": "TypeBool", + "description": "Enable metered for this cloud connection", + "default_value": false, + "optional": true + }, + { + "name": "ibm_ip_address", + "type": "TypeString", + "description": "IBM IP address", "computed": true }, { - "name": "pi_cloud_connection_gre_destination_address", + "name": "user_ip_address", "type": "TypeString", - "description": "GRE destination IP address", - "optional": true + "description": "User IP address", + "computed": true }, { - "name": "pi_cloud_connection_vpc_crns", + "name": "pi_cloud_connection_networks", "type": "TypeSet", - "description": "Set of VPCs to attach to this cloud connection", + "description": "Set of Networks to attach to this cloud connection", "optional": true, + "computed": true, "elem": { "type": "TypeString" } @@ -133155,22 +136492,9 @@ "optional": true }, { - "name": "pi_cloud_connection_transit_enabled", - "type": "TypeBool", - "description": "Enable transit gateway for this cloud connection", - "default_value": false, - "optional": true - }, - { - "name": "cloud_connection_id", - "type": "TypeString", - "description": "Cloud connection ID", - "computed": true - }, - { - "name": "ibm_ip_address", + "name": "status", "type": "TypeString", - "description": "IBM IP address", + "description": "Link status", "computed": true } ], @@ -133219,17 +136543,19 @@ ], "ibm_pi_dhcp": [ { - "name": "pi_dhcp_name", + "name": "pi_dns_server", "type": "TypeString", - "description": "Optional name of DHCP Service (will be prefixed by DHCP identifier)", + "description": "Optional DNS Server for DHCP service", "immutable": true, "optional": true }, { - "name": "dhcp_id", - "type": "TypeString", - "description": "The ID of the DHCP Server", - "computed": true + "name": "pi_dhcp_snat_enabled", + "type": "TypeBool", + "description": "Indicates if SNAT will be enabled for the DHCP service", + "default_value": true, + "immutable": true, + "optional": true }, { "name": "leases", @@ -133251,6 +136577,18 @@ } } }, + { + "name": "network", + "type": "TypeString", + "description": "The ID of the DHCP Server private network (deprecated - replaced by network_id)", + "computed": true + }, + { + "name": "status", + "type": "TypeString", + "description": "The status of the DHCP Server", + "computed": true + }, { "name": "pi_cloud_instance_id", "type": "TypeString", @@ -133273,24 +136611,16 @@ "optional": true }, { - "name": "pi_dns_server", + "name": "pi_dhcp_name", "type": "TypeString", - "description": "Optional DNS Server for DHCP service", - "immutable": true, - "optional": true - }, - { - "name": "pi_dhcp_snat_enabled", - "type": "TypeBool", - "description": "Indicates if SNAT will be enabled for the DHCP service", - "default_value": true, + "description": "Optional name of DHCP Service (will be prefixed by DHCP identifier)", "immutable": true, "optional": true }, { - "name": "network", + "name": "dhcp_id", "type": "TypeString", - "description": "The ID of the DHCP Server private network (deprecated - replaced by network_id)", + "description": "The ID of the DHCP Server", "computed": true }, { @@ -133304,31 +136634,25 @@ "type": "TypeString", "description": "The name of the DHCP Server private network", "computed": true - }, - { - "name": "status", - "type": "TypeString", - "description": "The status of the DHCP Server", - "computed": true } ], "ibm_pi_ike_policy": [ { - "name": "policy_id", + "name": "pi_policy_encryption", "type": "TypeString", - "description": "IKE Policy ID", - "computed": true + "description": "Encryption of the IKE Policy", + "required": true }, { - "name": "pi_cloud_instance_id", - "type": "TypeString", - "description": "PI cloud instance ID", + "name": "pi_policy_version", + "type": "TypeInt", + "description": "Version of the IKE Policy", "required": true }, { - "name": "pi_policy_encryption", - "type": "TypeString", - "description": "Encryption of the IKE Policy", + "name": "pi_policy_dh_group", + "type": "TypeInt", + "description": "DH group of the IKE Policy", "required": true }, { @@ -133337,6 +136661,12 @@ "description": "Policy key lifetime", "required": true }, + { + "name": "pi_policy_preshared_key", + "type": "TypeString", + "description": "Preshared key used in this IKE Policy (length of preshared key must be even)", + "required": true + }, { "name": "pi_policy_authentication", "type": "TypeString", @@ -133345,51 +136675,54 @@ "optional": true }, { - "name": "pi_policy_name", + "name": "policy_id", "type": "TypeString", - "description": "Name of the IKE Policy", - "required": true - }, - { - "name": "pi_policy_dh_group", - "type": "TypeInt", - "description": "DH group of the IKE Policy", - "required": true + "description": "IKE Policy ID", + "computed": true }, { - "name": "pi_policy_version", - "type": "TypeInt", - "description": "Version of the IKE Policy", + "name": "pi_cloud_instance_id", + "type": "TypeString", + "description": "PI cloud instance ID", "required": true }, { - "name": "pi_policy_preshared_key", + "name": "pi_policy_name", "type": "TypeString", - "description": "Preshared key used in this IKE Policy (length of preshared key must be even)", + "description": "Name of the IKE Policy", "required": true } ], "ibm_pi_image": [ { - "name": "pi_image_bucket_region", + "name": "pi_image_id", "type": "TypeString", - "description": "Cloud Object Storage region", + "description": "Instance image id", "immutable": true, "optional": true }, { - "name": "pi_image_bucket_file_name", + "name": "pi_affinity_policy", "type": "TypeString", - "description": "Cloud Object Storage image filename", + "description": "Affinity policy for image; ignored if pi_image_storage_pool provided; for policy affinity requires one of pi_affinity_instance or pi_affinity_volume to be specified; for policy anti-affinity requires one of pi_anti_affinity_instances or pi_anti_affinity_volumes to be specified", "immutable": true, "optional": true }, { - "name": "pi_affinity_instance", - "type": "TypeString", - "description": "PVM Instance (ID or Name) to base storage affinity policy against; required if requesting storage affinity and pi_affinity_volume is not provided", + "name": "pi_anti_affinity_volumes", + "type": "TypeList", + "description": "List of volumes to base storage anti-affinity policy against; required if requesting anti-affinity and pi_anti_affinity_instances is not provided", "immutable": true, - "optional": true + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "image_id", + "type": "TypeString", + "description": "Image ID", + "computed": true }, { "name": "pi_image_name", @@ -133399,30 +136732,25 @@ "required": true }, { - "name": "pi_image_access_key", + "name": "pi_image_bucket_file_name", "type": "TypeString", - "description": "Cloud Object Storage access key; required for buckets with private access", - "secure": true, + "description": "Cloud Object Storage image filename", "immutable": true, "optional": true }, { - "name": "pi_image_secret_key", + "name": "pi_image_storage_pool", "type": "TypeString", - "description": "Cloud Object Storage secret key; required for buckets with private access", - "secure": true, + "description": "Storage pool where the image will be loaded, if provided then pi_image_storage_type and pi_affinity_policy will be ignored", "immutable": true, "optional": true }, { - "name": "pi_anti_affinity_instances", - "type": "TypeList", - "description": "List of pvmInstances to base storage anti-affinity policy against; required if requesting anti-affinity and pi_anti_affinity_volumes is not provided", + "name": "pi_affinity_volume", + "type": "TypeString", + "description": "Volume (ID or Name) to base storage affinity policy against; required if requesting affinity and pi_affinity_instance is not provided", "immutable": true, - "optional": true, - "elem": { - "type": "TypeString" - } + "optional": true }, { "name": "pi_cloud_instance_id", @@ -133432,55 +136760,44 @@ "required": true }, { - "name": "pi_affinity_policy", + "name": "pi_image_bucket_access", "type": "TypeString", - "description": "Affinity policy for image; ignored if pi_image_storage_pool provided; for policy affinity requires one of pi_affinity_instance or pi_affinity_volume to be specified; for policy anti-affinity requires one of pi_anti_affinity_instances or pi_anti_affinity_volumes to be specified", + "description": "Indicates if the bucket has public or private access", + "default_value": "public", "immutable": true, "optional": true }, { - "name": "pi_anti_affinity_volumes", - "type": "TypeList", - "description": "List of volumes to base storage anti-affinity policy against; required if requesting anti-affinity and pi_anti_affinity_instances is not provided", - "immutable": true, - "optional": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "pi_affinity_volume", + "name": "pi_image_secret_key", "type": "TypeString", - "description": "Volume (ID or Name) to base storage affinity policy against; required if requesting affinity and pi_affinity_instance is not provided", + "description": "Cloud Object Storage secret key; required for buckets with private access", + "secure": true, "immutable": true, "optional": true }, { - "name": "image_id", - "type": "TypeString", - "description": "Image ID", - "computed": true - }, - { - "name": "pi_image_id", + "name": "pi_image_bucket_region", "type": "TypeString", - "description": "Instance image id", + "description": "Cloud Object Storage region", "immutable": true, "optional": true }, { - "name": "pi_image_storage_type", + "name": "pi_affinity_instance", "type": "TypeString", - "description": "Type of storage", + "description": "PVM Instance (ID or Name) to base storage affinity policy against; required if requesting storage affinity and pi_affinity_volume is not provided", "immutable": true, "optional": true }, { - "name": "pi_image_storage_pool", - "type": "TypeString", - "description": "Storage pool where the image will be loaded, if provided then pi_image_storage_type and pi_affinity_policy will be ignored", + "name": "pi_anti_affinity_instances", + "type": "TypeList", + "description": "List of pvmInstances to base storage anti-affinity policy against; required if requesting anti-affinity and pi_anti_affinity_volumes is not provided", "immutable": true, - "optional": true + "optional": true, + "elem": { + "type": "TypeString" + } }, { "name": "pi_image_bucket_name", @@ -133490,29 +136807,22 @@ "optional": true }, { - "name": "pi_image_bucket_access", + "name": "pi_image_access_key", "type": "TypeString", - "description": "Indicates if the bucket has public or private access", - "default_value": "public", + "description": "Cloud Object Storage access key; required for buckets with private access", + "secure": true, "immutable": true, "optional": true - } - ], - "ibm_pi_image_export": [ - { - "name": "pi_image_bucket_region", - "type": "TypeString", - "description": "Cloud Object Storage region", - "immutable": true, - "required": true }, { - "name": "pi_cloud_instance_id", + "name": "pi_image_storage_type", "type": "TypeString", - "description": "PI cloud instance ID", + "description": "Type of storage", "immutable": true, - "required": true - }, + "optional": true + } + ], + "ibm_pi_image_export": [ { "name": "pi_image_id", "type": "TypeString", @@ -133542,34 +136852,59 @@ "secure": true, "immutable": true, "required": true + }, + { + "name": "pi_image_bucket_region", + "type": "TypeString", + "description": "Cloud Object Storage region", + "immutable": true, + "required": true + }, + { + "name": "pi_cloud_instance_id", + "type": "TypeString", + "description": "PI cloud instance ID", + "immutable": true, + "required": true } ], "ibm_pi_instance": [ { - "name": "pi_key_pair_name", + "name": "pi_placement_group_id", "type": "TypeString", - "description": "SSH key name", + "description": "Placement group ID", "optional": true }, { - "name": "max_processors", - "type": "TypeFloat", - "description": "Maximum number of processors", + "name": "pi_shared_processor_pool", + "type": "TypeString", + "description": "Shared Processor Pool the instance is deployed on", + "immutable": true, + "optional": true + }, + { + "name": "max_virtual_cores", + "type": "TypeInt", + "description": "Maximum Virtual Cores Assigned to the PVMInstance", "computed": true }, { - "name": "pi_anti_affinity_volumes", - "type": "TypeList", - "description": "List of volumes to base storage anti-affinity policy against; required if requesting anti-affinity and pi_anti_affinity_instances is not provided", + "name": "pi_user_data", + "type": "TypeString", + "description": "Base64 encoded data to be passed in for invoking a cloud init script", + "optional": true + }, + { + "name": "pi_storage_type", + "type": "TypeString", + "description": "Storage type for server deployment", "optional": true, - "elem": { - "type": "TypeString" - } + "computed": true }, { - "name": "pi_storage_connection", + "name": "pi_affinity_instance", "type": "TypeString", - "description": "Storage Connectivity Group for server deployment", + "description": "PVM Instance (ID or Name) to base storage affinity policy against; required if requesting storage affinity and pi_affinity_volume is not provided", "optional": true }, { @@ -133612,37 +136947,40 @@ } }, { - "name": "pi_sap_profile_id", - "type": "TypeString", - "description": "SAP Profile ID for the amount of cores and memory", - "optional": true - }, - { - "name": "pi_sys_type", + "name": "pi_proc_type", "type": "TypeString", - "description": "PI Instance system type", + "description": "Instance processor type", "optional": true, "computed": true }, { - "name": "pi_replicants", - "type": "TypeInt", - "description": "PI Instance replicas count", - "default_value": 1, + "name": "pi_replication_policy", + "type": "TypeString", + "description": "Replication policy for the PI Instance", + "default_value": "none", "optional": true }, { - "name": "pi_progress", - "type": "TypeFloat", - "description": "Progress of the operation", + "name": "operating_system", + "type": "TypeString", + "description": "Operating System", "computed": true }, { - "name": "pi_storage_type", - "type": "TypeString", - "description": "Storage type for server deployment", + "name": "pi_anti_affinity_instances", + "type": "TypeList", + "description": "List of pvmInstances to base storage anti-affinity policy against; required if requesting anti-affinity and pi_anti_affinity_volumes is not provided", "optional": true, - "computed": true + "elem": { + "type": "TypeString" + } + }, + { + "name": "pi_storage_pool_affinity", + "type": "TypeBool", + "description": "Indicates if all volumes attached to the server must reside in the same storage pool", + "default_value": true, + "optional": true }, { "name": "pin_policy", @@ -133651,24 +136989,41 @@ "computed": true }, { - "name": "pi_memory", - "type": "TypeFloat", - "description": "Memory size", - "optional": true, - "computed": true + "name": "pi_instance_name", + "type": "TypeString", + "description": "PI Instance name", + "required": true }, { - "name": "pi_deployment_type", + "name": "pi_replication_scheme", "type": "TypeString", - "description": "Custom Deployment Type Information", + "description": "Replication scheme", + "default_value": "suffix", "optional": true }, { - "name": "pi_migratable", - "type": "TypeBool", - "description": "set to true to enable migration of the PI instance", + "name": "pi_volume_ids", + "type": "TypeSet", + "description": "List of PI volumes", "optional": true, - "computed": true + "elem": { + "type": "TypeString" + } + }, + { + "name": "pi_anti_affinity_volumes", + "type": "TypeList", + "description": "List of volumes to base storage anti-affinity policy against; required if requesting anti-affinity and pi_anti_affinity_instances is not provided", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "pi_storage_connection", + "type": "TypeString", + "description": "Storage Connectivity Group for server deployment", + "optional": true }, { "name": "instance_id", @@ -133678,165 +137033,163 @@ "computed": true }, { - "name": "pi_image_id", + "name": "pi_sap_deployment_type", "type": "TypeString", - "description": "PI instance image id", - "required": true + "description": "Custom SAP Deployment Type Information", + "optional": true }, { - "name": "pi_processors", + "name": "pi_progress", "type": "TypeFloat", - "description": "Processors count", - "optional": true, + "description": "Progress of the operation", "computed": true }, { - "name": "operating_system", + "name": "pi_pin_policy", "type": "TypeString", - "description": "Operating System", - "computed": true + "description": "Pin Policy of the instance", + "default_value": "none", + "optional": true }, { - "name": "status", + "name": "pi_health_status", "type": "TypeString", - "description": "PI instance status", - "computed": true - }, - { - "name": "pi_storage_pool_affinity", - "type": "TypeBool", - "description": "Indicates if all volumes attached to the server must reside in the same storage pool", - "default_value": true, + "description": "Allow the user to set the status of the lpar so that they can connect to it faster", + "default_value": "OK", "optional": true }, { - "name": "shared_processor_pool_id", + "name": "pi_cloud_instance_id", "type": "TypeString", - "description": "Shared Processor Pool ID the instance is deployed on", + "description": "This is the Power Instance id that is assigned to the account", + "immutable": true, + "required": true + }, + { + "name": "pi_migratable", + "type": "TypeBool", + "description": "set to true to enable migration of the PI instance", + "optional": true, "computed": true }, { - "name": "health_status", - "type": "TypeString", - "description": "PI Instance health status", + "name": "min_processors", + "type": "TypeFloat", + "description": "Minimum number of the CPUs", "computed": true }, { - "name": "pi_pin_policy", + "name": "pi_sap_profile_id", "type": "TypeString", - "description": "Pin Policy of the instance", - "default_value": "none", + "description": "SAP Profile ID for the amount of cores and memory", "optional": true }, { - "name": "pi_user_data", - "type": "TypeString", - "description": "Base64 encoded data to be passed in for invoking a cloud init script", - "optional": true + "name": "min_virtual_cores", + "type": "TypeInt", + "description": "Minimum Virtual Cores Assigned to the PVMInstance", + "computed": true }, { - "name": "pi_affinity_instance", + "name": "status", "type": "TypeString", - "description": "PVM Instance (ID or Name) to base storage affinity policy against; required if requesting storage affinity and pi_affinity_volume is not provided", - "optional": true + "description": "PI instance status", + "computed": true }, { - "name": "pi_anti_affinity_instances", - "type": "TypeList", - "description": "List of pvmInstances to base storage anti-affinity policy against; required if requesting anti-affinity and pi_anti_affinity_volumes is not provided", + "name": "pi_memory", + "type": "TypeFloat", + "description": "Memory size", "optional": true, - "elem": { - "type": "TypeString" - } + "computed": true }, { - "name": "pi_replication_policy", + "name": "pi_deployment_type", "type": "TypeString", - "description": "Replication policy for the PI Instance", - "default_value": "none", + "description": "Custom Deployment Type Information", "optional": true }, { - "name": "pi_virtual_cores_assigned", + "name": "pi_replicants", "type": "TypeInt", - "description": "Virtual Cores Assigned to the PVMInstance", - "optional": true, - "computed": true + "description": "PI Instance replicas count", + "default_value": 1, + "optional": true }, { - "name": "max_virtual_cores", - "type": "TypeInt", - "description": "Maximum Virtual Cores Assigned to the PVMInstance", + "name": "os_type", + "type": "TypeString", + "description": "OS Type", "computed": true }, { - "name": "min_virtual_cores", - "type": "TypeInt", - "description": "Minimum Virtual Cores Assigned to the PVMInstance", + "name": "max_processors", + "type": "TypeFloat", + "description": "Maximum number of processors", "computed": true }, { - "name": "pi_license_repository_capacity", - "type": "TypeInt", - "description": "The VTL license repository capacity TB value", + "name": "pi_storage_pool", + "type": "TypeString", + "description": "Storage Pool for server deployment; if provided then pi_affinity_policy and pi_storage_type will be ignored", "optional": true, "computed": true }, { - "name": "min_processors", - "type": "TypeFloat", - "description": "Minimum number of the CPUs", - "computed": true + "name": "pi_affinity_policy", + "type": "TypeString", + "description": "Affinity policy for pvm instance being created; ignored if pi_storage_pool provided; for policy affinity requires one of pi_affinity_instance or pi_affinity_volume to be specified; for policy anti-affinity requires one of pi_anti_affinity_instances or pi_anti_affinity_volumes to be specified", + "optional": true }, { - "name": "pi_shared_processor_pool", + "name": "pi_key_pair_name", "type": "TypeString", - "description": "Shared Processor Pool the instance is deployed on", - "immutable": true, + "description": "SSH key name", "optional": true }, { - "name": "pi_proc_type", + "name": "pi_sys_type", "type": "TypeString", - "description": "Instance processor type", + "description": "PI Instance system type", "optional": true, "computed": true }, { - "name": "pi_health_status", - "type": "TypeString", - "description": "Allow the user to set the status of the lpar so that they can connect to it faster", - "default_value": "OK", - "optional": true + "name": "pi_virtual_cores_assigned", + "type": "TypeInt", + "description": "Virtual Cores Assigned to the PVMInstance", + "optional": true, + "computed": true }, { - "name": "pi_affinity_policy", - "type": "TypeString", - "description": "Affinity policy for pvm instance being created; ignored if pi_storage_pool provided; for policy affinity requires one of pi_affinity_instance or pi_affinity_volume to be specified; for policy anti-affinity requires one of pi_anti_affinity_instances or pi_anti_affinity_volumes to be specified", - "optional": true + "name": "min_memory", + "type": "TypeFloat", + "description": "Minimum memory", + "computed": true }, { - "name": "pi_instance_name", - "type": "TypeString", - "description": "PI Instance name", - "required": true + "name": "max_memory", + "type": "TypeFloat", + "description": "Maximum memory size", + "computed": true }, { - "name": "pi_sap_deployment_type", + "name": "health_status", "type": "TypeString", - "description": "Custom SAP Deployment Type Information", - "optional": true + "description": "PI Instance health status", + "computed": true }, { - "name": "os_type", - "type": "TypeString", - "description": "OS Type", + "name": "pi_processors", + "type": "TypeFloat", + "description": "Processors count", + "optional": true, "computed": true }, { - "name": "pi_storage_pool", - "type": "TypeString", - "description": "Storage Pool for server deployment; if provided then pi_affinity_policy and pi_storage_type will be ignored", + "name": "pi_license_repository_capacity", + "type": "TypeInt", + "description": "The VTL license repository capacity TB value", "optional": true, "computed": true }, @@ -133847,48 +137200,31 @@ "optional": true }, { - "name": "pi_placement_group_id", - "type": "TypeString", - "description": "Placement group ID", - "optional": true - }, - { - "name": "pi_replication_scheme", + "name": "shared_processor_pool_id", "type": "TypeString", - "description": "Replication scheme", - "default_value": "suffix", - "optional": true + "description": "Shared Processor Pool ID the instance is deployed on", + "computed": true }, { - "name": "pi_cloud_instance_id", + "name": "pi_image_id", "type": "TypeString", - "description": "This is the Power Instance id that is assigned to the account", - "immutable": true, + "description": "PI instance image id", "required": true - }, + } + ], + "ibm_pi_instance_action": [ { - "name": "min_memory", + "name": "progress", "type": "TypeFloat", - "description": "Minimum memory", + "description": "The progress of an operation", "computed": true }, { - "name": "max_memory", - "type": "TypeFloat", - "description": "Maximum memory size", + "name": "health_status", + "type": "TypeString", + "description": "The PVM's health status value", "computed": true }, - { - "name": "pi_volume_ids", - "type": "TypeSet", - "description": "List of PI volumes", - "optional": true, - "elem": { - "type": "TypeString" - } - } - ], - "ibm_pi_instance_action": [ { "name": "pi_cloud_instance_id", "type": "TypeString", @@ -133919,27 +137255,9 @@ "type": "TypeString", "description": "The status of the PVM instance", "computed": true - }, - { - "name": "progress", - "type": "TypeFloat", - "description": "The progress of an operation", - "computed": true - }, - { - "name": "health_status", - "type": "TypeString", - "description": "The PVM's health status value", - "computed": true } ], "ibm_pi_ipsec_policy": [ - { - "name": "pi_policy_key_lifetime", - "type": "TypeInt", - "description": "Policy key lifetime", - "required": true - }, { "name": "pi_policy_pfs", "type": "TypeBool", @@ -133982,6 +137300,12 @@ "type": "TypeString", "description": "Encryption of the IPSec Policy", "required": true + }, + { + "name": "pi_policy_key_lifetime", + "type": "TypeInt", + "description": "Policy key lifetime", + "required": true } ], "ibm_pi_key": [ @@ -134029,6 +137353,18 @@ } ], "ibm_pi_network": [ + { + "name": "network_id", + "type": "TypeString", + "description": "PI network ID", + "computed": true + }, + { + "name": "pi_network_name", + "type": "TypeString", + "description": "PI network name", + "required": true + }, { "name": "pi_dns", "type": "TypeSet", @@ -134040,12 +137376,18 @@ } }, { - "name": "pi_cidr", + "name": "pi_gateway", "type": "TypeString", - "description": "PI network CIDR", + "description": "PI network gateway", "optional": true, "computed": true }, + { + "name": "pi_cloud_instance_id", + "type": "TypeString", + "description": "PI cloud instance ID", + "required": true + }, { "name": "pi_ipaddress_range", "type": "TypeList", @@ -134068,15 +137410,21 @@ } }, { - "name": "pi_network_name", + "name": "vlan_id", + "type": "TypeFloat", + "description": "VLAN Id value", + "computed": true + }, + { + "name": "pi_network_type", "type": "TypeString", - "description": "PI network name", + "description": "PI network type", "required": true }, { - "name": "pi_gateway", + "name": "pi_cidr", "type": "TypeString", - "description": "PI network gateway", + "description": "PI network CIDR", "optional": true, "computed": true }, @@ -134086,30 +137434,6 @@ "description": "PI network enable MTU Jumbo option", "optional": true, "computed": true - }, - { - "name": "pi_cloud_instance_id", - "type": "TypeString", - "description": "PI cloud instance ID", - "required": true - }, - { - "name": "network_id", - "type": "TypeString", - "description": "PI network ID", - "computed": true - }, - { - "name": "vlan_id", - "type": "TypeFloat", - "description": "VLAN Id value", - "computed": true - }, - { - "name": "pi_network_type", - "type": "TypeString", - "description": "PI network type", - "required": true } ], "ibm_pi_network_port": [ @@ -134163,25 +137487,24 @@ "computed": true }, { - "name": "pi_instance_id", + "name": "pi_cloud_instance_id", "type": "TypeString", - "description": "Instance id to attach the network port to", "immutable": true, "required": true }, { - "name": "pi_network_name", + "name": "pi_instance_id", "type": "TypeString", - "description": "Network Name - This is the subnet name in the Cloud instance", + "description": "Instance id to attach the network port to", "immutable": true, "required": true }, { - "name": "pi_network_port_ipaddress", + "name": "pi_network_name", "type": "TypeString", + "description": "Network Name - This is the subnet name in the Cloud instance", "immutable": true, - "optional": true, - "computed": true + "required": true }, { "name": "port_id", @@ -134190,15 +137513,14 @@ "deprecated": "port_id attribute is deprecated, use network_port_id instead." }, { - "name": "status", + "name": "network_port_id", "type": "TypeString", "computed": true }, { - "name": "pi_cloud_instance_id", + "name": "status", "type": "TypeString", - "immutable": true, - "required": true + "computed": true }, { "name": "pi_network_port_description", @@ -134209,35 +137531,19 @@ "optional": true }, { - "name": "macaddress", + "name": "pi_network_port_ipaddress", "type": "TypeString", + "immutable": true, + "optional": true, "computed": true }, { - "name": "network_port_id", + "name": "macaddress", "type": "TypeString", "computed": true } ], "ibm_pi_placement_group": [ - { - "name": "pi_placement_group_name", - "type": "TypeString", - "description": "Name of the placement group", - "required": true - }, - { - "name": "pi_placement_group_policy", - "type": "TypeString", - "description": "Policy of the placement group", - "required": true - }, - { - "name": "pi_cloud_instance_id", - "type": "TypeString", - "description": "PI cloud instance ID", - "required": true - }, { "name": "members", "type": "TypeSet", @@ -134252,91 +137558,32 @@ "type": "TypeString", "description": "PI placement group ID", "computed": true - } - ], - "ibm_pi_shared_processor_pool": [ - { - "name": "instances", - "type": "TypeList", - "description": "List of server instances deployed in the shared processor pool", - "computed": true, - "elem": { - "availability_zone": { - "name": "availability_zone", - "type": "TypeString", - "description": "Availability zone for the server instances", - "computed": true - }, - "cpus": { - "name": "cpus", - "type": "TypeInt", - "description": "The amount of cpus for the server instance", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "The server instance ID", - "computed": true - }, - "memory": { - "name": "memory", - "type": "TypeInt", - "description": "The amount of memory for the server instance", - "computed": true - }, - "name": { - "name": "name", - "type": "TypeString", - "description": "The server instance name", - "computed": true - }, - "status": { - "name": "status", - "type": "TypeString", - "description": "Status of the server", - "computed": true - }, - "uncapped": { - "name": "uncapped", - "type": "TypeBool", - "description": "Identifies if uncapped or not", - "computed": true - }, - "vcpus": { - "name": "vcpus", - "type": "TypeFloat", - "description": "The amout of vcpus for the server instance", - "computed": true - } - } }, { - "name": "pi_shared_processor_pool_name", + "name": "pi_placement_group_name", "type": "TypeString", - "description": "Name of the shared processor pool", + "description": "Name of the placement group", "required": true }, { - "name": "pi_shared_processor_pool_host_group", + "name": "pi_placement_group_policy", "type": "TypeString", - "description": "Host group of the shared processor pool", + "description": "Policy of the placement group", "required": true }, { - "name": "available_cores", - "type": "TypeInt", - "description": "Shared processor pool available cores", - "computed": true - }, + "name": "pi_cloud_instance_id", + "type": "TypeString", + "description": "PI cloud instance ID", + "required": true + } + ], + "ibm_pi_shared_processor_pool": [ { - "name": "spp_placement_groups", - "type": "TypeList", - "description": "SPP placement groups the shared processor pool are in", - "optional": true, - "elem": { - "type": "TypeString" - } + "name": "pi_shared_processor_pool_name", + "type": "TypeString", + "description": "Name of the shared processor pool", + "required": true }, { "name": "allocated_cores", @@ -134357,10 +137604,25 @@ "computed": true }, { - "name": "status_detail", + "name": "status_detail", + "type": "TypeString", + "description": "The status details of the shared processor pool", + "computed": true + }, + { + "name": "spp_placement_groups", + "type": "TypeList", + "description": "SPP placement groups the shared processor pool are in", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "pi_shared_processor_pool_host_group", "type": "TypeString", - "description": "The status details of the shared processor pool", - "computed": true + "description": "Host group of the shared processor pool", + "required": true }, { "name": "pi_shared_processor_pool_reserved_cores", @@ -134385,14 +137647,82 @@ "type": "TypeString", "description": "Shared processor pool ID", "computed": true + }, + { + "name": "available_cores", + "type": "TypeInt", + "description": "Shared processor pool available cores", + "computed": true + }, + { + "name": "instances", + "type": "TypeList", + "description": "List of server instances deployed in the shared processor pool", + "computed": true, + "elem": { + "availability_zone": { + "name": "availability_zone", + "type": "TypeString", + "description": "Availability zone for the server instances", + "computed": true + }, + "cpus": { + "name": "cpus", + "type": "TypeInt", + "description": "The amount of cpus for the server instance", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "The server instance ID", + "computed": true + }, + "memory": { + "name": "memory", + "type": "TypeInt", + "description": "The amount of memory for the server instance", + "computed": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "The server instance name", + "computed": true + }, + "status": { + "name": "status", + "type": "TypeString", + "description": "Status of the server", + "computed": true + }, + "uncapped": { + "name": "uncapped", + "type": "TypeBool", + "description": "Identifies if uncapped or not", + "computed": true + }, + "vcpus": { + "name": "vcpus", + "type": "TypeFloat", + "description": "The amout of vcpus for the server instance", + "computed": true + } + } } ], "ibm_pi_snapshot": [ { - "name": "pi_description", + "name": "pi_instance_name", "type": "TypeString", - "description": "Description of the PVM instance snapshot", - "optional": true + "description": "Instance name / id of the pvm", + "required": true + }, + { + "name": "pi_cloud_instance_id", + "type": "TypeString", + "description": "Cloud Instance ID - This is the service_instance_id.", + "required": true }, { "name": "pi_snap_shot_id", @@ -134402,10 +137732,15 @@ "deprecated": "This field is deprecated, use snapshot_id instead" }, { - "name": "status", + "name": "last_update_date", "type": "TypeString", "computed": true }, + { + "name": "volume_snapshots", + "type": "TypeMap", + "computed": true + }, { "name": "pi_snap_shot_name", "type": "TypeString", @@ -134413,19 +137748,10 @@ "required": true }, { - "name": "pi_volume_ids", - "type": "TypeSet", - "description": "List of PI volumes", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "pi_cloud_instance_id", + "name": "pi_description", "type": "TypeString", - "description": "Cloud Instance ID - This is the service_instance_id.", - "required": true + "description": "Description of the PVM instance snapshot", + "optional": true }, { "name": "description", @@ -134441,25 +137767,23 @@ "computed": true }, { - "name": "creation_date", + "name": "status", "type": "TypeString", "computed": true }, { - "name": "last_update_date", + "name": "creation_date", "type": "TypeString", "computed": true }, { - "name": "volume_snapshots", - "type": "TypeMap", - "computed": true - }, - { - "name": "pi_instance_name", - "type": "TypeString", - "description": "Instance name / id of the pvm", - "required": true + "name": "pi_volume_ids", + "type": "TypeSet", + "description": "List of PI volumes", + "optional": true, + "elem": { + "type": "TypeString" + } } ], "ibm_pi_spp_placement_group": [ @@ -134502,24 +137826,17 @@ ], "ibm_pi_volume": [ { - "name": "pi_volume_shareable", - "type": "TypeBool", - "description": "Flag to indicate if the volume can be shared across multiple instances?", - "optional": true + "name": "master_volume_name", + "type": "TypeString", + "description": "Indicates master volume name", + "computed": true }, { - "name": "pi_affinity_volume", + "name": "pi_affinity_instance", "type": "TypeString", - "description": "Volume (ID or Name) to base volume affinity policy against; required if requesting affinity and pi_affinity_instance is not provided", + "description": "PVM Instance (ID or Name) to base volume affinity policy against; required if requesting affinity and pi_affinity_volume is not provided", "optional": true }, - { - "name": "pi_replication_enabled", - "type": "TypeBool", - "description": "Indicates if the volume should be replication enabled or not", - "optional": true, - "computed": true - }, { "name": "volume_id", "type": "TypeString", @@ -134527,69 +137844,33 @@ "computed": true }, { - "name": "auxiliary", - "type": "TypeBool", - "description": "true if volume is auxiliary otherwise false", - "computed": true - }, - { - "name": "replication_status", + "name": "volume_status", "type": "TypeString", - "description": "Replication status of a volume", + "description": "Volume status", "computed": true }, { - "name": "pi_cloud_instance_id", - "type": "TypeString", - "description": "Cloud Instance ID - This is the service_instance_id.", - "required": true - }, - { - "name": "pi_volume_name", - "type": "TypeString", - "description": "Volume Name to create", - "required": true - }, - { - "name": "pi_affinity_policy", + "name": "consistency_group_name", "type": "TypeString", - "description": "Affinity policy for data volume being created; ignored if pi_volume_pool provided; for policy affinity requires one of pi_affinity_instance or pi_affinity_volume to be specified; for policy anti-affinity requires one of pi_anti_affinity_instances or pi_anti_affinity_volumes to be specified", - "optional": true + "description": "Consistency Group Name if volume is a part of volume group", + "computed": true }, { - "name": "pi_affinity_instance", + "name": "replication_type", "type": "TypeString", - "description": "PVM Instance (ID or Name) to base volume affinity policy against; required if requesting affinity and pi_affinity_volume is not provided", - "optional": true - }, - { - "name": "pi_anti_affinity_volumes", - "type": "TypeList", - "description": "List of volumes to base volume anti-affinity policy against; required if requesting anti-affinity and pi_anti_affinity_instances is not provided", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "pi_anti_affinity_instances", - "type": "TypeList", - "description": "List of pvmInstances to base volume anti-affinity policy against; required if requesting anti-affinity and pi_anti_affinity_volumes is not provided", - "optional": true, - "elem": { - "type": "TypeString" - } + "description": "Replication type(metro,global)", + "computed": true }, { - "name": "volume_status", + "name": "mirroring_state", "type": "TypeString", - "description": "Volume status", + "description": "Mirroring state for replication enabled volume", "computed": true }, { - "name": "master_volume_name", + "name": "primary_role", "type": "TypeString", - "description": "Indicates master volume name", + "description": "Indicates whether master/aux volume is playing the primary role", "computed": true }, { @@ -134600,28 +137881,28 @@ "computed": true }, { - "name": "delete_on_termination", - "type": "TypeBool", - "description": "Should the volume be deleted during termination", + "name": "group_id", + "type": "TypeString", + "description": "Volume Group ID", "computed": true }, { - "name": "consistency_group_name", + "name": "replication_status", "type": "TypeString", - "description": "Consistency Group Name if volume is a part of volume group", + "description": "Replication status of a volume", "computed": true }, { - "name": "group_id", + "name": "wwn", "type": "TypeString", - "description": "Volume Group ID", + "description": "WWN Of the volume", "computed": true }, { - "name": "auxiliary_volume_name", + "name": "pi_volume_name", "type": "TypeString", - "description": "Indicates auxiliary volume name", - "computed": true + "description": "Volume Name to create", + "required": true }, { "name": "pi_volume_size", @@ -134637,27 +137918,70 @@ "computed": true }, { - "name": "wwn", + "name": "pi_affinity_policy", "type": "TypeString", - "description": "WWN Of the volume", - "computed": true + "description": "Affinity policy for data volume being created; ignored if pi_volume_pool provided; for policy affinity requires one of pi_affinity_instance or pi_affinity_volume to be specified; for policy anti-affinity requires one of pi_anti_affinity_instances or pi_anti_affinity_volumes to be specified", + "optional": true }, { - "name": "replication_type", + "name": "pi_affinity_volume", "type": "TypeString", - "description": "Replication type(metro,global)", + "description": "Volume (ID or Name) to base volume affinity policy against; required if requesting affinity and pi_affinity_instance is not provided", + "optional": true + }, + { + "name": "pi_anti_affinity_volumes", + "type": "TypeList", + "description": "List of volumes to base volume anti-affinity policy against; required if requesting anti-affinity and pi_anti_affinity_instances is not provided", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "delete_on_termination", + "type": "TypeBool", + "description": "Should the volume be deleted during termination", "computed": true }, { - "name": "mirroring_state", + "name": "pi_cloud_instance_id", "type": "TypeString", - "description": "Mirroring state for replication enabled volume", + "description": "Cloud Instance ID - This is the service_instance_id.", + "required": true + }, + { + "name": "pi_volume_shareable", + "type": "TypeBool", + "description": "Flag to indicate if the volume can be shared across multiple instances?", + "optional": true + }, + { + "name": "pi_anti_affinity_instances", + "type": "TypeList", + "description": "List of pvmInstances to base volume anti-affinity policy against; required if requesting anti-affinity and pi_anti_affinity_volumes is not provided", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "pi_replication_enabled", + "type": "TypeBool", + "description": "Indicates if the volume should be replication enabled or not", + "optional": true, "computed": true }, { - "name": "primary_role", + "name": "auxiliary", + "type": "TypeBool", + "description": "true if volume is auxiliary otherwise false", + "computed": true + }, + { + "name": "auxiliary_volume_name", "type": "TypeString", - "description": "Indicates whether master/aux volume is playing the primary role", + "description": "Indicates auxiliary volume name", "computed": true } ], @@ -134691,25 +138015,10 @@ ], "ibm_pi_volume_group": [ { - "name": "pi_cloud_instance_id", - "type": "TypeString", - "description": "Cloud Instance ID - This is the service_instance_id.", - "required": true - }, - { - "name": "pi_volume_ids", - "type": "TypeSet", - "description": "List of volumes to add in volume group", - "required": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "volume_group_id", + "name": "pi_consistency_group_name", "type": "TypeString", - "description": "Volume Group ID", - "computed": true + "description": "The name of consistency group at storage controller level", + "optional": true }, { "name": "volume_group_status", @@ -134717,24 +138026,6 @@ "description": "Volume Group Status", "computed": true }, - { - "name": "replication_status", - "type": "TypeString", - "description": "Volume Group Replication Status", - "computed": true - }, - { - "name": "pi_volume_group_name", - "type": "TypeString", - "description": "Volume Group Name to create", - "optional": true - }, - { - "name": "pi_consistency_group_name", - "type": "TypeString", - "description": "The name of consistency group at storage controller level", - "optional": true - }, { "name": "status_description_errors", "type": "TypeSet", @@ -134765,9 +138056,48 @@ "type": "TypeString", "description": "Consistency Group Name if volume is a part of volume group", "computed": true + }, + { + "name": "pi_cloud_instance_id", + "type": "TypeString", + "description": "Cloud Instance ID - This is the service_instance_id.", + "required": true + }, + { + "name": "pi_volume_group_name", + "type": "TypeString", + "description": "Volume Group Name to create", + "optional": true + }, + { + "name": "pi_volume_ids", + "type": "TypeSet", + "description": "List of volumes to add in volume group", + "required": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "volume_group_id", + "type": "TypeString", + "description": "Volume Group ID", + "computed": true + }, + { + "name": "replication_status", + "type": "TypeString", + "description": "Volume Group Replication Status", + "computed": true } ], "ibm_pi_volume_group_action": [ + { + "name": "replication_status", + "type": "TypeString", + "description": "Volume Group Replication Status", + "computed": true + }, { "name": "pi_cloud_instance_id", "type": "TypeString", @@ -134846,27 +138176,24 @@ "type": "TypeString", "description": "Volume Group Status", "computed": true - }, - { - "name": "replication_status", - "type": "TypeString", - "description": "Volume Group Replication Status", - "computed": true } ], "ibm_pi_volume_onboarding": [ - { - "name": "onboarding_id", - "type": "TypeString", - "description": "Indicates the volume onboarding operation id", - "computed": true - }, { "name": "progress", "type": "TypeFloat", "description": "Indicates the progress of volume onboarding operation", "computed": true }, + { + "name": "results_onboarded_volumes", + "type": "TypeList", + "description": "List of volumes which are onboarded successfully", + "computed": true, + "elem": { + "type": "TypeString" + } + }, { "name": "results_volume_onboarding_failures", "type": "TypeList", @@ -134902,6 +138229,27 @@ "immutable": true, "required": true }, + { + "name": "input_volumes", + "type": "TypeList", + "description": "List of volumes requested to be onboarded", + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "create_time", + "type": "TypeString", + "description": "Indicates the create-time of volume onboarding operation", + "computed": true + }, + { + "name": "onboarding_id", + "type": "TypeString", + "description": "Indicates the volume onboarding operation id", + "computed": true + }, { "name": "pi_onboarding_volumes", "type": "TypeList", @@ -134937,39 +138285,27 @@ }, "min_items": 1 }, - { - "name": "create_time", - "type": "TypeString", - "description": "Indicates the create-time of volume onboarding operation", - "computed": true - }, { "name": "pi_description", "type": "TypeString", "description": "Description of the volume onboarding operation", "optional": true, "computed": true - }, - { - "name": "input_volumes", - "type": "TypeList", - "description": "List of volumes requested to be onboarded", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "results_onboarded_volumes", - "type": "TypeList", - "description": "List of volumes which are onboarded successfully", - "computed": true, - "elem": { - "type": "TypeString" - } } ], "ibm_pi_vpn_connection": [ + { + "name": "dead_peer_detections", + "type": "TypeMap", + "description": "Dead Peer Detection", + "computed": true + }, + { + "name": "pi_ike_policy_id", + "type": "TypeString", + "description": "Unique identifier of IKE Policy selected for this VPN Connection", + "required": true + }, { "name": "pi_ipsec_policy_id", "type": "TypeString", @@ -134982,6 +138318,24 @@ "description": "Mode used by this VPN Connection, either 'policy' or 'route'", "required": true }, + { + "name": "pi_networks", + "type": "TypeSet", + "description": "Set of network IDs to attach to this VPN connection", + "required": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "pi_peer_subnets", + "type": "TypeSet", + "description": "Set of CIDR of peer subnets", + "required": true, + "elem": { + "type": "TypeString" + } + }, { "name": "local_gateway_address", "type": "TypeString", @@ -134994,12 +138348,6 @@ "description": "Status of the VPN connection", "computed": true }, - { - "name": "gateway_address", - "type": "TypeString", - "description": "Public IP address of the VPN Gateway (vSRX) attached to this VPN Connection", - "computed": true - }, { "name": "pi_cloud_instance_id", "type": "TypeString", @@ -135007,9 +138355,9 @@ "required": true }, { - "name": "pi_ike_policy_id", + "name": "pi_vpn_connection_name", "type": "TypeString", - "description": "Unique identifier of IKE Policy selected for this VPN Connection", + "description": "Name of the VPN Connection", "required": true }, { @@ -135018,15 +138366,6 @@ "description": "Peer Gateway address", "required": true }, - { - "name": "pi_peer_subnets", - "type": "TypeSet", - "description": "Set of CIDR of peer subnets", - "required": true, - "elem": { - "type": "TypeString" - } - }, { "name": "connection_id", "type": "TypeString", @@ -135034,35 +138373,13 @@ "computed": true }, { - "name": "dead_peer_detections", - "type": "TypeMap", - "description": "Dead Peer Detection", - "computed": true - }, - { - "name": "pi_vpn_connection_name", + "name": "gateway_address", "type": "TypeString", - "description": "Name of the VPN Connection", - "required": true - }, - { - "name": "pi_networks", - "type": "TypeSet", - "description": "Set of network IDs to attach to this VPN connection", - "required": true, - "elem": { - "type": "TypeString" - } + "description": "Public IP address of the VPN Gateway (vSRX) attached to this VPN Connection", + "computed": true } ], "ibm_pn_application_chrome": [ - { - "name": "guid", - "type": "TypeString", - "description": "Unique guid of the push notification instance.", - "immutable": true, - "required": true - }, { "name": "server_key", "type": "TypeString", @@ -135074,6 +138391,13 @@ "type": "TypeString", "description": "The URL of the WebSite / WebApp that should be permitted to subscribe to WebPush.", "required": true + }, + { + "name": "guid", + "type": "TypeString", + "description": "Unique guid of the push notification instance.", + "immutable": true, + "required": true } ], "ibm_project_instance": [ @@ -135284,35 +138608,37 @@ ], "ibm_resource_group": [ { - "name": "crn", + "name": "created_at", "type": "TypeString", - "description": "The full CRN associated with the resource group", - "cloud_data_type": "crn", + "description": "The date when the resource group was initially created.", "computed": true }, { - "name": "created_at", + "name": "payment_methods_url", "type": "TypeString", - "description": "The date when the resource group was initially created.", + "description": "The URL to access the payment methods details that associated with the resource group.", "computed": true }, { - "name": "updated_at", + "name": "quota_url", "type": "TypeString", - "description": "The date when the resource group was last updated.", + "description": "The URL to access the quota details that associated with the resource group.", "computed": true }, { - "name": "teams_url", + "name": "quota_id", "type": "TypeString", - "description": "The URL to access the team details that associated with the resource group.", + "description": "An alpha-numeric value identifying the quota ID associated with the resource group.", "computed": true }, { - "name": "default", - "type": "TypeBool", - "description": "Specifies whether its default resource group or not", - "computed": true + "name": "resource_linkages", + "type": "TypeSet", + "description": "An array of the resources that linked to the resource group", + "computed": true, + "elem": { + "type": "TypeString" + } }, { "name": "state", @@ -135320,6 +138646,12 @@ "description": "State of the resource group", "computed": true }, + { + "name": "default", + "type": "TypeBool", + "description": "Specifies whether its default resource group or not", + "computed": true + }, { "name": "tags", "type": "TypeSet", @@ -135330,110 +138662,78 @@ } }, { - "name": "quota_id", + "name": "crn", "type": "TypeString", - "description": "An alpha-numeric value identifying the quota ID associated with the resource group.", + "description": "The full CRN associated with the resource group", + "cloud_data_type": "crn", "computed": true }, { - "name": "resource_linkages", - "type": "TypeSet", - "description": "An array of the resources that linked to the resource group", - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "name", + "name": "updated_at", "type": "TypeString", - "description": "The name of the resource group", - "required": true + "description": "The date when the resource group was last updated.", + "computed": true }, { - "name": "payment_methods_url", + "name": "teams_url", "type": "TypeString", - "description": "The URL to access the payment methods details that associated with the resource group.", + "description": "The URL to access the team details that associated with the resource group.", "computed": true }, { - "name": "quota_url", + "name": "name", "type": "TypeString", - "description": "The URL to access the quota details that associated with the resource group.", - "computed": true + "description": "The name of the resource group", + "required": true } ], "ibm_resource_instance": [ { - "name": "resource_plan_id", - "type": "TypeString", - "description": "The unique ID of the plan associated with the offering", - "computed": true - }, - { - "name": "deleted_at", + "name": "parameters_json", "type": "TypeString", - "description": "The date when the instance was deleted.", - "computed": true + "description": "Arbitrary parameters to pass in Json string format", + "optional": true }, { - "name": "scheduled_reclaim_at", + "name": "resource_group_crn", "type": "TypeString", - "description": "The date when the instance was scheduled for reclamation.", + "description": "The long ID (full CRN) of the resource group", "computed": true }, { - "name": "scheduled_reclaim_by", - "type": "TypeString", - "description": "The subject who initiated the instance reclamation.", + "name": "allow_cleanup", + "type": "TypeBool", + "description": "A boolean that dictates if the resource instance should be deleted (cleaned up) during the processing of a region instance delete call.", "computed": true }, { - "name": "restored_by", + "name": "resource_name", "type": "TypeString", - "description": "The subject who restored the instance back from reclamation.", + "description": "The name of the resource", "computed": true }, { - "name": "resource_controller_url", + "name": "state", "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about the resource", + "description": "The current state of the instance.", "computed": true }, { - "name": "plan_history", - "type": "TypeList", - "description": "The plan history of the instance.", - "computed": true, - "elem": { - "resource_plan_id": { - "name": "resource_plan_id", - "type": "TypeString", - "computed": true - }, - "start_date": { - "name": "start_date", - "type": "TypeString", - "computed": true - } - } - }, - { - "name": "resource_id", + "name": "resource_aliases_url", "type": "TypeString", - "description": "The unique ID of the offering", + "description": "The relative path to the resource aliases for the instance.", "computed": true }, { - "name": "resource_bindings_url", + "name": "resource_keys_url", "type": "TypeString", - "description": "The relative path to the resource bindings for the instance.", + "description": "The relative path to the resource keys for the instance.", "computed": true }, { - "name": "resource_keys_url", + "name": "created_at", "type": "TypeString", - "description": "The relative path to the resource keys for the instance.", + "description": "The date when the instance was created.", "computed": true }, { @@ -135444,137 +138744,142 @@ "required": true }, { - "name": "update_by", - "type": "TypeString", - "description": "The subject who updated the instance.", - "computed": true - }, - { - "name": "restored_at", + "name": "plan", "type": "TypeString", - "description": "The date when the instance under reclamation was restored.", - "computed": true + "description": "The plan type of the service", + "required": true }, { - "name": "location", + "name": "resource_group_id", "type": "TypeString", - "description": "The location where the instance available", - "cloud_data_type": "region", + "description": "The resource group id", + "cloud_data_type": "resource_group", "immutable": true, - "required": true + "optional": true, + "computed": true, + "cloud_data_range": [ + "resolved_to:id" + ] }, { - "name": "status", + "name": "resource_plan_id", "type": "TypeString", - "description": "Status of resource instance", + "description": "The unique ID of the plan associated with the offering", "computed": true }, { - "name": "target_crn", - "type": "TypeString", - "description": "The full deployment CRN as defined in the global catalog", + "name": "extensions", + "type": "TypeMap", + "description": "The extended metadata as a map associated with the resource instance.", "computed": true }, { - "name": "locked", - "type": "TypeBool", - "description": "A boolean that dictates if the resource instance should be deleted (cleaned up) during the processing of a region instance delete call.", + "name": "deleted_at", + "type": "TypeString", + "description": "The date when the instance was deleted.", "computed": true }, { - "name": "created_by", + "name": "scheduled_reclaim_by", "type": "TypeString", - "description": "The subject who created the instance.", + "description": "The subject who initiated the instance reclamation.", "computed": true }, { - "name": "resource_status", + "name": "restored_by", "type": "TypeString", - "description": "The status of the resource", + "description": "The subject who restored the instance back from reclamation.", "computed": true }, { - "name": "tags", - "type": "TypeSet", - "min_length": 1, - "max_length": 128, - "matches": "^[A-Za-z0-9:_ .-]+$", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "parameters", + "type": "TypeMap", + "description": "Arbitrary parameters to pass. Must be a JSON object", + "optional": true }, { - "name": "resource_group_id", + "name": "service_endpoints", "type": "TypeString", - "description": "The resource group id", - "cloud_data_type": "resource_group", - "immutable": true, + "description": "Types of the service endpoints. Possible values are 'public', 'private', 'public-and-private'.", "optional": true, - "computed": true, - "cloud_data_range": [ - "resolved_to:id" - ] + "computed": true }, { - "name": "state", + "name": "type", "type": "TypeString", - "description": "The current state of the instance.", + "description": "The type of the instance, e.g. service_instance.", "computed": true }, { - "name": "sub_type", + "name": "update_at", "type": "TypeString", - "description": "The sub-type of instance, e.g. cfaas .", + "description": "The date when the instance was last updated.", "computed": true }, { - "name": "resource_group_name", + "name": "resource_bindings_url", "type": "TypeString", - "description": "The resource group name in which resource is provisioned", + "description": "The relative path to the resource bindings for the instance.", "computed": true }, { - "name": "plan", + "name": "created_by", "type": "TypeString", - "description": "The plan type of the service", - "required": true + "description": "The subject who created the instance.", + "computed": true }, { - "name": "guid", + "name": "resource_controller_url", "type": "TypeString", - "description": "Guid of resource instance", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about the resource", "computed": true }, { - "name": "type", + "name": "name", "type": "TypeString", - "description": "The type of the instance, e.g. service_instance.", - "computed": true + "description": "A name for the resource instance", + "required": true }, { - "name": "resource_aliases_url", + "name": "tags", + "type": "TypeSet", + "min_length": 1, + "max_length": 128, + "matches": "^[A-Za-z0-9:_ .-]+$", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "resource_id", "type": "TypeString", - "description": "The relative path to the resource aliases for the instance.", + "description": "The unique ID of the offering", "computed": true }, { - "name": "created_at", + "name": "locked", + "type": "TypeBool", + "description": "A boolean that dictates if the resource instance should be deleted (cleaned up) during the processing of a region instance delete call.", + "computed": true + }, + { + "name": "status", "type": "TypeString", - "description": "The date when the instance was created.", + "description": "Status of resource instance", "computed": true }, { - "name": "update_at", + "name": "dashboard_url", "type": "TypeString", - "description": "The date when the instance was last updated.", + "description": "Dashboard URL to access resource.", "computed": true }, { - "name": "deleted_by", + "name": "restored_at", "type": "TypeString", - "description": "The subject who deleted the instance.", + "description": "The date when the instance under reclamation was restored.", "computed": true }, { @@ -135584,16 +138889,17 @@ "computed": true }, { - "name": "name", + "name": "scheduled_reclaim_at", "type": "TypeString", - "description": "A name for the resource instance", - "required": true + "description": "The date when the instance was scheduled for reclamation.", + "computed": true }, { - "name": "parameters_json", + "name": "crn", "type": "TypeString", - "description": "Arbitrary parameters to pass in Json string format", - "optional": true + "description": "CRN of resource instance", + "cloud_data_type": "crn", + "computed": true }, { "name": "account_id", @@ -135602,9 +138908,9 @@ "computed": true }, { - "name": "resource_group_crn", + "name": "sub_type", "type": "TypeString", - "description": "The long ID (full CRN) of the resource group", + "description": "The sub-type of instance, e.g. cfaas .", "computed": true }, { @@ -135614,62 +138920,80 @@ "computed": true }, { - "name": "resource_name", + "name": "resource_group_name", "type": "TypeString", - "description": "The name of the resource", + "description": "The resource group name in which resource is provisioned", "computed": true }, { - "name": "extensions", - "type": "TypeMap", - "description": "The extended metadata as a map associated with the resource instance.", + "name": "guid", + "type": "TypeString", + "description": "Guid of resource instance", "computed": true }, { - "name": "parameters", - "type": "TypeMap", - "description": "Arbitrary parameters to pass. Must be a JSON object", - "optional": true + "name": "plan_history", + "type": "TypeList", + "description": "The plan history of the instance.", + "computed": true, + "elem": { + "resource_plan_id": { + "name": "resource_plan_id", + "type": "TypeString", + "computed": true + }, + "start_date": { + "name": "start_date", + "type": "TypeString", + "computed": true + } + } }, { - "name": "service_endpoints", + "name": "update_by", "type": "TypeString", - "description": "Types of the service endpoints. Possible values are 'public', 'private', 'public-and-private'.", - "optional": true, + "description": "The subject who updated the instance.", "computed": true }, { - "name": "dashboard_url", + "name": "resource_status", "type": "TypeString", - "description": "Dashboard URL to access resource.", + "description": "The status of the resource", "computed": true }, { - "name": "allow_cleanup", - "type": "TypeBool", - "description": "A boolean that dictates if the resource instance should be deleted (cleaned up) during the processing of a region instance delete call.", + "name": "location", + "type": "TypeString", + "description": "The location where the instance available", + "cloud_data_type": "region", + "immutable": true, + "required": true + }, + { + "name": "target_crn", + "type": "TypeString", + "description": "The full deployment CRN as defined in the global catalog", "computed": true }, { - "name": "crn", + "name": "deleted_by", "type": "TypeString", - "description": "CRN of resource instance", - "cloud_data_type": "crn", + "description": "The subject who deleted the instance.", "computed": true } ], "ibm_resource_key": [ { - "name": "name", - "type": "TypeString", - "description": "The name of the resource key", - "immutable": true, - "required": true + "name": "parameters", + "type": "TypeMap", + "description": "Arbitrary parameters to pass. Must be a JSON object", + "optional": true }, { - "name": "url", - "type": "TypeString", - "description": "When you created a new key, a relative URL path is created identifying the location of the key.", + "name": "credentials", + "type": "TypeMap", + "description": "Credentials asociated with the key", + "secure": true, "computed": true }, { @@ -135685,16 +139009,22 @@ "computed": true }, { - "name": "created_by", + "name": "resource_group_id", "type": "TypeString", - "description": "The subject who created the key.", + "description": "The short ID of the resource group.", + "cloud_data_type": "resource_group", "computed": true }, { - "name": "resource_instance_url", + "name": "resource_instance_id", "type": "TypeString", - "description": "The relative path to the resource.", - "computed": true + "description": "The id of the resource instance for which to create resource key", + "cloud_data_type": "resource_instance", + "immutable": true, + "optional": true, + "cloud_data_range": [ + "service:%s" + ] }, { "name": "resource_alias_id", @@ -135703,13 +139033,6 @@ "immutable": true, "optional": true }, - { - "name": "credentials", - "type": "TypeMap", - "description": "Credentials asociated with the key", - "secure": true, - "computed": true - }, { "name": "credentials_json", "type": "TypeString", @@ -135717,15 +139040,6 @@ "secure": true, "computed": true }, - { - "name": "tags", - "type": "TypeSet", - "cloud_data_type": "tags", - "optional": true, - "elem": { - "type": "TypeString" - } - }, { "name": "crn", "type": "TypeString", @@ -135740,27 +139054,40 @@ "computed": true }, { - "name": "deleted_by", + "name": "updated_by", "type": "TypeString", - "description": "The subject who deleted the key.", + "description": "The subject who updated the key.", "computed": true }, { - "name": "parameters", - "type": "TypeMap", - "description": "Arbitrary parameters to pass. Must be a JSON object", - "optional": true + "name": "name", + "type": "TypeString", + "description": "The name of the resource key", + "immutable": true, + "required": true }, { - "name": "status", + "name": "account_id", "type": "TypeString", - "description": "Status of resource key", + "description": "An alpha-numeric value identifying the account ID.", "computed": true }, { - "name": "guid", + "name": "resource_instance_url", "type": "TypeString", - "description": "When you create a new key, a globally unique identifier (GUID) is assigned.", + "description": "The relative path to the resource.", + "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "The date when the key was last updated.", + "computed": true + }, + { + "name": "url", + "type": "TypeString", + "description": "When you created a new key, a relative URL path is created identifying the location of the key.", "computed": true }, { @@ -135770,15 +139097,15 @@ "computed": true }, { - "name": "updated_at", - "type": "TypeString", - "description": "The date when the key was last updated.", + "name": "iam_compatible", + "type": "TypeBool", + "description": "Specifies whether the key's credentials support IAM.", "computed": true }, { - "name": "updated_by", + "name": "created_by", "type": "TypeString", - "description": "The subject who updated the key.", + "description": "The subject who created the key.", "computed": true }, { @@ -135789,33 +139116,30 @@ "optional": true }, { - "name": "resource_instance_id", + "name": "status", "type": "TypeString", - "description": "The id of the resource instance for which to create resource key", - "cloud_data_type": "resource_instance", - "immutable": true, - "optional": true, - "cloud_data_range": [ - "service:%s" - ] + "description": "Status of resource key", + "computed": true }, { - "name": "account_id", - "type": "TypeString", - "description": "An alpha-numeric value identifying the account ID.", - "computed": true + "name": "tags", + "type": "TypeSet", + "cloud_data_type": "tags", + "optional": true, + "elem": { + "type": "TypeString" + } }, { - "name": "resource_group_id", + "name": "guid", "type": "TypeString", - "description": "The short ID of the resource group.", - "cloud_data_type": "resource_group", + "description": "When you create a new key, a globally unique identifier (GUID) is assigned.", "computed": true }, { - "name": "iam_compatible", - "type": "TypeBool", - "description": "Specifies whether the key's credentials support IAM.", + "name": "deleted_by", + "type": "TypeString", + "description": "The subject who deleted the key.", "computed": true } ], @@ -135865,90 +139189,33 @@ ], "ibm_satellite_cluster": [ { - "name": "pod_subnet", - "type": "TypeString", - "description": "User provided value for the pod subnet", - "optional": true, - "computed": true - }, - { - "name": "public_service_endpoint_url", - "type": "TypeString", - "computed": true - }, - { - "name": "tags", - "type": "TypeSet", - "description": "List of tags for the resources", - "min_length": 1, - "max_length": 128, - "matches": "^[A-Za-z0-9:_ .-]+$", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "disable_public_service_endpoint", - "type": "TypeBool", - "description": "Boolean value true if Public service endpoint to be disabled", - "default_value": false, - "optional": true - }, - { - "name": "crn_token", - "type": "TypeString", - "description": "The IBM Cloud Identity and Access Management (IAM) service CRN token for the service that creates the cluster.", - "secure": true, - "optional": true - }, - { - "name": "operating_system", + "name": "kube_version", "type": "TypeString", - "description": "Operating system of the default worker pool. Options are REDHAT_7_64, REDHAT_8_64, or RHCOS.", - "optional": true, - "computed": true - }, - { - "name": "worker_count", - "type": "TypeInt", - "description": "The number of worker nodes per zone in the default worker pool. Required when '--host-label' is specified. (default: 0)", + "description": "The OpenShift Container Platform version", "optional": true, "computed": true }, { - "name": "pull_secret", - "type": "TypeString", - "description": "The RedHat pull secret to create the OpenShift cluster", - "optional": true - }, - { - "name": "resource_group_id", + "name": "master_status", "type": "TypeString", - "description": "ID of the resource group.", - "cloud_data_type": "resource_group", - "optional": true, "computed": true }, { - "name": "name", - "type": "TypeString", - "description": "The unique name for the new IBM Cloud Satellite cluster", - "immutable": true, - "required": true + "name": "enable_config_admin", + "type": "TypeBool", + "description": "Grant cluster admin access to Satellite Config to manage Kubernetes resources.", + "optional": true, + "computed": true }, { - "name": "master_url", - "type": "TypeString", + "name": "private_service_endpoint_enabled", + "type": "TypeBool", "computed": true }, { - "name": "location", + "name": "public_service_endpoint_url", "type": "TypeString", - "description": "The name or ID of the Satellite location", - "cloud_data_type": "region", - "required": true + "computed": true }, { "name": "public_service_endpoint_enabled", @@ -135956,7 +139223,17 @@ "computed": true }, { - "name": "ingress_hostname", + "name": "default_worker_pool_labels", + "type": "TypeMap", + "description": "Labels on the default worker pool", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "private_service_endpoint_url", "type": "TypeString", "computed": true }, @@ -135970,6 +139247,32 @@ "type": "TypeString" } }, + { + "name": "name", + "type": "TypeString", + "description": "The unique name for the new IBM Cloud Satellite cluster", + "immutable": true, + "required": true + }, + { + "name": "operating_system", + "type": "TypeString", + "description": "Operating system of the default worker pool. Options are REDHAT_7_64, REDHAT_8_64, or RHCOS.", + "optional": true, + "computed": true + }, + { + "name": "master_url", + "type": "TypeString", + "computed": true + }, + { + "name": "worker_count", + "type": "TypeInt", + "description": "The number of worker nodes per zone in the default worker pool. Required when '--host-label' is specified. (default: 0)", + "optional": true, + "computed": true + }, { "name": "zones", "type": "TypeSet", @@ -135986,20 +139289,9 @@ } }, { - "name": "resource_group_name", - "type": "TypeString", - "description": "The resource group name in which resource is provisioned", - "computed": true - }, - { - "name": "private_service_endpoint_url", - "type": "TypeString", - "computed": true - }, - { - "name": "state", + "name": "ingress_secret", "type": "TypeString", - "description": "The lifecycle state of the cluster.", + "secure": true, "computed": true }, { @@ -136015,47 +139307,51 @@ "optional": true }, { - "name": "default_worker_pool_labels", - "type": "TypeMap", - "description": "Labels on the default worker pool", + "name": "pod_subnet", + "type": "TypeString", + "description": "User provided value for the pod subnet", "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } + "computed": true }, { - "name": "crn", + "name": "resource_group_name", "type": "TypeString", - "description": "CRN of resource instance", - "cloud_data_type": "crn", + "description": "The resource group name in which resource is provisioned", "computed": true }, { - "name": "ingress_secret", - "type": "TypeString", - "secure": true, - "computed": true + "name": "disable_public_service_endpoint", + "type": "TypeBool", + "description": "Boolean value true if Public service endpoint to be disabled", + "default_value": false, + "optional": true }, { - "name": "infrastructure_topology", - "type": "TypeString", - "description": "String value for single node cluster option. Available options: single-replica, highly-available (default: highly-available)", - "immutable": true, + "name": "tags", + "type": "TypeSet", + "description": "List of tags for the resources", + "min_length": 1, + "max_length": 128, + "matches": "^[A-Za-z0-9:_ .-]+$", "optional": true, - "computed": true + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "kube_version", + "name": "location", "type": "TypeString", - "description": "The OpenShift Container Platform version", - "optional": true, - "computed": true + "description": "The name or ID of the Satellite location", + "cloud_data_type": "region", + "required": true }, { - "name": "master_status", - "type": "TypeString", - "computed": true + "name": "wait_for_worker_update", + "type": "TypeBool", + "description": "Wait for worker node to update during kube version update.", + "default_value": true, + "optional": true }, { "name": "service_subnet", @@ -136065,57 +139361,54 @@ "computed": true }, { - "name": "wait_for_worker_update", - "type": "TypeBool", - "description": "Wait for worker node to update during kube version update.", - "default_value": true, - "optional": true - }, - { - "name": "enable_config_admin", - "type": "TypeBool", - "description": "Grant cluster admin access to Satellite Config to manage Kubernetes resources.", + "name": "resource_group_id", + "type": "TypeString", + "description": "ID of the resource group.", + "cloud_data_type": "resource_group", "optional": true, "computed": true }, { - "name": "private_service_endpoint_enabled", - "type": "TypeBool", + "name": "ingress_hostname", + "type": "TypeString", "computed": true - } - ], - "ibm_satellite_cluster_worker_pool": [ + }, { - "name": "host_labels", - "type": "TypeSet", - "description": "Labels that describe a Satellite host", + "name": "infrastructure_topology", + "type": "TypeString", + "description": "String value for single node cluster option. Available options: single-replica, highly-available (default: highly-available)", "immutable": true, "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } + "computed": true }, { - "name": "resource_group_id", + "name": "crn_token", "type": "TypeString", - "description": "ID of the resource group.", - "cloud_data_type": "resource_group", - "optional": true, - "computed": true + "description": "The IBM Cloud Identity and Access Management (IAM) service CRN token for the service that creates the cluster.", + "secure": true, + "optional": true }, { - "name": "cluster", + "name": "state", "type": "TypeString", - "description": "The unique name for the new IBM Cloud Satellite cluster", - "immutable": true, - "required": true + "description": "The lifecycle state of the cluster.", + "computed": true }, { - "name": "entitlement", + "name": "pull_secret", "type": "TypeString", + "description": "The RedHat pull secret to create the OpenShift cluster", "optional": true }, + { + "name": "crn", + "type": "TypeString", + "description": "CRN of resource instance", + "cloud_data_type": "crn", + "computed": true + } + ], + "ibm_satellite_cluster_worker_pool": [ { "name": "worker_count", "type": "TypeInt", @@ -136149,9 +139442,21 @@ } }, { - "name": "name", + "name": "host_labels", + "type": "TypeSet", + "description": "Labels that describe a Satellite host", + "immutable": true, + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "cluster", "type": "TypeString", - "description": "The name for the worker pool", + "description": "The unique name for the new IBM Cloud Satellite cluster", + "immutable": true, "required": true }, { @@ -136168,20 +139473,59 @@ "optional": true }, { - "name": "isolation", + "name": "operating_system", "type": "TypeString", + "description": "Operating system of the worker pool. Options are REDHAT_7_64, REDHAT_8_64, or RHCOS.", "optional": true, "computed": true }, { - "name": "operating_system", + "name": "resource_group_id", + "type": "TypeString", + "description": "ID of the resource group.", + "cloud_data_type": "resource_group", + "optional": true, + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The name for the worker pool", + "required": true + }, + { + "name": "isolation", "type": "TypeString", - "description": "Operating system of the worker pool. Options are REDHAT_7_64, REDHAT_8_64, or RHCOS.", "optional": true, "computed": true + }, + { + "name": "entitlement", + "type": "TypeString", + "optional": true } ], "ibm_satellite_cluster_worker_pool_zone_attachment": [ + { + "name": "worker_pool", + "type": "TypeString", + "immutable": true, + "required": true + }, + { + "name": "zone", + "type": "TypeString", + "immutable": true, + "required": true + }, + { + "name": "resource_group_id", + "type": "TypeString", + "description": "The ID of the resource group that the Satellite location is in. To list the resource group ID of the location, use the `GET /v2/satellite/getController` API method.", + "cloud_data_type": "resource_group", + "immutable": true, + "optional": true + }, { "name": "autobalance_enabled", "type": "TypeBool", @@ -136207,36 +139551,86 @@ "type": "TypeString", "immutable": true, "required": true + } + ], + "ibm_satellite_endpoint": [ + { + "name": "created_by", + "type": "TypeString", + "description": "The service or person who created the endpoint. Must be 1000 characters or fewer.", + "optional": true }, { - "name": "worker_pool", + "name": "sources", + "type": "TypeList", + "computed": true, + "elem": { + "enabled": { + "name": "enabled", + "type": "TypeBool", + "description": "Whether the source is enabled for the endpoint.", + "optional": true + }, + "last_change": { + "name": "last_change", + "type": "TypeString", + "description": "The last time modify the Endpoint configurations.", + "optional": true + }, + "pending": { + "name": "pending", + "type": "TypeBool", + "description": "Whether the source has been enabled on this endpoint.", + "optional": true + }, + "source_id": { + "name": "source_id", + "type": "TypeString", + "description": "The Source ID.", + "optional": true + } + } + }, + { + "name": "endpoint_id", "type": "TypeString", - "immutable": true, + "description": "The Endpoint ID.", + "computed": true + }, + { + "name": "location", + "type": "TypeString", + "description": "The Location ID.", + "cloud_data_type": "region", "required": true }, { - "name": "zone", + "name": "display_name", "type": "TypeString", - "immutable": true, + "description": "The display name of the endpoint. Endpoint names must start with a letter and end with an alphanumeric character, can contain letters, numbers, and hyphen (-), and must be 63 characters or fewer.", "required": true }, { - "name": "resource_group_id", + "name": "sni", "type": "TypeString", - "description": "The ID of the resource group that the Satellite location is in. To list the resource group ID of the location, use the `GET /v2/satellite/getController` API method.", - "cloud_data_type": "resource_group", - "immutable": true, + "description": "The server name indicator (SNI) which used to connect to the server endpoint. Only useful if server side requires SNI.", "optional": true - } - ], - "ibm_satellite_endpoint": [ + }, { - "name": "client_mutual_auth", - "type": "TypeBool", - "description": "Whether enable mutual auth in the client application side, when client_protocol is 'tls' or 'https', this field is required.", - "default_value": false, + "name": "timeout", + "type": "TypeInt", + "description": "The inactivity timeout in the Endpoint side.", + "min_value": "1", + "max_value": "180", "optional": true }, + { + "name": "client_protocol", + "type": "TypeString", + "description": "The protocol in the client application side.", + "required": true, + "options": "http, http-tunnel, https, tcp, tls, udp" + }, { "name": "connector_port", "type": "TypeInt", @@ -136244,37 +139638,25 @@ "computed": true }, { - "name": "endpoint_id", + "name": "crn", "type": "TypeString", - "description": "The Endpoint ID.", + "description": "Service instance associated with this location.", + "cloud_data_type": "crn", "computed": true }, { - "name": "server_port", + "name": "client_port", "type": "TypeInt", - "description": "The port number of the server endpoint. For 'http-tunnel' protocol, server_port can be 0, which means any port. Such as 0 is good for 80 (http) and 443 (https).", - "required": true - }, - { - "name": "client_protocol", - "type": "TypeString", - "description": "The protocol in the client application side.", - "required": true, - "options": "http, http-tunnel, https, tcp, tls, udp" + "description": "The port which Satellite Link server listen on for the on-location, or the port which the connector server listen on for the on-cloud endpoint destiantion.", + "computed": true }, { - "name": "server_mutual_auth", + "name": "reject_unauth", "type": "TypeBool", - "description": "Whether enable mutual auth in the server application side, when client_protocol is 'tls', this field is required.", + "description": "Whether reject any connection to the server application which is not authorized with the list of supplied CAs in the fields certs.server_cert.", "default_value": false, "optional": true }, - { - "name": "created_by", - "type": "TypeString", - "description": "The service or person who created the endpoint. Must be 1000 characters or fewer.", - "optional": true - }, { "name": "certs", "type": "TypeList", @@ -136395,53 +139777,6 @@ }, "max_items": 1 }, - { - "name": "last_change", - "type": "TypeString", - "description": "The last time modify the Endpoint configurations.", - "computed": true - }, - { - "name": "display_name", - "type": "TypeString", - "description": "The display name of the endpoint. Endpoint names must start with a letter and end with an alphanumeric character, can contain letters, numbers, and hyphen (-), and must be 63 characters or fewer.", - "required": true - }, - { - "name": "sni", - "type": "TypeString", - "description": "The server name indicator (SNI) which used to connect to the server endpoint. Only useful if server side requires SNI.", - "optional": true - }, - { - "name": "server_protocol", - "type": "TypeString", - "description": "The protocol in the server application side. This parameter will change to default value if it is omitted even when using PATCH API. If client_protocol is 'udp', server_protocol must be 'udp'. If client_protocol is 'tcp'/'http', server_protocol could be 'tcp'/'tls' and default to 'tcp'. If client_protocol is 'tls'/'https', server_protocol could be 'tcp'/'tls' and default to 'tls'. If client_protocol is 'http-tunnel', server_protocol must be 'tcp'.", - "options": "tcp, tls, udp", - "optional": true - }, - { - "name": "reject_unauth", - "type": "TypeBool", - "description": "Whether reject any connection to the server application which is not authorized with the list of supplied CAs in the fields certs.server_cert.", - "default_value": false, - "optional": true - }, - { - "name": "timeout", - "type": "TypeInt", - "description": "The inactivity timeout in the Endpoint side.", - "min_value": "1", - "max_value": "180", - "optional": true - }, - { - "name": "crn", - "type": "TypeString", - "description": "Service instance associated with this location.", - "cloud_data_type": "crn", - "computed": true - }, { "name": "service_name", "type": "TypeString", @@ -136468,21 +139803,23 @@ "required": true }, { - "name": "client_port", - "type": "TypeInt", - "description": "The port which Satellite Link server listen on for the on-location, or the port which the connector server listen on for the on-cloud endpoint destiantion.", - "computed": true + "name": "client_mutual_auth", + "type": "TypeBool", + "description": "Whether enable mutual auth in the client application side, when client_protocol is 'tls' or 'https', this field is required.", + "default_value": false, + "optional": true }, { - "name": "created_at", - "type": "TypeString", - "description": "The time when the Endpoint is created.", - "computed": true + "name": "server_mutual_auth", + "type": "TypeBool", + "description": "Whether enable mutual auth in the server application side, when client_protocol is 'tls', this field is required.", + "default_value": false, + "optional": true }, { - "name": "status", + "name": "created_at", "type": "TypeString", - "description": "Whether the Endpoint is active or not.", + "description": "The time when the Endpoint is created.", "computed": true }, { @@ -136550,59 +139887,32 @@ } }, { - "name": "location", - "type": "TypeString", - "description": "The Location ID.", - "cloud_data_type": "region", + "name": "server_port", + "type": "TypeInt", + "description": "The port number of the server endpoint. For 'http-tunnel' protocol, server_port can be 0, which means any port. Such as 0 is good for 80 (http) and 443 (https).", "required": true }, { - "name": "sources", - "type": "TypeList", - "computed": true, - "elem": { - "enabled": { - "name": "enabled", - "type": "TypeBool", - "description": "Whether the source is enabled for the endpoint.", - "optional": true - }, - "last_change": { - "name": "last_change", - "type": "TypeString", - "description": "The last time modify the Endpoint configurations.", - "optional": true - }, - "pending": { - "name": "pending", - "type": "TypeBool", - "description": "Whether the source has been enabled on this endpoint.", - "optional": true - }, - "source_id": { - "name": "source_id", - "type": "TypeString", - "description": "The Source ID.", - "optional": true - } - } - } - ], - "ibm_satellite_host": [ - { - "name": "location", + "name": "server_protocol", "type": "TypeString", - "description": "The name or ID of the Satellite location", - "cloud_data_type": "region", - "required": true + "description": "The protocol in the server application side. This parameter will change to default value if it is omitted even when using PATCH API. If client_protocol is 'udp', server_protocol must be 'udp'. If client_protocol is 'tcp'/'http', server_protocol could be 'tcp'/'tls' and default to 'tcp'. If client_protocol is 'tls'/'https', server_protocol could be 'tcp'/'tls' and default to 'tls'. If client_protocol is 'http-tunnel', server_protocol must be 'tcp'.", + "options": "tcp, tls, udp", + "optional": true }, { - "name": "cluster", + "name": "status", "type": "TypeString", - "description": "The name or ID of a Satellite location or cluster to assign the host to", - "optional": true, + "description": "Whether the Endpoint is active or not.", "computed": true }, + { + "name": "last_change", + "type": "TypeString", + "description": "The last time modify the Endpoint configurations.", + "computed": true + } + ], + "ibm_satellite_host": [ { "name": "host_id", "type": "TypeString", @@ -136619,13 +139929,6 @@ "type": "TypeString" } }, - { - "name": "zone", - "type": "TypeString", - "description": "The zone within the cluster to assign the host to", - "optional": true, - "computed": true - }, { "name": "worker_pool", "type": "TypeString", @@ -136651,6 +139954,27 @@ "description": "Wait until location is normal", "options": "location_normal", "optional": true + }, + { + "name": "cluster", + "type": "TypeString", + "description": "The name or ID of a Satellite location or cluster to assign the host to", + "optional": true, + "computed": true + }, + { + "name": "zone", + "type": "TypeString", + "description": "The zone within the cluster to assign the host to", + "optional": true, + "computed": true + }, + { + "name": "location", + "type": "TypeString", + "description": "The name or ID of the Satellite location", + "cloud_data_type": "region", + "required": true } ], "ibm_satellite_link": [ @@ -136663,22 +139987,24 @@ "required": true }, { - "name": "ws_endpoint", + "name": "location", "type": "TypeString", - "description": "The ws endpoint of the location.", - "optional": true, - "computed": true + "description": "Location ID.", + "cloud_data_type": "region", + "immutable": true, + "required": true }, { - "name": "satellite_link_host", + "name": "ws_endpoint", "type": "TypeString", - "description": "Satellite Link hostname of the location.", + "description": "The ws endpoint of the location.", + "optional": true, "computed": true }, { - "name": "status", + "name": "description", "type": "TypeString", - "description": "Enabled/Disabled.", + "description": "Description of the location.", "computed": true }, { @@ -136688,17 +140014,15 @@ "computed": true }, { - "name": "location", + "name": "satellite_link_host", "type": "TypeString", - "description": "Location ID.", - "cloud_data_type": "region", - "immutable": true, - "required": true + "description": "Satellite Link hostname of the location.", + "computed": true }, { - "name": "description", + "name": "status", "type": "TypeString", - "description": "Description of the location.", + "description": "Enabled/Disabled.", "computed": true }, { @@ -136785,6 +140109,28 @@ } ], "ibm_satellite_location": [ + { + "name": "resource_group_id", + "type": "TypeString", + "description": "ID of the resource group.", + "cloud_data_type": "resource_group", + "optional": true, + "computed": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "Location CRN", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "location", + "type": "TypeString", + "description": "A unique name for the new Satellite location", + "cloud_data_type": "region", + "required": true + }, { "name": "host_attached_count", "type": "TypeInt", @@ -136795,9 +140141,16 @@ } }, { - "name": "created_on", + "name": "description", "type": "TypeString", - "description": "Created Date", + "description": "A description of the new Satellite location", + "optional": true + }, + { + "name": "coreos_enabled", + "type": "TypeBool", + "description": "Enable Red Hat CoreOS features within the Satellite location", + "optional": true, "computed": true }, { @@ -136825,52 +140178,31 @@ "max_items": 1 }, { - "name": "cos_credentials", - "type": "TypeList", - "description": "COSAuthorization - IBM Cloud Object Storage authorization keys", + "name": "zones", + "type": "TypeSet", + "description": "The names of at least three high availability zones to use for the location", "optional": true, + "computed": true, "elem": { - "access_key_id": { - "name": "access_key_id", - "type": "TypeString", - "description": "The HMAC secret access key ID", - "optional": true - }, - "secret_access_key": { - "name": "secret_access_key", - "type": "TypeString", - "description": "The HMAC secret access key", - "optional": true - } - }, - "max_items": 1 + "type": "TypeString" + } }, { - "name": "crn", + "name": "resource_group_name", "type": "TypeString", - "description": "Location CRN", - "cloud_data_type": "crn", + "description": "Name of the resource group", "computed": true }, - { - "name": "host_available_count", - "type": "TypeInt", - "description": "The available number of hosts that can be assigned to a cluster resource in the Satellite location.", - "computed": true, - "elem": { - "type": "TypeString" - } - }, { "name": "ingress_hostname", "type": "TypeString", "computed": true }, { - "name": "description", + "name": "managed_from", "type": "TypeString", - "description": "A description of the new Satellite location", - "optional": true + "description": "The IBM Cloud metro from which the Satellite location is managed", + "required": true }, { "name": "logging_account_id", @@ -136879,36 +140211,25 @@ "optional": true }, { - "name": "coreos_enabled", - "type": "TypeBool", - "description": "Enable Red Hat CoreOS features within the Satellite location", + "name": "cos_credentials", + "type": "TypeList", + "description": "COSAuthorization - IBM Cloud Object Storage authorization keys", "optional": true, - "computed": true - }, - { - "name": "resource_group_name", - "type": "TypeString", - "description": "Name of the resource group", - "computed": true - }, - { - "name": "ingress_secret", - "type": "TypeString", - "secure": true, - "computed": true - }, - { - "name": "location", - "type": "TypeString", - "description": "A unique name for the new Satellite location", - "cloud_data_type": "region", - "required": true - }, - { - "name": "managed_from", - "type": "TypeString", - "description": "The IBM Cloud metro from which the Satellite location is managed", - "required": true + "elem": { + "access_key_id": { + "name": "access_key_id", + "type": "TypeString", + "description": "The HMAC secret access key ID", + "optional": true + }, + "secret_access_key": { + "name": "secret_access_key", + "type": "TypeString", + "description": "The HMAC secret access key", + "optional": true + } + }, + "max_items": 1 }, { "name": "tags", @@ -136924,21 +140245,24 @@ } }, { - "name": "zones", - "type": "TypeSet", - "description": "The names of at least three high availability zones to use for the location", - "optional": true, + "name": "host_available_count", + "type": "TypeInt", + "description": "The available number of hosts that can be assigned to a cluster resource in the Satellite location.", "computed": true, "elem": { "type": "TypeString" } }, { - "name": "resource_group_id", + "name": "created_on", "type": "TypeString", - "description": "ID of the resource group.", - "cloud_data_type": "resource_group", - "optional": true, + "description": "Created Date", + "computed": true + }, + { + "name": "ingress_secret", + "type": "TypeString", + "secure": true, "computed": true } ], @@ -136962,11 +140286,10 @@ ], "ibm_satellite_storage_assignment": [ { - "name": "uuid", + "name": "assignment_name", "type": "TypeString", - "description": "The Universally Unique IDentifier (UUID) of the Assignment.", - "immutable": true, - "computed": true + "description": "Name of the Assignment.", + "required": true }, { "name": "owner", @@ -136975,77 +140298,84 @@ "computed": true }, { - "name": "config", + "name": "cluster", "type": "TypeString", - "description": "Storage Configuration Name or ID.", - "required": true + "description": "ID of the Satellite cluster or Service Cluster that you want to apply the configuration to.", + "optional": true }, { - "name": "config_version_uuid", + "name": "config_uuid", "type": "TypeString", - "description": "The Universally Unique IDentifier (UUID) of the Storage Configuration Version.", + "description": "The Universally Unique IDentifier (UUID) of the Storage Configuration.", "computed": true }, { - "name": "created", + "name": "assignment_type", "type": "TypeString", - "description": "The Time of Creation of the Assignment.", + "description": "The Type of Assignment.", "computed": true }, { - "name": "rollout_error_count", + "name": "rollout_success_count", "type": "TypeInt", - "description": "The Rollout Error Count of the Assignment.", + "description": "The Rollout Success Count of the Assignment.", "computed": true }, { - "name": "sat_cluster", - "type": "TypeString", - "description": "ID of the Satellite cluster that you applied the configuration to.", + "name": "is_assignment_upgrade_available", + "type": "TypeBool", + "description": "Whether an Upgrade is Available for the Assignment.", "computed": true }, { - "name": "config_uuid", + "name": "config", "type": "TypeString", - "description": "The Universally Unique IDentifier (UUID) of the Storage Configuration.", + "description": "Storage Configuration Name or ID.", + "required": true + }, + { + "name": "config_version", + "type": "TypeString", + "description": "The Storage Configuration Version.", "computed": true }, { - "name": "assignment_type", + "name": "created", "type": "TypeString", - "description": "The Type of Assignment.", + "description": "The Time of Creation of the Assignment.", "computed": true }, { - "name": "rollout_success_count", + "name": "rollout_error_count", "type": "TypeInt", - "description": "The Rollout Success Count of the Assignment.", + "description": "The Rollout Error Count of the Assignment.", "computed": true }, { - "name": "cluster", - "type": "TypeString", - "description": "ID of the Satellite cluster or Service Cluster that you want to apply the configuration to.", + "name": "update_config_revision", + "type": "TypeBool", + "description": "Updating an assignment to the latest available storage configuration version.", + "default_value": false, "optional": true }, { - "name": "svc_cluster", + "name": "uuid", "type": "TypeString", - "description": "ID of the Service Cluster that you applied the configuration to.", + "description": "The Universally Unique IDentifier (UUID) of the Assignment.", + "immutable": true, "computed": true }, { - "name": "is_assignment_upgrade_available", - "type": "TypeBool", - "description": "Whether an Upgrade is Available for the Assignment.", + "name": "svc_cluster", + "type": "TypeString", + "description": "ID of the Service Cluster that you applied the configuration to.", "computed": true }, { - "name": "update_config_revision", - "type": "TypeBool", - "description": "Updating an assignment to the latest available storage configuration version.", - "default_value": false, - "optional": true + "name": "config_version_uuid", + "type": "TypeString", + "description": "The Universally Unique IDentifier (UUID) of the Storage Configuration Version.", + "computed": true }, { "name": "controller", @@ -137053,12 +140383,6 @@ "description": "The Name or ID of the Satellite Location.", "optional": true }, - { - "name": "assignment_name", - "type": "TypeString", - "description": "Name of the Assignment.", - "required": true - }, { "name": "groups", "type": "TypeList", @@ -137069,13 +140393,51 @@ } }, { - "name": "config_version", + "name": "sat_cluster", "type": "TypeString", - "description": "The Storage Configuration Version.", + "description": "ID of the Satellite cluster that you applied the configuration to.", "computed": true } ], "ibm_satellite_storage_configuration": [ + { + "name": "storage_template_version", + "type": "TypeString", + "description": "The Storage Template Version.", + "required": true + }, + { + "name": "user_config_parameters", + "type": "TypeMap", + "description": "User Config Parameters to pass as a Map of string key-value.", + "required": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "user_secret_parameters", + "type": "TypeMap", + "description": "User Secret Parameters to pass as a Map of string key-value.", + "secure": true, + "required": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "location", + "type": "TypeString", + "description": "Location ID.", + "cloud_data_type": "region", + "required": true + }, + { + "name": "config_version", + "type": "TypeString", + "description": "Version of the Storage Configuration.", + "computed": true + }, { "name": "storage_class_parameters", "type": "TypeList", @@ -137103,33 +140465,11 @@ "optional": true }, { - "name": "location", - "type": "TypeString", - "description": "Location ID.", - "cloud_data_type": "region", - "required": true - }, - { - "name": "config_version", - "type": "TypeString", - "description": "Version of the Storage Configuration.", - "computed": true - }, - { - "name": "storage_template_name", - "type": "TypeString", - "description": "The Storage Template Name.", - "required": true - }, - { - "name": "user_secret_parameters", - "type": "TypeMap", - "description": "User Secret Parameters to pass as a Map of string key-value.", - "secure": true, - "required": true, - "elem": { - "type": "TypeString" - } + "name": "delete_assignments", + "type": "TypeBool", + "description": "Set to delete all assignments during a configuration destroy.", + "default_value": false, + "optional": true }, { "name": "config_name", @@ -137139,48 +140479,14 @@ "required": true }, { - "name": "storage_template_version", + "name": "storage_template_name", "type": "TypeString", - "description": "The Storage Template Version.", + "description": "The Storage Template Name.", "required": true - }, - { - "name": "user_config_parameters", - "type": "TypeMap", - "description": "User Config Parameters to pass as a Map of string key-value.", - "required": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "delete_assignments", - "type": "TypeBool", - "description": "Set to delete all assignments during a configuration destroy.", - "default_value": false, - "optional": true } ], "ibm_scc_account_settings": [], "ibm_scc_control_library": [ - { - "name": "controls_count", - "type": "TypeInt", - "description": "The number of controls.", - "computed": true - }, - { - "name": "updated_on", - "type": "TypeString", - "description": "The date when the control library was updated.", - "computed": true - }, - { - "name": "control_library_id", - "type": "TypeString", - "description": "The control library ID.", - "computed": true - }, { "name": "control_library_description", "type": "TypeString", @@ -137191,53 +140497,20 @@ "matches": "[A-Za-z0-9]+" }, { - "name": "version_group_label", + "name": "control_library_version", "type": "TypeString", - "description": "The version group label.", - "min_length": 36, - "max_length": 36, - "matches": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", + "description": "The control library version.", + "min_length": 5, + "max_length": 64, + "matches": "^[a-zA-Z0-9_\\-.]*$", "optional": true }, - { - "name": "created_on", - "type": "TypeString", - "description": "The date when the control library was created.", - "computed": true - }, - { - "name": "created_by", - "type": "TypeString", - "description": "The user who created the control library.", - "computed": true - }, - { - "name": "hierarchy_enabled", - "type": "TypeBool", - "description": "The indication of whether hierarchy is enabled for the control library.", - "computed": true - }, { "name": "latest", "type": "TypeBool", "description": "The latest version of the control library.", "optional": true }, - { - "name": "account_id", - "type": "TypeString", - "description": "The account ID.", - "computed": true - }, - { - "name": "control_library_version", - "type": "TypeString", - "description": "The control library version.", - "min_length": 5, - "max_length": 64, - "matches": "^[a-zA-Z0-9_\\-.]*$", - "optional": true - }, { "name": "controls", "type": "TypeList", @@ -137432,12 +140705,6 @@ } } }, - { - "name": "updated_by", - "type": "TypeString", - "description": "The user who updated the control library.", - "computed": true - }, { "name": "control_parents_count", "type": "TypeInt", @@ -137445,12 +140712,10 @@ "computed": true }, { - "name": "instance_id", + "name": "control_library_id", "type": "TypeString", - "description": "The ID of the Security and Compliance Center instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true + "description": "The control library ID.", + "computed": true }, { "name": "control_library_name", @@ -137467,50 +140732,79 @@ "description": "The control library type.", "required": true, "options": "custom, predefined" - } - ], - "ibm_scc_profile": [ + }, { - "name": "profile_id", - "type": "TypeString", - "description": "The profile name.", + "name": "controls_count", + "type": "TypeInt", + "description": "The number of controls.", "computed": true }, { - "name": "profile_name", + "name": "created_on", "type": "TypeString", - "description": "The profile name.", - "required": true, - "min_length": 2, - "max_length": 64, - "matches": "^[a-zA-Z0-9_\\s\\-]*$" + "description": "The date when the control library was created.", + "computed": true }, { - "name": "latest", - "type": "TypeBool", - "description": "The latest version of the profile.", + "name": "updated_by", + "type": "TypeString", + "description": "The user who updated the control library.", "computed": true }, { "name": "hierarchy_enabled", "type": "TypeBool", - "description": "The indication of whether hierarchy is enabled for the profile.", + "description": "The indication of whether hierarchy is enabled for the control library.", "computed": true }, { - "name": "controls_count", - "type": "TypeInt", - "description": "The number of controls for the profile.", + "name": "instance_id", + "type": "TypeString", + "description": "The ID of the Security and Compliance Center instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true + }, + { + "name": "version_group_label", + "type": "TypeString", + "description": "The version group label.", + "min_length": 36, + "max_length": 36, + "matches": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", + "optional": true + }, + { + "name": "account_id", + "type": "TypeString", + "description": "The account ID.", "computed": true }, { - "name": "profile_description", + "name": "created_by", "type": "TypeString", - "description": "The profile description.", - "required": true, - "min_length": 2, - "max_length": 256, - "matches": "^[a-zA-Z0-9_,'\"\\s\\-\\[\\]]+$" + "description": "The user who created the control library.", + "computed": true + }, + { + "name": "updated_on", + "type": "TypeString", + "description": "The date when the control library was updated.", + "computed": true + } + ], + "ibm_scc_profile": [ + { + "name": "version_group_label", + "type": "TypeString", + "description": "The version group label of the profile.", + "computed": true + }, + { + "name": "created_on", + "type": "TypeString", + "description": "The date when the profile was created.", + "computed": true }, { "name": "controls", @@ -137554,13 +140848,13 @@ "name": "control_id", "type": "TypeString", "description": "The unique ID of the control inside the control library.", - "optional": true + "required": true }, "control_library_id": { "name": "control_library_id", "type": "TypeString", "description": "The ID of the control library that contains the profile.", - "optional": true + "required": true }, "control_library_version": { "name": "control_library_version", @@ -137709,11 +141003,36 @@ } }, { - "name": "updated_by", + "name": "profile_version", "type": "TypeString", - "description": "The user who updated the profile.", + "description": "The version status of the profile.", + "optional": true, "computed": true }, + { + "name": "latest", + "type": "TypeBool", + "description": "The latest version of the profile.", + "computed": true + }, + { + "name": "profile_name", + "type": "TypeString", + "description": "The profile name.", + "required": true, + "min_length": 2, + "max_length": 64, + "matches": "^[a-zA-Z0-9_\\s\\-]*$" + }, + { + "name": "profile_description", + "type": "TypeString", + "description": "The profile description.", + "required": true, + "min_length": 2, + "max_length": 256, + "matches": "^[a-zA-Z0-9_,'\"\\s\\-\\[\\]]+$" + }, { "name": "updated_on", "type": "TypeString", @@ -137721,15 +141040,17 @@ "computed": true }, { - "name": "control_parents_count", + "name": "attachments_count", "type": "TypeInt", - "description": "The number of parent controls for the profile.", + "description": "The number of attachments related to this profile.", "computed": true }, { - "name": "profile_type", + "name": "instance_id", "type": "TypeString", - "description": "The profile type, such as custom or predefined.", + "description": "The ID of the Security and Compliance Center instance.", + "cloud_data_type": "resource_instance", + "immutable": true, "required": true }, { @@ -137777,42 +141098,46 @@ } }, { - "name": "version_group_label", - "type": "TypeString", - "description": "The version group label of the profile.", + "name": "hierarchy_enabled", + "type": "TypeBool", + "description": "The indication of whether hierarchy is enabled for the profile.", "computed": true }, { - "name": "instance_id", + "name": "created_by", "type": "TypeString", - "description": "The ID of the Security and Compliance Center instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true + "description": "The user who created the profile.", + "computed": true }, { - "name": "created_on", + "name": "updated_by", "type": "TypeString", - "description": "The date when the profile was created.", + "description": "The user who updated the profile.", "computed": true }, { - "name": "profile_version", - "type": "TypeString", - "description": "The version status of the profile.", + "name": "controls_count", + "type": "TypeInt", + "description": "The number of controls for the profile.", "computed": true }, { - "name": "created_by", - "type": "TypeString", - "description": "The user who created the profile.", + "name": "control_parents_count", + "type": "TypeInt", + "description": "The number of parent controls for the profile.", "computed": true }, { - "name": "attachments_count", - "type": "TypeInt", - "description": "The number of attachments related to this profile.", + "name": "profile_id", + "type": "TypeString", + "description": "The profile name.", "computed": true + }, + { + "name": "profile_type", + "type": "TypeString", + "description": "The profile type, such as custom or predefined.", + "required": true } ], "ibm_scc_profile_attachment": [ @@ -137826,100 +141151,6 @@ "max_length": 36, "matches": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" }, - { - "name": "instance_id", - "type": "TypeString", - "description": "The ID of the Security and Compliance Center instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true - }, - { - "name": "updated_by", - "type": "TypeString", - "description": "The user who updated the attachment.", - "computed": true - }, - { - "name": "attachment_parameters", - "type": "TypeList", - "description": "The profile parameters for the attachment.", - "optional": true, - "elem": { - "assessment_id": { - "name": "assessment_id", - "type": "TypeString", - "description": "The implementation ID of the parameter.", - "optional": true - }, - "assessment_type": { - "name": "assessment_type", - "type": "TypeString", - "description": "The type of the implementation.", - "optional": true - }, - "parameter_display_name": { - "name": "parameter_display_name", - "type": "TypeString", - "description": "The parameter display name.", - "optional": true - }, - "parameter_name": { - "name": "parameter_name", - "type": "TypeString", - "description": "The parameter name.", - "optional": true - }, - "parameter_type": { - "name": "parameter_type", - "type": "TypeString", - "description": "The parameter type.", - "optional": true - }, - "parameter_value": { - "name": "parameter_value", - "type": "TypeString", - "description": "The value of the parameter.", - "optional": true - } - } - }, - { - "name": "attachment_id", - "type": "TypeString", - "description": "The ID of the attachment.", - "computed": true - }, - { - "name": "account_id", - "type": "TypeString", - "description": "The account ID that is associated to the attachment.", - "computed": true - }, - { - "name": "created_by", - "type": "TypeString", - "description": "The user who created the attachment.", - "computed": true - }, - { - "name": "created_on", - "type": "TypeString", - "description": "The date when the attachment was created.", - "computed": true - }, - { - "name": "schedule", - "type": "TypeString", - "description": "The schedule of an attachment evaluation.", - "required": true - }, - { - "name": "profile_attachment_id", - "type": "TypeString", - "description": "The profile attachment ID.", - "computed": true - }, { "name": "scope", "type": "TypeList", @@ -137954,6 +141185,12 @@ } } }, + { + "name": "created_on", + "type": "TypeString", + "description": "The date when the attachment was created.", + "computed": true + }, { "name": "notifications", "type": "TypeList", @@ -137993,6 +141230,50 @@ } } }, + { + "name": "name", + "type": "TypeString", + "description": "The name of the attachment.", + "required": true + }, + { + "name": "attachment_id", + "type": "TypeString", + "description": "The ID of the attachment.", + "computed": true + }, + { + "name": "updated_by", + "type": "TypeString", + "description": "The user who updated the attachment.", + "computed": true + }, + { + "name": "status", + "type": "TypeString", + "description": "The status of an attachment evaluation.", + "required": true + }, + { + "name": "description", + "type": "TypeString", + "description": "The description for the attachment.", + "optional": true + }, + { + "name": "instance_id", + "type": "TypeString", + "description": "The ID of the Security and Compliance Center instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true + }, + { + "name": "updated_on", + "type": "TypeString", + "description": "The date when the attachment was updated.", + "computed": true + }, { "name": "last_scan", "type": "TypeList", @@ -138026,36 +141307,75 @@ "computed": true }, { - "name": "name", + "name": "profile_attachment_id", "type": "TypeString", - "description": "The name of the attachment.", - "required": true + "description": "The profile attachment ID.", + "computed": true }, { - "name": "description", + "name": "account_id", "type": "TypeString", - "description": "The description for the attachment.", - "optional": true + "description": "The account ID that is associated to the attachment.", + "computed": true }, { - "name": "updated_on", + "name": "created_by", "type": "TypeString", - "description": "The date when the attachment was updated.", + "description": "The user who created the attachment.", "computed": true }, { - "name": "status", + "name": "schedule", "type": "TypeString", - "description": "The status of an attachment evaluation.", + "description": "The schedule of an attachment evaluation.", "required": true + }, + { + "name": "attachment_parameters", + "type": "TypeList", + "description": "The profile parameters for the attachment.", + "optional": true, + "elem": { + "assessment_id": { + "name": "assessment_id", + "type": "TypeString", + "description": "The implementation ID of the parameter.", + "optional": true + }, + "assessment_type": { + "name": "assessment_type", + "type": "TypeString", + "description": "The type of the implementation.", + "optional": true + }, + "parameter_display_name": { + "name": "parameter_display_name", + "type": "TypeString", + "description": "The parameter display name.", + "optional": true + }, + "parameter_name": { + "name": "parameter_name", + "type": "TypeString", + "description": "The parameter name.", + "optional": true + }, + "parameter_type": { + "name": "parameter_type", + "type": "TypeString", + "description": "The parameter type.", + "optional": true + }, + "parameter_value": { + "name": "parameter_value", + "type": "TypeString", + "description": "The value of the parameter.", + "optional": true + } + } } ], "ibm_scc_provider_type_instance": [ - { - "name": "attributes", - "type": "TypeMap", - "optional": true - }, { "name": "type", "type": "TypeString", @@ -138106,9 +141426,20 @@ "min_length": 1, "max_length": 64, "matches": "[A-Za-z0-9]+" + }, + { + "name": "attributes", + "type": "TypeMap", + "optional": true } ], "ibm_scc_rule": [ + { + "name": "account_id", + "type": "TypeString", + "description": "The account ID.", + "computed": true + }, { "name": "created_by", "type": "TypeString", @@ -138116,17 +141447,70 @@ "computed": true }, { - "name": "description", + "name": "version", "type": "TypeString", - "description": "The details of a rule's response.", - "required": true, - "max_length": 512, - "matches": "[A-Za-z0-9]+" + "description": "The version number of a rule.", + "min_length": 5, + "max_length": 10, + "matches": "^[0-9][0-9.]*$", + "optional": true }, { - "name": "etag", + "name": "instance_id", "type": "TypeString", - "description": "The etag of the rule.", + "description": "The ID of the Security and Compliance Center instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true + }, + { + "name": "modified_by", + "type": "TypeString", + "description": "The unique identifier for the user or application that last modified the resource.", + "computed": true, + "deprecated": "use updated_by" + }, + { + "name": "enforcement_actions", + "type": "TypeList", + "description": "The actions that the service must run on your behalf when a request to create or modify the target resource does not comply with your conditions.", + "optional": true, + "elem": { + "action": { + "name": "action", + "type": "TypeString", + "description": "To block a request from completing, use `disallow`.", + "required": true + } + }, + "max_items": 1, + "deprecated": "enforcement_actions is now deprecated" + }, + { + "name": "labels", + "type": "TypeList", + "description": "The list of labels.", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "type", + "type": "TypeString", + "description": "The rule type (allowable values are `user_defined` or `system_defined`).", + "computed": true + }, + { + "name": "updated_on", + "type": "TypeString", + "description": "The date when the rule was modified.", + "computed": true + }, + { + "name": "created_on", + "type": "TypeString", + "description": "The date when the rule was created.", "computed": true }, { @@ -138171,13 +141555,97 @@ "max_items": 1 }, { - "name": "labels", + "name": "modification_date", + "type": "TypeString", + "description": "The date the resource was last modified.", + "computed": true, + "deprecated": "use updated_on instead" + }, + { + "name": "rule_id", + "type": "TypeString", + "description": "The rule ID.", + "computed": true + }, + { + "name": "target", "type": "TypeList", - "description": "The list of labels.", - "optional": true, + "description": "The rule target.", + "required": true, "elem": { - "type": "TypeString" - } + "additional_target_attributes": { + "name": "additional_target_attributes", + "type": "TypeList", + "description": "The list of targets supported properties.", + "optional": true, + "elem": { + "name": { + "name": "name", + "type": "TypeString", + "description": "The additional target attribute name.", + "optional": true + }, + "operator": { + "name": "operator", + "type": "TypeString", + "description": "The operator.", + "optional": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "The value.", + "optional": true + } + } + }, + "resource_kind": { + "name": "resource_kind", + "type": "TypeString", + "description": "The target resource kind.", + "required": true + }, + "service_display_name": { + "name": "service_display_name", + "type": "TypeString", + "description": "The display name of the target service.", + "optional": true + }, + "service_name": { + "name": "service_name", + "type": "TypeString", + "description": "The target service name.", + "required": true + } + }, + "max_items": 1, + "min_items": 1 + }, + { + "name": "updated_by", + "type": "TypeString", + "description": "The user who modified the rule.", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "A human-readable alias to assign to your rule.", + "optional": true, + "deprecated": "name is now deprecated" + }, + { + "name": "rule_type", + "type": "TypeString", + "description": "The type of rule. Rules that you create are `user_defined`.", + "computed": true, + "deprecated": "use type instead" + }, + { + "name": "etag", + "type": "TypeString", + "description": "The etag of the rule.", + "computed": true }, { "name": "required_config", @@ -138405,12 +141873,6 @@ "max_items": 1, "min_items": 1 }, - { - "name": "updated_by", - "type": "TypeString", - "description": "The user who modified the rule.", - "computed": true - }, { "name": "creation_date", "type": "TypeString", @@ -138419,149 +141881,12 @@ "deprecated": "use created_on instead" }, { - "name": "version", - "type": "TypeString", - "description": "The version number of a rule.", - "min_length": 5, - "max_length": 10, - "matches": "^[0-9][0-9.]*$", - "optional": true - }, - { - "name": "enforcement_actions", - "type": "TypeList", - "description": "The actions that the service must run on your behalf when a request to create or modify the target resource does not comply with your conditions.", - "optional": true, - "elem": { - "action": { - "name": "action", - "type": "TypeString", - "description": "To block a request from completing, use `disallow`.", - "required": true - } - }, - "max_items": 1, - "deprecated": "enforcement_actions is now deprecated" - }, - { - "name": "created_on", - "type": "TypeString", - "description": "The date when the rule was created.", - "computed": true - }, - { - "name": "type", - "type": "TypeString", - "description": "The rule type (allowable values are `user_defined` or `system_defined`).", - "computed": true - }, - { - "name": "updated_on", - "type": "TypeString", - "description": "The date when the rule was modified.", - "computed": true - }, - { - "name": "modification_date", - "type": "TypeString", - "description": "The date the resource was last modified.", - "computed": true, - "deprecated": "use updated_on instead" - }, - { - "name": "rule_type", - "type": "TypeString", - "description": "The type of rule. Rules that you create are `user_defined`.", - "computed": true, - "deprecated": "use type instead" - }, - { - "name": "modified_by", - "type": "TypeString", - "description": "The unique identifier for the user or application that last modified the resource.", - "computed": true, - "deprecated": "use updated_by" - }, - { - "name": "rule_id", - "type": "TypeString", - "description": "The rule ID.", - "computed": true - }, - { - "name": "account_id", + "name": "description", "type": "TypeString", - "description": "The account ID.", - "computed": true - }, - { - "name": "target", - "type": "TypeList", - "description": "The rule target.", + "description": "The details of a rule's response.", "required": true, - "elem": { - "additional_target_attributes": { - "name": "additional_target_attributes", - "type": "TypeList", - "description": "The list of targets supported properties.", - "optional": true, - "elem": { - "name": { - "name": "name", - "type": "TypeString", - "description": "The additional target attribute name.", - "optional": true - }, - "operator": { - "name": "operator", - "type": "TypeString", - "description": "The operator.", - "optional": true - }, - "value": { - "name": "value", - "type": "TypeString", - "description": "The value.", - "optional": true - } - } - }, - "resource_kind": { - "name": "resource_kind", - "type": "TypeString", - "description": "The target resource kind.", - "required": true - }, - "service_display_name": { - "name": "service_display_name", - "type": "TypeString", - "description": "The display name of the target service.", - "optional": true - }, - "service_name": { - "name": "service_name", - "type": "TypeString", - "description": "The target service name.", - "required": true - } - }, - "max_items": 1, - "min_items": 1 - }, - { - "name": "instance_id", - "type": "TypeString", - "description": "The ID of the Security and Compliance Center instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true - }, - { - "name": "name", - "type": "TypeString", - "description": "A human-readable alias to assign to your rule.", - "optional": true, - "deprecated": "name is now deprecated" + "max_length": 512, + "matches": "[A-Za-z0-9]+" } ], "ibm_scc_rule_attachment": [], @@ -138569,17 +141894,29 @@ "ibm_scc_template_attachment": [], "ibm_schematics_action": [ { - "name": "name", + "name": "description", "type": "TypeString", - "description": "The unique name of your action. The name can be up to 128 characters long and can include alphanumeric characters, spaces, dashes, and underscores. **Example** you can use the name to stop action.", - "required": true, - "min_length": 1, - "max_length": 65 + "description": "Action description.", + "optional": true }, { - "name": "bastion_credential", + "name": "source_type", + "type": "TypeString", + "description": "Type of source for the Template.", + "options": "cos_bucket, external_scm, git_hub, git_hub_enterprise, git_lab, ibm_cloud_catalog, ibm_git_lab, local", + "optional": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "Action Cloud Resource Name.", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "credentials", "type": "TypeList", - "description": "User editable variable data \u0026 system generated reference to value.", + "description": "credentials of the Action.", "optional": true, "elem": { "link": { @@ -138715,9 +142052,9 @@ "max_items": 1 }, { - "name": "action_inputs", + "name": "action_outputs", "type": "TypeList", - "description": "Input variables for the Action.", + "description": "Output variables for the Action.", "optional": true, "elem": { "link": { @@ -138852,15 +142189,9 @@ } }, { - "name": "source_created_at", - "type": "TypeString", - "description": "Action Playbook Source creation time.", - "computed": true - }, - { - "name": "source_updated_by", + "name": "created_by", "type": "TypeString", - "description": "E-mail address of user who updated the action playbook source.", + "description": "E-mail address of the user who created an action.", "computed": true }, { @@ -138872,29 +142203,19 @@ "computed": true }, { - "name": "source_readme_url", - "type": "TypeString", - "description": "URL of the `README` file, for the source URL.", - "optional": true - }, - { - "name": "source_type", - "type": "TypeString", - "description": "Type of source for the Template.", - "options": "cos_bucket, external_scm, git_hub, git_hub_enterprise, git_lab, ibm_cloud_catalog, ibm_git_lab, local", - "optional": true - }, - { - "name": "command_parameter", - "type": "TypeString", - "description": "Schematics job command parameter (playbook-name).", - "optional": true + "name": "tags", + "type": "TypeList", + "description": "Action tags.", + "cloud_data_type": "tags", + "optional": true, + "elem": { + "type": "TypeString" + } }, { "name": "sys_lock", "type": "TypeList", "description": "System lock status.", - "optional": true, "computed": true, "elem": { "sys_locked": { @@ -138918,40 +142239,30 @@ } }, { - "name": "account", + "name": "source_created_at", "type": "TypeString", - "description": "Action account ID.", + "description": "Action Playbook Source creation time.", "computed": true }, { - "name": "created_at", + "name": "account", "type": "TypeString", - "description": "Action creation time.", + "description": "Action account ID.", "computed": true }, { - "name": "targets_ini", - "type": "TypeString", - "description": "Inventory of host and host group for the playbook in `INI` file format. For example, `\"targets_ini\": \"[webserverhost] 172.22.192.6 [dbhost] 172.22.192.5\"`. For more information, about an inventory host group syntax, see [Inventory host groups](https://cloud.ibm.com/docs/schematics?topic=schematics-schematics-cli-reference#schematics-inventory-host-grps).", - "optional": true - }, - { - "name": "x_github_token", - "type": "TypeString", - "description": "The personal access token to authenticate with your private GitHub or GitLab repository and access your Terraform template.", - "optional": true - }, - { - "name": "updated_at", + "name": "created_at", "type": "TypeString", - "description": "Action updation time.", + "description": "Action creation time.", "computed": true }, { - "name": "updated_by", + "name": "name", "type": "TypeString", - "description": "E-mail address of the user who updated an action.", - "computed": true + "description": "The unique name of your action. The name can be up to 128 characters long and can include alphanumeric characters, spaces, dashes, and underscores. **Example** you can use the name to stop action.", + "required": true, + "min_length": 1, + "max_length": 65 }, { "name": "resource_group", @@ -138961,21 +142272,9 @@ "optional": true }, { - "name": "inventory", - "type": "TypeString", - "description": "Target inventory record ID, used by the action or ansible playbook.", - "optional": true - }, - { - "name": "source_created_by", - "type": "TypeString", - "description": "E-mail address of user who created the Action Playbook Source.", - "computed": true - }, - { - "name": "action_outputs", + "name": "settings", "type": "TypeList", - "description": "Output variables for the Action.", + "description": "Environment variables for the Action.", "optional": true, "elem": { "link": { @@ -139110,286 +142409,73 @@ } }, { - "name": "created_by", - "type": "TypeString", - "description": "E-mail address of the user who created an action.", - "computed": true - }, - { - "name": "credentials", + "name": "bastion", "type": "TypeList", - "description": "credentials of the Action.", + "description": "Describes a bastion resource.", "optional": true, "elem": { - "link": { - "name": "link", + "host": { + "name": "host", "type": "TypeString", - "description": "Reference link to the variable value By default the expression will point to self.value.", - "optional": true, - "computed": true - }, - "metadata": { - "name": "metadata", - "type": "TypeList", - "description": "User editable metadata for the variables.", - "optional": true, - "elem": { - "aliases": { - "name": "aliases", - "type": "TypeList", - "description": "List of aliases for the variable name.", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - "default_value": { - "name": "default_value", - "type": "TypeString", - "description": "Default value for the variable, if the override value is not specified.", - "optional": true - }, - "description": { - "name": "description", - "type": "TypeString", - "description": "Description of the meta data.", - "optional": true - }, - "group_by": { - "name": "group_by", - "type": "TypeString", - "description": "Display name of the group this variable belongs to.", - "optional": true - }, - "hidden": { - "name": "hidden", - "type": "TypeBool", - "description": "If true, the variable will not be displayed on UI or CLI.", - "optional": true - }, - "immutable": { - "name": "immutable", - "type": "TypeBool", - "description": "Is the variable readonly ?.", - "optional": true - }, - "matches": { - "name": "matches", - "type": "TypeString", - "description": "Regex for the variable value.", - "optional": true - }, - "max_length": { - "name": "max_length", - "type": "TypeInt", - "description": "Maximum length of the variable value. Applicable for string type.", - "optional": true - }, - "max_value": { - "name": "max_value", - "type": "TypeInt", - "description": "Maximum value of the variable. Applicable for integer type.", - "optional": true - }, - "min_length": { - "name": "min_length", - "type": "TypeInt", - "description": "Minimum length of the variable value. Applicable for string type.", - "optional": true - }, - "min_value": { - "name": "min_value", - "type": "TypeInt", - "description": "Minimum value of the variable. Applicable for integer type.", - "optional": true - }, - "options": { - "name": "options", - "type": "TypeList", - "description": "List of possible values for this variable. If type is integer or date, then the array of string will be converted to array of integers or date during runtime.", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - "position": { - "name": "position", - "type": "TypeInt", - "description": "Relative position of this variable in a list.", - "optional": true - }, - "secure": { - "name": "secure", - "type": "TypeBool", - "description": "Is the variable secure or sensitive ?.", - "optional": true - }, - "source": { - "name": "source", - "type": "TypeString", - "description": "Source of this meta-data.", - "optional": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "Type of the variable.", - "optional": true - } - } + "description": "Reference to the Inventory resource definition.", + "optional": true }, "name": { "name": "name", "type": "TypeString", - "description": "Name of the variable.", - "optional": true - }, - "value": { - "name": "value", - "type": "TypeString", - "description": "Value for the variable or reference to the value.", + "description": "Bastion Name(Unique).", "optional": true } }, "max_items": 1 }, { - "name": "settings", + "name": "source_updated_by", + "type": "TypeString", + "description": "E-mail address of user who updated the action playbook source.", + "computed": true + }, + { + "name": "user_state", "type": "TypeList", - "description": "Environment variables for the Action.", + "description": "User defined status of the Schematics object.", "optional": true, + "computed": true, "elem": { - "link": { - "name": "link", + "set_at": { + "name": "set_at", "type": "TypeString", - "description": "Reference link to the variable value By default the expression will point to self.value.", + "description": "When the User who set the state of the Object.", "optional": true, "computed": true }, - "metadata": { - "name": "metadata", - "type": "TypeList", - "description": "User editable metadata for the variables.", - "optional": true, - "elem": { - "aliases": { - "name": "aliases", - "type": "TypeList", - "description": "List of aliases for the variable name.", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - "default_value": { - "name": "default_value", - "type": "TypeString", - "description": "Default value for the variable, if the override value is not specified.", - "optional": true - }, - "description": { - "name": "description", - "type": "TypeString", - "description": "Description of the meta data.", - "optional": true - }, - "group_by": { - "name": "group_by", - "type": "TypeString", - "description": "Display name of the group this variable belongs to.", - "optional": true - }, - "hidden": { - "name": "hidden", - "type": "TypeBool", - "description": "If true, the variable will not be displayed on UI or CLI.", - "optional": true - }, - "immutable": { - "name": "immutable", - "type": "TypeBool", - "description": "Is the variable readonly ?.", - "optional": true - }, - "matches": { - "name": "matches", - "type": "TypeString", - "description": "Regex for the variable value.", - "optional": true - }, - "max_length": { - "name": "max_length", - "type": "TypeInt", - "description": "Maximum length of the variable value. Applicable for string type.", - "optional": true - }, - "max_value": { - "name": "max_value", - "type": "TypeInt", - "description": "Maximum value of the variable. Applicable for integer type.", - "optional": true - }, - "min_length": { - "name": "min_length", - "type": "TypeInt", - "description": "Minimum length of the variable value. Applicable for string type.", - "optional": true - }, - "min_value": { - "name": "min_value", - "type": "TypeInt", - "description": "Minimum value of the variable. Applicable for integer type.", - "optional": true - }, - "options": { - "name": "options", - "type": "TypeList", - "description": "List of possible values for this variable. If type is integer or date, then the array of string will be converted to array of integers or date during runtime.", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - "position": { - "name": "position", - "type": "TypeInt", - "description": "Relative position of this variable in a list.", - "optional": true - }, - "secure": { - "name": "secure", - "type": "TypeBool", - "description": "Is the variable secure or sensitive ?.", - "optional": true - }, - "source": { - "name": "source", - "type": "TypeString", - "description": "Source of this meta-data.", - "optional": true - }, - "type": { - "name": "type", - "type": "TypeString", - "description": "Type of the variable.", - "optional": true - } - } - }, - "name": { - "name": "name", + "set_by": { + "name": "set_by", "type": "TypeString", - "description": "Name of the variable.", - "optional": true + "description": "Name of the User who set the state of the Object.", + "optional": true, + "computed": true }, - "value": { - "name": "value", + "state": { + "name": "state", "type": "TypeString", - "description": "Value for the variable or reference to the value.", + "description": "User-defined states * `draft` Object can be modified; can be used by Jobs run by the author, during execution * `live` Object can be modified; can be used by Jobs during execution * `locked` Object cannot be modified; can be used by Jobs during execution * `disable` Object can be modified. cannot be used by Jobs during execution.", "optional": true } } }, + { + "name": "command_parameter", + "type": "TypeString", + "description": "Schematics job command parameter (playbook-name).", + "optional": true + }, + { + "name": "inventory", + "type": "TypeString", + "description": "Target inventory record ID, used by the action or ansible playbook.", + "optional": true + }, { "name": "state", "type": "TypeList", @@ -139417,16 +142503,9 @@ } }, { - "name": "crn", - "type": "TypeString", - "description": "Action Cloud Resource Name.", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "source_updated_at", + "name": "source_created_by", "type": "TypeString", - "description": "The action playbook updation time.", + "description": "E-mail address of user who created the Action Playbook Source.", "computed": true }, { @@ -139438,51 +142517,6 @@ "type": "TypeString" } }, - { - "name": "description", - "type": "TypeString", - "description": "Action description.", - "optional": true - }, - { - "name": "tags", - "type": "TypeList", - "description": "Action tags.", - "cloud_data_type": "tags", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "user_state", - "type": "TypeList", - "description": "User defined status of the Schematics object.", - "optional": true, - "computed": true, - "elem": { - "set_at": { - "name": "set_at", - "type": "TypeString", - "description": "When the User who set the state of the Object.", - "optional": true, - "computed": true - }, - "set_by": { - "name": "set_by", - "type": "TypeString", - "description": "Name of the User who set the state of the Object.", - "optional": true, - "computed": true - }, - "state": { - "name": "state", - "type": "TypeString", - "description": "User-defined states * `draft` Object can be modified; can be used by Jobs run by the author, during execution * `live` Object can be modified; can be used by Jobs during execution * `locked` Object cannot be modified; can be used by Jobs during execution * `disable` Object can be modified. cannot be used by Jobs during execution.", - "optional": true - } - } - }, { "name": "source", "type": "TypeList", @@ -139593,144 +142627,147 @@ } }, { - "name": "bastion", + "name": "bastion_credential", "type": "TypeList", - "description": "Describes a bastion resource.", + "description": "User editable variable data \u0026 system generated reference to value.", "optional": true, "elem": { - "host": { - "name": "host", + "link": { + "name": "link", "type": "TypeString", - "description": "Reference to the Inventory resource definition.", - "optional": true + "description": "Reference link to the variable value By default the expression will point to self.value.", + "optional": true, + "computed": true }, - "name": { - "name": "name", - "type": "TypeString", - "description": "Bastion Name(Unique).", - "optional": true - } - }, - "max_items": 1 - } - ], - "ibm_schematics_inventory": [ - { - "name": "description", - "type": "TypeString", - "description": "The description of your Inventory definition. The description can be up to 2048 characters long in size.", - "optional": true - }, - { - "name": "inventories_ini", - "type": "TypeString", - "description": "Input inventory of host and host group for the playbook, in the `.ini` file format.", - "optional": true - }, - { - "name": "created_at", - "type": "TypeString", - "description": "Inventory creation time.", - "computed": true - }, - { - "name": "created_by", - "type": "TypeString", - "description": "Email address of user who created the Inventory.", - "computed": true - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "Inventory updation time.", - "computed": true - }, - { - "name": "updated_by", - "type": "TypeString", - "description": "Email address of user who updated the Inventory.", - "computed": true - }, - { - "name": "name", - "type": "TypeString", - "description": "The unique name of your Inventory definition. The name can be up to 128 characters long and can include alphanumeric characters, spaces, dashes, and underscores.", - "min_length": 3, - "max_length": 64, - "optional": true - }, - { - "name": "location", - "type": "TypeString", - "description": "List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics.", - "options": "eu-de, eu-gb, us-east, us-south", - "optional": true, - "computed": true - }, - { - "name": "resource_group", - "type": "TypeString", - "description": "Resource-group name for the Inventory definition. By default, Inventory definition will be created in Default Resource Group.", - "cloud_data_type": "resource_group", - "optional": true - }, - { - "name": "resource_queries", - "type": "TypeList", - "description": "Input resource query definitions that is used to dynamically generate the inventory of host and host group for the playbook.", - "optional": true, - "elem": { - "type": "TypeString" - } - } - ], - "ibm_schematics_job": [ - { - "name": "bastion", - "type": "TypeList", - "description": "Describes a bastion resource.", - "optional": true, - "elem": { - "host": { - "name": "host", - "type": "TypeString", - "description": "Reference to the Inventory resource definition.", - "optional": true + "metadata": { + "name": "metadata", + "type": "TypeList", + "description": "User editable metadata for the variables.", + "optional": true, + "elem": { + "aliases": { + "name": "aliases", + "type": "TypeList", + "description": "List of aliases for the variable name.", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + "default_value": { + "name": "default_value", + "type": "TypeString", + "description": "Default value for the variable, if the override value is not specified.", + "optional": true + }, + "description": { + "name": "description", + "type": "TypeString", + "description": "Description of the meta data.", + "optional": true + }, + "group_by": { + "name": "group_by", + "type": "TypeString", + "description": "Display name of the group this variable belongs to.", + "optional": true + }, + "hidden": { + "name": "hidden", + "type": "TypeBool", + "description": "If true, the variable will not be displayed on UI or CLI.", + "optional": true + }, + "immutable": { + "name": "immutable", + "type": "TypeBool", + "description": "Is the variable readonly ?.", + "optional": true + }, + "matches": { + "name": "matches", + "type": "TypeString", + "description": "Regex for the variable value.", + "optional": true + }, + "max_length": { + "name": "max_length", + "type": "TypeInt", + "description": "Maximum length of the variable value. Applicable for string type.", + "optional": true + }, + "max_value": { + "name": "max_value", + "type": "TypeInt", + "description": "Maximum value of the variable. Applicable for integer type.", + "optional": true + }, + "min_length": { + "name": "min_length", + "type": "TypeInt", + "description": "Minimum length of the variable value. Applicable for string type.", + "optional": true + }, + "min_value": { + "name": "min_value", + "type": "TypeInt", + "description": "Minimum value of the variable. Applicable for integer type.", + "optional": true + }, + "options": { + "name": "options", + "type": "TypeList", + "description": "List of possible values for this variable. If type is integer or date, then the array of string will be converted to array of integers or date during runtime.", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + "position": { + "name": "position", + "type": "TypeInt", + "description": "Relative position of this variable in a list.", + "optional": true + }, + "secure": { + "name": "secure", + "type": "TypeBool", + "description": "Is the variable secure or sensitive ?.", + "optional": true + }, + "source": { + "name": "source", + "type": "TypeString", + "description": "Source of this meta-data.", + "optional": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "Type of the variable.", + "optional": true + } + } }, "name": { "name": "name", "type": "TypeString", - "description": "Bastion Name(Unique).", + "description": "Name of the variable.", + "optional": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "Value for the variable or reference to the value.", "optional": true } }, "max_items": 1 }, { - "name": "start_at", - "type": "TypeString", - "description": "Job start time.", - "computed": true - }, - { - "name": "duration", - "type": "TypeString", - "description": "Duration of job execution; example 40 sec.", - "computed": true - }, - { - "name": "command_options", - "type": "TypeList", - "description": "Command line options for the command.", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "job_env_settings", + "name": "action_inputs", "type": "TypeList", - "description": "Environment variables used by the Job while performing Action or Workspace.", + "description": "Input variables for the Action.", "optional": true, "elem": { "link": { @@ -139846,7 +142883,7 @@ "name": "type", "type": "TypeString", "description": "Type of the variable.", - "required": true + "optional": true } } }, @@ -139854,488 +142891,210 @@ "name": "name", "type": "TypeString", "description": "Name of the variable.", - "required": true + "optional": true }, "value": { "name": "value", "type": "TypeString", "description": "Value for the variable or reference to the value.", - "required": true + "optional": true } } }, { - "name": "tags", - "type": "TypeList", - "description": "User defined tags, while running the job.", - "cloud_data_type": "tags", - "optional": true, - "elem": { - "type": "TypeString" - } + "name": "source_updated_at", + "type": "TypeString", + "description": "The action playbook updation time.", + "computed": true }, { - "name": "location", + "name": "updated_at", "type": "TypeString", - "description": "List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics.", - "options": "eu-de, eu-gb, us-east, us-south", - "optional": true, + "description": "Action updation time.", "computed": true }, { - "name": "status", - "type": "TypeList", - "description": "Job Status.", - "computed": true, - "elem": { - "action_job_status": { - "name": "action_job_status", - "type": "TypeList", - "description": "Action Job Status.", - "optional": true, - "elem": { - "action_name": { - "name": "action_name", - "type": "TypeString", - "description": "Action name.", - "optional": true - }, - "bastion_status_code": { - "name": "bastion_status_code", - "type": "TypeString", - "description": "Status of Resources.", - "optional": true - }, - "bastion_status_message": { - "name": "bastion_status_message", - "type": "TypeString", - "description": "Bastion status message - to be displayed along with the bastion_status_code;.", - "optional": true - }, - "status_code": { - "name": "status_code", - "type": "TypeString", - "description": "Status of Jobs.", - "optional": true - }, - "status_message": { - "name": "status_message", - "type": "TypeString", - "description": "Action Job status message - to be displayed along with the action_status_code.", - "optional": true - }, - "targets_status_code": { - "name": "targets_status_code", - "type": "TypeString", - "description": "Status of Resources.", - "optional": true - }, - "targets_status_message": { - "name": "targets_status_message", - "type": "TypeString", - "description": "Aggregated status message for all target resources, to be displayed along with the targets_status_code;.", - "optional": true - }, - "updated_at": { - "name": "updated_at", - "type": "TypeString", - "description": "Job status updation timestamp.", - "optional": true - } - } - }, - "flow_job_status": { - "name": "flow_job_status", - "type": "TypeList", - "description": "Environment Flow JOB Status.", - "optional": true, - "elem": { - "flow_id": { - "name": "flow_id", - "type": "TypeString", - "description": "flow id.", - "optional": true - }, - "flow_name": { - "name": "flow_name", - "type": "TypeString", - "description": "flow name.", - "optional": true - }, - "status_code": { - "name": "status_code", - "type": "TypeString", - "description": "Status of Jobs.", - "optional": true - }, - "status_message": { - "name": "status_message", - "type": "TypeString", - "description": "Flow Job status message - to be displayed along with the status_code;.", - "optional": true - }, - "updated_at": { - "name": "updated_at", - "type": "TypeString", - "description": "Job status updation timestamp.", - "optional": true - }, - "workitems": { - "name": "workitems", - "type": "TypeList", - "description": "Environment's individual workItem status details;.", - "optional": true, - "elem": { - "job_id": { - "name": "job_id", - "type": "TypeString", - "description": "workspace job id.", - "optional": true - }, - "status_code": { - "name": "status_code", - "type": "TypeString", - "description": "Status of Jobs.", - "optional": true - }, - "status_message": { - "name": "status_message", - "type": "TypeString", - "description": "workitem job status message;.", - "optional": true - }, - "updated_at": { - "name": "updated_at", - "type": "TypeString", - "description": "workitem job status updation timestamp.", - "optional": true - }, - "workspace_id": { - "name": "workspace_id", - "type": "TypeString", - "description": "Workspace id.", - "optional": true - }, - "workspace_name": { - "name": "workspace_name", - "type": "TypeString", - "description": "workspace name.", - "optional": true - } - } - } - }, - "max_items": 1 - }, - "system_job_status": { - "name": "system_job_status", - "type": "TypeList", - "description": "System Job Status.", - "optional": true, - "elem": { - "schematics_resource_status": { - "name": "schematics_resource_status", - "type": "TypeList", - "description": "job staus for each schematics resource.", - "optional": true, - "elem": { - "schematics_resource_id": { - "name": "schematics_resource_id", - "type": "TypeString", - "description": "id for each resource which is targeted as a part of system job.", - "optional": true - }, - "status_code": { - "name": "status_code", - "type": "TypeString", - "description": "Status of Jobs.", - "optional": true - }, - "status_message": { - "name": "status_message", - "type": "TypeString", - "description": "system job status message.", - "optional": true - }, - "updated_at": { - "name": "updated_at", - "type": "TypeString", - "description": "Job status updation timestamp.", - "optional": true - } - } - }, - "system_status_code": { - "name": "system_status_code", - "type": "TypeString", - "description": "Status of Jobs.", - "optional": true - }, - "system_status_message": { - "name": "system_status_message", - "type": "TypeString", - "description": "System job message.", - "optional": true - }, - "updated_at": { - "name": "updated_at", - "type": "TypeString", - "description": "Job status updation timestamp.", - "optional": true - } - }, - "max_items": 1 - }, - "workspace_job_status": { - "name": "workspace_job_status", - "type": "TypeList", - "description": "Workspace Job Status.", - "optional": true, - "elem": { - "flow_status": { - "name": "flow_status", - "type": "TypeList", - "description": "Environment Flow JOB Status.", - "optional": true, - "elem": { - "flow_id": { - "name": "flow_id", - "type": "TypeString", - "description": "flow id.", - "optional": true - }, - "flow_name": { - "name": "flow_name", - "type": "TypeString", - "description": "flow name.", - "optional": true - }, - "status_code": { - "name": "status_code", - "type": "TypeString", - "description": "Status of Jobs.", - "optional": true - }, - "status_message": { - "name": "status_message", - "type": "TypeString", - "description": "Flow Job status message - to be displayed along with the status_code;.", - "optional": true - }, - "updated_at": { - "name": "updated_at", - "type": "TypeString", - "description": "Job status updation timestamp.", - "optional": true - }, - "workitems": { - "name": "workitems", - "type": "TypeList", - "description": "Environment's individual workItem status details;.", - "optional": true, - "elem": { - "job_id": { - "name": "job_id", - "type": "TypeString", - "description": "workspace job id.", - "optional": true - }, - "status_code": { - "name": "status_code", - "type": "TypeString", - "description": "Status of Jobs.", - "optional": true - }, - "status_message": { - "name": "status_message", - "type": "TypeString", - "description": "workitem job status message;.", - "optional": true - }, - "updated_at": { - "name": "updated_at", - "type": "TypeString", - "description": "workitem job status updation timestamp.", - "optional": true - }, - "workspace_id": { - "name": "workspace_id", - "type": "TypeString", - "description": "Workspace id.", - "optional": true - }, - "workspace_name": { - "name": "workspace_name", - "type": "TypeString", - "description": "workspace name.", - "optional": true - } - } - } - }, - "max_items": 1 - }, - "status_code": { - "name": "status_code", - "type": "TypeString", - "description": "Status of Jobs.", - "optional": true - }, - "status_message": { - "name": "status_message", - "type": "TypeString", - "description": "Workspace job status message (eg. App1_Setup_Pending, for a 'Setup' flow in the 'App1' Workspace).", - "optional": true - }, - "template_status": { - "name": "template_status", - "type": "TypeList", - "description": "Workspace Flow Template job status.", - "optional": true, - "elem": { - "flow_index": { - "name": "flow_index", - "type": "TypeInt", - "description": "Index of the template in the Flow.", - "optional": true - }, - "status_code": { - "name": "status_code", - "type": "TypeString", - "description": "Status of Jobs.", - "optional": true - }, - "status_message": { - "name": "status_message", - "type": "TypeString", - "description": "Template job status message (eg. VPCt1_Apply_Pending, for a 'VPCt1' Template).", - "optional": true - }, - "template_id": { - "name": "template_id", - "type": "TypeString", - "description": "Template Id.", - "optional": true - }, - "template_name": { - "name": "template_name", - "type": "TypeString", - "description": "Template name.", - "optional": true - }, - "updated_at": { - "name": "updated_at", - "type": "TypeString", - "description": "Job status updation timestamp.", - "optional": true - } - } - }, - "updated_at": { - "name": "updated_at", - "type": "TypeString", - "description": "Job status updation timestamp.", - "optional": true - }, - "workspace_name": { - "name": "workspace_name", - "type": "TypeString", - "description": "Workspace name.", - "optional": true - } - }, - "max_items": 1 - } - } + "name": "updated_by", + "type": "TypeString", + "description": "E-mail address of the user who updated an action.", + "computed": true }, { - "name": "command_name", + "name": "source_readme_url", "type": "TypeString", - "description": "Schematics job command name.", - "required": true, - "options": "ansible_playbook_check, ansible_playbook_run, create_action, create_cart, create_environment, create_workspace, delete_action, delete_environment, delete_workspace, environment_init, environment_install, environment_uninstall, patch_action, patch_workspace, put_action, put_environment, put_workspace, repository_process, system_key_delete, system_key_disable, system_key_enable, system_key_restore, system_key_rotate, workspace_apply, workspace_destroy, workspace_plan, workspace_refresh" + "description": "URL of the `README` file, for the source URL.", + "optional": true }, { - "name": "resource_group", + "name": "targets_ini", "type": "TypeString", - "description": "Resource-group name derived from the related Workspace or Action.", - "cloud_data_type": "resource_group", - "computed": true + "description": "Inventory of host and host group for the playbook in `INI` file format. For example, `\"targets_ini\": \"[webserverhost] 172.22.192.6 [dbhost] 172.22.192.5\"`. For more information, about an inventory host group syntax, see [Inventory host groups](https://cloud.ibm.com/docs/schematics?topic=schematics-schematics-cli-reference#schematics-inventory-host-grps).", + "optional": true }, { - "name": "submitted_at", + "name": "x_github_token", "type": "TypeString", - "description": "Job submission time.", - "computed": true + "description": "The personal access token to authenticate with your private GitHub or GitLab repository and access your Terraform template.", + "optional": true + } + ], + "ibm_schematics_agent": [ + { + "name": "name", + "type": "TypeString", + "description": "The name of the agent (must be unique, for an account).", + "required": true }, { - "name": "log_store_url", + "name": "version", "type": "TypeString", - "description": "Job log store URL.", - "computed": true + "description": "Agent version.", + "required": true }, { - "name": "state_store_url", + "name": "description", "type": "TypeString", - "description": "Job state store URL.", + "description": "Agent description.", + "optional": true + }, + { + "name": "tags", + "type": "TypeList", + "description": "Tags for the agent.", + "cloud_data_type": "tags", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "created_at", + "type": "TypeString", + "description": "The agent creation date-time.", "computed": true }, { - "name": "command_parameter", + "name": "updated_by", "type": "TypeString", - "description": "Schematics job command parameter (playbook-name).", - "optional": true + "description": "Email address of user who updated the agent registration.", + "computed": true }, { - "name": "job_inputs", + "name": "recent_prs_job", "type": "TypeList", - "description": "Job inputs used by Action or Workspace.", + "description": "Run a pre-requisite scanner for deploying agent.", + "computed": true, + "elem": { + "agent_id": { + "name": "agent_id", + "type": "TypeString", + "description": "Id of the agent.", + "optional": true, + "computed": true + }, + "agent_version": { + "name": "agent_version", + "type": "TypeString", + "description": "Agent version.", + "computed": true + }, + "job_id": { + "name": "job_id", + "type": "TypeString", + "description": "Job Id.", + "optional": true, + "computed": true + }, + "log_url": { + "name": "log_url", + "type": "TypeString", + "description": "URL to the full pre-requisite scanner job logs.", + "optional": true, + "computed": true + }, + "status_code": { + "name": "status_code", + "type": "TypeString", + "description": "Final result of the pre-requisite scanner job.", + "optional": true, + "computed": true + }, + "status_message": { + "name": "status_message", + "type": "TypeString", + "description": "The outcome of the pre-requisite scanner job, in a formatted log string.", + "optional": true, + "computed": true + }, + "updated_at": { + "name": "updated_at", + "type": "TypeString", + "description": "The agent prs job updation time.", + "computed": true + }, + "updated_by": { + "name": "updated_by", + "type": "TypeString", + "description": "Email address of user who ran the agent prs job.", + "computed": true + } + } + }, + { + "name": "agent_inputs", + "type": "TypeList", + "description": "Additional input variables for the agent.", "optional": true, "elem": { "link": { "name": "link", "type": "TypeString", - "description": "Reference link to the variable value By default the expression will point to self.value.", - "optional": true, + "description": "The reference link to the variable value By default the expression points to `$self.value`.", "computed": true }, "metadata": { "name": "metadata", "type": "TypeList", - "description": "User editable metadata for the variables.", + "description": "An user editable metadata for the variables.", "optional": true, "elem": { "aliases": { "name": "aliases", "type": "TypeList", - "description": "List of aliases for the variable name.", + "description": "The list of aliases for the variable name.", "optional": true, "elem": { "type": "TypeString" } }, + "cloud_data_type": { + "name": "cloud_data_type", + "type": "TypeString", + "description": "Cloud data type of the variable. eg. resource_group_id, region, vpc_id.", + "optional": true + }, "default_value": { "name": "default_value", "type": "TypeString", - "description": "Default value for the variable, if the override value is not specified.", + "description": "Default value for the variable only if the override value is not specified.", "optional": true }, "description": { "name": "description", "type": "TypeString", - "description": "Description of the meta data.", + "description": "The description of the meta data.", "optional": true }, "group_by": { "name": "group_by", "type": "TypeString", - "description": "Display name of the group this variable belongs to.", + "description": "The display name of the group this variable belongs to.", "optional": true }, "hidden": { "name": "hidden", "type": "TypeBool", - "description": "If true, the variable will not be displayed on UI or CLI.", + "description": "If **true**, the variable is not displayed on UI or Command line.", "optional": true }, "immutable": { @@ -140344,40 +143103,46 @@ "description": "Is the variable readonly ?.", "optional": true }, + "link_status": { + "name": "link_status", + "type": "TypeString", + "description": "The status of the link.", + "optional": true + }, "matches": { "name": "matches", "type": "TypeString", - "description": "Regex for the variable value.", + "description": "The regex for the variable value.", "optional": true }, "max_length": { "name": "max_length", "type": "TypeInt", - "description": "Maximum length of the variable value. Applicable for string type.", + "description": "The maximum length of the variable value. Applicable for the string type.", "optional": true }, "max_value": { "name": "max_value", "type": "TypeInt", - "description": "Maximum value of the variable. Applicable for integer type.", + "description": "The maximum value of the variable. Applicable for the integer type.", "optional": true }, "min_length": { "name": "min_length", "type": "TypeInt", - "description": "Minimum length of the variable value. Applicable for string type.", + "description": "The minimum length of the variable value. Applicable for the string type.", "optional": true }, "min_value": { "name": "min_value", "type": "TypeInt", - "description": "Minimum value of the variable. Applicable for integer type.", + "description": "The minimum value of the variable. Applicable for the integer type.", "optional": true }, "options": { "name": "options", "type": "TypeList", - "description": "List of possible values for this variable. If type is integer or date, then the array of string will be converted to array of integers or date during runtime.", + "description": "The list of possible values for this variable. If type is **integer** or **date**, then the array of string is converted to array of integers or date during the runtime.", "optional": true, "elem": { "type": "TypeString" @@ -140386,7 +143151,13 @@ "position": { "name": "position", "type": "TypeInt", - "description": "Relative position of this variable in a list.", + "description": "The relative position of this variable in a list.", + "optional": true + }, + "required": { + "name": "required", + "type": "TypeBool", + "description": "If the variable required?.", "optional": true }, "secure": { @@ -140398,31 +143169,624 @@ "source": { "name": "source", "type": "TypeString", - "description": "Source of this meta-data.", + "description": "The source of this meta-data.", "optional": true }, "type": { "name": "type", "type": "TypeString", "description": "Type of the variable.", - "required": true + "optional": true } - } + }, + "max_items": 1 }, "name": { "name": "name", "type": "TypeString", - "description": "Name of the variable.", - "required": true + "description": "The name of the variable. For example, `name = \"inventory username\"`.", + "optional": true + }, + "use_default": { + "name": "use_default", + "type": "TypeBool", + "description": "True, will ignore the data in the value attribute, instead the data in metadata.default_value will be used.", + "optional": true }, "value": { "name": "value", "type": "TypeString", - "description": "Value for the variable or reference to the value.", - "required": true + "description": "The value for the variable or reference to the value. For example, `value = \"\u003cprovide your ssh_key_value with \n\u003e\"`. **Note** The SSH key should contain `\n` at the end of the key details in case of command line or API calls.", + "optional": true + } + } + }, + { + "name": "system_state", + "type": "TypeList", + "description": "Computed state of the agent.", + "computed": true, + "elem": { + "status_code": { + "name": "status_code", + "type": "TypeString", + "description": "Agent Status.", + "optional": true, + "computed": true + }, + "status_message": { + "name": "status_message", + "type": "TypeString", + "description": "The agent status message.", + "optional": true, + "computed": true + } + } + }, + { + "name": "recent_deploy_job", + "type": "TypeList", + "description": "Post-installations checks for Agent health.", + "computed": true, + "elem": { + "agent_id": { + "name": "agent_id", + "type": "TypeString", + "description": "Id of the agent.", + "optional": true, + "computed": true + }, + "agent_version": { + "name": "agent_version", + "type": "TypeString", + "description": "Agent version.", + "computed": true + }, + "is_redeployed": { + "name": "is_redeployed", + "type": "TypeBool", + "description": "True, when the same version of the agent was redeployed.", + "optional": true, + "computed": true + }, + "job_id": { + "name": "job_id", + "type": "TypeString", + "description": "Job Id.", + "optional": true, + "computed": true + }, + "log_url": { + "name": "log_url", + "type": "TypeString", + "description": "URL to the full agent deployment job logs.", + "optional": true, + "computed": true + }, + "status_code": { + "name": "status_code", + "type": "TypeString", + "description": "Final result of the agent deployment job.", + "optional": true, + "computed": true + }, + "status_message": { + "name": "status_message", + "type": "TypeString", + "description": "The outcome of the agent deployment job, in a formatted log string.", + "optional": true, + "computed": true + }, + "updated_at": { + "name": "updated_at", + "type": "TypeString", + "description": "The agent deploy job updation time.", + "computed": true + }, + "updated_by": { + "name": "updated_by", + "type": "TypeString", + "description": "Email address of user who ran the agent deploy job.", + "computed": true + } + } + }, + { + "name": "recent_health_job", + "type": "TypeList", + "description": "Agent health check.", + "computed": true, + "elem": { + "agent_id": { + "name": "agent_id", + "type": "TypeString", + "description": "Id of the agent.", + "optional": true, + "computed": true + }, + "agent_version": { + "name": "agent_version", + "type": "TypeString", + "description": "Agent version.", + "computed": true + }, + "job_id": { + "name": "job_id", + "type": "TypeString", + "description": "Job Id.", + "optional": true, + "computed": true + }, + "log_url": { + "name": "log_url", + "type": "TypeString", + "description": "URL to the full health-check job logs.", + "optional": true, + "computed": true + }, + "status_code": { + "name": "status_code", + "type": "TypeString", + "description": "Final result of the health-check job.", + "optional": true, + "computed": true + }, + "status_message": { + "name": "status_message", + "type": "TypeString", + "description": "The outcome of the health-check job, in a formatted log string.", + "optional": true, + "computed": true + }, + "updated_at": { + "name": "updated_at", + "type": "TypeString", + "description": "The agent health check job updation time.", + "computed": true + }, + "updated_by": { + "name": "updated_by", + "type": "TypeString", + "description": "Email address of user who ran the agent health check job.", + "computed": true + } + } + }, + { + "name": "schematics_location", + "type": "TypeString", + "description": "List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics.", + "required": true + }, + { + "name": "agent_infrastructure", + "type": "TypeList", + "description": "The infrastructure parameters used by the agent.", + "required": true, + "elem": { + "cluster_id": { + "name": "cluster_id", + "type": "TypeString", + "description": "The cluster ID where agent services will be running.", + "optional": true + }, + "cluster_resource_group": { + "name": "cluster_resource_group", + "type": "TypeString", + "description": "The resource group of the cluster (is it required?).", + "optional": true + }, + "cos_bucket_name": { + "name": "cos_bucket_name", + "type": "TypeString", + "description": "The COS bucket name used to store the logs.", + "optional": true + }, + "cos_bucket_region": { + "name": "cos_bucket_region", + "type": "TypeString", + "description": "The COS bucket region.", + "optional": true + }, + "cos_instance_name": { + "name": "cos_instance_name", + "type": "TypeString", + "description": "The COS instance name to store the agent logs.", + "optional": true + }, + "infra_type": { + "name": "infra_type", + "type": "TypeString", + "description": "Type of target agent infrastructure.", + "optional": true + } + }, + "max_items": 1, + "min_items": 1 + }, + { + "name": "user_state", + "type": "TypeList", + "description": "User defined status of the agent.", + "optional": true, + "computed": true, + "elem": { + "set_at": { + "name": "set_at", + "type": "TypeString", + "description": "When the User who set the state of the Object.", + "computed": true + }, + "set_by": { + "name": "set_by", + "type": "TypeString", + "description": "Name of the User who set the state of the Object.", + "computed": true + }, + "state": { + "name": "state", + "type": "TypeString", + "description": "User-defined states * `enable` Agent is enabled by the user. * `disable` Agent is disbaled by the user.", + "optional": true, + "computed": true + } + }, + "max_items": 1 + }, + { + "name": "agent_kpi", + "type": "TypeList", + "description": "Schematics Agent key performance indicators.", + "optional": true, + "computed": true, + "elem": { + "application_indicators": { + "name": "application_indicators", + "type": "TypeList", + "description": "Agent application key performance indicators.", + "optional": true, + "computed": true, + "elem": { + "type": "TypeMap" + } + }, + "availability_indicator": { + "name": "availability_indicator", + "type": "TypeString", + "description": "Overall availability indicator reported by the agent.", + "optional": true, + "computed": true + }, + "infra_indicators": { + "name": "infra_indicators", + "type": "TypeList", + "description": "Agent infrastructure key performance indicators.", + "optional": true, + "computed": true, + "elem": { + "type": "TypeMap" + } + }, + "lifecycle_indicator": { + "name": "lifecycle_indicator", + "type": "TypeString", + "description": "Overall lifecycle indicator reported by the agents.", + "optional": true, + "computed": true + }, + "percent_usage_indicator": { + "name": "percent_usage_indicator", + "type": "TypeString", + "description": "Percentage usage of the agent resources.", + "optional": true, + "computed": true + } + }, + "max_items": 1 + }, + { + "name": "creation_by", + "type": "TypeString", + "description": "The email address of an user who created the agent.", + "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "The agent registration updation time.", + "computed": true + }, + { + "name": "resource_group", + "type": "TypeString", + "description": "The resource-group name for the agent. By default, agent will be registered in Default Resource Group.", + "cloud_data_type": "resource_group", + "required": true + }, + { + "name": "agent_location", + "type": "TypeString", + "description": "The location where agent is deployed in the user environment.", + "required": true + }, + { + "name": "agent_metadata", + "type": "TypeList", + "description": "The metadata of an agent.", + "optional": true, + "elem": { + "name": { + "name": "name", + "type": "TypeString", + "description": "Name of the metadata.", + "optional": true + }, + "value": { + "name": "value", + "type": "TypeList", + "description": "Value of the metadata name.", + "optional": true, + "elem": { + "type": "TypeString" + } } } }, + { + "name": "agent_crn", + "type": "TypeString", + "description": "The agent crn, obtained from the Schematics agent deployment configuration.", + "computed": true + } + ], + "ibm_schematics_agent_deploy": [ + { + "name": "updated_at", + "type": "TypeString", + "description": "The agent deploy job updation time.", + "computed": true + }, + { + "name": "updated_by", + "type": "TypeString", + "description": "Email address of user who ran the agent deploy job.", + "computed": true + }, + { + "name": "is_redeployed", + "type": "TypeBool", + "description": "True, when the same version of the agent was redeployed.", + "computed": true + }, + { + "name": "status_message", + "type": "TypeString", + "description": "The outcome of the agent deployment job, in a formatted log string.", + "computed": true + }, + { + "name": "log_url", + "type": "TypeString", + "description": "URL to the full agent deployment job logs.", + "computed": true + }, + { + "name": "agent_id", + "type": "TypeString", + "description": "Agent ID to get the details of agent.", + "immutable": true, + "required": true + }, + { + "name": "force", + "type": "TypeBool", + "description": "Equivalent to -force options in the command line, default is false.", + "optional": true + }, + { + "name": "job_id", + "type": "TypeString", + "description": "Job Id.", + "computed": true + }, + { + "name": "agent_version", + "type": "TypeString", + "description": "Agent version.", + "computed": true + }, + { + "name": "status_code", + "type": "TypeString", + "description": "Final result of the agent deployment job.", + "computed": true + } + ], + "ibm_schematics_agent_health": [ + { + "name": "status_message", + "type": "TypeString", + "description": "The outcome of the health-check job, in a formatted log string.", + "computed": true + }, + { + "name": "force", + "type": "TypeBool", + "description": "Equivalent to -force options in the command line, default is false.", + "optional": true + }, + { + "name": "job_id", + "type": "TypeString", + "description": "Job Id.", + "computed": true + }, + { + "name": "updated_by", + "type": "TypeString", + "description": "Email address of user who ran the agent health check job.", + "computed": true + }, + { + "name": "agent_version", + "type": "TypeString", + "description": "Agent version.", + "computed": true + }, + { + "name": "agent_id", + "type": "TypeString", + "description": "Agent ID to get the details of agent.", + "immutable": true, + "required": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "The agent health check job updation time.", + "computed": true + }, + { + "name": "status_code", + "type": "TypeString", + "description": "Final result of the health-check job.", + "computed": true + }, + { + "name": "log_url", + "type": "TypeString", + "description": "URL to the full health-check job logs.", + "computed": true + } + ], + "ibm_schematics_agent_prs": [ + { + "name": "force", + "type": "TypeBool", + "description": "Equivalent to -force options in the command line, default is false.", + "optional": true + }, + { + "name": "agent_version", + "type": "TypeString", + "description": "Agent version.", + "computed": true + }, + { + "name": "status_code", + "type": "TypeString", + "description": "Final result of the pre-requisite scanner job.", + "computed": true + }, + { + "name": "log_url", + "type": "TypeString", + "description": "URL to the full pre-requisite scanner job logs.", + "computed": true + }, + { + "name": "agent_id", + "type": "TypeString", + "description": "Agent ID to get the details of agent.", + "immutable": true, + "required": true + }, + { + "name": "job_id", + "type": "TypeString", + "description": "Job Id.", + "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "The agent prs job updation time.", + "computed": true + }, + { + "name": "updated_by", + "type": "TypeString", + "description": "Email address of user who ran the agent prs job.", + "computed": true + }, + { + "name": "status_message", + "type": "TypeString", + "description": "The outcome of the pre-requisite scanner job, in a formatted log string.", + "computed": true + } + ], + "ibm_schematics_inventory": [ + { + "name": "name", + "type": "TypeString", + "description": "The unique name of your Inventory definition. The name can be up to 128 characters long and can include alphanumeric characters, spaces, dashes, and underscores.", + "min_length": 3, + "max_length": 64, + "optional": true + }, + { + "name": "description", + "type": "TypeString", + "description": "The description of your Inventory definition. The description can be up to 2048 characters long in size.", + "optional": true + }, + { + "name": "location", + "type": "TypeString", + "description": "List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics.", + "options": "eu-de, eu-gb, us-east, us-south", + "optional": true, + "computed": true + }, + { + "name": "inventories_ini", + "type": "TypeString", + "description": "Input inventory of host and host group for the playbook, in the `.ini` file format.", + "optional": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Inventory updation time.", + "computed": true + }, + { + "name": "resource_group", + "type": "TypeString", + "description": "Resource-group name for the Inventory definition. By default, Inventory definition will be created in Default Resource Group.", + "cloud_data_type": "resource_group", + "optional": true + }, + { + "name": "resource_queries", + "type": "TypeList", + "description": "Input resource query definitions that is used to dynamically generate the inventory of host and host group for the playbook.", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "created_at", + "type": "TypeString", + "description": "Inventory creation time.", + "computed": true + }, + { + "name": "created_by", + "type": "TypeString", + "description": "Email address of user who created the Inventory.", + "computed": true + }, + { + "name": "updated_by", + "type": "TypeString", + "description": "Email address of user who updated the Inventory.", + "computed": true + } + ], + "ibm_schematics_job": [ { "name": "data", "type": "TypeList", @@ -142515,15 +145879,15 @@ } }, { - "name": "submitted_by", + "name": "submitted_at", "type": "TypeString", - "description": "Email address of user who submitted the job.", + "description": "Job submission time.", "computed": true }, { - "name": "end_at", + "name": "start_at", "type": "TypeString", - "description": "Job end time.", + "description": "Job start time.", "computed": true }, { @@ -142533,17 +145897,599 @@ "computed": true }, { - "name": "updated_at", + "name": "command_options", + "type": "TypeList", + "description": "Command line options for the command.", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "job_inputs", + "type": "TypeList", + "description": "Job inputs used by Action or Workspace.", + "optional": true, + "elem": { + "link": { + "name": "link", + "type": "TypeString", + "description": "Reference link to the variable value By default the expression will point to self.value.", + "optional": true, + "computed": true + }, + "metadata": { + "name": "metadata", + "type": "TypeList", + "description": "User editable metadata for the variables.", + "optional": true, + "elem": { + "aliases": { + "name": "aliases", + "type": "TypeList", + "description": "List of aliases for the variable name.", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + "default_value": { + "name": "default_value", + "type": "TypeString", + "description": "Default value for the variable, if the override value is not specified.", + "optional": true + }, + "description": { + "name": "description", + "type": "TypeString", + "description": "Description of the meta data.", + "optional": true + }, + "group_by": { + "name": "group_by", + "type": "TypeString", + "description": "Display name of the group this variable belongs to.", + "optional": true + }, + "hidden": { + "name": "hidden", + "type": "TypeBool", + "description": "If true, the variable will not be displayed on UI or CLI.", + "optional": true + }, + "immutable": { + "name": "immutable", + "type": "TypeBool", + "description": "Is the variable readonly ?.", + "optional": true + }, + "matches": { + "name": "matches", + "type": "TypeString", + "description": "Regex for the variable value.", + "optional": true + }, + "max_length": { + "name": "max_length", + "type": "TypeInt", + "description": "Maximum length of the variable value. Applicable for string type.", + "optional": true + }, + "max_value": { + "name": "max_value", + "type": "TypeInt", + "description": "Maximum value of the variable. Applicable for integer type.", + "optional": true + }, + "min_length": { + "name": "min_length", + "type": "TypeInt", + "description": "Minimum length of the variable value. Applicable for string type.", + "optional": true + }, + "min_value": { + "name": "min_value", + "type": "TypeInt", + "description": "Minimum value of the variable. Applicable for integer type.", + "optional": true + }, + "options": { + "name": "options", + "type": "TypeList", + "description": "List of possible values for this variable. If type is integer or date, then the array of string will be converted to array of integers or date during runtime.", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + "position": { + "name": "position", + "type": "TypeInt", + "description": "Relative position of this variable in a list.", + "optional": true + }, + "secure": { + "name": "secure", + "type": "TypeBool", + "description": "Is the variable secure or sensitive ?.", + "optional": true + }, + "source": { + "name": "source", + "type": "TypeString", + "description": "Source of this meta-data.", + "optional": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "Type of the variable.", + "required": true + } + } + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Name of the variable.", + "required": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "Value for the variable or reference to the value.", + "required": true + } + } + }, + { + "name": "tags", + "type": "TypeList", + "description": "User defined tags, while running the job.", + "cloud_data_type": "tags", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "location", "type": "TypeString", - "description": "Job status updation timestamp.", + "description": "List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics.", + "options": "eu-de, eu-gb, us-east, us-south", + "optional": true, "computed": true }, { - "name": "command_object", + "name": "bastion", + "type": "TypeList", + "description": "Describes a bastion resource.", + "optional": true, + "elem": { + "host": { + "name": "host", + "type": "TypeString", + "description": "Reference to the Inventory resource definition.", + "optional": true + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Bastion Name(Unique).", + "optional": true + } + }, + "max_items": 1 + }, + { + "name": "duration", "type": "TypeString", - "description": "Name of the Schematics automation resource.", + "description": "Duration of job execution; example 40 sec.", + "computed": true + }, + { + "name": "state_store_url", + "type": "TypeString", + "description": "Job state store URL.", + "computed": true + }, + { + "name": "command_name", + "type": "TypeString", + "description": "Schematics job command name.", "required": true, - "options": "action, environment, system, workspace" + "options": "ansible_playbook_check, ansible_playbook_run, create_action, create_cart, create_environment, create_workspace, delete_action, delete_environment, delete_workspace, environment_init, environment_install, environment_uninstall, patch_action, patch_workspace, put_action, put_environment, put_workspace, repository_process, system_key_delete, system_key_disable, system_key_enable, system_key_restore, system_key_rotate, workspace_apply, workspace_destroy, workspace_plan, workspace_refresh" + }, + { + "name": "command_parameter", + "type": "TypeString", + "description": "Schematics job command parameter (playbook-name).", + "optional": true + }, + { + "name": "status", + "type": "TypeList", + "description": "Job Status.", + "computed": true, + "elem": { + "action_job_status": { + "name": "action_job_status", + "type": "TypeList", + "description": "Action Job Status.", + "optional": true, + "elem": { + "action_name": { + "name": "action_name", + "type": "TypeString", + "description": "Action name.", + "optional": true + }, + "bastion_status_code": { + "name": "bastion_status_code", + "type": "TypeString", + "description": "Status of Resources.", + "optional": true + }, + "bastion_status_message": { + "name": "bastion_status_message", + "type": "TypeString", + "description": "Bastion status message - to be displayed along with the bastion_status_code;.", + "optional": true + }, + "status_code": { + "name": "status_code", + "type": "TypeString", + "description": "Status of Jobs.", + "optional": true + }, + "status_message": { + "name": "status_message", + "type": "TypeString", + "description": "Action Job status message - to be displayed along with the action_status_code.", + "optional": true + }, + "targets_status_code": { + "name": "targets_status_code", + "type": "TypeString", + "description": "Status of Resources.", + "optional": true + }, + "targets_status_message": { + "name": "targets_status_message", + "type": "TypeString", + "description": "Aggregated status message for all target resources, to be displayed along with the targets_status_code;.", + "optional": true + }, + "updated_at": { + "name": "updated_at", + "type": "TypeString", + "description": "Job status updation timestamp.", + "optional": true + } + } + }, + "flow_job_status": { + "name": "flow_job_status", + "type": "TypeList", + "description": "Environment Flow JOB Status.", + "optional": true, + "elem": { + "flow_id": { + "name": "flow_id", + "type": "TypeString", + "description": "flow id.", + "optional": true + }, + "flow_name": { + "name": "flow_name", + "type": "TypeString", + "description": "flow name.", + "optional": true + }, + "status_code": { + "name": "status_code", + "type": "TypeString", + "description": "Status of Jobs.", + "optional": true + }, + "status_message": { + "name": "status_message", + "type": "TypeString", + "description": "Flow Job status message - to be displayed along with the status_code;.", + "optional": true + }, + "updated_at": { + "name": "updated_at", + "type": "TypeString", + "description": "Job status updation timestamp.", + "optional": true + }, + "workitems": { + "name": "workitems", + "type": "TypeList", + "description": "Environment's individual workItem status details;.", + "optional": true, + "elem": { + "job_id": { + "name": "job_id", + "type": "TypeString", + "description": "workspace job id.", + "optional": true + }, + "status_code": { + "name": "status_code", + "type": "TypeString", + "description": "Status of Jobs.", + "optional": true + }, + "status_message": { + "name": "status_message", + "type": "TypeString", + "description": "workitem job status message;.", + "optional": true + }, + "updated_at": { + "name": "updated_at", + "type": "TypeString", + "description": "workitem job status updation timestamp.", + "optional": true + }, + "workspace_id": { + "name": "workspace_id", + "type": "TypeString", + "description": "Workspace id.", + "optional": true + }, + "workspace_name": { + "name": "workspace_name", + "type": "TypeString", + "description": "workspace name.", + "optional": true + } + } + } + }, + "max_items": 1 + }, + "system_job_status": { + "name": "system_job_status", + "type": "TypeList", + "description": "System Job Status.", + "optional": true, + "elem": { + "schematics_resource_status": { + "name": "schematics_resource_status", + "type": "TypeList", + "description": "job staus for each schematics resource.", + "optional": true, + "elem": { + "schematics_resource_id": { + "name": "schematics_resource_id", + "type": "TypeString", + "description": "id for each resource which is targeted as a part of system job.", + "optional": true + }, + "status_code": { + "name": "status_code", + "type": "TypeString", + "description": "Status of Jobs.", + "optional": true + }, + "status_message": { + "name": "status_message", + "type": "TypeString", + "description": "system job status message.", + "optional": true + }, + "updated_at": { + "name": "updated_at", + "type": "TypeString", + "description": "Job status updation timestamp.", + "optional": true + } + } + }, + "system_status_code": { + "name": "system_status_code", + "type": "TypeString", + "description": "Status of Jobs.", + "optional": true + }, + "system_status_message": { + "name": "system_status_message", + "type": "TypeString", + "description": "System job message.", + "optional": true + }, + "updated_at": { + "name": "updated_at", + "type": "TypeString", + "description": "Job status updation timestamp.", + "optional": true + } + }, + "max_items": 1 + }, + "workspace_job_status": { + "name": "workspace_job_status", + "type": "TypeList", + "description": "Workspace Job Status.", + "optional": true, + "elem": { + "flow_status": { + "name": "flow_status", + "type": "TypeList", + "description": "Environment Flow JOB Status.", + "optional": true, + "elem": { + "flow_id": { + "name": "flow_id", + "type": "TypeString", + "description": "flow id.", + "optional": true + }, + "flow_name": { + "name": "flow_name", + "type": "TypeString", + "description": "flow name.", + "optional": true + }, + "status_code": { + "name": "status_code", + "type": "TypeString", + "description": "Status of Jobs.", + "optional": true + }, + "status_message": { + "name": "status_message", + "type": "TypeString", + "description": "Flow Job status message - to be displayed along with the status_code;.", + "optional": true + }, + "updated_at": { + "name": "updated_at", + "type": "TypeString", + "description": "Job status updation timestamp.", + "optional": true + }, + "workitems": { + "name": "workitems", + "type": "TypeList", + "description": "Environment's individual workItem status details;.", + "optional": true, + "elem": { + "job_id": { + "name": "job_id", + "type": "TypeString", + "description": "workspace job id.", + "optional": true + }, + "status_code": { + "name": "status_code", + "type": "TypeString", + "description": "Status of Jobs.", + "optional": true + }, + "status_message": { + "name": "status_message", + "type": "TypeString", + "description": "workitem job status message;.", + "optional": true + }, + "updated_at": { + "name": "updated_at", + "type": "TypeString", + "description": "workitem job status updation timestamp.", + "optional": true + }, + "workspace_id": { + "name": "workspace_id", + "type": "TypeString", + "description": "Workspace id.", + "optional": true + }, + "workspace_name": { + "name": "workspace_name", + "type": "TypeString", + "description": "workspace name.", + "optional": true + } + } + } + }, + "max_items": 1 + }, + "status_code": { + "name": "status_code", + "type": "TypeString", + "description": "Status of Jobs.", + "optional": true + }, + "status_message": { + "name": "status_message", + "type": "TypeString", + "description": "Workspace job status message (eg. App1_Setup_Pending, for a 'Setup' flow in the 'App1' Workspace).", + "optional": true + }, + "template_status": { + "name": "template_status", + "type": "TypeList", + "description": "Workspace Flow Template job status.", + "optional": true, + "elem": { + "flow_index": { + "name": "flow_index", + "type": "TypeInt", + "description": "Index of the template in the Flow.", + "optional": true + }, + "status_code": { + "name": "status_code", + "type": "TypeString", + "description": "Status of Jobs.", + "optional": true + }, + "status_message": { + "name": "status_message", + "type": "TypeString", + "description": "Template job status message (eg. VPCt1_Apply_Pending, for a 'VPCt1' Template).", + "optional": true + }, + "template_id": { + "name": "template_id", + "type": "TypeString", + "description": "Template Id.", + "optional": true + }, + "template_name": { + "name": "template_name", + "type": "TypeString", + "description": "Template name.", + "optional": true + }, + "updated_at": { + "name": "updated_at", + "type": "TypeString", + "description": "Job status updation timestamp.", + "optional": true + } + } + }, + "updated_at": { + "name": "updated_at", + "type": "TypeString", + "description": "Job status updation timestamp.", + "optional": true + }, + "workspace_name": { + "name": "workspace_name", + "type": "TypeString", + "description": "Workspace name.", + "optional": true + } + }, + "max_items": 1 + } + } + }, + { + "name": "name", + "type": "TypeString", + "description": "Job name, uniquely derived from the related Workspace or Action.", + "computed": true + }, + { + "name": "resource_group", + "type": "TypeString", + "description": "Resource-group name derived from the related Workspace or Action.", + "cloud_data_type": "resource_group", + "computed": true + }, + { + "name": "submitted_by", + "type": "TypeString", + "description": "Email address of user who submitted the job.", + "computed": true }, { "name": "command_object_id", @@ -142551,6 +146497,143 @@ "description": "Job command object id (workspace-id, action-id).", "required": true }, + { + "name": "job_env_settings", + "type": "TypeList", + "description": "Environment variables used by the Job while performing Action or Workspace.", + "optional": true, + "elem": { + "link": { + "name": "link", + "type": "TypeString", + "description": "Reference link to the variable value By default the expression will point to self.value.", + "optional": true, + "computed": true + }, + "metadata": { + "name": "metadata", + "type": "TypeList", + "description": "User editable metadata for the variables.", + "optional": true, + "elem": { + "aliases": { + "name": "aliases", + "type": "TypeList", + "description": "List of aliases for the variable name.", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + "default_value": { + "name": "default_value", + "type": "TypeString", + "description": "Default value for the variable, if the override value is not specified.", + "optional": true + }, + "description": { + "name": "description", + "type": "TypeString", + "description": "Description of the meta data.", + "optional": true + }, + "group_by": { + "name": "group_by", + "type": "TypeString", + "description": "Display name of the group this variable belongs to.", + "optional": true + }, + "hidden": { + "name": "hidden", + "type": "TypeBool", + "description": "If true, the variable will not be displayed on UI or CLI.", + "optional": true + }, + "immutable": { + "name": "immutable", + "type": "TypeBool", + "description": "Is the variable readonly ?.", + "optional": true + }, + "matches": { + "name": "matches", + "type": "TypeString", + "description": "Regex for the variable value.", + "optional": true + }, + "max_length": { + "name": "max_length", + "type": "TypeInt", + "description": "Maximum length of the variable value. Applicable for string type.", + "optional": true + }, + "max_value": { + "name": "max_value", + "type": "TypeInt", + "description": "Maximum value of the variable. Applicable for integer type.", + "optional": true + }, + "min_length": { + "name": "min_length", + "type": "TypeInt", + "description": "Minimum length of the variable value. Applicable for string type.", + "optional": true + }, + "min_value": { + "name": "min_value", + "type": "TypeInt", + "description": "Minimum value of the variable. Applicable for integer type.", + "optional": true + }, + "options": { + "name": "options", + "type": "TypeList", + "description": "List of possible values for this variable. If type is integer or date, then the array of string will be converted to array of integers or date during runtime.", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + "position": { + "name": "position", + "type": "TypeInt", + "description": "Relative position of this variable in a list.", + "optional": true + }, + "secure": { + "name": "secure", + "type": "TypeBool", + "description": "Is the variable secure or sensitive ?.", + "optional": true + }, + "source": { + "name": "source", + "type": "TypeString", + "description": "Source of this meta-data.", + "optional": true + }, + "type": { + "name": "type", + "type": "TypeString", + "description": "Type of the variable.", + "required": true + } + } + }, + "name": { + "name": "name", + "type": "TypeString", + "description": "Name of the variable.", + "required": true + }, + "value": { + "name": "value", + "type": "TypeString", + "description": "Value for the variable or reference to the value.", + "required": true + } + } + }, { "name": "log_summary", "type": "TypeList", @@ -142842,52 +146925,385 @@ }, "max_items": 1 }, - "workspace_job": { - "name": "workspace_job", + "workspace_job": { + "name": "workspace_job", + "type": "TypeList", + "description": "Workspace Job log summary.", + "optional": true, + "elem": { + "resources_add": { + "name": "resources_add", + "type": "TypeFloat", + "description": "Number of resources add.", + "optional": true, + "computed": true + }, + "resources_destroy": { + "name": "resources_destroy", + "type": "TypeFloat", + "description": "Number of resources destroy.", + "optional": true, + "computed": true + }, + "resources_modify": { + "name": "resources_modify", + "type": "TypeFloat", + "description": "Number of resources modify.", + "optional": true, + "computed": true + } + }, + "max_items": 1 + } + } + }, + { + "name": "description", + "type": "TypeString", + "description": "The description of your job is derived from the related action or workspace. The description can be up to 2048 characters long in size.", + "computed": true + }, + { + "name": "end_at", + "type": "TypeString", + "description": "Job end time.", + "computed": true + }, + { + "name": "log_store_url", + "type": "TypeString", + "description": "Job log store URL.", + "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "Job status updation timestamp.", + "computed": true + }, + { + "name": "command_object", + "type": "TypeString", + "description": "Name of the Schematics automation resource.", + "required": true, + "options": "action, environment, system, workspace" + } + ], + "ibm_schematics_policy": [ + { + "name": "name", + "type": "TypeString", + "description": "Name of Schematics customization policy.", + "required": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "The policy CRN.", + "cloud_data_type": "crn", + "computed": true + }, + { + "name": "created_by", + "type": "TypeString", + "description": "The user who created the policy.", + "computed": true + }, + { + "name": "location", + "type": "TypeString", + "description": "List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics.", + "cloud_data_type": "region", + "optional": true, + "computed": true + }, + { + "name": "kind", + "type": "TypeString", + "description": "Policy kind or categories for managing and deriving policy decision * `agent_assignment_policy` Agent assignment policy for job execution.", + "options": "agent_assignment_policy", + "optional": true + }, + { + "name": "target", + "type": "TypeList", + "description": "The objects for the Schematics policy.", + "optional": true, + "computed": true, + "elem": { + "selector_ids": { + "name": "selector_ids", + "type": "TypeList", + "description": "Static selectors of schematics object ids (agent, workspace, action or blueprint) for the Schematics policy.", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "selector_kind": { + "name": "selector_kind", + "type": "TypeString", + "description": "Types of schematics object selector.", + "optional": true, + "computed": true + }, + "selector_scope": { + "name": "selector_scope", + "type": "TypeList", + "description": "Selectors to dynamically list of schematics object ids (agent, workspace, action or blueprint) for the Schematics policy.", + "optional": true, + "computed": true, + "elem": { + "kind": { + "name": "kind", + "type": "TypeString", + "description": "Name of the Schematics automation resource.", + "optional": true, + "computed": true + }, + "locations": { + "name": "locations", + "type": "TypeList", + "description": "The location based selector.", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "resource_groups": { + "name": "resource_groups", + "type": "TypeList", + "description": "The resource group based selector.", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "tags": { + "name": "tags", + "type": "TypeList", + "description": "The tag based selector.", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + } + } + } + }, + "max_items": 1 + }, + { + "name": "scoped_resources", + "type": "TypeList", + "description": "List of scoped Schematics resources targeted by the policy.", + "optional": true, + "elem": { + "id": { + "name": "id", + "type": "TypeString", + "description": "Schematics resource Id.", + "optional": true + }, + "kind": { + "name": "kind", + "type": "TypeString", + "description": "Name of the Schematics automation resource.", + "optional": true + } + } + }, + { + "name": "account", + "type": "TypeString", + "description": "The Account id.", + "computed": true + }, + { + "name": "resource_group", + "type": "TypeString", + "description": "The resource group name for the policy. By default, Policy will be created in `default` Resource Group.", + "cloud_data_type": "resource_group", + "optional": true, + "computed": true + }, + { + "name": "state", + "type": "TypeList", + "description": "User defined status of the Schematics object.", + "optional": true, + "computed": true, + "elem": { + "set_at": { + "name": "set_at", + "type": "TypeString", + "description": "When the User who set the state of the Object.", + "computed": true + }, + "set_by": { + "name": "set_by", + "type": "TypeString", + "description": "Name of the User who set the state of the Object.", + "computed": true + }, + "state": { + "name": "state", + "type": "TypeString", + "description": "User-defined states * `draft` Object can be modified; can be used by Jobs run by the author, during execution * `live` Object can be modified; can be used by Jobs during execution * `locked` Object cannot be modified; can be used by Jobs during execution * `disable` Object can be modified. cannot be used by Jobs during execution.", + "optional": true, + "computed": true + } + }, + "max_items": 1 + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "The policy updation time.", + "computed": true + }, + { + "name": "description", + "type": "TypeString", + "description": "The description of Schematics customization policy.", + "optional": true + }, + { + "name": "tags", + "type": "TypeList", + "description": "Tags for the Schematics customization policy.", + "cloud_data_type": "tags", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "parameter", + "type": "TypeList", + "description": "The parameter to tune the Schematics policy.", + "optional": true, + "computed": true, + "elem": { + "agent_assignment_policy_parameter": { + "name": "agent_assignment_policy_parameter", "type": "TypeList", - "description": "Workspace Job log summary.", + "description": "Parameters for the `agent_assignment_policy`.", "optional": true, + "computed": true, "elem": { - "resources_add": { - "name": "resources_add", - "type": "TypeFloat", - "description": "Number of resources add.", + "selector_ids": { + "name": "selector_ids", + "type": "TypeList", + "description": "The static selectors of schematics object ids (workspace, action or blueprint) for the Schematics policy.", "optional": true, - "computed": true + "computed": true, + "elem": { + "type": "TypeString" + } }, - "resources_destroy": { - "name": "resources_destroy", - "type": "TypeFloat", - "description": "Number of resources destroy.", + "selector_kind": { + "name": "selector_kind", + "type": "TypeString", + "description": "Types of schematics object selector.", "optional": true, "computed": true }, - "resources_modify": { - "name": "resources_modify", - "type": "TypeFloat", - "description": "Number of resources modify.", + "selector_scope": { + "name": "selector_scope", + "type": "TypeList", + "description": "The selectors to dynamically list of schematics object ids (workspace, action or blueprint) for the Schematics policy.", "optional": true, - "computed": true + "computed": true, + "elem": { + "kind": { + "name": "kind", + "type": "TypeString", + "description": "Name of the Schematics automation resource.", + "optional": true, + "computed": true + }, + "locations": { + "name": "locations", + "type": "TypeList", + "description": "The location based selector.", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "resource_groups": { + "name": "resource_groups", + "type": "TypeList", + "description": "The resource group based selector.", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + "tags": { + "name": "tags", + "type": "TypeList", + "description": "The tag based selector.", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + } + } } }, "max_items": 1 } - } + }, + "max_items": 1 }, { - "name": "name", + "name": "created_at", "type": "TypeString", - "description": "Job name, uniquely derived from the related Workspace or Action.", + "description": "The policy creation time.", + "computed": true + } + ], + "ibm_schematics_resource_query": [ + { + "name": "created_by", + "type": "TypeString", + "description": "Email address of user who created the Resource query.", "computed": true }, { - "name": "description", + "name": "updated_at", "type": "TypeString", - "description": "The description of your job is derived from the related action or workspace. The description can be up to 2048 characters long in size.", + "description": "Resource query updation time.", "computed": true - } - ], - "ibm_schematics_resource_query": [ + }, + { + "name": "updated_by", + "type": "TypeString", + "description": "Email address of user who updated the Resource query.", + "computed": true + }, + { + "name": "type", + "type": "TypeString", + "description": "Resource type (cluster, vsi, icd, vpc).", + "options": "vsi", + "optional": true + }, + { + "name": "name", + "type": "TypeString", + "description": "Resource query name.", + "optional": true + }, { "name": "location", "type": "TypeString", @@ -142948,40 +147364,184 @@ "type": "TypeString", "description": "Resource query creation time.", "computed": true + } + ], + "ibm_schematics_workspace": [ + { + "name": "x_github_token", + "type": "TypeString", + "description": "The personal access token to authenticate with your private GitHub or GitLab repository and access your Terraform template.", + "optional": true }, { - "name": "created_by", + "name": "runtime_data", + "type": "TypeList", + "description": "Information about the provisioning engine, state file, and runtime logs.", + "computed": true, + "elem": { + "engine_cmd": { + "name": "engine_cmd", + "type": "TypeString", + "description": "The command that was used to apply the Terraform template or IBM Cloud catalog software template.", + "optional": true + }, + "engine_name": { + "name": "engine_name", + "type": "TypeString", + "description": "The provisioning engine that was used to apply the Terraform template or IBM Cloud catalog software template.", + "optional": true + }, + "engine_version": { + "name": "engine_version", + "type": "TypeString", + "description": "The version of the provisioning engine that was used.", + "optional": true + }, + "id": { + "name": "id", + "type": "TypeString", + "description": "The ID that was assigned to your Terraform template or IBM Cloud catalog software template.", + "optional": true + }, + "log_store_url": { + "name": "log_store_url", + "type": "TypeString", + "description": "The URL to access the logs that were created during the creation, update, or deletion of your IBM Cloud resources.", + "optional": true + }, + "output_values": { + "name": "output_values", + "type": "TypeList", + "description": "List of Output values.", + "optional": true, + "elem": { + "type": "TypeMap" + } + }, + "resources": { + "name": "resources", + "type": "TypeList", + "description": "List of resources.", + "optional": true, + "elem": { + "type": "TypeMap" + } + }, + "state_store_url": { + "name": "state_store_url", + "type": "TypeString", + "description": "The URL where the Terraform statefile (`terraform.tfstate`) is stored. You can use the statefile to find an overview of IBM Cloud resources that were created by Schematics. Schematics uses the statefile as an inventory list to determine future create, update, or deletion jobs.", + "optional": true + } + } + }, + { + "name": "template_init_state_file", "type": "TypeString", - "description": "Email address of user who created the Resource query.", - "computed": true + "description": "The content of an existing Terraform statefile that you want to import in to your workspace. To get the content of a Terraform statefile for a specific Terraform template in an existing workspace, run `ibmcloud schematics state pull --id \u003cworkspace_id\u003e --template \u003ctemplate_id\u003e`.", + "optional": true + }, + { + "name": "template_git_repo_sha_value", + "type": "TypeString", + "description": "The repository SHA value.", + "optional": true }, { "name": "updated_at", "type": "TypeString", - "description": "Resource query updation time.", + "description": "The timestamp when the workspace was last updated.", "computed": true }, { "name": "updated_by", "type": "TypeString", - "description": "Email address of user who updated the Resource query.", + "description": "The user ID that updated the workspace.", "computed": true }, { - "name": "type", + "name": "template_git_release", "type": "TypeString", - "description": "Resource type (cluster, vsi, icd, vpc).", - "options": "vsi", + "description": "The repository release.", "optional": true }, { - "name": "name", + "name": "locked", + "type": "TypeBool", + "description": "If set to true, the workspace is locked and disabled for changes.", + "optional": true, + "computed": true + }, + { + "name": "template_values", "type": "TypeString", - "description": "Resource query name.", + "description": "A list of variable values that you want to apply during the Helm chart installation. The list must be provided in JSON format, such as `\"autoscaling: enabled: true minReplicas: 2\"`. The values that you define here override the default Helm chart values. This field is supported only for IBM Cloud catalog offerings that are provisioned by using the Terraform Helm provider.", "optional": true - } - ], - "ibm_schematics_workspace": [ + }, + { + "name": "template_git_url", + "type": "TypeString", + "description": "The source URL.", + "optional": true + }, + { + "name": "last_health_check_at", + "type": "TypeString", + "description": "The timestamp when the last health check was performed by Schematics.", + "computed": true + }, + { + "name": "applied_shareddata_ids", + "type": "TypeList", + "description": "List of applied shared dataset ID.", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "resource_group", + "type": "TypeString", + "description": "The ID of the resource group where you want to provision the workspace.", + "cloud_data_type": "resource_group", + "optional": true + }, + { + "name": "template_git_branch", + "type": "TypeString", + "description": "The repository branch.", + "optional": true + }, + { + "name": "template_git_repo_url", + "type": "TypeString", + "description": "The repository URL.", + "optional": true + }, + { + "name": "frozen_at", + "type": "TypeString", + "description": "The timestamp when the workspace was frozen.", + "optional": true + }, + { + "name": "status_code", + "type": "TypeString", + "description": "The success or error code that was returned for the last plan, apply, or destroy job that ran against your workspace.", + "computed": true + }, + { + "name": "template_git_folder", + "type": "TypeString", + "description": "The subfolder in your GitHub or GitLab repository where your Terraform template is stored.", + "optional": true + }, + { + "name": "template_uninstall_script_name", + "type": "TypeString", + "description": "Uninstall script name.", + "optional": true + }, { "name": "frozen_by", "type": "TypeString", @@ -142989,26 +147549,100 @@ "optional": true }, { - "name": "locked", - "type": "TypeBool", - "description": "If set to true, the workspace is locked and disabled for changes.", + "name": "locked_by", + "type": "TypeString", + "description": "The user ID that initiated a resource-related action, such as applying or destroying resources, that locked the workspace.", "optional": true, "computed": true }, { - "name": "crn", + "name": "locked_time", "type": "TypeString", - "description": "The workspace CRN.", - "cloud_data_type": "crn", + "description": "The timestamp when the workspace was locked.", + "optional": true, "computed": true }, { - "name": "description", + "name": "created_at", "type": "TypeString", - "description": "The description of the workspace.", - "max_length": 2048, + "description": "The timestamp when the workspace was created.", + "computed": true + }, + { + "name": "catalog_ref", + "type": "TypeList", + "description": "Information about the software template that you chose from the IBM Cloud catalog. This information is returned for IBM Cloud catalog offerings only.", + "optional": true, + "elem": { + "dry_run": { + "name": "dry_run", + "type": "TypeBool", + "description": "Dry run.", + "optional": true + }, + "item_icon_url": { + "name": "item_icon_url", + "type": "TypeString", + "description": "The URL to the icon of the software template in the IBM Cloud catalog.", + "optional": true + }, + "item_id": { + "name": "item_id", + "type": "TypeString", + "description": "The ID of the software template that you chose to install from the IBM Cloud catalog. This software is provisioned with Schematics.", + "optional": true + }, + "item_name": { + "name": "item_name", + "type": "TypeString", + "description": "The name of the software that you chose to install from the IBM Cloud catalog.", + "optional": true + }, + "item_readme_url": { + "name": "item_readme_url", + "type": "TypeString", + "description": "The URL to the readme file of the software template in the IBM Cloud catalog.", + "optional": true + }, + "item_url": { + "name": "item_url", + "type": "TypeString", + "description": "The URL to the software template in the IBM Cloud catalog.", + "optional": true + }, + "launch_url": { + "name": "launch_url", + "type": "TypeString", + "description": "The URL to the dashboard to access your software.", + "optional": true + }, + "offering_version": { + "name": "offering_version", + "type": "TypeString", + "description": "The version of the software template that you chose to install from the IBM Cloud catalog.", + "optional": true + }, + "owning_account": { + "name": "owning_account", + "type": "TypeString", + "description": "Owning account ID of the catalog.", + "optional": true + } + }, + "max_items": 1 + }, + { + "name": "template_ref", + "type": "TypeString", + "description": "Workspace template ref.", "optional": true }, + { + "name": "created_by", + "type": "TypeString", + "description": "The user ID that created the workspace.", + "computed": true + }, { "name": "shared_data", "type": "TypeList", @@ -143082,77 +147716,15 @@ "max_items": 1 }, { - "name": "template_uninstall_script_name", - "type": "TypeString", - "description": "Uninstall script name.", - "optional": true - }, - { - "name": "template_git_branch", - "type": "TypeString", - "description": "The repository branch.", - "optional": true - }, - { - "name": "template_git_url", - "type": "TypeString", - "description": "The source URL.", - "optional": true - }, - { - "name": "status_code", - "type": "TypeString", - "description": "The success or error code that was returned for the last plan, apply, or destroy job that ran against your workspace.", - "computed": true - }, - { - "name": "status_msg", - "type": "TypeString", - "description": "The success or error message that was returned for the last plan, apply, or destroy job that ran against your workspace.", - "computed": true - }, - { - "name": "template_env_settings", + "name": "tags", "type": "TypeList", - "description": "A list of environment variables that you want to apply during the execution of a bash script or Terraform job. This field must be provided as a list of key-value pairs, for example, **TF_LOG=debug**. Each entry will be a map with one entry where `key is the environment variable name and value is value`. You can define environment variables for IBM Cloud catalog offerings that are provisioned by using a bash script. See [example to use special environment variable](https://cloud.ibm.com/docs/schematics?topic=schematics-set-parallelism#parallelism-example) that are supported by Schematics.", + "description": "A list of tags that are associated with the workspace.", + "cloud_data_type": "tags", "optional": true, "elem": { - "type": "TypeMap" + "type": "TypeString" } }, - { - "name": "locked_by", - "type": "TypeString", - "description": "The user ID that initiated a resource-related action, such as applying or destroying resources, that locked the workspace.", - "optional": true, - "computed": true - }, - { - "name": "created_at", - "type": "TypeString", - "description": "The timestamp when the workspace was created.", - "computed": true - }, - { - "name": "status", - "type": "TypeString", - "description": "The status of the workspace. **Active**: After you successfully ran your infrastructure code by applying your Terraform execution plan, the state of your workspace changes to `Active`. **Connecting**: Schematics tries to connect to the template in your source repo. If successfully connected, the template is downloaded and metadata, such as input parameters, is extracted. After the template is downloaded, the state of the workspace changes to `Scanning`. **Draft**: The workspace is created without a reference to a GitHub or GitLab repository. **Failed**: If errors occur during the execution of your infrastructure code in IBM Cloud Schematics, your workspace status is set to `Failed`. **Inactive**: The Terraform template was scanned successfully and the workspace creation is complete. You can now start running Schematics plan and apply jobs to provision the IBM Cloud resources that you specified in your template. If you have an `Active` workspace and decide to remove all your resources, your workspace is set to `Inactive` after all your resources are removed. **In progress**: When you instruct IBM Cloud Schematics to run your infrastructure code by applying your Terraform execution plan, the status of our workspace changes to `In progress`. **Scanning**: The download of the Terraform template is complete and vulnerability scanning started. If the scan is successful, the workspace state changes to `Inactive`. If errors in your template are found, the state changes to `Template Error`. **Stopped**: The Schematics plan, apply, or destroy job was cancelled manually. **Template Error**: The Schematics template contains errors and cannot be processed.", - "computed": true - }, - { - "name": "updated_by", - "type": "TypeString", - "description": "The user ID that updated the workspace.", - "computed": true - }, - { - "name": "location", - "type": "TypeString", - "description": "The location where you want to create your Schematics workspace and run the Schematics jobs. The location that you enter must match the API endpoint that you use. For example, if you use the Frankfurt API endpoint, you must specify `eu-de` as your location. If you use an API endpoint for a geography and you do not specify a location, Schematics determines the location based on availability.", - "cloud_data_type": "region", - "optional": true, - "computed": true - }, { "name": "template_values_metadata", "type": "TypeList", @@ -143282,220 +147854,6 @@ } } }, - { - "name": "template_git_folder", - "type": "TypeString", - "description": "The subfolder in your GitHub or GitLab repository where your Terraform template is stored.", - "optional": true - }, - { - "name": "template_init_state_file", - "type": "TypeString", - "description": "The content of an existing Terraform statefile that you want to import in to your workspace. To get the content of a Terraform statefile for a specific Terraform template in an existing workspace, run `ibmcloud schematics state pull --id \u003cworkspace_id\u003e --template \u003ctemplate_id\u003e`.", - "optional": true - }, - { - "name": "created_by", - "type": "TypeString", - "description": "The user ID that created the workspace.", - "computed": true - }, - { - "name": "applied_shareddata_ids", - "type": "TypeList", - "description": "List of applied shared dataset ID.", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "tags", - "type": "TypeList", - "description": "A list of tags that are associated with the workspace.", - "cloud_data_type": "tags", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "template_git_repo_sha_value", - "type": "TypeString", - "description": "The repository SHA value.", - "optional": true - }, - { - "name": "frozen_at", - "type": "TypeString", - "description": "The timestamp when the workspace was frozen.", - "optional": true - }, - { - "name": "x_github_token", - "type": "TypeString", - "description": "The personal access token to authenticate with your private GitHub or GitLab repository and access your Terraform template.", - "optional": true - }, - { - "name": "catalog_ref", - "type": "TypeList", - "description": "Information about the software template that you chose from the IBM Cloud catalog. This information is returned for IBM Cloud catalog offerings only.", - "optional": true, - "elem": { - "dry_run": { - "name": "dry_run", - "type": "TypeBool", - "description": "Dry run.", - "optional": true - }, - "item_icon_url": { - "name": "item_icon_url", - "type": "TypeString", - "description": "The URL to the icon of the software template in the IBM Cloud catalog.", - "optional": true - }, - "item_id": { - "name": "item_id", - "type": "TypeString", - "description": "The ID of the software template that you chose to install from the IBM Cloud catalog. This software is provisioned with Schematics.", - "optional": true - }, - "item_name": { - "name": "item_name", - "type": "TypeString", - "description": "The name of the software that you chose to install from the IBM Cloud catalog.", - "optional": true - }, - "item_readme_url": { - "name": "item_readme_url", - "type": "TypeString", - "description": "The URL to the readme file of the software template in the IBM Cloud catalog.", - "optional": true - }, - "item_url": { - "name": "item_url", - "type": "TypeString", - "description": "The URL to the software template in the IBM Cloud catalog.", - "optional": true - }, - "launch_url": { - "name": "launch_url", - "type": "TypeString", - "description": "The URL to the dashboard to access your software.", - "optional": true - }, - "offering_version": { - "name": "offering_version", - "type": "TypeString", - "description": "The version of the software template that you chose to install from the IBM Cloud catalog.", - "optional": true - }, - "owning_account": { - "name": "owning_account", - "type": "TypeString", - "description": "Owning account ID of the catalog.", - "optional": true - } - }, - "max_items": 1 - }, - { - "name": "name", - "type": "TypeString", - "description": "The name of your workspace. The name can be up to 128 characters long and can include alphanumeric characters, spaces, dashes, and underscores. When you create a workspace for your own Terraform template, consider including the microservice component that you set up with your Terraform template and the IBM Cloud environment where you want to deploy your resources in your name.", - "required": true, - "min_length": 1, - "max_length": 128, - "matches": "^[a-zA-Z0-9][a-zA-Z0-9-_ ]*$" - }, - { - "name": "template_ref", - "type": "TypeString", - "description": "Workspace template ref.", - "optional": true - }, - { - "name": "template_git_release", - "type": "TypeString", - "description": "The repository release.", - "optional": true - }, - { - "name": "template_git_has_uploadedgitrepotar", - "type": "TypeBool", - "description": "Has uploaded git repo tar", - "optional": true, - "computed": true - }, - { - "name": "runtime_data", - "type": "TypeList", - "description": "Information about the provisioning engine, state file, and runtime logs.", - "computed": true, - "elem": { - "engine_cmd": { - "name": "engine_cmd", - "type": "TypeString", - "description": "The command that was used to apply the Terraform template or IBM Cloud catalog software template.", - "optional": true - }, - "engine_name": { - "name": "engine_name", - "type": "TypeString", - "description": "The provisioning engine that was used to apply the Terraform template or IBM Cloud catalog software template.", - "optional": true - }, - "engine_version": { - "name": "engine_version", - "type": "TypeString", - "description": "The version of the provisioning engine that was used.", - "optional": true - }, - "id": { - "name": "id", - "type": "TypeString", - "description": "The ID that was assigned to your Terraform template or IBM Cloud catalog software template.", - "optional": true - }, - "log_store_url": { - "name": "log_store_url", - "type": "TypeString", - "description": "The URL to access the logs that were created during the creation, update, or deletion of your IBM Cloud resources.", - "optional": true - }, - "output_values": { - "name": "output_values", - "type": "TypeList", - "description": "List of Output values.", - "optional": true, - "elem": { - "type": "TypeMap" - } - }, - "resources": { - "name": "resources", - "type": "TypeList", - "description": "List of resources.", - "optional": true, - "elem": { - "type": "TypeMap" - } - }, - "state_store_url": { - "name": "state_store_url", - "type": "TypeString", - "description": "The URL where the Terraform statefile (`terraform.tfstate`) is stored. You can use the statefile to find an overview of IBM Cloud resources that were created by Schematics. Schematics uses the statefile as an inventory list to determine future create, update, or deletion jobs.", - "optional": true - } - } - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "The timestamp when the workspace was last updated.", - "computed": true - }, { "name": "template_inputs", "type": "TypeList", @@ -143541,10 +147899,11 @@ } }, { - "name": "template_git_repo_url", - "type": "TypeString", - "description": "The repository URL.", - "optional": true + "name": "template_git_has_uploadedgitrepotar", + "type": "TypeBool", + "description": "Has uploaded git repo tar", + "optional": true, + "computed": true }, { "name": "frozen", @@ -143553,67 +147912,80 @@ "optional": true }, { - "name": "locked_time", + "name": "crn", "type": "TypeString", - "description": "The timestamp when the workspace was locked.", - "optional": true, + "description": "The workspace CRN.", + "cloud_data_type": "crn", "computed": true }, { - "name": "last_health_check_at", + "name": "status", "type": "TypeString", - "description": "The timestamp when the last health check was performed by Schematics.", + "description": "The status of the workspace. **Active**: After you successfully ran your infrastructure code by applying your Terraform execution plan, the state of your workspace changes to `Active`. **Connecting**: Schematics tries to connect to the template in your source repo. If successfully connected, the template is downloaded and metadata, such as input parameters, is extracted. After the template is downloaded, the state of the workspace changes to `Scanning`. **Draft**: The workspace is created without a reference to a GitHub or GitLab repository. **Failed**: If errors occur during the execution of your infrastructure code in IBM Cloud Schematics, your workspace status is set to `Failed`. **Inactive**: The Terraform template was scanned successfully and the workspace creation is complete. You can now start running Schematics plan and apply jobs to provision the IBM Cloud resources that you specified in your template. If you have an `Active` workspace and decide to remove all your resources, your workspace is set to `Inactive` after all your resources are removed. **In progress**: When you instruct IBM Cloud Schematics to run your infrastructure code by applying your Terraform execution plan, the status of our workspace changes to `In progress`. **Scanning**: The download of the Terraform template is complete and vulnerability scanning started. If the scan is successful, the workspace state changes to `Inactive`. If errors in your template are found, the state changes to `Template Error`. **Stopped**: The Schematics plan, apply, or destroy job was cancelled manually. **Template Error**: The Schematics template contains errors and cannot be processed.", "computed": true }, { - "name": "resource_group", + "name": "name", "type": "TypeString", - "description": "The ID of the resource group where you want to provision the workspace.", - "cloud_data_type": "resource_group", - "optional": true + "description": "The name of your workspace. The name can be up to 128 characters long and can include alphanumeric characters, spaces, dashes, and underscores. When you create a workspace for your own Terraform template, consider including the microservice component that you set up with your Terraform template and the IBM Cloud environment where you want to deploy your resources in your name.", + "required": true, + "min_length": 1, + "max_length": 128, + "matches": "^[a-zA-Z0-9][a-zA-Z0-9-_ ]*$" }, { "name": "template_type", "type": "TypeString", "description": "The Terraform version that you want to use to run your Terraform code. Enter `terraform_v0.12` to use Terraform version 0.12, and `terraform_v0.11` to use Terraform version 0.11. The Terraform config files are run with Terraform version 0.11. This is a required variable. Make sure that your Terraform config files are compatible with the Terraform version that you select.", "required": true, - "matches": "^terraform_v(?:0\\.11|0\\.12|0\\.13|0\\.14|0\\.15|1\\.0|1\\.1|1\\.2|1\\.3|1\\.4)(?:\\.\\d+)?$" + "matches": "^terraform_v(?:0\\.11|0\\.12|0\\.13|0\\.14|0\\.15|1\\.0|1\\.1|1\\.2|1\\.3|1\\.4|1\\.5)(?:\\.\\d+)?$" }, { - "name": "template_values", + "name": "status_msg", "type": "TypeString", - "description": "A list of variable values that you want to apply during the Helm chart installation. The list must be provided in JSON format, such as `\"autoscaling: enabled: true minReplicas: 2\"`. The values that you define here override the default Helm chart values. This field is supported only for IBM Cloud catalog offerings that are provisioned by using the Terraform Helm provider.", - "optional": true - } - ], - "ibm_security_group": [ + "description": "The success or error message that was returned for the last plan, apply, or destroy job that ran against your workspace.", + "computed": true + }, { - "name": "name", - "type": "TypeString", - "description": "Security group name", - "required": true + "name": "template_env_settings", + "type": "TypeList", + "description": "A list of environment variables that you want to apply during the execution of a bash script or Terraform job. This field must be provided as a list of key-value pairs, for example, **TF_LOG=debug**. Each entry will be a map with one entry where `key is the environment variable name and value is value`. You can define environment variables for IBM Cloud catalog offerings that are provisioned by using a bash script. See [example to use special environment variable](https://cloud.ibm.com/docs/schematics?topic=schematics-set-parallelism#parallelism-example) that are supported by Schematics.", + "optional": true, + "elem": { + "type": "TypeMap" + } }, { "name": "description", "type": "TypeString", - "description": "Security group description", + "description": "The description of the workspace.", + "max_length": 2048, "optional": true + }, + { + "name": "location", + "type": "TypeString", + "description": "The location where you want to create your Schematics workspace and run the Schematics jobs. The location that you enter must match the API endpoint that you use. For example, if you use the Frankfurt API endpoint, you must specify `eu-de` as your location. If you use an API endpoint for a geography and you do not specify a location, Schematics determines the location based on availability.", + "cloud_data_type": "region", + "optional": true, + "computed": true } ], - "ibm_security_group_rule": [ + "ibm_security_group": [ { - "name": "security_group_id", - "type": "TypeInt", - "description": "Security group ID", - "immutable": true, - "required": true + "name": "description", + "type": "TypeString", + "description": "Security group description", + "optional": true }, { - "name": "direction", + "name": "name", "type": "TypeString", - "description": "Direction of rule: ingress or egress", + "description": "Security group name", "required": true - }, + } + ], + "ibm_security_group_rule": [ { "name": "ether_type", "type": "TypeString", @@ -143650,16 +148022,56 @@ "type": "TypeString", "description": "icmp, tcp or udp", "optional": true + }, + { + "name": "security_group_id", + "type": "TypeInt", + "description": "Security group ID", + "immutable": true, + "required": true + }, + { + "name": "direction", + "type": "TypeString", + "description": "Direction of rule: ingress or egress", + "required": true } ], "ibm_service_instance": [ { - "name": "credentials", + "name": "parameters", "type": "TypeMap", - "description": "The service broker-provided credentials to use this service.", - "secure": true, + "description": "Arbitrary parameters to pass along to the service broker. Must be a JSON object", + "optional": true + }, + { + "name": "tags", + "type": "TypeSet", + "cloud_data_type": "tags", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "dashboard_url", + "type": "TypeString", + "description": "Dashboard URL to access resource.", "computed": true }, + { + "name": "name", + "type": "TypeString", + "description": "A name for the service instance", + "required": true + }, + { + "name": "service", + "type": "TypeString", + "description": "The name of the service offering like speech_to_text, text_to_speech etc", + "immutable": true, + "required": true + }, { "name": "service_keys", "type": "TypeList", @@ -143688,10 +148100,10 @@ "computed": true }, { - "name": "parameters", - "type": "TypeMap", - "description": "Arbitrary parameters to pass along to the service broker. Must be a JSON object", - "optional": true + "name": "plan", + "type": "TypeString", + "description": "The plan type of the service", + "required": true }, { "name": "wait_time_minutes", @@ -143700,12 +148112,6 @@ "default_value": 10, "optional": true }, - { - "name": "name", - "type": "TypeString", - "description": "A name for the service instance", - "required": true - }, { "name": "space_guid", "type": "TypeString", @@ -143714,42 +148120,14 @@ "required": true }, { - "name": "service", - "type": "TypeString", - "description": "The name of the service offering like speech_to_text, text_to_speech etc", - "immutable": true, - "required": true - }, - { - "name": "plan", - "type": "TypeString", - "description": "The plan type of the service", - "required": true - }, - { - "name": "tags", - "type": "TypeSet", - "cloud_data_type": "tags", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "dashboard_url", - "type": "TypeString", - "description": "Dashboard URL to access resource.", + "name": "credentials", + "type": "TypeMap", + "description": "The service broker-provided credentials to use this service.", + "secure": true, "computed": true } ], "ibm_service_key": [ - { - "name": "parameters", - "type": "TypeMap", - "description": "Arbitrary parameters to pass along to the service broker. Must be a JSON object", - "immutable": true, - "optional": true - }, { "name": "credentials", "type": "TypeMap", @@ -143779,27 +148157,20 @@ "description": "The guid of the service instance for which to create service key", "immutable": true, "required": true + }, + { + "name": "parameters", + "type": "TypeMap", + "description": "Arbitrary parameters to pass along to the service broker. Must be a JSON object", + "immutable": true, + "optional": true } ], "ibm_sm_arbitrary_secret": [ { - "name": "payload", - "type": "TypeString", - "description": "The arbitrary secret data payload.", - "secure": true, - "required": true - }, - { - "name": "crn", + "name": "secret_type", "type": "TypeString", - "description": "A CRN that uniquely identifies an IBM Cloud resource.", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "locks_total", - "type": "TypeInt", - "description": "The number of locks of the secret.", + "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", "computed": true }, { @@ -143809,9 +148180,15 @@ "optional": true }, { - "name": "labels", - "type": "TypeList", - "description": "Labels that you can use to search for secrets in your instance.Up to 30 labels can be created.", + "name": "expiration_date", + "type": "TypeString", + "description": "The date a secret is expired. The date format follows RFC 3339.", + "optional": true + }, + { + "name": "version_custom_metadata", + "type": "TypeMap", + "description": "The secret version metadata that a user can customize.", "optional": true, "computed": true, "elem": { @@ -143819,23 +148196,16 @@ } }, { - "name": "downloaded", - "type": "TypeBool", - "description": "Indicates whether the secret data that is associated with a secret version was retrieved.", - "computed": true - }, - { - "name": "secret_group_id", + "name": "crn", "type": "TypeString", - "description": "A v4 UUID identifier, or `default` secret group.", - "immutable": true, - "optional": true, + "description": "A CRN that uniquely identifies an IBM Cloud resource.", + "cloud_data_type": "crn", "computed": true }, { - "name": "created_at", + "name": "secret_id", "type": "TypeString", - "description": "The date that a resource was created. The date format follows RFC 3339.", + "description": "A v4 UUID identifier.", "computed": true }, { @@ -143845,25 +148215,11 @@ "computed": true }, { - "name": "versions_total", - "type": "TypeInt", - "description": "The number of versions of the secret.", - "computed": true - }, - { - "name": "instance_id", + "name": "name", "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", - "immutable": true, + "description": "A human-readable name to assign to your secret.To protect your privacy, do not use personal data, such as your name or location, as a name for your secret.", "required": true }, - { - "name": "secret_type", - "type": "TypeString", - "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", - "computed": true - }, { "name": "custom_metadata", "type": "TypeMap", @@ -143875,30 +148231,52 @@ } }, { - "name": "expiration_date", - "type": "TypeString", - "description": "The date a secret is expired. The date format follows RFC 3339.", - "optional": true + "name": "labels", + "type": "TypeList", + "description": "Labels that you can use to search for secrets in your instance.Up to 30 labels can be created.", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "region", + "name": "created_at", "type": "TypeString", - "description": "The region of the Secrets Manager instance.", - "cloud_data_type": "region", - "immutable": true, - "optional": true, + "description": "The date that a resource was created. The date format follows RFC 3339.", "computed": true }, { - "name": "secret_id", - "type": "TypeString", - "description": "A v4 UUID identifier.", + "name": "downloaded", + "type": "TypeBool", + "description": "Indicates whether the secret data that is associated with a secret version was retrieved.", "computed": true }, { - "name": "state", + "name": "locks_total", "type": "TypeInt", - "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", + "description": "The number of locks of the secret.", + "computed": true + }, + { + "name": "instance_id", + "type": "TypeString", + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true + }, + { + "name": "payload", + "type": "TypeString", + "description": "The arbitrary secret data payload.", + "secure": true, + "required": true + }, + { + "name": "created_by", + "type": "TypeString", + "description": "The unique identifier that is associated with the entity that created the secret.", "computed": true }, { @@ -143907,6 +148285,12 @@ "description": "A text representation of the secret state.", "computed": true }, + { + "name": "versions_total", + "type": "TypeInt", + "description": "The number of versions of the secret.", + "computed": true + }, { "name": "endpoint_type", "type": "TypeString", @@ -143914,29 +148298,49 @@ "optional": true }, { - "name": "name", + "name": "secret_group_id", "type": "TypeString", - "description": "A human-readable name to assign to your secret.To protect your privacy, do not use personal data, such as your name or location, as a name for your secret.", - "required": true + "description": "A v4 UUID identifier, or `default` secret group.", + "immutable": true, + "optional": true, + "computed": true }, { - "name": "version_custom_metadata", - "type": "TypeMap", - "description": "The secret version metadata that a user can customize.", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "state", + "type": "TypeInt", + "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", + "computed": true }, { - "name": "created_by", + "name": "region", "type": "TypeString", - "description": "The unique identifier that is associated with the entity that created the secret.", + "description": "The region of the Secrets Manager instance.", + "cloud_data_type": "region", + "immutable": true, + "optional": true, "computed": true } ], "ibm_sm_en_registration": [ + { + "name": "event_notifications_source_name", + "type": "TypeString", + "description": "The name that is displayed as a source that is in your Event Notifications instance.", + "immutable": true, + "required": true, + "min_length": 2, + "max_length": 256, + "matches": "(.*?)" + }, + { + "name": "event_notifications_source_description", + "type": "TypeString", + "description": "An optional description for the source that is in your Event Notifications instance.", + "immutable": true, + "max_length": 1024, + "matches": "(.*?)", + "optional": true + }, { "name": "instance_id", "type": "TypeString", @@ -143969,61 +148373,55 @@ "min_length": 9, "max_length": 512, "matches": "^crn:v[0-9](:([A-Za-z0-9-._~!$\u0026'()*+,;=@\\/]|%[0-9A-Z]{2})*){8}$" - }, + } + ], + "ibm_sm_iam_credentials_configuration": [ { - "name": "event_notifications_source_name", + "name": "instance_id", "type": "TypeString", - "description": "The name that is displayed as a source that is in your Event Notifications instance.", + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", "immutable": true, - "required": true, - "min_length": 2, - "max_length": 256, - "matches": "(.*?)" + "required": true }, { - "name": "event_notifications_source_description", + "name": "region", "type": "TypeString", - "description": "An optional description for the source that is in your Event Notifications instance.", + "description": "The region of the Secrets Manager instance.", + "cloud_data_type": "region", "immutable": true, - "max_length": 1024, - "matches": "(.*?)", - "optional": true - } - ], - "ibm_sm_iam_credentials_configuration": [ + "optional": true, + "computed": true + }, { - "name": "created_by", + "name": "api_key", "type": "TypeString", - "description": "The unique identifier that is associated with the entity that created the secret.", - "computed": true + "description": "An IBM Cloud API key that can create and manage service IDs. The API key must be assigned the Editor platform role on the Access Groups Service and the Operator platform role on the IAM Identity Service. For more information, see the [docs](https://cloud.ibm.com/docs/secrets-manager?topic=secrets-manager-configure-iam-engine).", + "secure": true, + "required": true }, { - "name": "created_at", + "name": "created_by", "type": "TypeString", - "description": "The date when a resource was created. The date format follows RFC 3339.", + "description": "The unique identifier that is associated with the entity that created the secret.", "computed": true }, { - "name": "updated_at", + "name": "secret_type", "type": "TypeString", - "description": "The date when a resource was recently modified. The date format follows RFC 3339.", + "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", "computed": true }, { - "name": "instance_id", + "name": "created_at", "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true + "description": "The date when a resource was created. The date format follows RFC 3339.", + "computed": true }, { - "name": "region", + "name": "updated_at", "type": "TypeString", - "description": "The region of the Secrets Manager instance.", - "cloud_data_type": "region", - "immutable": true, - "optional": true, + "description": "The date when a resource was recently modified. The date format follows RFC 3339.", "computed": true }, { @@ -144044,22 +148442,33 @@ "type": "TypeString", "description": "The configuration type.", "computed": true + } + ], + "ibm_sm_iam_credentials_secret": [ + { + "name": "api_key_id", + "type": "TypeString", + "description": "The ID of the API key that is generated for this secret.", + "computed": true }, { - "name": "api_key", + "name": "endpoint_type", "type": "TypeString", - "description": "An IBM Cloud API key that can create and manage service IDs. The API key must be assigned the Editor platform role on the Access Groups Service and the Operator platform role on the IAM Identity Service. For more information, see the [docs](https://cloud.ibm.com/docs/secrets-manager?topic=secrets-manager-configure-iam-engine).", - "secure": true, - "required": true + "description": "public or private.", + "optional": true }, { "name": "secret_type", "type": "TypeString", "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", "computed": true - } - ], - "ibm_sm_iam_credentials_secret": [ + }, + { + "name": "ttl", + "type": "TypeString", + "description": "The time-to-live (TTL) or lease duration to assign to generated credentials.For `iam_credentials` secrets, the TTL defines for how long each generated API key remains valid. The value is an integer that specifies the number of seconds .Minimum duration is 1 minute. Maximum is 90 days.", + "required": true + }, { "name": "created_at", "type": "TypeString", @@ -144067,28 +148476,22 @@ "computed": true }, { - "name": "next_rotation_date", + "name": "crn", "type": "TypeString", - "description": "The date that the secret is scheduled for automatic rotation.The service automatically creates a new version of the secret on its next rotation date. This field exists only for secrets that have an existing rotation policy.", + "description": "A CRN that uniquely identifies an IBM Cloud resource.", + "cloud_data_type": "crn", "computed": true }, { - "name": "reuse_api_key", + "name": "downloaded", "type": "TypeBool", - "description": "Determines whether to use the same service ID and API key for future read operations on an`iam_credentials` secret. Must be set to `true` for IAM credentials secrets managed with Terraform.", - "default_value": true, - "optional": true - }, - { - "name": "created_by", - "type": "TypeString", - "description": "The unique identifier that is associated with the entity that created the secret.", + "description": "Indicates whether the secret data that is associated with a secret version was retrieved in a call to the service API.", "computed": true }, { - "name": "versions_total", - "type": "TypeInt", - "description": "The number of versions of the secret.", + "name": "updated_at", + "type": "TypeString", + "description": "The date when a resource was recently modified. The date format follows RFC 3339.", "computed": true }, { @@ -144098,57 +148501,22 @@ "optional": true }, { - "name": "rotation", - "type": "TypeList", - "description": "Determines whether Secrets Manager rotates your secrets automatically.", + "name": "secret_group_id", + "type": "TypeString", + "description": "A v4 UUID identifier, or `default` secret group.", + "immutable": true, "optional": true, - "computed": true, - "elem": { - "auto_rotate": { - "name": "auto_rotate", - "type": "TypeBool", - "description": "Determines whether Secrets Manager rotates your secret automatically.Default is `false`. If `auto_rotate` is set to `true` the service rotates your secret based on the defined interval.", - "optional": true, - "computed": true - }, - "interval": { - "name": "interval", - "type": "TypeInt", - "description": "The length of the secret rotation time interval.", - "optional": true, - "computed": true - }, - "rotate_keys": { - "name": "rotate_keys", - "type": "TypeBool", - "description": "Determines whether Secrets Manager rotates the private key for your public certificate automatically.Default is `false`. If it is set to `true`, the service generates and stores a new private key for your rotated certificate.", - "optional": true, - "computed": true - }, - "unit": { - "name": "unit", - "type": "TypeString", - "description": "The units for the secret rotation time interval.", - "optional": true, - "computed": true - } - }, - "max_items": 1 - }, - { - "name": "state", - "type": "TypeInt", - "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", "computed": true }, { - "name": "region", - "type": "TypeString", - "description": "The region of the Secrets Manager instance.", - "cloud_data_type": "region", + "name": "access_groups", + "type": "TypeList", + "description": "Access Groups that you can use for an `iam_credentials` secret.Up to 10 Access Groups can be used for each secret.", "immutable": true, "optional": true, - "computed": true + "elem": { + "type": "TypeString" + } }, { "name": "custom_metadata", @@ -144171,18 +148539,18 @@ } }, { - "name": "downloaded", - "type": "TypeBool", - "description": "Indicates whether the secret data that is associated with a secret version was retrieved in a call to the service API.", + "name": "state", + "type": "TypeInt", + "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", "computed": true }, { - "name": "instance_id", + "name": "service_id", "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", + "description": "The service ID under which the API key (see the `api_key` field) is created.If you omit this parameter, Secrets Manager generates a new service ID for your secret at its creation and adds it to the access groups that you assign.Optionally, you can use this field to provide your own service ID if you prefer to manage its access directly or retain the service ID after your secret expires, is rotated, or deleted. If you provide a service ID, do not include the `access_groups` parameter.", "immutable": true, - "required": true + "optional": true, + "computed": true }, { "name": "secret_id", @@ -144191,9 +148559,9 @@ "computed": true }, { - "name": "api_key_id", + "name": "state_description", "type": "TypeString", - "description": "The ID of the API key that is generated for this secret.", + "description": "A text representation of the secret state.", "computed": true }, { @@ -144204,34 +148572,9 @@ "computed": true }, { - "name": "secret_type", - "type": "TypeString", - "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", - "computed": true - }, - { - "name": "access_groups", - "type": "TypeList", - "description": "Access Groups that you can use for an `iam_credentials` secret.Up to 10 Access Groups can be used for each secret.", - "immutable": true, - "optional": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "service_id", - "type": "TypeString", - "description": "The service ID under which the API key (see the `api_key` field) is created.If you omit this parameter, Secrets Manager generates a new service ID for your secret at its creation and adds it to the access groups that you assign.Optionally, you can use this field to provide your own service ID if you prefer to manage its access directly or retain the service ID after your secret expires, is rotated, or deleted. If you provide a service ID, do not include the `access_groups` parameter.", - "immutable": true, - "optional": true, - "computed": true - }, - { - "name": "crn", + "name": "created_by", "type": "TypeString", - "description": "A CRN that uniquely identifies an IBM Cloud resource.", - "cloud_data_type": "crn", + "description": "The unique identifier that is associated with the entity that created the secret.", "computed": true }, { @@ -144241,10 +148584,10 @@ "computed": true }, { - "name": "updated_at", + "name": "name", "type": "TypeString", - "description": "The date when a resource was recently modified. The date format follows RFC 3339.", - "computed": true + "description": "A human-readable name to assign to your secret.To protect your privacy, do not use personal data, such as your name or location, as a name for your secret.", + "required": true }, { "name": "service_id_is_static", @@ -144253,33 +148596,68 @@ "computed": true }, { - "name": "endpoint_type", + "name": "instance_id", "type": "TypeString", - "description": "public or private.", - "optional": true + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true }, { - "name": "name", - "type": "TypeString", - "description": "A human-readable name to assign to your secret.To protect your privacy, do not use personal data, such as your name or location, as a name for your secret.", - "required": true + "name": "rotation", + "type": "TypeList", + "description": "Determines whether Secrets Manager rotates your secrets automatically.", + "optional": true, + "computed": true, + "elem": { + "auto_rotate": { + "name": "auto_rotate", + "type": "TypeBool", + "description": "Determines whether Secrets Manager rotates your secret automatically.Default is `false`. If `auto_rotate` is set to `true` the service rotates your secret based on the defined interval.", + "optional": true, + "computed": true + }, + "interval": { + "name": "interval", + "type": "TypeInt", + "description": "The length of the secret rotation time interval.", + "optional": true, + "computed": true + }, + "rotate_keys": { + "name": "rotate_keys", + "type": "TypeBool", + "description": "Determines whether Secrets Manager rotates the private key for your public certificate automatically.Default is `false`. If it is set to `true`, the service generates and stores a new private key for your rotated certificate.", + "optional": true, + "computed": true + }, + "unit": { + "name": "unit", + "type": "TypeString", + "description": "The units for the secret rotation time interval.", + "optional": true, + "computed": true + } + }, + "max_items": 1 }, { - "name": "ttl", - "type": "TypeString", - "description": "The time-to-live (TTL) or lease duration to assign to generated credentials.For `iam_credentials` secrets, the TTL defines for how long each generated API key remains valid. The value is an integer that specifies the number of seconds .Minimum duration is 1 minute. Maximum is 90 days.", - "required": true + "name": "versions_total", + "type": "TypeInt", + "description": "The number of versions of the secret.", + "computed": true }, { - "name": "state_description", + "name": "next_rotation_date", "type": "TypeString", - "description": "A text representation of the secret state.", + "description": "The date that the secret is scheduled for automatic rotation.The service automatically creates a new version of the secret on its next rotation date. This field exists only for secrets that have an existing rotation policy.", "computed": true }, { - "name": "secret_group_id", + "name": "region", "type": "TypeString", - "description": "A v4 UUID identifier, or `default` secret group.", + "description": "The region of the Secrets Manager instance.", + "cloud_data_type": "region", "immutable": true, "optional": true, "computed": true @@ -144293,31 +148671,59 @@ "elem": { "type": "TypeString" } + }, + { + "name": "reuse_api_key", + "type": "TypeBool", + "description": "Determines whether to use the same service ID and API key for future read operations on an`iam_credentials` secret. Must be set to `true` for IAM credentials secrets managed with Terraform.", + "default_value": true, + "optional": true } ], "ibm_sm_imported_certificate": [ { - "name": "common_name", + "name": "signing_algorithm", "type": "TypeString", - "description": "The Common Name (AKA CN) represents the server name that is protected by the SSL certificate.", + "description": "The identifier for the cryptographic algorithm that was used by the issuing certificate authority to sign a certificate.", "computed": true }, { - "name": "created_by", + "name": "name", "type": "TypeString", - "description": "The unique identifier that is associated with the entity that created the secret.", - "computed": true + "description": "A human-readable name to assign to your secret.To protect your privacy, do not use personal data, such as your name or location, as a name for your secret.", + "required": true }, { - "name": "endpoint_type", + "name": "intermediate", "type": "TypeString", - "description": "public or private.", + "description": "(Optional) The PEM-encoded intermediate certificate to associate with the root certificate.", + "secure": true, "optional": true }, { - "name": "custom_metadata", + "name": "state_description", + "type": "TypeString", + "description": "A text representation of the secret state.", + "computed": true + }, + { + "name": "secret_id", + "type": "TypeString", + "description": "A v4 UUID identifier.", + "computed": true + }, + { + "name": "secret_group_id", + "type": "TypeString", + "description": "A v4 UUID identifier, or `default` secret group.", + "immutable": true, + "optional": true, + "computed": true + }, + { + "name": "version_custom_metadata", "type": "TypeMap", - "description": "The secret metadata that a user can customize.", + "description": "The secret version metadata that a user can customize.", "optional": true, "computed": true, "elem": { @@ -144325,36 +148731,34 @@ } }, { - "name": "description", - "type": "TypeString", - "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", - "optional": true - }, - { - "name": "intermediate", - "type": "TypeString", - "description": "(Optional) The PEM-encoded intermediate certificate to associate with the root certificate.", - "secure": true, - "optional": true + "name": "alt_names", + "type": "TypeList", + "description": "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "private_key", + "name": "expiration_date", "type": "TypeString", - "description": "(Optional) The PEM-encoded private key to associate with the certificate.", - "secure": true, - "optional": true + "description": "The date a secret is expired. The date format follows RFC 3339.", + "computed": true }, { - "name": "created_at", - "type": "TypeString", - "description": "The date when a resource was created. The date format follows RFC 3339.", - "computed": true + "name": "labels", + "type": "TypeList", + "description": "Labels that you can use to search for secrets in your instance.Up to 30 labels can be created.", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "crn", + "name": "secret_type", "type": "TypeString", - "description": "A CRN that uniquely identifies an IBM Cloud resource.", - "cloud_data_type": "crn", + "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", "computed": true }, { @@ -144364,21 +148768,38 @@ "computed": true }, { - "name": "state", + "name": "locks_total", "type": "TypeInt", - "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", + "description": "The number of locks of the secret.", "computed": true }, { - "name": "expiration_date", + "name": "serial_number", "type": "TypeString", - "description": "The date a secret is expired. The date format follows RFC 3339.", + "description": "The unique serial number that was assigned to a certificate by the issuing certificate authority.", "computed": true }, { - "name": "version_custom_metadata", + "name": "instance_id", + "type": "TypeString", + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true + }, + { + "name": "region", + "type": "TypeString", + "description": "The region of the Secrets Manager instance.", + "cloud_data_type": "region", + "immutable": true, + "optional": true, + "computed": true + }, + { + "name": "custom_metadata", "type": "TypeMap", - "description": "The secret version metadata that a user can customize.", + "description": "The secret metadata that a user can customize.", "optional": true, "computed": true, "elem": { @@ -144386,11 +148807,10 @@ } }, { - "name": "certificate", + "name": "key_algorithm", "type": "TypeString", - "description": "The PEM-encoded contents of your certificate.", - "secure": true, - "required": true + "description": "The identifier for the cryptographic algorithm to be used to generate the public key that is associated with the certificate.The algorithm that you select determines the encryption algorithm (`RSA` or `ECDSA`) and key size to be used to generate keys and sign certificates. For longer living certificates, it is recommended to use longer keys to provide more encryption protection. Allowed values: RSA2048, RSA4096, EC256, EC384.", + "computed": true }, { "name": "versions_total", @@ -144398,12 +148818,6 @@ "description": "The number of versions of the secret.", "computed": true }, - { - "name": "intermediate_included", - "type": "TypeBool", - "description": "Indicates whether the certificate was imported with an associated intermediate certificate.", - "computed": true - }, { "name": "validity", "type": "TypeList", @@ -144425,15 +148839,28 @@ } }, { - "name": "key_algorithm", + "name": "description", "type": "TypeString", - "description": "The identifier for the cryptographic algorithm to be used to generate the public key that is associated with the certificate.The algorithm that you select determines the encryption algorithm (`RSA` or `ECDSA`) and key size to be used to generate keys and sign certificates. For longer living certificates, it is recommended to use longer keys to provide more encryption protection. Allowed values: RSA2048, RSA4096, EC256, EC384.", - "computed": true + "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", + "optional": true }, { - "name": "state_description", + "name": "private_key", "type": "TypeString", - "description": "A text representation of the secret state.", + "description": "(Optional) The PEM-encoded private key to associate with the certificate.", + "secure": true, + "optional": true + }, + { + "name": "created_at", + "type": "TypeString", + "description": "The date when a resource was created. The date format follows RFC 3339.", + "computed": true + }, + { + "name": "intermediate_included", + "type": "TypeBool", + "description": "Indicates whether the certificate was imported with an associated intermediate certificate.", "computed": true }, { @@ -144449,56 +148876,51 @@ "computed": true }, { - "name": "labels", - "type": "TypeList", - "description": "Labels that you can use to search for secrets in your instance.Up to 30 labels can be created.", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "secret_type", + "name": "created_by", "type": "TypeString", - "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", + "description": "The unique identifier that is associated with the entity that created the secret.", "computed": true }, { - "name": "signing_algorithm", - "type": "TypeString", - "description": "The identifier for the cryptographic algorithm that was used by the issuing certificate authority to sign a certificate.", + "name": "state", + "type": "TypeInt", + "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", "computed": true }, { - "name": "secret_id", + "name": "endpoint_type", "type": "TypeString", - "description": "A v4 UUID identifier.", - "computed": true + "description": "public or private.", + "optional": true }, { - "name": "name", + "name": "certificate", "type": "TypeString", - "description": "A human-readable name to assign to your secret.To protect your privacy, do not use personal data, such as your name or location, as a name for your secret.", + "description": "The PEM-encoded contents of your certificate.", + "secure": true, "required": true }, { - "name": "secret_group_id", + "name": "common_name", "type": "TypeString", - "description": "A v4 UUID identifier, or `default` secret group.", - "immutable": true, - "optional": true, + "description": "The Common Name (AKA CN) represents the server name that is protected by the SSL certificate.", "computed": true }, { - "name": "region", + "name": "crn", "type": "TypeString", - "description": "The region of the Secrets Manager instance.", - "cloud_data_type": "region", - "immutable": true, - "optional": true, + "description": "A CRN that uniquely identifies an IBM Cloud resource.", + "cloud_data_type": "crn", "computed": true }, + { + "name": "updated_at", + "type": "TypeString", + "description": "The date when a resource was recently modified. The date format follows RFC 3339.", + "computed": true + } + ], + "ibm_sm_kv_secret": [ { "name": "locks_total", "type": "TypeInt", @@ -144506,36 +148928,45 @@ "computed": true }, { - "name": "updated_at", + "name": "region", "type": "TypeString", - "description": "The date when a resource was recently modified. The date format follows RFC 3339.", + "description": "The region of the Secrets Manager instance.", + "cloud_data_type": "region", + "immutable": true, + "optional": true, "computed": true }, { - "name": "alt_names", - "type": "TypeList", - "description": "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "endpoint_type", + "type": "TypeString", + "description": "public or private.", + "optional": true }, { - "name": "serial_number", + "name": "secret_type", "type": "TypeString", - "description": "The unique serial number that was assigned to a certificate by the issuing certificate authority.", + "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", "computed": true }, { - "name": "instance_id", + "name": "name", "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", - "immutable": true, + "description": "A human-readable name to assign to your secret.To protect your privacy, do not use personal data, such as your name or location, as a name for your secret.", "required": true - } - ], - "ibm_sm_kv_secret": [ + }, + { + "name": "description", + "type": "TypeString", + "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", + "optional": true + }, + { + "name": "crn", + "type": "TypeString", + "description": "A CRN that uniquely identifies an IBM Cloud resource.", + "cloud_data_type": "crn", + "computed": true + }, { "name": "downloaded", "type": "TypeBool", @@ -144548,24 +148979,6 @@ "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", "computed": true }, - { - "name": "versions_total", - "type": "TypeInt", - "description": "The number of versions of the secret.", - "computed": true - }, - { - "name": "name", - "type": "TypeString", - "description": "A human-readable name to assign to your secret.To protect your privacy, do not use personal data, such as your name or location, as a name for your secret.", - "required": true - }, - { - "name": "created_at", - "type": "TypeString", - "description": "The date when a resource was created. The date format follows RFC 3339.", - "computed": true - }, { "name": "updated_at", "type": "TypeString", @@ -144573,21 +148986,23 @@ "computed": true }, { - "name": "secret_id", - "type": "TypeString", - "description": "A v4 UUID identifier.", + "name": "versions_total", + "type": "TypeInt", + "description": "The number of versions of the secret.", "computed": true }, { - "name": "endpoint_type", + "name": "secret_group_id", "type": "TypeString", - "description": "public or private.", - "optional": true + "description": "A v4 UUID identifier, or `default` secret group.", + "immutable": true, + "optional": true, + "computed": true }, { - "name": "custom_metadata", - "type": "TypeMap", - "description": "The secret metadata that a user can customize.", + "name": "labels", + "type": "TypeList", + "description": "Labels that you can use to search for secrets in your instance.Up to 30 labels can be created.", "optional": true, "computed": true, "elem": { @@ -144595,17 +149010,21 @@ } }, { - "name": "description", + "name": "created_by", "type": "TypeString", - "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", - "optional": true + "description": "The unique identifier that is associated with the entity that created the secret.", + "computed": true }, { - "name": "secret_group_id", + "name": "created_at", "type": "TypeString", - "description": "A v4 UUID identifier, or `default` secret group.", - "immutable": true, - "optional": true, + "description": "The date when a resource was created. The date format follows RFC 3339.", + "computed": true + }, + { + "name": "secret_id", + "type": "TypeString", + "description": "A v4 UUID identifier.", "computed": true }, { @@ -144618,6 +149037,16 @@ "type": "TypeString" } }, + { + "name": "custom_metadata", + "type": "TypeMap", + "description": "The secret metadata that a user can customize.", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, { "name": "version_custom_metadata", "type": "TypeMap", @@ -144629,44 +149058,41 @@ } }, { - "name": "created_by", + "name": "state_description", "type": "TypeString", - "description": "The unique identifier that is associated with the entity that created the secret.", + "description": "A text representation of the secret state.", "computed": true }, { - "name": "crn", + "name": "instance_id", "type": "TypeString", - "description": "A CRN that uniquely identifies an IBM Cloud resource.", - "cloud_data_type": "crn", - "computed": true - }, + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true + } + ], + "ibm_sm_private_certificate": [ { - "name": "state_description", + "name": "uri_sans", "type": "TypeString", - "description": "A text representation of the secret state.", - "computed": true + "description": "The URI Subject Alternative Names to define for the CA certificate, in a comma-delimited list.", + "immutable": true, + "optional": true }, { - "name": "secret_type", + "name": "private_key_format", "type": "TypeString", - "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", - "computed": true + "description": "The format of the generated private key.", + "default_value": "der", + "optional": true }, { - "name": "region", - "type": "TypeString", - "description": "The region of the Secrets Manager instance.", - "cloud_data_type": "region", + "name": "exclude_cn_from_sans", + "type": "TypeBool", + "description": "Controls whether the common name is excluded from Subject Alternative Names (SANs).If the common name set to `true`, it is not included in DNS or Email SANs if they apply. This field can be useful if the common name is a human-readable identifier, instead of a hostname or an email address.", "immutable": true, - "optional": true, - "computed": true - }, - { - "name": "locks_total", - "type": "TypeInt", - "description": "The number of locks of the secret.", - "computed": true + "optional": true }, { "name": "instance_id", @@ -144677,39 +149103,33 @@ "required": true }, { - "name": "labels", - "type": "TypeList", - "description": "Labels that you can use to search for secrets in your instance.Up to 30 labels can be created.", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - } - ], - "ibm_sm_private_certificate": [ + "name": "endpoint_type", + "type": "TypeString", + "description": "public or private.", + "optional": true + }, { - "name": "labels", - "type": "TypeList", - "description": "Labels that you can use to search for secrets in your instance.Up to 30 labels can be created.", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "secret_type", + "type": "TypeString", + "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", + "computed": true }, { - "name": "uri_sans", + "name": "description", "type": "TypeString", - "description": "The URI Subject Alternative Names to define for the CA certificate, in a comma-delimited list.", - "immutable": true, + "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", "optional": true }, { - "name": "locks_total", - "type": "TypeInt", - "description": "The number of locks of the secret.", - "computed": true + "name": "alt_names", + "type": "TypeList", + "description": "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", + "immutable": true, + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } }, { "name": "versions_total", @@ -144718,56 +149138,43 @@ "computed": true }, { - "name": "validity", + "name": "ca_chain", "type": "TypeList", - "description": "The date and time that the certificate validity period begins and ends.", + "description": "The chain of certificate authorities that are associated with the certificate.", + "secure": true, "computed": true, "elem": { - "not_after": { - "name": "not_after", - "type": "TypeString", - "description": "The date-time format follows RFC 3339.", - "computed": true - }, - "not_before": { - "name": "not_before", - "type": "TypeString", - "description": "The date-time format follows RFC 3339.", - "computed": true - } + "type": "TypeString" } }, { - "name": "version_custom_metadata", - "type": "TypeMap", - "description": "The secret version metadata that a user can customize.", - "immutable": true, + "name": "name", + "type": "TypeString", + "description": "A human-readable name to assign to your secret.To protect your privacy, do not use personal data, such as your name or location, as a name for your secret.", + "required": true + }, + { + "name": "labels", + "type": "TypeList", + "description": "Labels that you can use to search for secrets in your instance.Up to 30 labels can be created.", "optional": true, + "computed": true, "elem": { "type": "TypeString" } }, { - "name": "signing_algorithm", + "name": "secret_id", "type": "TypeString", - "description": "The identifier for the cryptographic algorithm that was used by the issuing certificate authority to sign a certificate.", + "description": "A v4 UUID identifier.", "computed": true }, { - "name": "next_rotation_date", + "name": "certificate_template", "type": "TypeString", - "description": "The date that the secret is scheduled for automatic rotation.The service automatically creates a new version of the secret on its next rotation date. This field exists only for secrets that have an existing rotation policy.", - "computed": true - }, - { - "name": "ca_chain", - "type": "TypeList", - "description": "The chain of certificate authorities that are associated with the certificate.", - "secure": true, - "computed": true, - "elem": { - "type": "TypeString" - } + "description": "The name of the certificate template.", + "immutable": true, + "required": true }, { "name": "crn", @@ -144777,63 +149184,40 @@ "computed": true }, { - "name": "secret_id", - "type": "TypeString", - "description": "A v4 UUID identifier.", + "name": "state", + "type": "TypeInt", + "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", "computed": true }, { - "name": "updated_at", + "name": "created_at", "type": "TypeString", - "description": "The date when a resource was recently modified. The date format follows RFC 3339.", + "description": "The date when a resource was created. The date format follows RFC 3339.", "computed": true }, { - "name": "expiration_date", + "name": "updated_at", "type": "TypeString", - "description": "The date a secret is expired. The date format follows RFC 3339.", + "description": "The date when a resource was recently modified. The date format follows RFC 3339.", "computed": true }, { - "name": "secret_group_id", + "name": "issuing_ca", "type": "TypeString", - "description": "A v4 UUID identifier, or `default` secret group.", - "immutable": true, - "optional": true, + "description": "The PEM-encoded certificate of the certificate authority that signed and issued this certificate.", + "secure": true, "computed": true }, { - "name": "certificate_template", + "name": "state_description", "type": "TypeString", - "description": "The name of the certificate template.", - "immutable": true, - "required": true - }, - { - "name": "alt_names", - "type": "TypeList", - "description": "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", - "immutable": true, - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "custom_metadata", - "type": "TypeMap", - "description": "The secret metadata that a user can customize.", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } + "description": "A text representation of the secret state.", + "computed": true }, { - "name": "issuer", + "name": "expiration_date", "type": "TypeString", - "description": "The distinguished name that identifies the entity that signed and issued the certificate.", + "description": "The date a secret is expired. The date format follows RFC 3339.", "computed": true }, { @@ -144845,33 +149229,9 @@ "optional": true }, { - "name": "instance_id", - "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true - }, - { - "name": "region", - "type": "TypeString", - "description": "The region of the Secrets Manager instance.", - "cloud_data_type": "region", - "immutable": true, - "optional": true, - "computed": true - }, - { - "name": "csr", + "name": "ip_sans", "type": "TypeString", - "description": "The certificate signing request.", - "immutable": true, - "optional": true - }, - { - "name": "exclude_cn_from_sans", - "type": "TypeBool", - "description": "Controls whether the common name is excluded from Subject Alternative Names (SANs).If the common name set to `true`, it is not included in DNS or Email SANs if they apply. This field can be useful if the common name is a human-readable identifier, instead of a hostname or an email address.", + "description": "The IP Subject Alternative Names to define for the CA certificate, in a comma-delimited list.", "immutable": true, "optional": true }, @@ -144883,30 +149243,47 @@ "optional": true }, { - "name": "created_at", - "type": "TypeString", - "description": "The date when a resource was created. The date format follows RFC 3339.", - "computed": true + "name": "version_custom_metadata", + "type": "TypeMap", + "description": "The secret version metadata that a user can customize.", + "immutable": true, + "optional": true, + "elem": { + "type": "TypeString" + } }, { - "name": "name", - "type": "TypeString", - "description": "A human-readable name to assign to your secret.To protect your privacy, do not use personal data, such as your name or location, as a name for your secret.", - "required": true + "name": "locks_total", + "type": "TypeInt", + "description": "The number of locks of the secret.", + "computed": true }, { - "name": "common_name", - "type": "TypeString", - "description": "The Common Name (AKA CN) represents the server name that is protected by the SSL certificate.", - "immutable": true, - "required": true + "name": "validity", + "type": "TypeList", + "description": "The date and time that the certificate validity period begins and ends.", + "computed": true, + "elem": { + "not_after": { + "name": "not_after", + "type": "TypeString", + "description": "The date-time format follows RFC 3339.", + "computed": true + }, + "not_before": { + "name": "not_before", + "type": "TypeString", + "description": "The date-time format follows RFC 3339.", + "computed": true + } + } }, { - "name": "ip_sans", + "name": "private_key", "type": "TypeString", - "description": "The IP Subject Alternative Names to define for the CA certificate, in a comma-delimited list.", - "immutable": true, - "optional": true + "description": "(Optional) The PEM-encoded private key to associate with the certificate.", + "secure": true, + "computed": true }, { "name": "other_sans", @@ -144919,22 +149296,15 @@ } }, { - "name": "certificate_authority", - "type": "TypeString", - "description": "The intermediate certificate authority that signed this certificate.", - "computed": true - }, - { - "name": "serial_number", + "name": "created_by", "type": "TypeString", - "description": "The unique serial number that was assigned to a certificate by the issuing certificate authority.", + "description": "The unique identifier that is associated with the entity that created the secret.", "computed": true }, { - "name": "certificate", - "type": "TypeString", - "description": "The PEM-encoded contents of your certificate.", - "secure": true, + "name": "downloaded", + "type": "TypeBool", + "description": "Indicates whether the secret data that is associated with a secret version was retrieved in a call to the service API.", "computed": true }, { @@ -144945,121 +149315,128 @@ "optional": true }, { - "name": "rotation", - "type": "TypeList", - "description": "Determines whether Secrets Manager rotates your secrets automatically.", + "name": "custom_metadata", + "type": "TypeMap", + "description": "The secret metadata that a user can customize.", "optional": true, "computed": true, "elem": { - "auto_rotate": { - "name": "auto_rotate", - "type": "TypeBool", - "description": "Determines whether Secrets Manager rotates your secret automatically.Default is `false`. If `auto_rotate` is set to `true` the service rotates your secret based on the defined interval.", - "optional": true, - "computed": true - }, - "interval": { - "name": "interval", - "type": "TypeInt", - "description": "The length of the secret rotation time interval.", - "optional": true, - "computed": true - }, - "unit": { - "name": "unit", - "type": "TypeString", - "description": "The units for the secret rotation time interval.", - "optional": true, - "computed": true - } - }, - "max_items": 1 + "type": "TypeString" + } }, { - "name": "issuing_ca", + "name": "signing_algorithm", "type": "TypeString", - "description": "The PEM-encoded certificate of the certificate authority that signed and issued this certificate.", - "secure": true, + "description": "The identifier for the cryptographic algorithm that was used by the issuing certificate authority to sign a certificate.", "computed": true }, { - "name": "secret_type", + "name": "certificate_authority", "type": "TypeString", - "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", + "description": "The intermediate certificate authority that signed this certificate.", "computed": true }, { - "name": "downloaded", - "type": "TypeBool", - "description": "Indicates whether the secret data that is associated with a secret version was retrieved in a call to the service API.", + "name": "next_rotation_date", + "type": "TypeString", + "description": "The date that the secret is scheduled for automatic rotation.The service automatically creates a new version of the secret on its next rotation date. This field exists only for secrets that have an existing rotation policy.", "computed": true }, { - "name": "state", - "type": "TypeInt", - "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", + "name": "secret_group_id", + "type": "TypeString", + "description": "A v4 UUID identifier, or `default` secret group.", + "immutable": true, + "optional": true, "computed": true }, { - "name": "state_description", + "name": "common_name", "type": "TypeString", - "description": "A text representation of the secret state.", - "computed": true + "description": "The Common Name (AKA CN) represents the server name that is protected by the SSL certificate.", + "immutable": true, + "required": true }, { - "name": "revocation_time_rfc3339", + "name": "csr", "type": "TypeString", - "description": "The date and time that the certificate was revoked. The date format follows RFC 3339.", - "computed": true + "description": "The certificate signing request.", + "immutable": true, + "optional": true }, { - "name": "private_key", + "name": "serial_number", "type": "TypeString", - "description": "(Optional) The PEM-encoded private key to associate with the certificate.", - "secure": true, + "description": "The unique serial number that was assigned to a certificate by the issuing certificate authority.", "computed": true }, { - "name": "endpoint_type", - "type": "TypeString", - "description": "public or private.", - "optional": true + "name": "revocation_time_seconds", + "type": "TypeInt", + "description": "The timestamp of the certificate revocation.", + "computed": true }, { - "name": "description", + "name": "certificate", "type": "TypeString", - "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", - "optional": true + "description": "The PEM-encoded contents of your certificate.", + "secure": true, + "computed": true }, { - "name": "private_key_format", + "name": "region", "type": "TypeString", - "description": "The format of the generated private key.", - "default_value": "der", - "optional": true + "description": "The region of the Secrets Manager instance.", + "cloud_data_type": "region", + "immutable": true, + "optional": true, + "computed": true + }, + { + "name": "rotation", + "type": "TypeList", + "description": "Determines whether Secrets Manager rotates your secrets automatically.", + "optional": true, + "computed": true, + "elem": { + "auto_rotate": { + "name": "auto_rotate", + "type": "TypeBool", + "description": "Determines whether Secrets Manager rotates your secret automatically.Default is `false`. If `auto_rotate` is set to `true` the service rotates your secret based on the defined interval.", + "optional": true, + "computed": true + }, + "interval": { + "name": "interval", + "type": "TypeInt", + "description": "The length of the secret rotation time interval.", + "optional": true, + "computed": true + }, + "unit": { + "name": "unit", + "type": "TypeString", + "description": "The units for the secret rotation time interval.", + "optional": true, + "computed": true + } + }, + "max_items": 1 }, { - "name": "created_by", + "name": "issuer", "type": "TypeString", - "description": "The unique identifier that is associated with the entity that created the secret.", + "description": "The distinguished name that identifies the entity that signed and issued the certificate.", "computed": true }, { - "name": "revocation_time_seconds", - "type": "TypeInt", - "description": "The timestamp of the certificate revocation.", + "name": "revocation_time_rfc3339", + "type": "TypeString", + "description": "The date and time that the certificate was revoked. The date format follows RFC 3339.", "computed": true } ], "ibm_sm_private_certificate_configuration_action_set_signed": [ - { - "name": "instance_id", - "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true - }, { "name": "region", "type": "TypeString", @@ -145089,42 +149466,17 @@ "secure": true, "immutable": true, "required": true - } - ], - "ibm_sm_private_certificate_configuration_action_sign_csr": [ - { - "name": "common_name", - "type": "TypeString", - "description": "The Common Name (AKA CN) represents the server name that is protected by the SSL certificate.", - "immutable": true, - "optional": true - }, - { - "name": "max_path_length", - "type": "TypeInt", - "description": "The maximum path length to encode in the generated certificate. `-1` means no limit.If the signing certificate has a maximum path length set, the path length is set to one less than that of the signing certificate. A limit of `0` means a literal path length of zero.", - "immutable": true, - "optional": true, - "computed": true - }, - { - "name": "exclude_cn_from_sans", - "type": "TypeBool", - "description": "Controls whether the common name is excluded from Subject Alternative Names (SANs).If the common name set to `true`, it is not included in DNS or Email SANs if they apply. This field can be useful if the common name is a human-readable identifier, instead of a hostname or an email address.", - "default_value": false, - "immutable": true, - "optional": true }, { - "name": "street_address", - "type": "TypeList", - "description": "The street address values to define in the subject field of the resulting certificate.", + "name": "instance_id", + "type": "TypeString", + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", "immutable": true, - "optional": true, - "elem": { - "type": "TypeString" - } - }, + "required": true + } + ], + "ibm_sm_private_certificate_configuration_action_sign_csr": [ { "name": "country", "type": "TypeList", @@ -145136,9 +149488,9 @@ } }, { - "name": "province", + "name": "locality", "type": "TypeList", - "description": "The Province (ST) values to define in the subject field of the resulting certificate.", + "description": "The Locality (L) values to define in the subject field of the resulting certificate.", "immutable": true, "optional": true, "elem": { @@ -145146,17 +149498,9 @@ } }, { - "name": "serial_number", - "type": "TypeString", - "description": "The serial number to assign to the generated certificate. To assign a random serial number, you can omit this field.", - "immutable": true, - "optional": true, - "computed": true - }, - { - "name": "alt_names", + "name": "street_address", "type": "TypeList", - "description": "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", + "description": "The street address values to define in the subject field of the resulting certificate.", "immutable": true, "optional": true, "elem": { @@ -145164,9 +149508,9 @@ } }, { - "name": "permitted_dns_domains", + "name": "postal_code", "type": "TypeList", - "description": "The allowed DNS domains or subdomains for the certificates that are to be signed and issued by this CA certificate.", + "description": "The postal code values to define in the subject field of the resulting certificate.", "immutable": true, "optional": true, "elem": { @@ -145174,26 +149518,18 @@ } }, { - "name": "use_csr_values", - "type": "TypeBool", - "description": "Determines whether to use values from a certificate signing request (CSR) to complete a `private_cert_configuration_action_sign_csr` action.", - "immutable": true, - "optional": true - }, - { - "name": "ou", - "type": "TypeList", - "description": "The Organizational Unit (OU) values to define in the subject field of the resulting certificate.", + "name": "serial_number", + "type": "TypeString", + "description": "The serial number to assign to the generated certificate. To assign a random serial number, you can omit this field.", "immutable": true, "optional": true, - "elem": { - "type": "TypeString" - } + "computed": true }, { - "name": "endpoint_type", + "name": "common_name", "type": "TypeString", - "description": "public or private.", + "description": "The Common Name (AKA CN) represents the server name that is protected by the SSL certificate.", + "immutable": true, "optional": true }, { @@ -145211,6 +149547,21 @@ "optional": true, "computed": true }, + { + "name": "exclude_cn_from_sans", + "type": "TypeBool", + "description": "Controls whether the common name is excluded from Subject Alternative Names (SANs).If the common name set to `true`, it is not included in DNS or Email SANs if they apply. This field can be useful if the common name is a human-readable identifier, instead of a hostname or an email address.", + "default_value": false, + "immutable": true, + "optional": true + }, + { + "name": "use_csr_values", + "type": "TypeBool", + "description": "Determines whether to use values from a certificate signing request (CSR) to complete a `private_cert_configuration_action_sign_csr` action.", + "immutable": true, + "optional": true + }, { "name": "data", "type": "TypeList", @@ -145250,15 +149601,6 @@ } } }, - { - "name": "region", - "type": "TypeString", - "description": "The region of the Secrets Manager instance.", - "cloud_data_type": "region", - "immutable": true, - "optional": true, - "computed": true - }, { "name": "format", "type": "TypeString", @@ -145268,19 +149610,9 @@ "computed": true }, { - "name": "organization", - "type": "TypeList", - "description": "The Organization (O) values to define in the subject field of the resulting certificate.", - "immutable": true, - "optional": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "locality", + "name": "ou", "type": "TypeList", - "description": "The Locality (L) values to define in the subject field of the resulting certificate.", + "description": "The Organizational Unit (OU) values to define in the subject field of the resulting certificate.", "immutable": true, "optional": true, "elem": { @@ -145288,9 +149620,9 @@ } }, { - "name": "postal_code", + "name": "organization", "type": "TypeList", - "description": "The postal code values to define in the subject field of the resulting certificate.", + "description": "The Organization (O) values to define in the subject field of the resulting certificate.", "immutable": true, "optional": true, "elem": { @@ -145298,31 +149630,32 @@ } }, { - "name": "name", + "name": "instance_id", "type": "TypeString", - "description": "The name that uniquely identifies a configuration", + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", "immutable": true, "required": true }, { - "name": "csr", + "name": "region", "type": "TypeString", - "description": "The certificate signing request.", - "secure": true, + "description": "The region of the Secrets Manager instance.", + "cloud_data_type": "region", "immutable": true, - "required": true + "optional": true, + "computed": true }, { - "name": "ip_sans", + "name": "endpoint_type", "type": "TypeString", - "description": "The IP Subject Alternative Names to define for the CA certificate, in a comma-delimited list.", - "immutable": true, + "description": "public or private.", "optional": true }, { - "name": "other_sans", + "name": "province", "type": "TypeList", - "description": "The custom Object Identifier (OID) or UTF8-string Subject Alternative Names to define for the CA certificate.The alternative names must match the values that are specified in the `allowed_other_sans` field in the associated certificate template. The format is the same as OpenSSL: `\u003coid\u003e:\u003ctype\u003e:\u003cvalue\u003e` where the current valid type is `UTF8`.", + "description": "The Province (ST) values to define in the subject field of the resulting certificate.", "immutable": true, "optional": true, "elem": { @@ -145330,32 +149663,24 @@ } }, { - "name": "instance_id", + "name": "name", "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", + "description": "The name that uniquely identifies a configuration", "immutable": true, "required": true - } - ], - "ibm_sm_private_certificate_configuration_intermediate_ca": [ - { - "name": "issuer", - "type": "TypeString", - "description": "The distinguished name that identifies the entity that signed and issued the certificate.", - "immutable": true, - "optional": true }, { - "name": "ttl", + "name": "csr", "type": "TypeString", - "description": "Specifies the requested Time To Live (after which the certificate will be expired). The value can be provided provided as a string duration with time suffix (e.g. '24h') or the number of seconds as string (e.g. '86400').", - "optional": true + "description": "The certificate signing request.", + "secure": true, + "immutable": true, + "required": true }, { - "name": "permitted_dns_domains", + "name": "alt_names", "type": "TypeList", - "description": "The allowed DNS domains or subdomains for the certificates that are to be signed and issued by this CA certificate.", + "description": "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", "immutable": true, "optional": true, "elem": { @@ -145363,46 +149688,16 @@ } }, { - "name": "instance_id", - "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true - }, - { - "name": "region", + "name": "ip_sans", "type": "TypeString", - "description": "The region of the Secrets Manager instance.", - "cloud_data_type": "region", + "description": "The IP Subject Alternative Names to define for the CA certificate, in a comma-delimited list.", "immutable": true, - "optional": true, - "computed": true - }, - { - "name": "endpoint_type", - "type": "TypeString", - "description": "public or private.", - "optional": true - }, - { - "name": "crl_expiry", - "type": "TypeString", - "description": "The time until the certificate revocation list (CRL) expires.The value can be supplied as a string representation of a duration in hours, such as `48h`. The default is 72 hours. In the API response, this value is returned in seconds (integer).**Note:** The CRL is rotated automatically before it expires.", - "optional": true, - "computed": true - }, - { - "name": "issuing_certificates_urls_encoded", - "type": "TypeBool", - "description": "Determines whether to encode the URL of the issuing certificate in the certificates that are issued by this certificate authority.", - "default_value": false, "optional": true }, { - "name": "alt_names", + "name": "other_sans", "type": "TypeList", - "description": "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", + "description": "The custom Object Identifier (OID) or UTF8-string Subject Alternative Names to define for the CA certificate.The alternative names must match the values that are specified in the `allowed_other_sans` field in the associated certificate template. The format is the same as OpenSSL: `\u003coid\u003e:\u003ctype\u003e:\u003cvalue\u003e` where the current valid type is `UTF8`.", "immutable": true, "optional": true, "elem": { @@ -145410,15 +149705,31 @@ } }, { - "name": "other_sans", + "name": "max_path_length", + "type": "TypeInt", + "description": "The maximum path length to encode in the generated certificate. `-1` means no limit.If the signing certificate has a maximum path length set, the path length is set to one less than that of the signing certificate. A limit of `0` means a literal path length of zero.", + "immutable": true, + "optional": true, + "computed": true + }, + { + "name": "permitted_dns_domains", "type": "TypeList", - "description": "The custom Object Identifier (OID) or UTF8-string Subject Alternative Names to define for the CA certificate.The alternative names must match the values that are specified in the `allowed_other_sans` field in the associated certificate template. The format is the same as OpenSSL: `\u003coid\u003e:\u003ctype\u003e:\u003cvalue\u003e` where the current valid type is `UTF8`.", + "description": "The allowed DNS domains or subdomains for the certificates that are to be signed and issued by this CA certificate.", "immutable": true, "optional": true, - "computed": true, "elem": { "type": "TypeString" } + } + ], + "ibm_sm_private_certificate_configuration_intermediate_ca": [ + { + "name": "crl_distribution_points_encoded", + "type": "TypeBool", + "description": "Determines whether to encode the certificate revocation list (CRL) distribution points in the certificates that are issued by this certificate authority.", + "default_value": false, + "optional": true }, { "name": "private_key_format", @@ -145429,69 +149740,34 @@ "optional": true }, { - "name": "exclude_cn_from_sans", - "type": "TypeBool", - "description": "Controls whether the common name is excluded from Subject Alternative Names (SANs).If the common name set to `true`, it is not included in DNS or Email SANs if they apply. This field can be useful if the common name is a human-readable identifier, instead of a hostname or an email address.", - "default_value": false, - "immutable": true, - "optional": true - }, - { - "name": "ou", - "type": "TypeList", - "description": "The Organizational Unit (OU) values to define in the subject field of the resulting certificate.", + "name": "signing_method", + "type": "TypeString", + "description": "The signing method to use with this certificate authority to generate private certificates.You can choose between internal or externally signed options. For more information, see the [docs](https://cloud.ibm.com/docs/secrets-manager?topic=secrets-manager-intermediate-certificate-authorities).", "immutable": true, - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } + "required": true }, { - "name": "locality", + "name": "permitted_dns_domains", "type": "TypeList", - "description": "The Locality (L) values to define in the subject field of the resulting certificate.", + "description": "The allowed DNS domains or subdomains for the certificates that are to be signed and issued by this CA certificate.", "immutable": true, "optional": true, - "computed": true, "elem": { "type": "TypeString" } }, { - "name": "crl_expiry_seconds", - "type": "TypeInt", - "description": "The time until the certificate revocation list (CRL) expires.The value can be supplied as a string representation of a duration in hours, such as `48h`. The default is 72 hours. In the API response, this value is returned in seconds (integer).**Note:** The CRL is rotated automatically before it expires.", - "computed": true - }, - { - "name": "common_name", + "name": "endpoint_type", "type": "TypeString", - "description": "The Common Name (AKA CN) represents the server name that is protected by the SSL certificate.", - "immutable": true, - "required": true - }, - { - "name": "organization", - "type": "TypeList", - "description": "The Organization (O) values to define in the subject field of the resulting certificate.", - "immutable": true, - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } + "description": "public or private.", + "optional": true }, { - "name": "province", - "type": "TypeList", - "description": "The Province (ST) values to define in the subject field of the resulting certificate.", + "name": "issuer", + "type": "TypeString", + "description": "The distinguished name that identifies the entity that signed and issued the certificate.", "immutable": true, - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } + "optional": true }, { "name": "data", @@ -145552,32 +149828,45 @@ } }, { - "name": "uri_sans", - "type": "TypeString", - "description": "The URI Subject Alternative Names to define for the CA certificate, in a comma-delimited list.", - "immutable": true, - "optional": true + "name": "max_ttl_seconds", + "type": "TypeInt", + "description": "The maximum time-to-live (TTL) for certificates that are created by this CA.The value can be supplied as a string representation of a duration in hours, for example '8760h'. In the API response, this value is returned in seconds (integer).Minimum value is one hour (`1h`). Maximum value is 100 years (`876000h`).", + "computed": true }, { - "name": "format", + "name": "crl_expiry", "type": "TypeString", - "description": "The format of the returned data.", - "immutable": true, + "description": "The time until the certificate revocation list (CRL) expires.The value can be supplied as a string representation of a duration in hours, such as `48h`. The default is 72 hours. In the API response, this value is returned in seconds (integer).**Note:** The CRL is rotated automatically before it expires.", "optional": true, "computed": true }, { - "name": "max_ttl_seconds", - "type": "TypeInt", - "description": "The maximum time-to-live (TTL) for certificates that are created by this CA.The value can be supplied as a string representation of a duration in hours, for example '8760h'. In the API response, this value is returned in seconds (integer).Minimum value is one hour (`1h`). Maximum value is 100 years (`876000h`).", - "computed": true + "name": "ou", + "type": "TypeList", + "description": "The Organizational Unit (OU) values to define in the subject field of the resulting certificate.", + "immutable": true, + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "ip_sans", - "type": "TypeString", - "description": "The IP Subject Alternative Names to define for the CA certificate, in a comma-delimited list.", + "name": "postal_code", + "type": "TypeList", + "description": "The postal code values to define in the subject field of the resulting certificate.", "immutable": true, - "optional": true + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "serial_number", + "type": "TypeString", + "description": "The unique serial number that was assigned to a certificate by the issuing certificate authority.", + "computed": true }, { "name": "key_type", @@ -145588,17 +149877,15 @@ "computed": true }, { - "name": "use_csr_values", - "type": "TypeBool", - "description": "Determines whether to use values from a certificate signing request (CSR) to complete a `private_cert_configuration_action_sign_csr` action.", + "name": "province", + "type": "TypeList", + "description": "The Province (ST) values to define in the subject field of the resulting certificate.", "immutable": true, - "optional": true - }, - { - "name": "config_type", - "type": "TypeString", - "description": "The configuration type.", - "computed": true + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } }, { "name": "name", @@ -145608,9 +149895,22 @@ "required": true }, { - "name": "street_address", + "name": "max_ttl", + "type": "TypeString", + "description": "The maximum time-to-live (TTL) for certificates that are created by this CA.The value can be supplied as a string representation of a duration in hours, for example '8760h'. In the API response, this value is returned in seconds (integer).Minimum value is one hour (`1h`). Maximum value is 100 years (`876000h`).", + "required": true + }, + { + "name": "issuing_certificates_urls_encoded", + "type": "TypeBool", + "description": "Determines whether to encode the URL of the issuing certificate in the certificates that are issued by this certificate authority.", + "default_value": false, + "optional": true + }, + { + "name": "other_sans", "type": "TypeList", - "description": "The street address values to define in the subject field of the resulting certificate.", + "description": "The custom Object Identifier (OID) or UTF8-string Subject Alternative Names to define for the CA certificate.The alternative names must match the values that are specified in the `allowed_other_sans` field in the associated certificate template. The format is the same as OpenSSL: `\u003coid\u003e:\u003ctype\u003e:\u003cvalue\u003e` where the current valid type is `UTF8`.", "immutable": true, "optional": true, "computed": true, @@ -145619,42 +149919,61 @@ } }, { - "name": "status", + "name": "format", "type": "TypeString", - "description": "The status of the certificate authority. The status of a root certificate authority is either `configured` or `expired`. For intermediate certificate authorities, possible statuses include `signing_required`,`signed_certificate_required`, `certificate_template_required`, `configured`, `expired` or `revoked`.", + "description": "The format of the returned data.", + "immutable": true, + "optional": true, "computed": true }, { - "name": "crl_disable", - "type": "TypeBool", - "description": "Disables or enables certificate revocation list (CRL) building.If CRL building is disabled, a signed but zero-length CRL is returned when downloading the CRL. If CRL building is enabled, it will rebuild the CRL.", - "default_value": false, - "optional": true + "name": "secret_type", + "type": "TypeString", + "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", + "computed": true }, { - "name": "key_bits", + "name": "crl_expiry_seconds", "type": "TypeInt", - "description": "The number of bits to use to generate the private key.Allowable values for RSA keys are: `2048` and `4096`. Allowable values for EC keys are: `224`, `256`, `384`, and `521`. The default for RSA keys is `2048`. The default for EC keys is `256`.", + "description": "The time until the certificate revocation list (CRL) expires.The value can be supplied as a string representation of a duration in hours, such as `48h`. The default is 72 hours. In the API response, this value is returned in seconds (integer).**Note:** The CRL is rotated automatically before it expires.", + "computed": true + }, + { + "name": "street_address", + "type": "TypeList", + "description": "The street address values to define in the subject field of the resulting certificate.", "immutable": true, "optional": true, - "computed": true + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "max_ttl", + "name": "ttl", "type": "TypeString", - "description": "The maximum time-to-live (TTL) for certificates that are created by this CA.The value can be supplied as a string representation of a duration in hours, for example '8760h'. In the API response, this value is returned in seconds (integer).Minimum value is one hour (`1h`). Maximum value is 100 years (`876000h`).", + "description": "Specifies the requested Time To Live (after which the certificate will be expired). The value can be provided provided as a string duration with time suffix (e.g. '24h') or the number of seconds as string (e.g. '86400').", + "optional": true + }, + { + "name": "common_name", + "type": "TypeString", + "description": "The Common Name (AKA CN) represents the server name that is protected by the SSL certificate.", + "immutable": true, "required": true }, { - "name": "expiration_date", + "name": "instance_id", "type": "TypeString", - "description": "The date a secret is expired. The date format follows RFC 3339.", - "computed": true + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true }, { - "name": "postal_code", + "name": "organization", "type": "TypeList", - "description": "The postal code values to define in the subject field of the resulting certificate.", + "description": "The Organization (O) values to define in the subject field of the resulting certificate.", "immutable": true, "optional": true, "computed": true, @@ -145663,16 +149982,20 @@ } }, { - "name": "signing_method", - "type": "TypeString", - "description": "The signing method to use with this certificate authority to generate private certificates.You can choose between internal or externally signed options. For more information, see the [docs](https://cloud.ibm.com/docs/secrets-manager?topic=secrets-manager-intermediate-certificate-authorities).", + "name": "country", + "type": "TypeList", + "description": "The Country (C) values to define in the subject field of the resulting certificate.", "immutable": true, - "required": true + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "country", + "name": "locality", "type": "TypeList", - "description": "The Country (C) values to define in the subject field of the resulting certificate.", + "description": "The Locality (L) values to define in the subject field of the resulting certificate.", "immutable": true, "optional": true, "computed": true, @@ -145681,9 +150004,9 @@ } }, { - "name": "serial_number", + "name": "expiration_date", "type": "TypeString", - "description": "The unique serial number that was assigned to a certificate by the issuing certificate authority.", + "description": "The date a secret is expired. The date format follows RFC 3339.", "computed": true }, { @@ -145694,72 +150017,82 @@ "optional": true }, { - "name": "secret_type", - "type": "TypeString", - "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", + "name": "key_bits", + "type": "TypeInt", + "description": "The number of bits to use to generate the private key.Allowable values for RSA keys are: `2048` and `4096`. Allowable values for EC keys are: `224`, `256`, `384`, and `521`. The default for RSA keys is `2048`. The default for EC keys is `256`.", + "immutable": true, + "optional": true, "computed": true }, { - "name": "crl_distribution_points_encoded", + "name": "exclude_cn_from_sans", "type": "TypeBool", - "description": "Determines whether to encode the certificate revocation list (CRL) distribution points in the certificates that are issued by this certificate authority.", + "description": "Controls whether the common name is excluded from Subject Alternative Names (SANs).If the common name set to `true`, it is not included in DNS or Email SANs if they apply. This field can be useful if the common name is a human-readable identifier, instead of a hostname or an email address.", "default_value": false, - "optional": true - } - ], - "ibm_sm_private_certificate_configuration_root_ca": [ - { - "name": "country", - "type": "TypeList", - "description": "The Country (C) values to define in the subject field of the resulting certificate.", "immutable": true, - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } + "optional": true }, { - "name": "serial_number", + "name": "status", "type": "TypeString", - "description": "The unique serial number that was assigned to a certificate by the issuing certificate authority.", + "description": "The status of the certificate authority. The status of a root certificate authority is either `configured` or `expired`. For intermediate certificate authorities, possible statuses include `signing_required`,`signed_certificate_required`, `certificate_template_required`, `configured`, `expired` or `revoked`.", "computed": true }, { - "name": "created_at", + "name": "config_type", "type": "TypeString", - "description": "The date when a resource was created. The date format follows RFC 3339.", + "description": "The configuration type.", "computed": true }, { - "name": "endpoint_type", - "type": "TypeString", - "description": "public or private.", + "name": "crl_disable", + "type": "TypeBool", + "description": "Disables or enables certificate revocation list (CRL) building.If CRL building is disabled, a signed but zero-length CRL is returned when downloading the CRL. If CRL building is enabled, it will rebuild the CRL.", + "default_value": false, "optional": true }, { - "name": "max_ttl", - "type": "TypeString", - "description": "The maximum time-to-live (TTL) for certificates that are created by this CA.The value can be supplied as a string representation of a duration in hours, for example '8760h'. In the API response, this value is returned in seconds (integer).Minimum value is one hour (`1h`). Maximum value is 100 years (`876000h`).", - "required": true - }, - { - "name": "other_sans", + "name": "alt_names", "type": "TypeList", - "description": "The custom Object Identifier (OID) or UTF8-string Subject Alternative Names to define for the CA certificate.The alternative names must match the values that are specified in the `allowed_other_sans` field in the associated certificate template. The format is the same as OpenSSL: `\u003coid\u003e:\u003ctype\u003e:\u003cvalue\u003e` where the current valid type is `UTF8`.", + "description": "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", "immutable": true, "optional": true, - "computed": true, "elem": { "type": "TypeString" } }, { - "name": "status", + "name": "ip_sans", "type": "TypeString", - "description": "The status of the certificate authority. The status of a root certificate authority is either `configured` or `expired`. For intermediate certificate authorities, possible statuses include `signing_required`,`signed_certificate_required`, `certificate_template_required`, `configured`, `expired` or `revoked`.", - "computed": true + "description": "The IP Subject Alternative Names to define for the CA certificate, in a comma-delimited list.", + "immutable": true, + "optional": true + }, + { + "name": "uri_sans", + "type": "TypeString", + "description": "The URI Subject Alternative Names to define for the CA certificate, in a comma-delimited list.", + "immutable": true, + "optional": true }, + { + "name": "use_csr_values", + "type": "TypeBool", + "description": "Determines whether to use values from a certificate signing request (CSR) to complete a `private_cert_configuration_action_sign_csr` action.", + "immutable": true, + "optional": true + }, + { + "name": "region", + "type": "TypeString", + "description": "The region of the Secrets Manager instance.", + "cloud_data_type": "region", + "immutable": true, + "optional": true, + "computed": true + } + ], + "ibm_sm_private_certificate_configuration_root_ca": [ { "name": "crl_disable", "type": "TypeBool", @@ -145775,22 +150108,32 @@ "optional": true }, { - "name": "alt_names", - "type": "TypeList", - "description": "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", - "immutable": true, - "optional": true, - "elem": { - "type": "TypeString" - } + "name": "ttl_seconds", + "type": "TypeInt", + "description": "The requested time-to-live (TTL) for certificates that are created by this CA. This field's value cannot be longer than the `max_ttl` limit.The value can be supplied as a string representation of a duration in hours, for example '8760h'. In the API response, this value is returned in seconds (integer).", + "computed": true }, { - "name": "uri_sans", + "name": "private_key_format", "type": "TypeString", - "description": "The URI Subject Alternative Names to define for the CA certificate, in a comma-delimited list.", + "description": "The format of the generated private key.", + "default_value": "der", "immutable": true, "optional": true }, + { + "name": "endpoint_type", + "type": "TypeString", + "description": "public or private.", + "optional": true + }, + { + "name": "issuing_certificates_urls_encoded", + "type": "TypeBool", + "description": "Determines whether to encode the URL of the issuing certificate in the certificates that are issued by this certificate authority.", + "default_value": false, + "optional": true + }, { "name": "permitted_dns_domains", "type": "TypeList", @@ -145803,9 +150146,9 @@ } }, { - "name": "organization", + "name": "country", "type": "TypeList", - "description": "The Organization (O) values to define in the subject field of the resulting certificate.", + "description": "The Country (C) values to define in the subject field of the resulting certificate.", "immutable": true, "optional": true, "computed": true, @@ -145814,9 +150157,9 @@ } }, { - "name": "street_address", + "name": "postal_code", "type": "TypeList", - "description": "The street address values to define in the subject field of the resulting certificate.", + "description": "The postal code values to define in the subject field of the resulting certificate.", "immutable": true, "optional": true, "computed": true, @@ -145825,64 +150168,66 @@ } }, { - "name": "instance_id", + "name": "config_type", "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true + "description": "The configuration type.", + "computed": true }, { - "name": "postal_code", - "type": "TypeList", - "description": "The postal code values to define in the subject field of the resulting certificate.", + "name": "ip_sans", + "type": "TypeString", + "description": "The IP Subject Alternative Names to define for the CA certificate, in a comma-delimited list.", "immutable": true, - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } + "optional": true }, { - "name": "created_by", + "name": "format", "type": "TypeString", - "description": "The unique identifier that is associated with the entity that created the secret.", + "description": "The format of the returned data.", + "immutable": true, + "optional": true, "computed": true }, { - "name": "max_ttl_seconds", + "name": "max_path_length", "type": "TypeInt", - "description": "The maximum time-to-live (TTL) for certificates that are created by this CA in seconds.", + "description": "The maximum path length to encode in the generated certificate. `-1` means no limit.If the signing certificate has a maximum path length set, the path length is set to one less than that of the signing certificate. A limit of `0` means a literal path length of zero.", + "immutable": true, + "optional": true, "computed": true }, { - "name": "config_type", + "name": "exclude_cn_from_sans", + "type": "TypeBool", + "description": "Controls whether the common name is excluded from Subject Alternative Names (SANs).If the common name set to `true`, it is not included in DNS or Email SANs if they apply. This field can be useful if the common name is a human-readable identifier, instead of a hostname or an email address.", + "default_value": false, + "immutable": true, + "optional": true + }, + { + "name": "secret_type", "type": "TypeString", - "description": "The configuration type.", + "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", "computed": true }, { - "name": "name", + "name": "updated_at", "type": "TypeString", - "description": "A human-readable unique name to assign to your configuration.To protect your privacy, do not use personal data, such as your name or location, as an name for your secret.", - "immutable": true, - "required": true + "description": "The date when a resource was recently modified. The date format follows RFC 3339.", + "computed": true }, { - "name": "format", + "name": "status", "type": "TypeString", - "description": "The format of the returned data.", - "immutable": true, - "optional": true, + "description": "The status of the certificate authority. The status of a root certificate authority is either `configured` or `expired`. For intermediate certificate authorities, possible statuses include `signing_required`,`signed_certificate_required`, `certificate_template_required`, `configured`, `expired` or `revoked`.", "computed": true }, { - "name": "ou", + "name": "alt_names", "type": "TypeList", - "description": "The Organizational Unit (OU) values to define in the subject field of the resulting certificate.", + "description": "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", "immutable": true, "optional": true, - "computed": true, "elem": { "type": "TypeString" } @@ -145899,128 +150244,126 @@ } }, { - "name": "province", - "type": "TypeList", - "description": "The Province (ST) values to define in the subject field of the resulting certificate.", - "immutable": true, - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "The date when a resource was recently modified. The date format follows RFC 3339.", + "name": "crl_expiry_seconds", + "type": "TypeInt", + "description": "The time until the certificate revocation list (CRL) expires, in seconds.", "computed": true }, { - "name": "crl_expiry", + "name": "region", "type": "TypeString", - "description": "The time until the certificate revocation list (CRL) expires.The value can be supplied as a string representation of a duration in hours, such as `48h`. The default is 72 hours. In the API response, this value is returned in seconds (integer).**Note:** The CRL is rotated automatically before it expires.", + "description": "The region of the Secrets Manager instance.", + "cloud_data_type": "region", + "immutable": true, "optional": true, "computed": true }, { - "name": "ttl", + "name": "uri_sans", "type": "TypeString", - "description": "The requested time-to-live (TTL) for certificates that are created by this CA. This field's value cannot be longer than the `max_ttl` limit.The value can be supplied as a string representation of a duration in hours, for example '8760h'. In the API response, this value is returned in seconds (integer).", - "optional": true, - "computed": true + "description": "The URI Subject Alternative Names to define for the CA certificate, in a comma-delimited list.", + "immutable": true, + "optional": true }, { - "name": "max_path_length", + "name": "key_bits", "type": "TypeInt", - "description": "The maximum path length to encode in the generated certificate. `-1` means no limit.If the signing certificate has a maximum path length set, the path length is set to one less than that of the signing certificate. A limit of `0` means a literal path length of zero.", + "description": "The number of bits to use to generate the private key.Allowable values for RSA keys are: `2048` and `4096`. Allowable values for EC keys are: `224`, `256`, `384`, and `521`. The default for RSA keys is `2048`. The default for EC keys is `256`.", "immutable": true, "optional": true, "computed": true }, { - "name": "secret_type", + "name": "serial_number", "type": "TypeString", - "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", + "description": "The unique serial number that was assigned to a certificate by the issuing certificate authority.", "computed": true }, { - "name": "expiration_date", + "name": "created_at", "type": "TypeString", - "description": "The date a secret is expired. The date format follows RFC 3339.", + "description": "The date when a resource was created. The date format follows RFC 3339.", "computed": true }, { - "name": "ip_sans", + "name": "expiration_date", "type": "TypeString", - "description": "The IP Subject Alternative Names to define for the CA certificate, in a comma-delimited list.", - "immutable": true, - "optional": true + "description": "The date a secret is expired. The date format follows RFC 3339.", + "computed": true }, { - "name": "ttl_seconds", - "type": "TypeInt", - "description": "The requested time-to-live (TTL) for certificates that are created by this CA. This field's value cannot be longer than the `max_ttl` limit.The value can be supplied as a string representation of a duration in hours, for example '8760h'. In the API response, this value is returned in seconds (integer).", - "computed": true + "name": "max_ttl", + "type": "TypeString", + "description": "The maximum time-to-live (TTL) for certificates that are created by this CA.The value can be supplied as a string representation of a duration in hours, for example '8760h'. In the API response, this value is returned in seconds (integer).Minimum value is one hour (`1h`). Maximum value is 100 years (`876000h`).", + "required": true }, { - "name": "private_key_format", + "name": "common_name", "type": "TypeString", - "description": "The format of the generated private key.", - "default_value": "der", + "description": "The Common Name (AKA CN) represents the server name that is protected by the SSL certificate.", "immutable": true, - "optional": true + "required": true }, { - "name": "region", + "name": "key_type", "type": "TypeString", - "description": "The region of the Secrets Manager instance.", - "cloud_data_type": "region", + "description": "The type of private key to generate.", "immutable": true, "optional": true, "computed": true }, { - "name": "issuing_certificates_urls_encoded", - "type": "TypeBool", - "description": "Determines whether to encode the URL of the issuing certificate in the certificates that are issued by this certificate authority.", - "default_value": false, - "optional": true + "name": "instance_id", + "type": "TypeString", + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true }, { - "name": "common_name", + "name": "name", "type": "TypeString", - "description": "The Common Name (AKA CN) represents the server name that is protected by the SSL certificate.", + "description": "A human-readable unique name to assign to your configuration.To protect your privacy, do not use personal data, such as your name or location, as an name for your secret.", "immutable": true, "required": true }, { - "name": "key_type", - "type": "TypeString", - "description": "The type of private key to generate.", + "name": "other_sans", + "type": "TypeList", + "description": "The custom Object Identifier (OID) or UTF8-string Subject Alternative Names to define for the CA certificate.The alternative names must match the values that are specified in the `allowed_other_sans` field in the associated certificate template. The format is the same as OpenSSL: `\u003coid\u003e:\u003ctype\u003e:\u003cvalue\u003e` where the current valid type is `UTF8`.", "immutable": true, "optional": true, - "computed": true + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "key_bits", - "type": "TypeInt", - "description": "The number of bits to use to generate the private key.Allowable values for RSA keys are: `2048` and `4096`. Allowable values for EC keys are: `224`, `256`, `384`, and `521`. The default for RSA keys is `2048`. The default for EC keys is `256`.", + "name": "ou", + "type": "TypeList", + "description": "The Organizational Unit (OU) values to define in the subject field of the resulting certificate.", "immutable": true, "optional": true, - "computed": true + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "exclude_cn_from_sans", - "type": "TypeBool", - "description": "Controls whether the common name is excluded from Subject Alternative Names (SANs).If the common name set to `true`, it is not included in DNS or Email SANs if they apply. This field can be useful if the common name is a human-readable identifier, instead of a hostname or an email address.", - "default_value": false, + "name": "street_address", + "type": "TypeList", + "description": "The street address values to define in the subject field of the resulting certificate.", "immutable": true, - "optional": true + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "crl_expiry_seconds", + "name": "max_ttl_seconds", "type": "TypeInt", - "description": "The time until the certificate revocation list (CRL) expires, in seconds.", + "description": "The maximum time-to-live (TTL) for certificates that are created by this CA in seconds.", "computed": true }, { @@ -146080,19 +150423,67 @@ "computed": true } } + }, + { + "name": "crl_expiry", + "type": "TypeString", + "description": "The time until the certificate revocation list (CRL) expires.The value can be supplied as a string representation of a duration in hours, such as `48h`. The default is 72 hours. In the API response, this value is returned in seconds (integer).**Note:** The CRL is rotated automatically before it expires.", + "optional": true, + "computed": true + }, + { + "name": "ttl", + "type": "TypeString", + "description": "The requested time-to-live (TTL) for certificates that are created by this CA. This field's value cannot be longer than the `max_ttl` limit.The value can be supplied as a string representation of a duration in hours, for example '8760h'. In the API response, this value is returned in seconds (integer).", + "optional": true, + "computed": true + }, + { + "name": "organization", + "type": "TypeList", + "description": "The Organization (O) values to define in the subject field of the resulting certificate.", + "immutable": true, + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "province", + "type": "TypeList", + "description": "The Province (ST) values to define in the subject field of the resulting certificate.", + "immutable": true, + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "created_by", + "type": "TypeString", + "description": "The unique identifier that is associated with the entity that created the secret.", + "computed": true } ], "ibm_sm_private_certificate_configuration_template": [ { - "name": "config_type", + "name": "created_by", "type": "TypeString", - "description": "The configuration type.", + "description": "The unique identifier that is associated with the entity that created the secret.", "computed": true }, { - "name": "allowed_other_sans", + "name": "endpoint_type", + "type": "TypeString", + "description": "public or private.", + "optional": true + }, + { + "name": "province", "type": "TypeList", - "description": "The custom Object Identifier (OID) or UTF8-string Subject Alternative Names (SANs) to allow for private certificates.The format for each element in the list is the same as OpenSSL: `\u003coid\u003e:\u003ctype\u003e:\u003cvalue\u003e` where the current valid type is `UTF8`. To allow any value for an OID, use `*` as its value. Alternatively, specify a single `*` to allow any `other_sans` input.", + "description": "The Province (ST) values to define in the subject field of the resulting certificate.", "optional": true, "computed": true, "elem": { @@ -146100,9 +150491,46 @@ } }, { - "name": "server_flag", + "name": "certificate_authority", + "type": "TypeString", + "description": "The name of the intermediate certificate authority.", + "required": true + }, + { + "name": "allow_bare_domains", "type": "TypeBool", - "description": "Determines whether private certificates are flagged for server use.", + "description": "Determines whether to allow clients to request private certificates that match the value of the actual domains on the final certificate.For example, if you specify `example.com` in the `allowed_domains` field, you grant clients the ability to request a certificate that contains the name `example.com` as one of the DNS values on the final certificate.**Important:** In some scenarios, allowing bare domains can be considered a security risk.", + "optional": true, + "computed": true + }, + { + "name": "allow_glob_domains", + "type": "TypeBool", + "description": "Determines whether to allow glob patterns, for example, `ftp*.example.com`, in the names that are specified in the `allowed_domains` field.If set to `true`, clients are allowed to request private certificates with names that match the glob patterns.", + "optional": true, + "computed": true + }, + { + "name": "client_flag", + "type": "TypeBool", + "description": "Determines whether private certificates are flagged for client use.", + "optional": true, + "computed": true + }, + { + "name": "policy_identifiers", + "type": "TypeList", + "description": "A list of policy Object Identifiers (OIDs).", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "allow_subdomains", + "type": "TypeBool", + "description": "Determines whether to allow clients to request private certificates with common names (CN) that are subdomains of the CNs that are allowed by the other certificate template options. This includes wildcard subdomains.For example, if `allowed_domains` has a value of `example.com` and `allow_subdomains`is set to `true`, then the following subdomains are allowed: `foo.example.com`, `bar.example.com`, `*.example.com`.**Note:** This field is redundant if you use the `allow_any_name` option.", "optional": true, "computed": true }, @@ -146111,12 +150539,150 @@ "type": "TypeBool", "description": "Determines whether private certificates are flagged for code signing use.", "optional": true, - "computed": true + "computed": true + }, + { + "name": "config_type", + "type": "TypeString", + "description": "The configuration type.", + "computed": true + }, + { + "name": "ttl", + "type": "TypeString", + "description": "The requested time-to-live (TTL) for certificates that are created by this CA. This field's value cannot be longer than the `max_ttl` limit.The value can be supplied as a string representation of a duration in hours, for example '8760h'. In the API response, this value is returned in seconds (integer).", + "optional": true + }, + { + "name": "key_type", + "type": "TypeString", + "description": "The type of private key to generate.", + "optional": true, + "computed": true + }, + { + "name": "locality", + "type": "TypeList", + "description": "The Locality (L) values to define in the subject field of the resulting certificate.", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "street_address", + "type": "TypeList", + "description": "The street address values to define in the subject field of the resulting certificate.", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "allowed_secret_groups", + "type": "TypeString", + "description": "Scopes the creation of private certificates to only the secret groups that you specify.This field can be supplied as a comma-delimited list of secret group IDs.", + "optional": true, + "computed": true + }, + { + "name": "not_before_duration", + "type": "TypeString", + "description": "The duration in seconds by which to backdate the `not_before` property of an issued private certificate.The value can be supplied as a string representation of a duration, such as `30s`. In the API response, this value is returned in seconds (integer).", + "optional": true + }, + { + "name": "max_ttl_seconds", + "type": "TypeInt", + "description": "The maximum time-to-live (TTL) for certificates that are created by this CA in seconds.", + "computed": true + }, + { + "name": "key_bits", + "type": "TypeInt", + "description": "The number of bits to use to generate the private key.Allowable values for RSA keys are: `2048` and `4096`. Allowable values for EC keys are: `224`, `256`, `384`, and `521`. The default for RSA keys is `2048`. The default for EC keys is `256`.", + "optional": true, + "computed": true + }, + { + "name": "postal_code", + "type": "TypeList", + "description": "The postal code values to define in the subject field of the resulting certificate.", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "allow_ip_sans", + "type": "TypeBool", + "description": "Determines whether to allow clients to request a private certificate with IP Subject Alternative Names.", + "optional": true, + "computed": true + }, + { + "name": "require_cn", + "type": "TypeBool", + "description": "Determines whether to require a common name to create a private certificate.By default, a common name is required to generate a certificate. To make the `common_name` field optional, set the `require_cn` option to `false`.", + "optional": true, + "computed": true + }, + { + "name": "allowed_domains", + "type": "TypeList", + "description": "The domains to define for the certificate template. This property is used along with the `allow_bare_domains` and `allow_subdomains` options.", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "secret_type", + "type": "TypeString", + "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", + "computed": true + }, + { + "name": "created_at", + "type": "TypeString", + "description": "The date when a resource was created. The date format follows RFC 3339.", + "computed": true + }, + { + "name": "allow_wildcard_certificates", + "type": "TypeBool", + "description": "Determines whether the issuance of certificates with RFC 6125 wildcards in the CN field.When set to false, this field prevents wildcards from being issued even if they can be allowed by an option `allow_glob_domains`.", + "optional": true, + "computed": true + }, + { + "name": "allowed_uri_sans", + "type": "TypeList", + "description": "The URI Subject Alternative Names to allow for private certificates.Values can contain glob patterns, for example `spiffe://hostname/_*`.", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "allowed_other_sans", + "type": "TypeList", + "description": "The custom Object Identifier (OID) or UTF8-string Subject Alternative Names (SANs) to allow for private certificates.The format for each element in the list is the same as OpenSSL: `\u003coid\u003e:\u003ctype\u003e:\u003cvalue\u003e` where the current valid type is `UTF8`. To allow any value for an OID, use `*` as its value. Alternatively, specify a single `*` to allow any `other_sans` input.", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "key_usage", + "name": "ext_key_usage_oids", "type": "TypeList", - "description": "The allowed key usage constraint to define for private certificates.You can find valid values in the [Go x509 package documentation](https://pkg.go.dev/crypto/x509#KeyUsage). Omit the `KeyUsage` part of the value. Values are not case-sensitive. To specify no key usage constraints, set this field to an empty list.", + "description": "A list of extended key usage Object Identifiers (OIDs).", "optional": true, "computed": true, "elem": { @@ -146124,9 +150690,10 @@ } }, { - "name": "updated_at", - "type": "TypeString", - "description": "The date when a resource was recently modified. The date format follows RFC 3339.", + "name": "use_csr_common_name", + "type": "TypeBool", + "description": "When used with the `private_cert_configuration_action_sign_csr` action, this field determines whether to use the common name (CN) from a certificate signing request (CSR) instead of the CN that's included in the data of the certificate.Does not include any requested Subject Alternative Names (SANs) in the CSR. To use the alternative names, include the `use_csr_sans` property.", + "optional": true, "computed": true }, { @@ -146137,23 +150704,11 @@ "computed": true }, { - "name": "secret_type", - "type": "TypeString", - "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", - "computed": true - }, - { - "name": "created_at", + "name": "updated_at", "type": "TypeString", - "description": "The date when a resource was created. The date format follows RFC 3339.", + "description": "The date when a resource was recently modified. The date format follows RFC 3339.", "computed": true }, - { - "name": "endpoint_type", - "type": "TypeString", - "description": "public or private.", - "optional": true - }, { "name": "region", "type": "TypeString", @@ -146163,6 +150718,12 @@ "optional": true, "computed": true }, + { + "name": "ttl_seconds", + "type": "TypeInt", + "description": "The requested Time To Live, after which the certificate will be expired.", + "computed": true + }, { "name": "organization", "type": "TypeList", @@ -146184,49 +150745,38 @@ } }, { - "name": "province", - "type": "TypeList", - "description": "The Province (ST) values to define in the subject field of the resulting certificate.", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "street_address", - "type": "TypeList", - "description": "The street address values to define in the subject field of the resulting certificate.", + "name": "serial_number", + "type": "TypeString", + "description": "Unused field.", "optional": true, "computed": true, - "elem": { - "type": "TypeString" - } + "deprecated": "This field is deprecated." }, { - "name": "allowed_domains_template", + "name": "allow_any_name", "type": "TypeBool", - "description": "Determines whether to allow the domains that are supplied in the `allowed_domains` field to contain access control list (ACL) templates.", + "description": "Determines whether to allow clients to request a private certificate that matches any common name.", "optional": true, "computed": true }, { - "name": "client_flag", + "name": "server_flag", "type": "TypeBool", - "description": "Determines whether private certificates are flagged for client use.", + "description": "Determines whether private certificates are flagged for server use.", "optional": true, "computed": true }, { - "name": "not_before_duration_seconds", - "type": "TypeInt", - "description": "The duration in seconds by which to backdate the `not_before` property of an issued private certificate.", + "name": "use_csr_sans", + "type": "TypeBool", + "description": "When used with the `private_cert_configuration_action_sign_csr` action, this field determines whether to use the Subject Alternative Names(SANs) from a certificate signing request (CSR) instead of the SANs that are included in the data of the certificate.Does not include the common name in the CSR. To use the common name, include the `use_csr_common_name` property.", + "optional": true, "computed": true }, { - "name": "ttl", + "name": "max_ttl", "type": "TypeString", - "description": "The requested time-to-live (TTL) for certificates that are created by this CA. This field's value cannot be longer than the `max_ttl` limit.The value can be supplied as a string representation of a duration in hours, for example '8760h'. In the API response, this value is returned in seconds (integer).", + "description": "The maximum time-to-live (TTL) for certificates that are created by this CA.The value can be supplied as a string representation of a duration in hours, for example '8760h'. In the API response, this value is returned in seconds (integer).Minimum value is one hour (`1h`). Maximum value is 100 years (`876000h`).", "optional": true }, { @@ -146237,26 +150787,23 @@ "computed": true }, { - "name": "allowed_domains", - "type": "TypeList", - "description": "The domains to define for the certificate template. This property is used along with the `allow_bare_domains` and `allow_subdomains` options.", + "name": "allowed_domains_template", + "type": "TypeBool", + "description": "Determines whether to allow the domains that are supplied in the `allowed_domains` field to contain access control list (ACL) templates.", "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } + "computed": true }, { - "name": "allow_wildcard_certificates", + "name": "email_protection_flag", "type": "TypeBool", - "description": "Determines whether the issuance of certificates with RFC 6125 wildcards in the CN field.When set to false, this field prevents wildcards from being issued even if they can be allowed by an option `allow_glob_domains`.", + "description": "Determines whether private certificates are flagged for email protection use.", "optional": true, "computed": true }, { - "name": "allowed_uri_sans", + "name": "ext_key_usage", "type": "TypeList", - "description": "The URI Subject Alternative Names to allow for private certificates.Values can contain glob patterns, for example `spiffe://hostname/_*`.", + "description": "The allowed extended key usage constraint on private certificates.You can find valid values in the [Go x509 package documentation](https://golang.org/pkg/crypto/x509/#ExtKeyUsage). Omit the `ExtKeyUsage` part of the value. Values are not case-sensitive. To specify no key usage constraints, set this field to an empty list.", "optional": true, "computed": true, "elem": { @@ -146264,9 +150811,9 @@ } }, { - "name": "max_ttl_seconds", + "name": "not_before_duration_seconds", "type": "TypeInt", - "description": "The maximum time-to-live (TTL) for certificates that are created by this CA in seconds.", + "description": "The duration in seconds by which to backdate the `not_before` property of an issued private certificate.", "computed": true }, { @@ -146286,20 +150833,6 @@ "type": "TypeString" } }, - { - "name": "allowed_secret_groups", - "type": "TypeString", - "description": "Scopes the creation of private certificates to only the secret groups that you specify.This field can be supplied as a comma-delimited list of secret group IDs.", - "optional": true, - "computed": true - }, - { - "name": "allow_bare_domains", - "type": "TypeBool", - "description": "Determines whether to allow clients to request private certificates that match the value of the actual domains on the final certificate.For example, if you specify `example.com` in the `allowed_domains` field, you grant clients the ability to request a certificate that contains the name `example.com` as one of the DNS values on the final certificate.**Important:** In some scenarios, allowing bare domains can be considered a security risk.", - "optional": true, - "computed": true - }, { "name": "enforce_hostnames", "type": "TypeBool", @@ -146308,9 +150841,9 @@ "computed": true }, { - "name": "ext_key_usage_oids", + "name": "key_usage", "type": "TypeList", - "description": "A list of extended key usage Object Identifiers (OIDs).", + "description": "The allowed key usage constraint to define for private certificates.You can find valid values in the [Go x509 package documentation](https://pkg.go.dev/crypto/x509#KeyUsage). Omit the `KeyUsage` part of the value. Values are not case-sensitive. To specify no key usage constraints, set this field to an empty list.", "optional": true, "computed": true, "elem": { @@ -146324,52 +150857,146 @@ "cloud_data_type": "resource_instance", "immutable": true, "required": true - }, + } + ], + "ibm_sm_public_certificate": [ { - "name": "key_type", - "type": "TypeString", - "description": "The type of private key to generate.", + "name": "version_custom_metadata", + "type": "TypeMap", + "description": "The secret version metadata that a user can customize.", + "immutable": true, "optional": true, - "computed": true + "elem": { + "type": "TypeString" + } }, { - "name": "key_bits", - "type": "TypeInt", - "description": "The number of bits to use to generate the private key.Allowable values for RSA keys are: `2048` and `4096`. Allowable values for EC keys are: `224`, `256`, `384`, and `521`. The default for RSA keys is `2048`. The default for EC keys is `256`.", - "optional": true, + "name": "downloaded", + "type": "TypeBool", + "description": "Indicates whether the secret data that is associated with a secret version was retrieved in a call to the service API.", "computed": true }, { - "name": "serial_number", + "name": "signing_algorithm", "type": "TypeString", - "description": "Unused field.", - "optional": true, + "description": "The identifier for the cryptographic algorithm that was used by the issuing certificate authority to sign a certificate.", + "computed": true + }, + { + "name": "issuance_info", + "type": "TypeList", + "description": "Issuance information that is associated with your certificate.", "computed": true, - "deprecated": "This field is deprecated." + "elem": { + "auto_rotated": { + "name": "auto_rotated", + "type": "TypeBool", + "description": "Indicates whether the issued certificate is configured with an automatic rotation policy.", + "computed": true + }, + "challenges": { + "name": "challenges", + "type": "TypeList", + "description": "The set of challenges. It is returned only when ordering public certificates by using manual DNS configuration.", + "computed": true, + "elem": { + "domain": { + "name": "domain", + "type": "TypeString", + "description": "The challenge domain.", + "computed": true + }, + "expiration": { + "name": "expiration", + "type": "TypeString", + "description": "The challenge expiration date. The date format follows RFC 3339.", + "computed": true + }, + "status": { + "name": "status", + "type": "TypeString", + "description": "The challenge status.", + "computed": true + }, + "txt_record_name": { + "name": "txt_record_name", + "type": "TypeString", + "description": "The TXT record name.", + "computed": true + }, + "txt_record_value": { + "name": "txt_record_value", + "type": "TypeString", + "description": "The TXT record value.", + "computed": true + } + } + }, + "dns_challenge_validation_time": { + "name": "dns_challenge_validation_time", + "type": "TypeString", + "description": "The date that a user requests to validate DNS challenges for certificates that are ordered with a manual DNS provider. The date format follows RFC 3339.", + "computed": true + }, + "error_code": { + "name": "error_code", + "type": "TypeString", + "description": "A code that identifies an issuance error.This field, along with `error_message`, is returned when Secrets Manager successfully processes your request, but the certificate authority is unable to issue a certificate.", + "computed": true + }, + "error_message": { + "name": "error_message", + "type": "TypeString", + "description": "A human-readable message that provides details about the issuance error.", + "computed": true + }, + "ordered_on": { + "name": "ordered_on", + "type": "TypeString", + "description": "The date when the certificate is ordered. The date format follows RFC 3339.", + "computed": true + }, + "state": { + "name": "state", + "type": "TypeInt", + "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", + "computed": true + }, + "state_description": { + "name": "state_description", + "type": "TypeString", + "description": "A text representation of the secret state.", + "computed": true + } + } }, { - "name": "allow_any_name", - "type": "TypeBool", - "description": "Determines whether to allow clients to request a private certificate that matches any common name.", - "optional": true, + "name": "serial_number", + "type": "TypeString", + "description": "The unique serial number that was assigned to a certificate by the issuing certificate authority.", "computed": true }, { - "name": "created_by", + "name": "instance_id", "type": "TypeString", - "description": "The unique identifier that is associated with the entity that created the secret.", - "computed": true + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true }, { - "name": "ttl_seconds", - "type": "TypeInt", - "description": "The requested Time To Live, after which the certificate will be expired.", + "name": "region", + "type": "TypeString", + "description": "The region of the Secrets Manager instance.", + "cloud_data_type": "region", + "immutable": true, + "optional": true, "computed": true }, { - "name": "locality", - "type": "TypeList", - "description": "The Locality (L) values to define in the subject field of the resulting certificate.", + "name": "custom_metadata", + "type": "TypeMap", + "description": "The secret metadata that a user can customize.", "optional": true, "computed": true, "elem": { @@ -146377,117 +151004,171 @@ } }, { - "name": "certificate_authority", + "name": "created_at", "type": "TypeString", - "description": "The name of the intermediate certificate authority.", - "required": true + "description": "The date when a resource was created. The date format follows RFC 3339.", + "computed": true }, { - "name": "allow_subdomains", - "type": "TypeBool", - "description": "Determines whether to allow clients to request private certificates with common names (CN) that are subdomains of the CNs that are allowed by the other certificate template options. This includes wildcard subdomains.For example, if `allowed_domains` has a value of `example.com` and `allow_subdomains`is set to `true`, then the following subdomains are allowed: `foo.example.com`, `bar.example.com`, `*.example.com`.**Note:** This field is redundant if you use the `allow_any_name` option.", + "name": "secret_group_id", + "type": "TypeString", + "description": "A v4 UUID identifier, or `default` secret group.", + "immutable": true, "optional": true, "computed": true }, { - "name": "allow_glob_domains", - "type": "TypeBool", - "description": "Determines whether to allow glob patterns, for example, `ftp*.example.com`, in the names that are specified in the `allowed_domains` field.If set to `true`, clients are allowed to request private certificates with names that match the glob patterns.", - "optional": true, - "computed": true + "name": "common_name", + "type": "TypeString", + "description": "The Common Name (AKA CN) represents the server name that is protected by the SSL certificate.", + "immutable": true, + "required": true }, { - "name": "ext_key_usage", + "name": "dns", + "type": "TypeString", + "description": "The name of the DNS provider configuration.", + "immutable": true, + "required": true + }, + { + "name": "rotation", "type": "TypeList", - "description": "The allowed extended key usage constraint on private certificates.You can find valid values in the [Go x509 package documentation](https://golang.org/pkg/crypto/x509/#ExtKeyUsage). Omit the `ExtKeyUsage` part of the value. Values are not case-sensitive. To specify no key usage constraints, set this field to an empty list.", + "description": "Determines whether Secrets Manager rotates your secrets automatically.", "optional": true, "computed": true, "elem": { - "type": "TypeString" - } + "auto_rotate": { + "name": "auto_rotate", + "type": "TypeBool", + "description": "Determines whether Secrets Manager rotates your secret automatically.Default is `false`. If `auto_rotate` is set to `true` the service rotates your certificate 31 days before it expires.", + "optional": true, + "computed": true + }, + "rotate_keys": { + "name": "rotate_keys", + "type": "TypeBool", + "description": "Determines whether Secrets Manager rotates the private key for your public certificate automatically.Default is `false`. If it is set to `true`, the service generates and stores a new private key for your rotated certificate.", + "optional": true, + "computed": true + } + }, + "max_items": 1 }, { - "name": "use_csr_common_name", - "type": "TypeBool", - "description": "When used with the `private_cert_configuration_action_sign_csr` action, this field determines whether to use the common name (CN) from a certificate signing request (CSR) instead of the CN that's included in the data of the certificate.Does not include any requested Subject Alternative Names (SANs) in the CSR. To use the alternative names, include the `use_csr_sans` property.", - "optional": true, + "name": "state_description", + "type": "TypeString", + "description": "A text representation of the secret state.", "computed": true }, { - "name": "not_before_duration", + "name": "private_key", "type": "TypeString", - "description": "The duration in seconds by which to backdate the `not_before` property of an issued private certificate.The value can be supplied as a string representation of a duration, such as `30s`. In the API response, this value is returned in seconds (integer).", - "optional": true + "description": "(Optional) The PEM-encoded private key to associate with the certificate.", + "secure": true, + "computed": true }, { - "name": "max_ttl", + "name": "description", "type": "TypeString", - "description": "The maximum time-to-live (TTL) for certificates that are created by this CA.The value can be supplied as a string representation of a duration in hours, for example '8760h'. In the API response, this value is returned in seconds (integer).Minimum value is one hour (`1h`). Maximum value is 100 years (`876000h`).", + "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", "optional": true }, { - "name": "postal_code", - "type": "TypeList", - "description": "The postal code values to define in the subject field of the resulting certificate.", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "locks_total", + "type": "TypeInt", + "description": "The number of locks of the secret.", + "computed": true }, { - "name": "allow_ip_sans", - "type": "TypeBool", - "description": "Determines whether to allow clients to request a private certificate with IP Subject Alternative Names.", - "optional": true, + "name": "issuer", + "type": "TypeString", + "description": "The distinguished name that identifies the entity that signed and issued the certificate.", "computed": true }, { - "name": "email_protection_flag", - "type": "TypeBool", - "description": "Determines whether private certificates are flagged for email protection use.", - "optional": true, - "computed": true + "name": "ca", + "type": "TypeString", + "description": "The name of the certificate authority configuration.", + "immutable": true, + "required": true }, { - "name": "use_csr_sans", - "type": "TypeBool", - "description": "When used with the `private_cert_configuration_action_sign_csr` action, this field determines whether to use the Subject Alternative Names(SANs) from a certificate signing request (CSR) instead of the SANs that are included in the data of the certificate.Does not include the common name in the CSR. To use the common name, include the `use_csr_common_name` property.", - "optional": true, + "name": "created_by", + "type": "TypeString", + "description": "The unique identifier that is associated with the entity that created the secret.", "computed": true }, { - "name": "require_cn", - "type": "TypeBool", - "description": "Determines whether to require a common name to create a private certificate.By default, a common name is required to generate a certificate. To make the `common_name` field optional, set the `require_cn` option to `false`.", - "optional": true, + "name": "versions_total", + "type": "TypeInt", + "description": "The number of versions of the secret.", "computed": true }, { - "name": "policy_identifiers", + "name": "endpoint_type", + "type": "TypeString", + "description": "public or private.", + "optional": true + }, + { + "name": "labels", "type": "TypeList", - "description": "A list of policy Object Identifiers (OIDs).", + "description": "Labels that you can use to search for secrets in your instance.Up to 30 labels can be created.", "optional": true, "computed": true, "elem": { "type": "TypeString" } - } - ], - "ibm_sm_public_certificate": [ + }, { - "name": "ca", + "name": "key_algorithm", "type": "TypeString", - "description": "The name of the certificate authority configuration.", + "description": "The identifier for the cryptographic algorithm to be used to generate the public key that is associated with the certificate.The algorithm that you select determines the encryption algorithm (`RSA` or `ECDSA`) and key size to be used to generate keys and sign certificates. For longer living certificates, it is recommended to use longer keys to provide more encryption protection. Allowed values: RSA2048, RSA4096, EC256, EC384.", + "default_value": "RSA2048", "immutable": true, - "required": true + "optional": true }, { - "name": "versions_total", - "type": "TypeInt", - "description": "The number of versions of the secret.", + "name": "secret_id", + "type": "TypeString", + "description": "A v4 UUID identifier.", + "computed": true + }, + { + "name": "updated_at", + "type": "TypeString", + "description": "The date when a resource was recently modified. The date format follows RFC 3339.", + "computed": true + }, + { + "name": "certificate", + "type": "TypeString", + "description": "The PEM-encoded contents of your certificate.", + "secure": true, + "computed": true + }, + { + "name": "intermediate", + "type": "TypeString", + "description": "(Optional) The PEM-encoded intermediate certificate to associate with the root certificate.", + "secure": true, "computed": true }, + { + "name": "name", + "type": "TypeString", + "description": "A human-readable name to assign to your secret.To protect your privacy, do not use personal data, such as your name or location, as a name for your secret.", + "required": true + }, + { + "name": "bundle_certs", + "type": "TypeBool", + "description": "Determines whether your issued certificate is bundled with intermediate certificates. Set to `false` for the certificate file to contain only the issued certificate.", + "default_value": true, + "immutable": true, + "optional": true + }, { "name": "validity", "type": "TypeList", @@ -146509,10 +151190,9 @@ } }, { - "name": "certificate", + "name": "secret_type", "type": "TypeString", - "description": "The PEM-encoded contents of your certificate.", - "secure": true, + "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", "computed": true }, { @@ -146599,175 +151279,32 @@ "max_items": 1 }, { - "name": "state_description", + "name": "crn", "type": "TypeString", - "description": "A text representation of the secret state.", + "description": "A CRN that uniquely identifies an IBM Cloud resource.", + "cloud_data_type": "crn", "computed": true }, { - "name": "private_key", - "type": "TypeString", - "description": "(Optional) The PEM-encoded private key to associate with the certificate.", - "secure": true, + "name": "state", + "type": "TypeInt", + "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", "computed": true }, { - "name": "created_by", + "name": "expiration_date", "type": "TypeString", - "description": "The unique identifier that is associated with the entity that created the secret.", + "description": "The date a secret is expired. The date format follows RFC 3339.", "computed": true - }, + } + ], + "ibm_sm_public_certificate_action_validate_manual_dns": [ { "name": "secret_id", "type": "TypeString", "description": "A v4 UUID identifier.", - "computed": true - }, - { - "name": "issuer", - "type": "TypeString", - "description": "The distinguished name that identifies the entity that signed and issued the certificate.", - "computed": true - }, - { - "name": "secret_group_id", - "type": "TypeString", - "description": "A v4 UUID identifier, or `default` secret group.", - "immutable": true, - "optional": true, - "computed": true - }, - { - "name": "key_algorithm", - "type": "TypeString", - "description": "The identifier for the cryptographic algorithm to be used to generate the public key that is associated with the certificate.The algorithm that you select determines the encryption algorithm (`RSA` or `ECDSA`) and key size to be used to generate keys and sign certificates. For longer living certificates, it is recommended to use longer keys to provide more encryption protection. Allowed values: RSA2048, RSA4096, EC256, EC384.", - "default_value": "RSA2048", "immutable": true, - "optional": true - }, - { - "name": "rotation", - "type": "TypeList", - "description": "Determines whether Secrets Manager rotates your secrets automatically.", - "optional": true, - "computed": true, - "elem": { - "auto_rotate": { - "name": "auto_rotate", - "type": "TypeBool", - "description": "Determines whether Secrets Manager rotates your secret automatically.Default is `false`. If `auto_rotate` is set to `true` the service rotates your certificate 31 days before it expires.", - "optional": true, - "computed": true - }, - "rotate_keys": { - "name": "rotate_keys", - "type": "TypeBool", - "description": "Determines whether Secrets Manager rotates the private key for your public certificate automatically.Default is `false`. If it is set to `true`, the service generates and stores a new private key for your rotated certificate.", - "optional": true, - "computed": true - } - }, - "max_items": 1 - }, - { - "name": "signing_algorithm", - "type": "TypeString", - "description": "The identifier for the cryptographic algorithm that was used by the issuing certificate authority to sign a certificate.", - "computed": true - }, - { - "name": "expiration_date", - "type": "TypeString", - "description": "The date a secret is expired. The date format follows RFC 3339.", - "computed": true - }, - { - "name": "issuance_info", - "type": "TypeList", - "description": "Issuance information that is associated with your certificate.", - "computed": true, - "elem": { - "auto_rotated": { - "name": "auto_rotated", - "type": "TypeBool", - "description": "Indicates whether the issued certificate is configured with an automatic rotation policy.", - "computed": true - }, - "challenges": { - "name": "challenges", - "type": "TypeList", - "description": "The set of challenges. It is returned only when ordering public certificates by using manual DNS configuration.", - "computed": true, - "elem": { - "domain": { - "name": "domain", - "type": "TypeString", - "description": "The challenge domain.", - "computed": true - }, - "expiration": { - "name": "expiration", - "type": "TypeString", - "description": "The challenge expiration date. The date format follows RFC 3339.", - "computed": true - }, - "status": { - "name": "status", - "type": "TypeString", - "description": "The challenge status.", - "computed": true - }, - "txt_record_name": { - "name": "txt_record_name", - "type": "TypeString", - "description": "The TXT record name.", - "computed": true - }, - "txt_record_value": { - "name": "txt_record_value", - "type": "TypeString", - "description": "The TXT record value.", - "computed": true - } - } - }, - "dns_challenge_validation_time": { - "name": "dns_challenge_validation_time", - "type": "TypeString", - "description": "The date that a user requests to validate DNS challenges for certificates that are ordered with a manual DNS provider. The date format follows RFC 3339.", - "computed": true - }, - "error_code": { - "name": "error_code", - "type": "TypeString", - "description": "A code that identifies an issuance error.This field, along with `error_message`, is returned when Secrets Manager successfully processes your request, but the certificate authority is unable to issue a certificate.", - "computed": true - }, - "error_message": { - "name": "error_message", - "type": "TypeString", - "description": "A human-readable message that provides details about the issuance error.", - "computed": true - }, - "ordered_on": { - "name": "ordered_on", - "type": "TypeString", - "description": "The date when the certificate is ordered. The date format follows RFC 3339.", - "computed": true - }, - "state": { - "name": "state", - "type": "TypeInt", - "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", - "computed": true - }, - "state_description": { - "name": "state_description", - "type": "TypeString", - "description": "A text representation of the secret state.", - "computed": true - } - } + "required": true }, { "name": "instance_id", @@ -146777,32 +151314,6 @@ "immutable": true, "required": true }, - { - "name": "endpoint_type", - "type": "TypeString", - "description": "public or private.", - "optional": true - }, - { - "name": "common_name", - "type": "TypeString", - "description": "The Common Name (AKA CN) represents the server name that is protected by the SSL certificate.", - "immutable": true, - "required": true - }, - { - "name": "crn", - "type": "TypeString", - "description": "A CRN that uniquely identifies an IBM Cloud resource.", - "cloud_data_type": "crn", - "computed": true - }, - { - "name": "state", - "type": "TypeInt", - "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", - "computed": true - }, { "name": "region", "type": "TypeString", @@ -146813,107 +151324,13 @@ "computed": true }, { - "name": "secret_type", - "type": "TypeString", - "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", - "computed": true - }, - { - "name": "name", - "type": "TypeString", - "description": "A human-readable name to assign to your secret.To protect your privacy, do not use personal data, such as your name or location, as a name for your secret.", - "required": true - }, - { - "name": "downloaded", - "type": "TypeBool", - "description": "Indicates whether the secret data that is associated with a secret version was retrieved in a call to the service API.", - "computed": true - }, - { - "name": "labels", - "type": "TypeList", - "description": "Labels that you can use to search for secrets in your instance.Up to 30 labels can be created.", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "created_at", - "type": "TypeString", - "description": "The date when a resource was created. The date format follows RFC 3339.", - "computed": true - }, - { - "name": "serial_number", - "type": "TypeString", - "description": "The unique serial number that was assigned to a certificate by the issuing certificate authority.", - "computed": true - }, - { - "name": "custom_metadata", - "type": "TypeMap", - "description": "The secret metadata that a user can customize.", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "version_custom_metadata", - "type": "TypeMap", - "description": "The secret version metadata that a user can customize.", - "immutable": true, - "optional": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "locks_total", - "type": "TypeInt", - "description": "The number of locks of the secret.", - "computed": true - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "The date when a resource was recently modified. The date format follows RFC 3339.", - "computed": true - }, - { - "name": "intermediate", - "type": "TypeString", - "description": "(Optional) The PEM-encoded intermediate certificate to associate with the root certificate.", - "secure": true, - "computed": true - }, - { - "name": "description", - "type": "TypeString", - "description": "An extended description of your secret.To protect your privacy, do not use personal data, such as your name or location, as a description for your secret group.", - "optional": true - }, - { - "name": "dns", + "name": "endpoint_type", "type": "TypeString", - "description": "The name of the DNS provider configuration.", - "immutable": true, - "required": true - }, - { - "name": "bundle_certs", - "type": "TypeBool", - "description": "Determines whether your issued certificate is bundled with intermediate certificates. Set to `false` for the certificate file to contain only the issued certificate.", - "default_value": true, - "immutable": true, + "description": "public or private.", "optional": true } ], - "ibm_sm_public_certificate_action_validate_manual_dns": [ + "ibm_sm_public_certificate_configuration_ca_lets_encrypt": [ { "name": "region", "type": "TypeString", @@ -146930,22 +151347,12 @@ "optional": true }, { - "name": "secret_id", + "name": "name", "type": "TypeString", - "description": "A v4 UUID identifier.", + "description": "A human-readable unique name to assign to your configuration.To protect your privacy, do not use personal data, such as your name or location, as an name for your secret.", "immutable": true, "required": true }, - { - "name": "instance_id", - "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true - } - ], - "ibm_sm_public_certificate_configuration_ca_lets_encrypt": [ { "name": "lets_encrypt_environment", "type": "TypeString", @@ -146978,7 +151385,9 @@ "cloud_data_type": "resource_instance", "immutable": true, "required": true - }, + } + ], + "ibm_sm_public_certificate_configuration_dns_cis": [ { "name": "region", "type": "TypeString", @@ -146995,20 +151404,32 @@ "optional": true }, { - "name": "name", + "name": "cloud_internet_services_apikey", "type": "TypeString", - "description": "A human-readable unique name to assign to your configuration.To protect your privacy, do not use personal data, such as your name or location, as an name for your secret.", - "immutable": true, - "required": true - } - ], - "ibm_sm_public_certificate_configuration_dns_cis": [ + "description": "An IBM Cloud API key that can to list domains in your Cloud Internet Services instance.To grant Secrets Manager the ability to view the Cloud Internet Services instance and all of its domains, the API key must be assigned the Reader service role on Internet Services (`internet-svcs`).If you need to manage specific domains, you can assign the Manager role. For production environments, it is recommended that you assign the Reader access role, and then use the[IAM Policy Management API](https://cloud.ibm.com/apidocs/iam-policy-management#create-policy) to control specific domains. For more information, see the [docs](https://cloud.ibm.com/docs/secrets-manager?topic=secrets-manager-prepare-order-certificates#authorize-specific-domains).", + "min_length": 4, + "max_length": 128, + "matches": "(.*?)", + "optional": true + }, { "name": "created_by", "type": "TypeString", "description": "The unique identifier that is associated with the entity that created the secret.", "computed": true }, + { + "name": "updated_at", + "type": "TypeString", + "description": "The date when a resource was recently modified. The date format follows RFC 3339.", + "computed": true + }, + { + "name": "secret_type", + "type": "TypeString", + "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", + "computed": true + }, { "name": "created_at", "type": "TypeString", @@ -147016,10 +151437,12 @@ "computed": true }, { - "name": "endpoint_type", + "name": "instance_id", "type": "TypeString", - "description": "public or private.", - "optional": true + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true }, { "name": "name", @@ -147042,6 +151465,17 @@ "min_length": 9, "max_length": 512, "matches": "^crn:v[0-9](:([A-Za-z0-9-._~!$\u0026'()*+,;=@\\/]|%[0-9A-Z]{2})*){8}$" + } + ], + "ibm_sm_public_certificate_configuration_dns_classic_infrastructure": [ + { + "name": "classic_infrastructure_username", + "type": "TypeString", + "description": "The username that is associated with your classic infrastructure account.In most cases, your classic infrastructure username is your `\u003caccount_id\u003e_\u003cemail_address\u003e`. For more information, see the [docs](https://cloud.ibm.com/docs/account?topic=account-classic_keys).", + "required": true, + "min_length": 2, + "max_length": 128, + "matches": "(.*?)" }, { "name": "secret_type", @@ -147050,13 +151484,10 @@ "computed": true }, { - "name": "cloud_internet_services_apikey", + "name": "created_at", "type": "TypeString", - "description": "An IBM Cloud API key that can to list domains in your Cloud Internet Services instance.To grant Secrets Manager the ability to view the Cloud Internet Services instance and all of its domains, the API key must be assigned the Reader service role on Internet Services (`internet-svcs`).If you need to manage specific domains, you can assign the Manager role. For production environments, it is recommended that you assign the Reader access role, and then use the[IAM Policy Management API](https://cloud.ibm.com/apidocs/iam-policy-management#create-policy) to control specific domains. For more information, see the [docs](https://cloud.ibm.com/docs/secrets-manager?topic=secrets-manager-prepare-order-certificates#authorize-specific-domains).", - "min_length": 4, - "max_length": 128, - "matches": "(.*?)", - "optional": true + "description": "The date when a resource was created. The date format follows RFC 3339.", + "computed": true }, { "name": "updated_at", @@ -147064,14 +151495,6 @@ "description": "The date when a resource was recently modified. The date format follows RFC 3339.", "computed": true }, - { - "name": "instance_id", - "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true - }, { "name": "region", "type": "TypeString", @@ -147080,9 +151503,7 @@ "immutable": true, "optional": true, "computed": true - } - ], - "ibm_sm_public_certificate_configuration_dns_classic_infrastructure": [ + }, { "name": "name", "type": "TypeString", @@ -147097,13 +151518,18 @@ "computed": true }, { - "name": "classic_infrastructure_username", + "name": "instance_id", "type": "TypeString", - "description": "The username that is associated with your classic infrastructure account.In most cases, your classic infrastructure username is your `\u003caccount_id\u003e_\u003cemail_address\u003e`. For more information, see the [docs](https://cloud.ibm.com/docs/account?topic=account-classic_keys).", - "required": true, - "min_length": 2, - "max_length": 128, - "matches": "(.*?)" + "description": "The ID of the Secrets Manager instance.", + "cloud_data_type": "resource_instance", + "immutable": true, + "required": true + }, + { + "name": "endpoint_type", + "type": "TypeString", + "description": "public or private.", + "optional": true }, { "name": "classic_infrastructure_password", @@ -147114,30 +151540,14 @@ "max_length": 128, "matches": "(.*?)" }, - { - "name": "secret_type", - "type": "TypeString", - "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", - "computed": true - }, - { - "name": "updated_at", - "type": "TypeString", - "description": "The date when a resource was recently modified. The date format follows RFC 3339.", - "computed": true - }, { "name": "created_by", "type": "TypeString", "description": "The unique identifier that is associated with the entity that created the secret.", "computed": true - }, - { - "name": "created_at", - "type": "TypeString", - "description": "The date when a resource was created. The date format follows RFC 3339.", - "computed": true - }, + } + ], + "ibm_sm_secret_group": [ { "name": "instance_id", "type": "TypeString", @@ -147160,9 +151570,22 @@ "type": "TypeString", "description": "public or private.", "optional": true - } - ], - "ibm_sm_secret_group": [ + }, + { + "name": "secret_group_id", + "type": "TypeString", + "description": "A v4 UUID identifier.", + "computed": true + }, + { + "name": "name", + "type": "TypeString", + "description": "The name of your secret group.", + "required": true, + "min_length": 2, + "max_length": 64, + "matches": "[A-Za-z0-9][A-Za-z0-9]*(?:_*-*\\\\.*[A-Za-z0-9]+)*$" + }, { "name": "description", "type": "TypeString", @@ -147182,51 +151605,41 @@ "type": "TypeString", "description": "The date that a resource was recently modified. The date format follows RFC 3339.", "computed": true - }, + } + ], + "ibm_sm_username_password_secret": [ { - "name": "instance_id", + "name": "crn", "type": "TypeString", - "description": "The ID of the Secrets Manager instance.", - "cloud_data_type": "resource_instance", - "immutable": true, - "required": true + "description": "A CRN that uniquely identifies an IBM Cloud resource.", + "cloud_data_type": "crn", + "computed": true }, { - "name": "region", + "name": "state_description", "type": "TypeString", - "description": "The region of the Secrets Manager instance.", - "cloud_data_type": "region", - "immutable": true, - "optional": true, + "description": "A text representation of the secret state.", "computed": true }, { - "name": "endpoint_type", - "type": "TypeString", - "description": "public or private.", - "optional": true + "name": "versions_total", + "type": "TypeInt", + "description": "The number of versions of the secret.", + "computed": true }, { - "name": "secret_group_id", + "name": "region", "type": "TypeString", - "description": "A v4 UUID identifier.", + "description": "The region of the Secrets Manager instance.", + "cloud_data_type": "region", + "immutable": true, + "optional": true, "computed": true }, { - "name": "name", - "type": "TypeString", - "description": "The name of your secret group.", - "required": true, - "min_length": 2, - "max_length": 64, - "matches": "[A-Za-z0-9][A-Za-z0-9]*(?:_*-*\\\\.*[A-Za-z0-9]+)*$" - } - ], - "ibm_sm_username_password_secret": [ - { - "name": "secret_type", + "name": "next_rotation_date", "type": "TypeString", - "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", + "description": "The date that the secret is scheduled for automatic rotation.The service automatically creates a new version of the secret on its next rotation date. This field exists only for secrets that have an existing rotation policy.", "computed": true }, { @@ -147259,13 +151672,6 @@ }, "max_items": 1 }, - { - "name": "username", - "type": "TypeString", - "description": "The username that is assigned to the secret.", - "immutable": true, - "required": true - }, { "name": "password", "type": "TypeString", @@ -147275,54 +151681,35 @@ "required": true }, { - "name": "locks_total", - "type": "TypeInt", - "description": "The number of locks of the secret.", + "name": "downloaded", + "type": "TypeBool", + "description": "Indicates whether the secret data that is associated with a secret version was retrieved in a call to the service API.", "computed": true }, { - "name": "next_rotation_date", - "type": "TypeString", - "description": "The date that the secret is scheduled for automatic rotation.The service automatically creates a new version of the secret on its next rotation date. This field exists only for secrets that have an existing rotation policy.", + "name": "state", + "type": "TypeInt", + "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", "computed": true }, { - "name": "expiration_date", - "type": "TypeString", - "description": "The date a secret is expired. The date format follows RFC 3339.", - "optional": true - }, - { - "name": "name", - "type": "TypeString", - "description": "A human-readable name to assign to your secret.To protect your privacy, do not use personal data, such as your name or location, as a name for your secret.", - "required": true - }, - { - "name": "region", + "name": "created_by", "type": "TypeString", - "description": "The region of the Secrets Manager instance.", - "cloud_data_type": "region", - "immutable": true, - "optional": true, + "description": "The unique identifier that is associated with the entity that created the secret.", "computed": true }, - { - "name": "version_custom_metadata", - "type": "TypeMap", - "description": "The secret version metadata that a user can customize.", - "immutable": true, - "optional": true, - "elem": { - "type": "TypeString" - } - }, { "name": "created_at", "type": "TypeString", "description": "The date when a resource was created. The date format follows RFC 3339.", "computed": true }, + { + "name": "locks_total", + "type": "TypeInt", + "description": "The number of locks of the secret.", + "computed": true + }, { "name": "endpoint_type", "type": "TypeString", @@ -147336,22 +151723,10 @@ "optional": true }, { - "name": "secret_id", + "name": "expiration_date", "type": "TypeString", - "description": "A v4 UUID identifier.", - "computed": true - }, - { - "name": "downloaded", - "type": "TypeBool", - "description": "Indicates whether the secret data that is associated with a secret version was retrieved in a call to the service API.", - "computed": true - }, - { - "name": "versions_total", - "type": "TypeInt", - "description": "The number of versions of the secret.", - "computed": true + "description": "The date a secret is expired. The date format follows RFC 3339.", + "optional": true }, { "name": "secret_group_id", @@ -147362,29 +151737,27 @@ "computed": true }, { - "name": "crn", + "name": "username", "type": "TypeString", - "description": "A CRN that uniquely identifies an IBM Cloud resource.", - "cloud_data_type": "crn", - "computed": true + "description": "The username that is assigned to the secret.", + "immutable": true, + "required": true }, { - "name": "created_by", + "name": "secret_type", "type": "TypeString", - "description": "The unique identifier that is associated with the entity that created the secret.", - "computed": true - }, - { - "name": "state", - "type": "TypeInt", - "description": "The secret state that is based on NIST SP 800-57. States are integers and correspond to the `Pre-activation = 0`, `Active = 1`, `Suspended = 2`, `Deactivated = 3`, and `Destroyed = 5` values.", + "description": "The secret type. Supported types are arbitrary, certificates (imported, public, and private), IAM credentials, key-value, and user credentials.", "computed": true }, { - "name": "state_description", - "type": "TypeString", - "description": "A text representation of the secret state.", - "computed": true + "name": "version_custom_metadata", + "type": "TypeMap", + "description": "The secret version metadata that a user can customize.", + "immutable": true, + "optional": true, + "elem": { + "type": "TypeString" + } }, { "name": "updated_at", @@ -147419,6 +151792,18 @@ "elem": { "type": "TypeString" } + }, + { + "name": "name", + "type": "TypeString", + "description": "A human-readable name to assign to your secret.To protect your privacy, do not use personal data, such as your name or location, as a name for your secret.", + "required": true + }, + { + "name": "secret_id", + "type": "TypeString", + "description": "A v4 UUID identifier.", + "computed": true } ], "ibm_space": [ @@ -147481,95 +151866,64 @@ ], "ibm_ssl_certificate": [ { - "name": "technical_contact_same_as_org_address_flag", - "type": "TypeBool", - "description": "Technical contact same as org address flag", - "default_value": false, - "optional": true - }, - { - "name": "administrative_address_same_as_organization_flag", - "type": "TypeBool", - "description": "administrative address same as organization flag", - "default_value": false, - "optional": true - }, - { - "name": "technical_contact", + "name": "organization_information", "type": "TypeSet", - "description": "Technical contact info", + "description": "Organization information", "required": true, "elem": { - "tech_address": { - "name": "tech_address", + "org_address": { + "name": "org_address", "type": "TypeSet", - "optional": true, + "description": "Organization address", + "required": true, "elem": { - "tech_address_line1": { - "name": "tech_address_line1", + "org_address_line1": { + "name": "org_address_line1", "type": "TypeString", - "optional": true + "required": true }, - "tech_address_line2": { - "name": "tech_address_line2", + "org_address_line2": { + "name": "org_address_line2", "type": "TypeString", "optional": true }, - "tech_city": { - "name": "tech_city", + "org_city": { + "name": "org_city", "type": "TypeString", - "optional": true + "required": true }, - "tech_country_code": { - "name": "tech_country_code", + "org_country_code": { + "name": "org_country_code", "type": "TypeString", - "optional": true + "required": true }, - "tech_postal_code": { - "name": "tech_postal_code", + "org_postal_code": { + "name": "org_postal_code", "type": "TypeString", - "optional": true + "required": true }, - "tech_state": { - "name": "tech_state", + "org_state": { + "name": "org_state", "type": "TypeString", - "optional": true + "required": true } } }, - "tech_email_address": { - "name": "tech_email_address", - "type": "TypeString", - "required": true - }, - "tech_fax_number": { - "name": "tech_fax_number", + "org_fax_number": { + "name": "org_fax_number", "type": "TypeString", "optional": true }, - "tech_first_name": { - "name": "tech_first_name", - "type": "TypeString", - "required": true - }, - "tech_last_name": { - "name": "tech_last_name", - "type": "TypeString", - "required": true - }, - "tech_organization_name": { - "name": "tech_organization_name", - "type": "TypeString", - "required": true - }, - "tech_phone_number": { - "name": "tech_phone_number", + "org_organization_name": { + "name": "org_organization_name", "type": "TypeString", + "description": "Organization name", "required": true }, - "tech_title": { - "name": "tech_title", + "org_phone_number": { + "name": "org_phone_number", "type": "TypeString", + "description": "Organization phone number", "required": true } }, @@ -147656,20 +152010,6 @@ }, "max_items": 1 }, - { - "name": "administrative_contact_same_as_technical_flag", - "type": "TypeBool", - "description": "Administrative contact same as technical flag", - "default_value": false, - "optional": true - }, - { - "name": "billing_contact_same_as_technical_flag", - "type": "TypeBool", - "description": "billing contact", - "default_value": false, - "optional": true - }, { "name": "server_count", "type": "TypeInt", @@ -147689,10 +152029,11 @@ "required": true }, { - "name": "order_approver_email_address", - "type": "TypeString", - "description": "Email address of the approver", - "required": true + "name": "renewal_flag", + "type": "TypeBool", + "description": "Renewal flag", + "default_value": true, + "optional": true }, { "name": "billing_address_same_as_organization_flag", @@ -147701,6 +152042,94 @@ "default_value": false, "optional": true }, + { + "name": "administrative_contact_same_as_technical_flag", + "type": "TypeBool", + "description": "Administrative contact same as technical flag", + "default_value": false, + "optional": true + }, + { + "name": "technical_contact", + "type": "TypeSet", + "description": "Technical contact info", + "required": true, + "elem": { + "tech_address": { + "name": "tech_address", + "type": "TypeSet", + "optional": true, + "elem": { + "tech_address_line1": { + "name": "tech_address_line1", + "type": "TypeString", + "optional": true + }, + "tech_address_line2": { + "name": "tech_address_line2", + "type": "TypeString", + "optional": true + }, + "tech_city": { + "name": "tech_city", + "type": "TypeString", + "optional": true + }, + "tech_country_code": { + "name": "tech_country_code", + "type": "TypeString", + "optional": true + }, + "tech_postal_code": { + "name": "tech_postal_code", + "type": "TypeString", + "optional": true + }, + "tech_state": { + "name": "tech_state", + "type": "TypeString", + "optional": true + } + } + }, + "tech_email_address": { + "name": "tech_email_address", + "type": "TypeString", + "required": true + }, + "tech_fax_number": { + "name": "tech_fax_number", + "type": "TypeString", + "optional": true + }, + "tech_first_name": { + "name": "tech_first_name", + "type": "TypeString", + "required": true + }, + "tech_last_name": { + "name": "tech_last_name", + "type": "TypeString", + "required": true + }, + "tech_organization_name": { + "name": "tech_organization_name", + "type": "TypeString", + "required": true + }, + "tech_phone_number": { + "name": "tech_phone_number", + "type": "TypeString", + "required": true + }, + "tech_title": { + "name": "tech_title", + "type": "TypeString", + "required": true + } + }, + "max_items": 1 + }, { "name": "billing_contact", "type": "TypeSet", @@ -147781,6 +152210,13 @@ }, "max_items": 1 }, + { + "name": "administrative_address_same_as_organization_flag", + "type": "TypeBool", + "description": "administrative address same as organization flag", + "default_value": false, + "optional": true + }, { "name": "server_type", "type": "TypeString", @@ -147794,75 +152230,24 @@ "required": true }, { - "name": "renewal_flag", + "name": "order_approver_email_address", + "type": "TypeString", + "description": "Email address of the approver", + "required": true + }, + { + "name": "technical_contact_same_as_org_address_flag", "type": "TypeBool", - "description": "Renewal flag", - "default_value": true, + "description": "Technical contact same as org address flag", + "default_value": false, "optional": true }, { - "name": "organization_information", - "type": "TypeSet", - "description": "Organization information", - "required": true, - "elem": { - "org_address": { - "name": "org_address", - "type": "TypeSet", - "description": "Organization address", - "required": true, - "elem": { - "org_address_line1": { - "name": "org_address_line1", - "type": "TypeString", - "required": true - }, - "org_address_line2": { - "name": "org_address_line2", - "type": "TypeString", - "optional": true - }, - "org_city": { - "name": "org_city", - "type": "TypeString", - "required": true - }, - "org_country_code": { - "name": "org_country_code", - "type": "TypeString", - "required": true - }, - "org_postal_code": { - "name": "org_postal_code", - "type": "TypeString", - "required": true - }, - "org_state": { - "name": "org_state", - "type": "TypeString", - "required": true - } - } - }, - "org_fax_number": { - "name": "org_fax_number", - "type": "TypeString", - "optional": true - }, - "org_organization_name": { - "name": "org_organization_name", - "type": "TypeString", - "description": "Organization name", - "required": true - }, - "org_phone_number": { - "name": "org_phone_number", - "type": "TypeString", - "description": "Organization phone number", - "required": true - } - }, - "max_items": 1 + "name": "billing_contact_same_as_technical_flag", + "type": "TypeBool", + "description": "billing contact", + "default_value": false, + "optional": true } ], "ibm_storage_block": [ @@ -147877,43 +152262,7 @@ } }, { - "name": "tags", - "type": "TypeSet", - "description": "List of tags associated with the resource", - "cloud_data_type": "tags", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "hourly_billing", - "type": "TypeBool", - "description": "Billing done hourly, if set to true", - "default_value": false, - "immutable": true, - "optional": true - }, - { - "name": "resource_controller_url", - "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", - "computed": true - }, - { - "name": "capacity", - "type": "TypeInt", - "description": "Storage block size", - "required": true - }, - { - "name": "lunid", - "type": "TypeString", - "description": "LUN Id", - "computed": true - }, - { - "name": "allowed_virtual_guest_info", + "name": "allowed_hardware_info", "type": "TypeSet", "computed": true, "elem": { @@ -147940,42 +152289,6 @@ }, "deprecated": "Please use 'allowed_host_info' instead" }, - { - "name": "allowed_host_info", - "type": "TypeList", - "computed": true, - "elem": { - "host_iqn": { - "name": "host_iqn", - "type": "TypeString", - "computed": true - }, - "id": { - "name": "id", - "type": "TypeInt", - "computed": true - }, - "password": { - "name": "password", - "type": "TypeString", - "computed": true - }, - "username": { - "name": "username", - "type": "TypeString", - "computed": true - } - } - }, - { - "name": "target_address", - "type": "TypeList", - "description": "List of target Addresses", - "computed": true, - "elem": { - "type": "TypeString" - } - }, { "name": "type", "type": "TypeString", @@ -147984,11 +152297,18 @@ "required": true }, { - "name": "iops", - "type": "TypeFloat", - "description": "IOPS value required", + "name": "datacenter", + "type": "TypeString", + "description": "Datacenter name", + "immutable": true, "required": true }, + { + "name": "lunid", + "type": "TypeString", + "description": "LUN Id", + "computed": true + }, { "name": "snapshot_capacity", "type": "TypeInt", @@ -147996,6 +152316,19 @@ "immutable": true, "optional": true }, + { + "name": "os_format_type", + "type": "TypeString", + "description": "OS formatr type", + "immutable": true, + "required": true + }, + { + "name": "iops", + "type": "TypeFloat", + "description": "IOPS value required", + "required": true + }, { "name": "allowed_ip_addresses", "type": "TypeSet", @@ -148006,35 +152339,32 @@ } }, { - "name": "resource_name", - "type": "TypeString", - "description": "The name of the resource", - "computed": true - }, - { - "name": "datacenter", - "type": "TypeString", - "description": "Datacenter name", + "name": "hourly_billing", + "type": "TypeBool", + "description": "Billing done hourly, if set to true", + "default_value": false, "immutable": true, - "required": true + "optional": true }, { - "name": "volumename", - "type": "TypeString", - "description": "Volume name", - "computed": true + "name": "target_address", + "type": "TypeList", + "description": "List of target Addresses", + "computed": true, + "elem": { + "type": "TypeString" + } }, { - "name": "hostname", + "name": "resource_name", "type": "TypeString", - "description": "Hostname", + "description": "The name of the resource", "computed": true }, { - "name": "os_format_type", - "type": "TypeString", - "description": "OS formatr type", - "immutable": true, + "name": "capacity", + "type": "TypeInt", + "description": "Storage block size", "required": true }, { @@ -148043,6 +152373,34 @@ "description": "Additional note info", "optional": true }, + { + "name": "allowed_virtual_guest_info", + "type": "TypeSet", + "computed": true, + "elem": { + "host_iqn": { + "name": "host_iqn", + "type": "TypeString", + "computed": true + }, + "id": { + "name": "id", + "type": "TypeInt", + "computed": true + }, + "password": { + "name": "password", + "type": "TypeString", + "computed": true + }, + "username": { + "name": "username", + "type": "TypeString", + "computed": true + } + }, + "deprecated": "Please use 'allowed_host_info' instead" + }, { "name": "allowed_hardware_ids", "type": "TypeSet", @@ -148054,8 +152412,30 @@ } }, { - "name": "allowed_hardware_info", + "name": "tags", "type": "TypeSet", + "description": "List of tags associated with the resource", + "cloud_data_type": "tags", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "volumename", + "type": "TypeString", + "description": "Volume name", + "computed": true + }, + { + "name": "hostname", + "type": "TypeString", + "description": "Hostname", + "computed": true + }, + { + "name": "allowed_host_info", + "type": "TypeList", "computed": true, "elem": { "host_iqn": { @@ -148078,11 +152458,22 @@ "type": "TypeString", "computed": true } - }, - "deprecated": "Please use 'allowed_host_info' instead" + } + }, + { + "name": "resource_controller_url", + "type": "TypeString", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", + "computed": true } ], "ibm_storage_evault": [ + { + "name": "username", + "type": "TypeString", + "description": "user name", + "computed": true + }, { "name": "password", "type": "TypeString", @@ -148132,43 +152523,132 @@ "description": "Hardware instance ID", "immutable": true, "optional": true + } + ], + "ibm_storage_file": [ + { + "name": "volumename", + "type": "TypeString", + "description": "Storage volume name", + "computed": true }, { - "name": "username", + "name": "allowed_virtual_guest_ids", + "type": "TypeSet", + "description": "Virtual guest ID", + "optional": true, + "computed": true, + "elem": { + "type": "TypeInt" + } + }, + { + "name": "allowed_subnets", + "type": "TypeSet", + "description": "Allowed network subnets", + "optional": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "resource_name", "type": "TypeString", - "description": "user name", + "description": "The name of the resource", "computed": true - } - ], - "ibm_storage_file": [ + }, { - "name": "type", + "name": "resource_status", "type": "TypeString", - "description": "Storage type", - "immutable": true, + "description": "The status of the resource", + "computed": true + }, + { + "name": "capacity", + "type": "TypeInt", + "description": "Storage capacity", "required": true }, { - "name": "volumename", + "name": "hostname", "type": "TypeString", - "description": "Storage volume name", + "description": "Hostname", "computed": true }, { - "name": "allowed_subnets", + "name": "mountpoint", + "type": "TypeString", + "description": "Storage mount point", + "computed": true + }, + { + "name": "tags", "type": "TypeSet", - "description": "Allowed network subnets", + "description": "Tags set for the storage volume", + "cloud_data_type": "tags", "optional": true, "elem": { "type": "TypeString" } }, + { + "name": "resource_controller_url", + "type": "TypeString", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", + "computed": true + }, + { + "name": "type", + "type": "TypeString", + "description": "Storage type", + "immutable": true, + "required": true + }, + { + "name": "datacenter", + "type": "TypeString", + "description": "Datacenter name", + "immutable": true, + "required": true + }, + { + "name": "snapshot_capacity", + "type": "TypeInt", + "description": "Snapshot capacity", + "immutable": true, + "optional": true + }, { "name": "notes", "type": "TypeString", "description": "Notes", "optional": true }, + { + "name": "iops", + "type": "TypeFloat", + "description": "iops rate", + "required": true + }, + { + "name": "allowed_hardware_ids", + "type": "TypeSet", + "description": "Hardaware ID", + "optional": true, + "computed": true, + "elem": { + "type": "TypeInt" + } + }, + { + "name": "allowed_ip_addresses", + "type": "TypeSet", + "description": "Allowed range of IP addresses", + "optional": true, + "elem": { + "type": "TypeString" + } + }, { "name": "snapshot_schedule", "type": "TypeSet", @@ -148212,22 +152692,6 @@ }, "max_items": 3 }, - { - "name": "resource_controller_url", - "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", - "computed": true - }, - { - "name": "tags", - "type": "TypeSet", - "description": "Tags set for the storage volume", - "cloud_data_type": "tags", - "optional": true, - "elem": { - "type": "TypeString" - } - }, { "name": "hourly_billing", "type": "TypeBool", @@ -148235,92 +152699,46 @@ "default_value": false, "immutable": true, "optional": true - }, - { - "name": "datacenter", - "type": "TypeString", - "description": "Datacenter name", - "immutable": true, - "required": true - }, - { - "name": "iops", - "type": "TypeFloat", - "description": "iops rate", - "required": true - }, - { - "name": "snapshot_capacity", - "type": "TypeInt", - "description": "Snapshot capacity", - "immutable": true, - "optional": true - }, - { - "name": "allowed_virtual_guest_ids", - "type": "TypeSet", - "description": "Virtual guest ID", - "optional": true, - "computed": true, - "elem": { - "type": "TypeInt" - } - }, - { - "name": "allowed_hardware_ids", - "type": "TypeSet", - "description": "Hardaware ID", - "optional": true, - "computed": true, - "elem": { - "type": "TypeInt" - } - }, - { - "name": "mountpoint", - "type": "TypeString", - "description": "Storage mount point", - "computed": true - }, + } + ], + "ibm_subnet": [ { "name": "capacity", "type": "TypeInt", - "description": "Storage capacity", + "description": "number of ip addresses in the subnet", + "immutable": true, "required": true }, { - "name": "hostname", + "name": "endpoint_ip", "type": "TypeString", - "description": "Hostname", - "computed": true + "description": "endpoint IP", + "immutable": true, + "optional": true }, { - "name": "allowed_ip_addresses", + "name": "tags", "type": "TypeSet", - "description": "Allowed range of IP addresses", + "description": "tags set for the resource", + "cloud_data_type": "tags", "optional": true, "elem": { "type": "TypeString" } }, { - "name": "resource_name", - "type": "TypeString", - "description": "The name of the resource", - "computed": true + "name": "private", + "type": "TypeBool", + "description": "private subnet", + "default_value": false, + "immutable": true, + "optional": true }, { - "name": "resource_status", - "type": "TypeString", - "description": "The status of the resource", - "computed": true - } - ], - "ibm_subnet": [ - { - "name": "endpoint_ip", - "type": "TypeString", - "description": "endpoint IP", + "name": "ip_version", + "type": "TypeInt", + "description": "ip version", + "default_value": 4, "immutable": true, "optional": true }, @@ -148337,25 +152755,9 @@ "optional": true }, { - "name": "private", - "type": "TypeBool", - "description": "private subnet", - "default_value": false, - "immutable": true, - "optional": true - }, - { - "name": "ip_version", - "type": "TypeInt", - "description": "ip version", - "default_value": 4, - "immutable": true, - "optional": true - }, - { - "name": "capacity", - "type": "TypeInt", - "description": "number of ip addresses in the subnet", + "name": "type", + "type": "TypeString", + "description": "subnet type", "immutable": true, "required": true }, @@ -148366,49 +152768,35 @@ "immutable": true, "optional": true, "computed": true - }, - { - "name": "tags", - "type": "TypeSet", - "description": "tags set for the resource", - "cloud_data_type": "tags", - "optional": true, - "elem": { - "type": "TypeString" - } - }, - { - "name": "type", - "type": "TypeString", - "description": "subnet type", - "immutable": true, - "required": true } ], "ibm_tg_connection": [ { - "name": "created_at", + "name": "updated_at", "type": "TypeString", - "description": "The date and time that this connection was created", + "description": "The date and time that this connection was last updated", "computed": true }, { - "name": "status", + "name": "local_gateway_ip", "type": "TypeString", - "description": "What is the current configuration state of this connection. Possible values: [attached,failed,pending,deleting,detaching,detached]", + "description": "The local gateway IP address. This field only applies to network type 'gre_tunnel' and 'unbound_gre_tunnel' connections.", + "immutable": true, + "optional": true, "computed": true }, { - "name": "base_network_type", + "name": "local_tunnel_ip", "type": "TypeString", - "description": "The type of network the unbound gre tunnel is targeting. This field is required for network type 'unbound_gre_tunnel'.", + "description": "The local tunnel IP address. This field only applies to network type 'gre_tunnel' and 'unbound_gre_tunnel' connections.", + "immutable": true, "optional": true, "computed": true }, { - "name": "local_tunnel_ip", - "type": "TypeString", - "description": "The local tunnel IP address. This field only applies to network type 'gre_tunnel' and 'unbound_gre_tunnel' connections.", + "name": "remote_bgp_asn", + "type": "TypeInt", + "description": "The remote network BGP ASN. This field only applies to network type 'gre_tunnel' and 'unbound_gre_tunnel' connections.", "immutable": true, "optional": true, "computed": true @@ -148422,27 +152810,36 @@ "computed": true }, { - "name": "network_account_id", + "name": "base_connection_id", "type": "TypeString", - "description": "The ID of the account which owns the network that is being connected. Generally only used if the network is in a different account than the gateway. This field is required for type 'unbound_gre_tunnel' when the associated_network_type is 'classic' and the GRE tunnel is in a different account than the gateway.", + "description": "The ID of a network_type 'classic' connection a tunnel is configured over. This field only applies to network type 'gre_tunnel' connections.", "immutable": true, "optional": true, "computed": true }, { - "name": "remote_tunnel_ip", + "name": "status", "type": "TypeString", - "description": "The remote tunnel IP address. This field only applies to network type 'gre_tunnel' and 'unbound_gre_tunnel' connections.", - "immutable": true, - "optional": true, + "description": "What is the current configuration state of this connection. Possible values: [attached,failed,pending,deleting,detaching,detached]", "computed": true }, { - "name": "gateway", + "name": "request_status", "type": "TypeString", - "description": "The Transit Gateway identifier", - "immutable": true, - "required": true + "description": "Only visible for cross account connections, this field represents the status of the request to connect the given network between accounts.Possible values: [pending,approved,rejected,expired,detached]", + "computed": true + }, + { + "name": "related_crn", + "type": "TypeString", + "description": "The crn of the transit gateway", + "computed": true + }, + { + "name": "connection_id", + "type": "TypeString", + "description": "The Transit Gateway Connection identifier", + "computed": true }, { "name": "name", @@ -148462,61 +152859,49 @@ "computed": true }, { - "name": "related_crn", - "type": "TypeString", - "description": "The crn of the transit gateway", - "computed": true - }, - { - "name": "base_connection_id", + "name": "network_account_id", "type": "TypeString", - "description": "The ID of a network_type 'classic' connection a tunnel is configured over. This field only applies to network type 'gre_tunnel' connections.", + "description": "The ID of the account which owns the network that is being connected. Generally only used if the network is in a different account than the gateway. This field is required for type 'unbound_gre_tunnel' when the associated_network_type is 'classic' and the GRE tunnel is in a different account than the gateway.", "immutable": true, "optional": true, "computed": true }, { - "name": "local_gateway_ip", + "name": "network_type", "type": "TypeString", - "description": "The local gateway IP address. This field only applies to network type 'gre_tunnel' and 'unbound_gre_tunnel' connections.", + "description": "Defines what type of network is connected via this connection. Allowable values (classic,directlink,vpc,gre_tunnel,unbound_gre_tunnel,power_virtual_server)", "immutable": true, - "optional": true, - "computed": true + "required": true, + "options": "classic, directlink, vpc, gre_tunnel, unbound_gre_tunnel, power_virtual_server" }, { - "name": "remote_bgp_asn", - "type": "TypeInt", - "description": "The remote network BGP ASN. This field only applies to network type 'gre_tunnel' and 'unbound_gre_tunnel' connections.", + "name": "remote_tunnel_ip", + "type": "TypeString", + "description": "The remote tunnel IP address. This field only applies to network type 'gre_tunnel' and 'unbound_gre_tunnel' connections.", "immutable": true, "optional": true, "computed": true }, { - "name": "updated_at", + "name": "created_at", "type": "TypeString", - "description": "The date and time that this connection was last updated", + "description": "The date and time that this connection was created", "computed": true }, { - "name": "request_status", + "name": "gateway", "type": "TypeString", - "description": "Only visible for cross account connections, this field represents the status of the request to connect the given network between accounts.Possible values: [pending,approved,rejected,expired,detached]", - "computed": true + "description": "The Transit Gateway identifier", + "immutable": true, + "required": true }, { - "name": "connection_id", + "name": "base_network_type", "type": "TypeString", - "description": "The Transit Gateway Connection identifier", + "description": "The type of network the unbound gre tunnel is targeting. This field is required for network type 'unbound_gre_tunnel'.", + "optional": true, "computed": true }, - { - "name": "network_type", - "type": "TypeString", - "description": "Defines what type of network is connected via this connection. Allowable values (classic,directlink,vpc,gre_tunnel,unbound_gre_tunnel,power_virtual_server)", - "immutable": true, - "required": true, - "options": "classic, directlink, vpc, gre_tunnel, unbound_gre_tunnel, power_virtual_server" - }, { "name": "zone", "type": "TypeString", @@ -148527,14 +152912,6 @@ } ], "ibm_tg_connection_action": [ - { - "name": "action", - "type": "TypeString", - "description": "The Transit Gateway Connection cross account action", - "immutable": true, - "required": true, - "options": "approve, reject" - }, { "name": "gateway", "type": "TypeString", @@ -148548,15 +152925,17 @@ "description": "The Transit Gateway Connection identifier", "immutable": true, "required": true + }, + { + "name": "action", + "type": "TypeString", + "description": "The Transit Gateway Connection cross account action", + "immutable": true, + "required": true, + "options": "approve, reject" } ], "ibm_tg_connection_prefix_filter": [ - { - "name": "prefix", - "type": "TypeString", - "description": "IP Prefix", - "required": true - }, { "name": "created_at", "type": "TypeString", @@ -148570,17 +152949,22 @@ "optional": true }, { - "name": "le", - "type": "TypeInt", - "description": "IP Prefix LE", - "optional": true + "name": "prefix", + "type": "TypeString", + "description": "IP Prefix", + "required": true }, { - "name": "action", + "name": "connection_id", "type": "TypeString", - "description": "Whether to permit or deny the prefix filter", - "required": true, - "options": "permit, deny" + "description": "The Transit Gateway Connection identifier", + "required": true + }, + { + "name": "filter_id", + "type": "TypeString", + "description": "The Transit Gateway Connection Prefix Filter identifier", + "computed": true }, { "name": "before", @@ -148602,50 +152986,46 @@ "required": true }, { - "name": "connection_id", + "name": "action", "type": "TypeString", - "description": "The Transit Gateway Connection identifier", - "required": true + "description": "Whether to permit or deny the prefix filter", + "required": true, + "options": "permit, deny" }, { - "name": "filter_id", - "type": "TypeString", - "description": "The Transit Gateway Connection Prefix Filter identifier", - "computed": true + "name": "le", + "type": "TypeInt", + "description": "IP Prefix LE", + "optional": true } ], "ibm_tg_gateway": [ { - "name": "created_at", + "name": "status", "type": "TypeString", - "description": "The creation time of the resource", + "description": "The Status of the resource", "computed": true }, { - "name": "updated_at", + "name": "resource_status", "type": "TypeString", - "description": "The updation time of the resource", + "description": "The status of the resource", "computed": true }, { - "name": "tags", - "type": "TypeSet", - "description": "Tags for the transit gateway instance", - "min_length": 1, - "max_length": 128, - "matches": "^[A-Za-z0-9:_ .-]+$", - "optional": true, - "computed": true, - "elem": { - "type": "TypeString" - } + "name": "resource_group_name", + "type": "TypeString", + "description": "The resource group name in which resource is provisioned", + "computed": true }, { - "name": "resource_group", + "name": "name", "type": "TypeString", - "cloud_data_type": "resource_group", - "optional": true, - "computed": true + "description": "Name Transit Gateway Services", + "required": true, + "options": "^([a-zA-Z]|[a-zA-Z][-_a-zA-Z0-9]*[a-zA-Z0-9])$}", + "min_length": 1, + "max_length": 63 }, { "name": "crn", @@ -148655,34 +153035,17 @@ "computed": true }, { - "name": "resource_crn", + "name": "updated_at", "type": "TypeString", - "description": "The crn of the resource", + "description": "The updation time of the resource", "computed": true }, { - "name": "resource_status", + "name": "resource_controller_url", "type": "TypeString", - "description": "The status of the resource", + "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", "computed": true }, - { - "name": "location", - "type": "TypeString", - "description": "Location of Transit Gateway Services", - "cloud_data_type": "region", - "immutable": true, - "required": true - }, - { - "name": "name", - "type": "TypeString", - "description": "Name Transit Gateway Services", - "required": true, - "options": "^([a-zA-Z]|[a-zA-Z][-_a-zA-Z0-9]*[a-zA-Z0-9])$}", - "min_length": 1, - "max_length": 63 - }, { "name": "global", "type": "TypeBool", @@ -148691,27 +153054,49 @@ "optional": true }, { - "name": "resource_group_name", + "name": "tags", + "type": "TypeSet", + "description": "Tags for the transit gateway instance", + "min_length": 1, + "max_length": 128, + "matches": "^[A-Za-z0-9:_ .-]+$", + "optional": true, + "computed": true, + "elem": { + "type": "TypeString" + } + }, + { + "name": "created_at", "type": "TypeString", - "description": "The resource group name in which resource is provisioned", + "description": "The creation time of the resource", "computed": true }, { - "name": "status", + "name": "resource_name", "type": "TypeString", - "description": "The Status of the resource", + "description": "The name of the resource", "computed": true }, { - "name": "resource_controller_url", + "name": "location", "type": "TypeString", - "description": "The URL of the IBM Cloud dashboard that can be used to explore and view details about this instance", + "description": "Location of Transit Gateway Services", + "cloud_data_type": "region", + "immutable": true, + "required": true + }, + { + "name": "resource_group", + "type": "TypeString", + "cloud_data_type": "resource_group", + "optional": true, "computed": true }, { - "name": "resource_name", + "name": "resource_crn", "type": "TypeString", - "description": "The name of the resource", + "description": "The crn of the resource", "computed": true } ], @@ -148836,5 +153221,5 @@ } ] }, - "Version": "1.58.0" + "Version": "1.59.0" } \ No newline at end of file diff --git a/version/version.go b/version/version.go index 3fc06faa13..19638a80ae 100644 --- a/version/version.go +++ b/version/version.go @@ -5,7 +5,7 @@ import ( ) // Version is the current provider main version -const Version = "1.58.1" +const Version = "1.60.0" // GitCommit is the git commit that was compiled. This will be filled in by the compiler. var GitCommit string diff --git a/website/allowed-subcategories.txt b/website/allowed-subcategories.txt index 1e97423139..7410d43146 100644 --- a/website/allowed-subcategories.txt +++ b/website/allowed-subcategories.txt @@ -25,6 +25,7 @@ Identity & Access Management (IAM) Internet services Key Management Service Kubernetes Service +Logs Router Metrics Router Object Storage Power Systems diff --git a/website/docs/d/cd_toolchain_tool_securitycompliance.html.markdown b/website/docs/d/cd_toolchain_tool_securitycompliance.html.markdown index 81fdc56c58..bf3493ad3e 100644 --- a/website/docs/d/cd_toolchain_tool_securitycompliance.html.markdown +++ b/website/docs/d/cd_toolchain_tool_securitycompliance.html.markdown @@ -44,8 +44,6 @@ After your data source is created, you can read values from the following attrib * `parameters` - (List) Unique key-value pairs representing parameters to be used to create the tool. A list of parameters for each tool integration can be found in the Configuring tool integrations page. Nested schema for **parameters**: - * `api_key` - (Deprecated, String) The IBM Cloud API key used to access the Security and Compliance Center API. This parameter is only relevant when the `trigger_scan` parameter is `enabled`. For information about the deprecation see the `trigger_scan` parameter. You can use a toolchain secret reference for this parameter. For more information, see [Protecting your sensitive data in Continuous Delivery](https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-cd_data_security#cd_secure_credentials). - * Constraints: The value must match regular expression `/\\S/`. * `attachment_id` - (String) An attachment ID. An attachment is configured under a profile to define how a scan will be run. To find the attachment ID, in the browser, in the attachments list, click on the attachment link, and a panel appears with a button to copy the attachment ID. This parameter is only relevant when the `use_profile_attachment` parameter is `enabled`. * Constraints: The value must match regular expression `/^[-0-9a-f]{32,36}$/`. * `evidence_namespace` - (String) The kind of pipeline evidence to be displayed in Security and Compliance Center for this toolchain. The values are; `cd` which will use evidence generated by a Continuous Deployment pipeline, or `cc` which will use evidence generated by a Continuous Compliance pipeline. @@ -54,13 +52,9 @@ Nested schema for **parameters**: * `instance_crn` - (String) The Security and Compliance Center service instance CRN (Cloud Resource Name). It is recommended to provide an instance CRN, but when absent, the oldest service instance will be used. This parameter is only relevant when the `use_profile_attachment` parameter is `enabled`. * Constraints: The value must match regular expression `/^crn:v1:(?:bluemix|staging):public:compliance:[a-zA-Z0-9-]*\\b:a\/[0-9a-fA-F]*\\b:[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}\\b::$/`. * `name` - (String) The name for this tool integration, shown on the toolchain page. - * `profile` - (Deprecated, String) The name of a Security and Compliance Center, Hybrid cloud profile. Usually, use the predefined profile "IBM Cloud Security Best Practices v1.0.0", which contains the DevSecOps toolchain goals. Or use a user-authored customized profile that has been configured to contain those goals. When the `trigger_scan` parameter is set to `enabled`, then the Validation scan will use the controls and goals in the configured profile. If configured with a profile that does not check the DevSecOps toolchain goals, it might incorrectly indicate that the toolchain status is passed even though some of the DevSecOps scans had actually failed. This parameter is only relevant when the `trigger_scan` parameter is `enabled`. For information about the deprecation see the `trigger_scan` parameter. - * `profile_name` - (String) The name of a Security and Compliance Center profile. Usually, use one of the predefined profiles "IBM Cloud Security Best Practices" or "IBM Cloud for Financial Services", which contain the DevSecOps Toolchain rules. Or use a user-authored customized profile that has been configured to contain those rules. This parameter is only relevant when the `use_profile_attachment` parameter is `enabled`. + * `profile_name` - (String) The name of a Security and Compliance Center profile. Usually, use the "IBM Cloud Framework for Financial Services" predefined profile, which contains the DevSecOps Toolchain rules. Or use a user-authored customized profile that has been configured to contain those rules. This parameter is only relevant when the `use_profile_attachment` parameter is `enabled`. * `profile_version` - (String) The version of a Security and Compliance Center profile, in SemVer format, like '0.0.0'. This parameter is only relevant when the `use_profile_attachment` parameter is `enabled`. * `scc_api_key` - (String) The IBM Cloud API key used to access the Security and Compliance Center service, for the use profile with attachment setting. This parameter is only relevant when the `use_profile_attachment` parameter is `enabled`. You can use a toolchain secret reference for this parameter. For more information, see [Protecting your sensitive data in Continuous Delivery](https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-cd_data_security#cd_secure_credentials). - * `scope` - (Deprecated, String) The name of a Security and Compliance Center scope, which has previously been created in that service. When the `trigger_scan` parameter is set to `enabled`, then the Validation scan will scan all the resources in that scope. Select a scope that contains this toolchain, so that the scan will find the evidence that has been recently updated by the DevSecOps pipeline-run. This parameter is only relevant when the `trigger_scan` parameter is `enabled`. For information about the deprecation see the `trigger_scan` parameter. - * `trigger_scan` - (Deprecated, String) Set to `enabled` to indicate that a DevSecOps pipeline task should trigger a Security and Compliance Center run of a Hybrid cloud validation scan. Note, each scan may incur charges. When enabled, other parameters become relevant that are needed to trigger that scan; `api_key`, `scope`, `profile`. Hybrid cloud scans are deprecated and are planned to be removed. This option will stop working at that time. For more information see the [Security and Compliance Center Release Notes](https://cloud.ibm.com/docs/security-compliance?topic=security-compliance-release-notes#security-compliance-march312023). - * Constraints: Allowable values are: `disabled`, `enabled`. * `use_profile_attachment` - (String) Set to `enabled` to enable use profile with attachment, so that the scripts in the pipeline can interact with the Security and Compliance Center service. When enabled, other parameters become relevant; `scc_api_key`, `instance_crn`, `profile_name`, `profile_version`, `attachment_id`. * Constraints: Allowable values are: `disabled`, `enabled`. diff --git a/website/docs/d/code_engine_domain_mapping.html.markdown b/website/docs/d/code_engine_domain_mapping.html.markdown new file mode 100644 index 0000000000..8b3120382a --- /dev/null +++ b/website/docs/d/code_engine_domain_mapping.html.markdown @@ -0,0 +1,75 @@ +--- +layout: "ibm" +page_title: "IBM : ibm_code_engine_domain_mapping" +description: |- + Get information about code_engine_domain_mapping +subcategory: "Code Engine" +--- + +# ibm_code_engine_domain_mapping + +Provides a read-only data source to retrieve information about a code_engine_domain_mapping. You can then reference the fields of the data source in other resources within the same configuration by using interpolation syntax. + +## Example Usage + +```hcl +data "ibm_code_engine_domain_mapping" "code_engine_domain_mapping" { + project_id = data.ibm_code_engine_project.code_engine_project.project_id + name = "my-domain-mapping" +} +``` + +## Argument Reference + +You can specify the following arguments for this data source. + +* `name` - (Required, Forces new resource, String) The name of your domain mapping. + * Constraints: The maximum length is `253` characters. The minimum length is `1` character. The value must match regular expression `/^[a-z0-9]([\\-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([\\-a-z0-9]*[a-z0-9])?)+$/`. +* `project_id` - (Required, Forces new resource, String) The ID of the project. + * Constraints: The maximum length is `36` characters. The minimum length is `36` characters. The value must match regular expression `/^[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}$/`. + +## Attribute Reference + +After your data source is created, you can read values from the following attributes. + +* `id` - The unique identifier of the code_engine_domain_mapping. +* `domain_mapping_id` - (String) The identifier of the resource. + * Constraints: The maximum length is `36` characters. The minimum length is `36` characters. The value must match regular expression `/^[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}$/`. + +* `cname_target` - (String) Exposes the value of the CNAME record that needs to be configured in the DNS settings of the domain, to route traffic properly to the target Code Engine region. + * Constraints: The maximum length is `2048` characters. The minimum length is `0` characters. The value must match regular expression `/(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/`. + +* `component` - (List) A reference to another component. +Nested scheme for **component**: + * `name` - (String) The name of the referenced component. + * Constraints: The maximum length is `63` characters. The minimum length is `1` character. The value must match regular expression `/^[a-z0-9]([\\-a-z0-9]*[a-z0-9])?$/`. + * `resource_type` - (String) The type of the referenced resource. + * Constraints: The maximum length is `63` characters. The minimum length is `1` character. The value must match regular expression `/.+/`. + +* `created_at` - (String) The timestamp when the resource was created. + +* `entity_tag` - (String) The version of the domain mapping instance, which is used to achieve optimistic locking. + * Constraints: The maximum length is `63` characters. The minimum length is `1` character. The value must match regular expression `/^[\\*\\-a-z0-9]+$/`. + +* `href` - (String) When you provision a new domain mapping, a URL is created identifying the location of the instance. + * Constraints: The maximum length is `2048` characters. The minimum length is `0` characters. The value must match regular expression `/(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/`. + +* `resource_type` - (String) The type of the CE Resource. + * Constraints: Allowable values are: `domain_mapping_v2`. + +* `status` - (String) The current status of the domain mapping. + * Constraints: Possible values are: `ready`, `failed`, `deploying`. + +* `status_details` - (List) The detailed status of the domain mapping. +Nested scheme for **status_details**: + * `reason` - (String) Optional information to provide more context in case of a 'failed' or 'warning' status. + * Constraints: Possible values are: `ready`, `domain_already_claimed`, `app_ref_failed`, `failed_reconcile_ingress`, `deploying`, `failed`. + +* `tls_secret` - (String) The name of the TLS secret that holds the certificate and private key of this domain mapping. + * Constraints: The maximum length is `253` characters. The minimum length is `1` character. The value must match regular expression `/^[a-z0-9]([\\-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([\\-a-z0-9]*[a-z0-9])?)*$/`. + +* `user_managed` - (Boolean) Exposes whether the domain mapping is managed by the user or by Code Engine. + +* `visibility` - (String) Exposes whether the domain mapping is reachable through the public internet, or private IBM network, or only through other components within the same Code Engine project. + * Constraints: Possible values are: `custom`, `private`, `project`, `public`. + diff --git a/website/docs/d/code_engine_job.html.markdown b/website/docs/d/code_engine_job.html.markdown index c39aba650d..189092fe7c 100644 --- a/website/docs/d/code_engine_job.html.markdown +++ b/website/docs/d/code_engine_job.html.markdown @@ -77,7 +77,7 @@ Nested scheme for **run_env_variables**: * `value` - (String) The literal value of the environment variable. * Constraints: The maximum length is `253` characters. The minimum length is `1` character. The value must match regular expression `/^[\\-._a-zA-Z0-9]+$/`. -* `run_mode` - (String) The mode for runs of the job. Valid values are `task` and `daemon`. In `task` mode, the `max_execution_time` and `retry_limit` properties apply. In `daemon` mode, since there is no timeout and failed instances are restarted indefinitely, the `max_execution_time` and `retry_limit` properties are not allowed. +* `run_mode` - (String) The mode for runs of the job. Valid values are `task` and `daemon`. In `task` mode, the `scale_max_execution_time` and `scale_retry_limit` properties apply. In `daemon` mode, since there is no timeout and failed instances are restarted indefinitely, the `scale_max_execution_time` and `scale_retry_limit` properties are not allowed. * Constraints: The default value is `task`. Allowable values are: `task`, `daemon`. The minimum length is `0` characters. The value must match regular expression `/^(task|daemon)$/`. * `run_service_account` - (String) The name of the service account. For built-in service accounts, you can use the shortened names `manager`, `none`, `reader`, and `writer`. This property must not be set on a job run, which references a job template. diff --git a/website/docs/d/en_destination_custom_email.html.markdown b/website/docs/d/en_destination_custom_email.html.markdown new file mode 100644 index 0000000000..355ff086ea --- /dev/null +++ b/website/docs/d/en_destination_custom_email.html.markdown @@ -0,0 +1,55 @@ +--- +subcategory: 'Event Notifications' +layout: 'ibm' +page_title: 'IBM : ibm_en_destination_custom_email' +description: |- + Get information about a Custom Email destination +--- + +# ibm_en_destination_custom_email + +Provides a read-only data source for Custom Email destination. You can then reference the fields of the data source in other resources within the same configuration using interpolation syntax. + +## Example usage + +```terraform +data "ibm_en_destination_custom_email" "custom_domain_email_en_destination" { + instance_guid = ibm_resource_instance.en_terraform_test_resource.guid + destination_id = ibm_en_destination_custom_email.destination1.destination_id +} +``` + +## Argument reference + +Review the argument reference that you can specify for your data source. + +- `instance_guid` - (Required, Forces new resource, String) Unique identifier for IBM Cloud Event Notifications instance. + +- `destination_id` - (Required, String) Unique identifier for Destination. + +## Attribute reference + +In addition to all argument references listed, you can access the following attribute references after your data source is created. + +- `id` - The unique identifier of the `custom_domain_email_en_destination`. + +- `name` - (String) Destination name. + +- `description` - (String) Destination description. + +- `subscription_count` - (Integer) Number of subscriptions. + +- `subscription_names` - (List) List of subscriptions. + +- `type` - (String) Destination type smtp_custom. + +- `config` - (List) Payload describing a destination configuration. + Nested scheme for **config**: + + - `params` - (List) + + Nested scheme for **params**: + + - `domain` - (String) The Custom Domain. + +- `updated_at` - (String) Last updated time. diff --git a/website/docs/d/en_sources.html copy.markdown b/website/docs/d/en_sources.html.markdown similarity index 100% rename from website/docs/d/en_sources.html copy.markdown rename to website/docs/d/en_sources.html.markdown diff --git a/website/docs/d/en_subscription_custom_email.html.markdown b/website/docs/d/en_subscription_custom_email.html.markdown new file mode 100644 index 0000000000..b02429c7b4 --- /dev/null +++ b/website/docs/d/en_subscription_custom_email.html.markdown @@ -0,0 +1,66 @@ +--- +subcategory: 'Event Notifications' +layout: 'ibm' +page_title: 'IBM : ibm_en_subscription_custom_email' +description: |- + Get information about a Custom Email subscription +--- + +# ibm_en_subscription_custom_email + +Provides a read-only data source for Custom Email subscription. You can then reference the fields of the data source in other resources within the same configuration using interpolation syntax. + +## Example usage + +```terraform +data "ibm_en_subscription_custom_email" "custom_domain_email_subscription" { + instance_guid = ibm_resource_instance.en_terraform_test_resource.guid + subscription_id = ibm_en_subscription_custom_email.subscriptioncustomemail.subscription_id +} +``` + +## Argument reference + +Review the argument reference that you can specify for your data source. + +- `instance_guid` - (Required, Forces new resource, String) Unique identifier for IBM Cloud Event Notifications instance. + +- `subscription_id` - (Required, String) Unique identifier for Subscription. + +## Attribute reference + +In addition to all argument references listed, you can access the following attribute references after your data source is created. + +- `id` - The unique identifier of the email_subscription. + +- `name` - (String) Subscription name. + +- `description` - (String) Subscription description. + +- `destination_id` - (String) The destination ID. + +- `topic_id` - (String) Topic ID. + +- `attributes` - (Required, List) + + - `add_notification_payload` - (Boolean) Whether to add the notification payload to the email. + + - `reply_to_name` - (String) The Email User Name to reply to. + + - `reply_to_mail` - (String) The email address to reply to. + + - `from_name` - (String) The name of email address from which email is sourced. + + - `from_email` - (String) The email from where it is sourced. + + - `template_id_notification` - (String) The templete id for notification. + + - `template_id_invitation` - (String) The templete id for invitation. + + - `susbscribed`- (Map) The Email address who have subscribed for topic. + + - `unsubscribed`- (List) The Email address which has opted for unsusbscribtion from that topic. + + - `invited`- (List) The Email address for invitation. + +- `updated_at` - (String) Last updated time. diff --git a/website/docs/d/en_subscription_email.html.markdown b/website/docs/d/en_subscription_email.html.markdown index ff167e3b6e..6bfe727c44 100644 --- a/website/docs/d/en_subscription_email.html.markdown +++ b/website/docs/d/en_subscription_email.html.markdown @@ -41,9 +41,9 @@ In addition to all argument references listed, you can access the following attr - `topic_id` - (String) Topic ID. -- `add_notification_payload` - (Boolean) Whether to add the notification payload to the email. +- `attributes` - (Required, List) -- `additional_properties` - (Required, List) + - `add_notification_payload` - (Boolean) Whether to add the notification payload to the email. - `reply_to_name` - (String) The Email User Name to reply to. diff --git a/website/docs/d/iam_access_group_policy.html.markdown b/website/docs/d/iam_access_group_policy.html.markdown index cc6c9c6308..147f408b13 100644 --- a/website/docs/d/iam_access_group_policy.html.markdown +++ b/website/docs/d/iam_access_group_policy.html.markdown @@ -76,7 +76,13 @@ In addition to all argument reference list, you can access the following attribu Nested schema for `rule_conditions`: - `key` - (String) The key of a rule condition. - `operator` - (String) The operator of a rule condition. - - `value` - (List of Strings) The valjue of a rule condition. + - `value` - (List of Strings) The value of a rule condition. + - `conditions` - (List of Objects) A nested block describing additional rule conditions of this policy. + + Nested schema for `conditions`: + - `key` - (String) The key of a condition. + - `operator` - (String) The operator of a condition. + - `value` - (List of Strings) The value of a condition. - `rule_operator` - (String) The operator used to evaluate multiple rule conditions, e.g., all must be satisfied with `and`. - `pattern` - (String) The pattern that the rule follows, e.g., `time-based-conditions:weekly:all-day`. diff --git a/website/docs/d/iam_service_policy.html.markdown b/website/docs/d/iam_service_policy.html.markdown index d3b66757bc..ce36e8d94a 100644 --- a/website/docs/d/iam_service_policy.html.markdown +++ b/website/docs/d/iam_service_policy.html.markdown @@ -74,7 +74,13 @@ In addition to all argument reference list, you can access the following attribu Nested schema for `rule_conditions`: - `key` - (String) The key of a rule condition. - `operator` - (String) The operator of a rule condition. - - `value` - (List of Strings) The valjue of a rule condition. + - `value` - (List of Strings) The value of a rule condition. + - `conditions` - (List of Objects) A nested block describing additional rule conditions of this policy. + + Nested schema for `conditions`: + - `key` - (String) The key of a condition. + - `operator` - (String) The operator of a condition. + - `value` - (List of Strings) The value of a condition. - `rule_operator` - (String) The operator used to evaluate multiple rule conditions, e.g., all must be satisfied with `and`. - `pattern` - (String) The pattern that the rule follows, e.g., `time-based-conditions:weekly:all-day`. diff --git a/website/docs/d/iam_trusted_profile_policy.html.markdown b/website/docs/d/iam_trusted_profile_policy.html.markdown index d6cf4346b1..0a1c93d222 100644 --- a/website/docs/d/iam_trusted_profile_policy.html.markdown +++ b/website/docs/d/iam_trusted_profile_policy.html.markdown @@ -75,7 +75,13 @@ In addition to all argument reference list, you can access the following attribu Nested schema for `rule_conditions`: - `key` - (String) The key of a rule condition. - `operator` - (String) The operator of a rule condition. - - `value` - (List of Strings) The valjue of a rule condition. + - `value` - (List of Strings) The value of a rule condition. + - `conditions` - (List of Objects) A nested block describing additional rule conditions of this policy. + + Nested schema for `conditions`: + - `key` - (String) The key of a condition. + - `operator` - (String) The operator of a condition. + - `value` - (List of Strings) The value of a condition. - `rule_operator` - (String) The operator used to evaluate multiple rule conditions, e.g., all must be satisfied with `and`. - `pattern` - (String) The pattern that the rule follows, e.g., `time-based-conditions:weekly:all-day`. diff --git a/website/docs/d/iam_user_policy.html.markdown b/website/docs/d/iam_user_policy.html.markdown index 8a9cfb2a36..78110fcdbc 100644 --- a/website/docs/d/iam_user_policy.html.markdown +++ b/website/docs/d/iam_user_policy.html.markdown @@ -72,7 +72,13 @@ In addition to all argument reference list, you can access the following attribu Nested schema for `rule_conditions`: - `key` - (String) The key of a rule condition. - `operator` - (String) The operator of a rule condition. - - `value` - (List of Strings) The valjue of a rule condition. + - `value` - (List of Strings) The value of a rule condition. + - `conditions` - (List of Objects) A nested block describing additional rule conditions of this policy. + + Nested schema for `conditions`: + - `key` - (String) The key of a condition. + - `operator` - (String) The operator of a condition. + - `value` - (List of Strings) The value of a condition. - `rule_operator` - (String) The operator used to evaluate multiple rule conditions, e.g., all must be satisfied with `and`. - `pattern` - (String) The pattern that the rule follows, e.g., `time-based-conditions:weekly:all-day`. diff --git a/website/docs/d/is_flow_log.html.markdown b/website/docs/d/is_flow_log.html.markdown index 19e58e5bd8..21c3342f07 100644 --- a/website/docs/d/is_flow_log.html.markdown +++ b/website/docs/d/is_flow_log.html.markdown @@ -33,8 +33,8 @@ data "ibm_is_flow_log" "example" { Review the argument reference that you can specify for your data source. -- `identifier` - (Optional, String) The ID of the subnet, This is required when `name` is not specified. -- `name` - (Optional, String) The name of the subnet, This is required when `identifier` is not specified. +- `identifier` - (Optional, String) The ID of the flow log collector, This is required when `name` is not specified. +- `name` - (Optional, String) The name of the flow log collector, This is required when `identifier` is not specified. ## Attribute reference diff --git a/website/docs/d/is_share_mount_target.html.markdown b/website/docs/d/is_share_mount_target.html.markdown index b9c4e1a5b4..2b67534486 100644 --- a/website/docs/d/is_share_mount_target.html.markdown +++ b/website/docs/d/is_share_mount_target.html.markdown @@ -47,19 +47,39 @@ The following arguments are supported: The following attributes are exported: -- `created_at` - The date and time that the share target was created. -- `href` - The URL for this share target. -- `lifecycle_state` - The lifecycle state of the mount target. -- `mount_path` - The mount path for the share.The IP addresses used in the mount path are currently within the IBM services IP range, but are expected to change to be within one of the VPC's subnets in the future. +- `access_control_mode` - (String) The access control mode for the share. +- `created_at` - (String) The date and time that the share target was created. +- `href` - (String) The URL for this share target. +- `lifecycle_state` - (String) The lifecycle state of the mount target. +- `mount_path` - (String) The mount path for the share. The server component of the mount path may be either an IP address or a fully qualified domain name. + + This property will be absent if the lifecycle_state of the mount target is 'pending', failed, or deleting. + + -> **If the share's access_control_mode is:** + • security_group: The IP address used in the mount path is the primary_ip address of the virtual network interface for this share mount target.
+ • vpc: The fully-qualified domain name used in the mount path is an address that resolves to the share mount target.
- `name` - The user-defined name for this share target. -- `resource_type` - The type of resource referenced. +- `resource_type` - (String) The type of resource referenced. - `transit_encryption` - (String) The transit encryption mode for this share target. -- `vpc` - The VPC to which this share target is allowing to mount the file share. Nested `vpc` blocks have the following structure: - - `crn` - The CRN for this VPC. - - `deleted` - If present, this property indicates the referenced resource has been deleted and providessome supplementary information. Nested `deleted` blocks have the following structure: - - `more_info` - Link to documentation about deleted resources. - - `href` - The URL for this VPC. - - `id` - The unique identifier for this VPC. - - `name` - The unique user-defined name for this VPC. - - `resource_type` - The resource type. - +- `vpc` - (List) The VPC to which this share target is allowing to mount the file share. Nested `vpc` blocks have the following structure: + - `crn` - (String) The CRN for this VPC. + - `deleted` - (String) If present, this property indicates the referenced resource has been deleted and providessome supplementary information. Nested `deleted` blocks have the following structure: + - `more_info` - (String) Link to documentation about deleted resources. + - `href` - (String) The URL for this VPC. + - `id` - (String) The unique identifier for this VPC. + - `name` - (String) The unique user-defined name for this VPC. + - `resource_type` - (String) The resource type. +- `subnet` - (List) The subnet of the virtual network interface for the share mount target. Nested `subnet` blocks have the following structure: + - `crn` - (String) The CRN for this subnet. + - `deleted` - (String) If present, this property indicates the referenced resource has been deleted and providessome supplementary information. Nested `deleted` blocks have the following structure: + - `more_info` - (String) Link to documentation about deleted resources. + - `href` - (String) The URL for this subnet. + - `id` - (String) The unique identifier for this subnet. + - `name` - (String) The unique user-defined name for this subnet. + - `resource_type` - (String) The resource type. +- `virtual_network_interface` - (List) The virtual network interface for this file share mount target.. Nested `virtual_network_interface` blocks have the following structure: + - `crn` - (String) The CRN for this virtual network interface. + - `href` - (String) The URL for this virtual network interface. + - `id` - (String) The unique identifier for this virtual network interface. + - `name` - (String) The unique user-defined name for this virtual network interface. + - `resource_type` - (String) The resource type. diff --git a/website/docs/d/is_share_mount_targets.html.markdown b/website/docs/d/is_share_mount_targets.html.markdown index 830530bae3..17d59f25f4 100644 --- a/website/docs/d/is_share_mount_targets.html.markdown +++ b/website/docs/d/is_share_mount_targets.html.markdown @@ -40,20 +40,41 @@ The following attributes are exported: - `id` - The unique identifier of the ShareTargetCollection. - `mount_targets` - Collection of share targets. Nested `targets` blocks have the following structure: - - `created_at` - The date and time that the share target was created. - - `href` - The URL for this share target. - - `id` - The unique identifier for this share target. - - `lifecycle_state` - The lifecycle state of the mount target. - - `mount_path` - The mount path for the share.The IP addresses used in the mount path are currently within the IBM services IP range, but are expected to change to be within one of the VPC's subnets in the future. - - `name` - The user-defined name for this share target. - - `resource_type` - The type of resource referenced. + - `access_control_mode` - (String) The access control mode for the share. + - `created_at` - (String) The date and time that the share target was created. + - `href` - (String) The URL for this share target. + - `id` - (String) The unique identifier for this share target. + - `lifecycle_state` - (String) The lifecycle state of the mount target. + - `mount_path` - (String) The mount path for the share. The server component of the mount path may be either an IP address or a fully qualified domain name. + + This property will be absent if the lifecycle_state of the mount target is 'pending', failed, or deleting. + + -> **If the share's access_control_mode is:** + • security_group: The IP address used in the mount path is the primary_ip address of the virtual network interface for this share mount target.
+ • vpc: The fully-qualified domain name used in the mount path is an address that resolves to the share mount target.
+ - `name` - (String) The user-defined name for this share target. + - `resource_type` - (String) The type of resource referenced. - `transit_encryption` - (String) The transit encryption mode for this share target. - `vpc` - The VPC to which this share target is allowing to mount the file share. Nested `vpc` blocks have the following structure: - - `crn` - The CRN for this VPC. - - `deleted` - If present, this property indicates the referenced resource has been deleted and providessome supplementary information. Nested `deleted` blocks have the following structure: - - `more_info` - Link to documentation about deleted resources. - - `href` - The URL for this VPC. - - `id` - The unique identifier for this VPC. - - `name` - The unique user-defined name for this VPC. - - `resource_type` - The resource type. + - `crn` - (String) The CRN for this VPC. + - `deleted` - (String) If present, this property indicates the referenced resource has been deleted and providessome supplementary information. Nested `deleted` blocks have the following structure: + - `more_info` - (String) Link to documentation about deleted resources. + - `href` - (String) The URL for this VPC. + - `id` - (String) The unique identifier for this VPC. + - `name` - (String) The unique user-defined name for this VPC. + - `resource_type` - (String) The resource type. + - `subnet` - (List) The subnet of the virtual network interface for the share mount target. Nested `subnet` blocks have the following structure: + - `crn` - (String) The CRN for this subnet. + - `deleted` - (String) If present, this property indicates the referenced resource has been deleted and providessome supplementary information. Nested `deleted` blocks have the following structure: + - `more_info` - (String) Link to documentation about deleted resources. + - `href` - (String) The URL for this subnet. + - `id` - (String) The unique identifier for this subnet. + - `name` - (String) The unique user-defined name for this subnet. + - `resource_type` - (String) The resource type. + - `virtual_network_interface` - (List) The virtual network interface for this file share mount target.. Nested `virtual_network_interface` blocks have the following structure: + - `crn` - (String) The CRN for this virtual network interface. + - `href` - (String) The URL for this virtual network interface. + - `id` - (String) The unique identifier for this virtual network interface. + - `name` - (String) The unique user-defined name for this virtual network interface. + - `resource_type` - (String) The resource type. diff --git a/website/docs/d/is_subnet.html.markdown b/website/docs/d/is_subnet.html.markdown index 9021976fe7..62cb8405b8 100644 --- a/website/docs/d/is_subnet.html.markdown +++ b/website/docs/d/is_subnet.html.markdown @@ -65,6 +65,7 @@ Review the argument references that you can specify for your data source. - `identifier` - (Optional, String) The ID of the subnet,`name` and `identifier` are mutually exclusive. - `name` - (Optional, String) The name of the subnet,`name` and `identifier` are mutually exclusive. +- `vpc` - (Optional, String) Filters the collection to resources with a vpc property matching the specified identifier. Subnet `name` must be specified with `vpc` filter. ## Attribute reference In addition to all argument reference list, you can access the following attribute references after your data source is created. diff --git a/website/docs/d/is_subnets.html.markdown b/website/docs/d/is_subnets.html.markdown index b85935f8c3..1ff061f5eb 100644 --- a/website/docs/d/is_subnets.html.markdown +++ b/website/docs/d/is_subnets.html.markdown @@ -65,9 +65,13 @@ data "ibm_is_subnets" "example4" { Review the argument references that you can specify for your data source. -* `resource_group` - (Optional, string) The id of the resource group. -* `routing_table` - (Optional, string) The id of the routing table. -* `routing_table_name` - (Optional, string) The name of the routing table. +- `resource_group` - (Optional, string) The id of the resource group. +- `routing_table` - (Optional, string) The id of the routing table. +- `routing_table_name` - (Optional, string) The name of the routing table. +- `vpc` - (Optional, string) The id of the vpc. +- `vpc_crn` - (Optional, string) The crn of the vpc. +- `vpc_name` - (Optional, string) The name of vpc. +- `zone` - (Optional, string) The name of the zone. ## Attribute reference You can access the following attribute references after your data source is created. diff --git a/website/docs/d/logs_router_tenant.html.markdown b/website/docs/d/logs_router_tenant.html.markdown new file mode 100644 index 0000000000..0ff47b87b3 --- /dev/null +++ b/website/docs/d/logs_router_tenant.html.markdown @@ -0,0 +1,52 @@ +--- +layout: "ibm" +page_title: "IBM : ibm_logs_router_tenant" +description: |- + Get information about logs_router_tenant +subcategory: "Logs Router" +--- + +# ibm_logs_router_tenant + +Provides a read-only data source to retrieve information about a logs_router_tenant. You can then reference the fields of the data source in other resources within the same configuration by using interpolation syntax. + +## Example Usage + +```hcl +data "ibm_logs_router_tenant" "logs_router_tenant" { + tenant_id = "f3a466c9-c4db-4eee-95cc-ba82db58e2b5" +} +``` + +## Argument Reference + +You can specify the following arguments for this data source. + +* `tenant_id` - (Required, Forces new resource, String) The instance ID of the tenant. + * Constraints: The maximum length is `36` characters. The minimum length is `36` characters. The value must match regular expression `/[A-F,0-9,-]/`. + +## Attribute Reference + +After your data source is created, you can read values from the following attributes. + +* `id` - The unique identifier of the logs_router_tenant. +* `account_id` - (String) The account ID the tenant belongs to. + * Constraints: The maximum length is `32` characters. The minimum length is `32` characters. The value must match regular expression `/[a-z,A-Z,0-9,-]/`. + +* `created_at` - (String) Time stamp the tenant was originally created. + * Constraints: The maximum length is `36` characters. The minimum length is `1` character. The value must match regular expression `/[0-9,:,.,-,T,Z]/`. + +* `target_host` - (String) Host name of log-sink. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/[a-z,A-Z,0-9,-,.]/`. + +* `target_instance_crn` - (String) Cloud resource name of the log-sink target instance. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/[a-z,A-Z,0-9,:,-]/`. + +* `target_port` - (Integer) Network port of log sink. + +* `target_type` - (String) Type of log-sink. + * Constraints: The maximum length is `32` characters. The minimum length is `1` character. The value must match regular expression `/[a-z,A-Z,0-9,-]/`. + +* `updated_at` - (String) time stamp the tenant was last updated. + * Constraints: The maximum length is `36` characters. The minimum length is `1` character. The value must match regular expression `/[0-9,:,.,-,T,Z]/`. + diff --git a/website/docs/d/pi_datacenter.html.markdown b/website/docs/d/pi_datacenter.html.markdown new file mode 100644 index 0000000000..8076d2188f --- /dev/null +++ b/website/docs/d/pi_datacenter.html.markdown @@ -0,0 +1,60 @@ +--- + +subcategory: "Power Systems" +layout: "ibm" +page_title: "IBM: pi_datacenter" +description: |- + Manages a Datacenter in the Power Virtual Server cloud. +--- + +# ibm_pi_datacenter + +Retrieve information about a Power Systems Datacenter. + +## Example usage + +```terraform +data "ibm_pi_datacenter" "datacenter" { + pi_datacenter_zone= "dal12" +} +``` + +## Notes + +- Please find [supported Regions](https://cloud.ibm.com/apidocs/power-cloud#endpoint) for endpoints. +- If a Power cloud instance is provisioned at `lon04`, The provider level attributes should be as follows: + - `region` - `lon` + - `zone` - `lon04` + +Example usage: + + ```terraform + provider "ibm" { + region = "lon" + zone = "lon04" + } + ``` + +## Argument reference + +Review the argument references that you can specify for your data source. + +- `pi_datacenter_zone` - (Optional, String) Datacenter zone you want to retrieve. If no value is supplied, the `zone` configured within the IBM provider will be utilized. + +## Attribute reference + +In addition to all argument reference list, you can access the following attribute references after your data source is created. + +- `pi_datacenter_capabilities` - (Map) Datacenter Capabilities. Capabilities are `true` or `false`. + + Some of `pi_datacenter_capabilities` are: + - `cloud-connections`, `disaster-recovery-site`, `metrics`, `power-edge-router`, `power-vpn-connections` + +- `pi_datacenter_location` - (Map) Datacenter location. + + Nested schema for `pi_datacenter_location`: + - `region` - (String) The Datacenter location region zone. + - `type` - (String) The Datacenter location region type. + - `url`- (String) The Datacenter location region url. +- `pi_datacenter_status` - (String) The Datacenter status, `active`,`maintenance` or `down`. +- `pi_datacenter_type` - (String) The Datacenter type, `off-premises` or `on-premises`. diff --git a/website/docs/d/pi_datacenters.html.markdown b/website/docs/d/pi_datacenters.html.markdown new file mode 100644 index 0000000000..812b0a75f3 --- /dev/null +++ b/website/docs/d/pi_datacenters.html.markdown @@ -0,0 +1,57 @@ +--- + +subcategory: "Power Systems" +layout: "ibm" +page_title: "IBM: pi_datacenters" +description: |- + Manages Datacenters in the Power Virtual Server cloud. +--- + +# ibm_pi_datacenters + +Retrieve information about Power Systems Datacenters. + +## Example usage + +The following example retrieves information about Power Systems Datacenters. + +```terraform +data "ibm_pi_datacenters" "datacenters" {} +``` + +## Notes + +- Please find [supported Regions](https://cloud.ibm.com/apidocs/power-cloud#endpoint) for endpoints. +- If a Power cloud instance is provisioned at `lon04`, The provider level attributes should be as follows: + - `region` - `lon` + - `zone` - `lon04` + +Example usage: + + ```terraform + provider "ibm" { + region = "lon" + zone = "lon04" + } + ``` + +## Attribute reference + +In addition to all argument reference list, you can access the following attribute references after your data source is created. + +- `datacenters` - List of Datacenters + + Nested schema for `datacenters` + - `pi_datacenter_capabilities` - (Map) Datacenter Capabilities. Capabilities are `true` or `false`. + + Some of `pi_datacenter_capabilities` are: + - `cloud-connections`, `disaster-recovery-site`, `metrics`, `power-edge-router`, `power-vpn-connections` + + - `pi_datacenter_location` - (Map) Datacenter location. + + Nested schema for `pi_datacenter_location`: + - `region` - (String) The Datacenter location region zone. + - `type` - (String) The Datacenter location region type. + - `url`- (String) The Datacenter location region url. + - `pi_datacenter_status` - (String) The Datacenter status, `active`,`maintenance` or `down`. + - `pi_datacenter_type` - (String) The Datacenter type, `off-premises` or `on-premises`. diff --git a/website/docs/d/pi_storage_pool_capacity.markdown b/website/docs/d/pi_storage_pool_capacity.markdown index 41bc24aa53..a38e01eb79 100644 --- a/website/docs/d/pi_storage_pool_capacity.markdown +++ b/website/docs/d/pi_storage_pool_capacity.markdown @@ -47,3 +47,4 @@ In addition to all argument reference list, you can access the following attribu - `max_allocation_size` - (Integer) Maximum allocation storage size (GB). - `storage_type` - (String) Storage type of the storage pool. - `total_capacity` - (Integer) Total pool capacity (GB). +- `replication_enabled` - (Boolean) Replication status of the storage pool. diff --git a/website/docs/d/pi_storage_pools_capacity.markdown b/website/docs/d/pi_storage_pools_capacity.markdown index f5955bbc2a..f85cecb0d3 100644 --- a/website/docs/d/pi_storage_pools_capacity.markdown +++ b/website/docs/d/pi_storage_pools_capacity.markdown @@ -56,3 +56,4 @@ In addition to all argument reference list, you can access the following attribu - `pool_name` - (String) The pool name. - `storage_type` - (String) Storage type of the storage pool. - `total_capacity` - (Integer) Total pool capacity (GB). + - `replication_enabled` - (Boolean) Replication status of the storage pool. diff --git a/website/docs/d/pi_workspace.html.markdown b/website/docs/d/pi_workspace.html.markdown new file mode 100644 index 0000000000..1b3195f016 --- /dev/null +++ b/website/docs/d/pi_workspace.html.markdown @@ -0,0 +1,67 @@ +--- + +subcategory: "Power Systems" +layout: "ibm" +page_title: "IBM: pi_workspace" +description: |- + Manages a workspace in the Power Virtual Server cloud. +--- + +# ibm_pi_workspace + +Retrieve information about your Power Systems account workspace. + +## Example usage + +```terraform +data "ibm_pi_workspace" "workspace" { + pi_cloud_instance_id = "99fba9c9-66f9-99bc-9999-aca999ee9d9b" +} +``` + +## Notes + +- Please find [supported Regions](https://cloud.ibm.com/apidocs/power-cloud#endpoint) for endpoints. +- If a Power cloud instance is provisioned at `lon04`, The provider level attributes should be as follows: + - `region` - `lon` + - `zone` - `lon04` + +Example usage: + + ```terraform + provider "ibm" { + region = "lon" + zone = "lon04" + } + ``` + +## Argument reference + +Review the argument references that you can specify for your data source. + +- `pi_cloud_instance_id` - (Required, String) Cloud Instance ID of a PCloud Instance under your account. + +## Attribute reference + +In addition to all argument reference listed, you can access the following attribute references after your data source is created. + +- `id` - (String) Workspace ID. +- `pi_workspace_capabilities` - (Map) Workspace Capabilities. Capabilities are `true` or `false`. + + Some of `pi_workspace_capabilities` are: + - `cloud-connections`, `power-edge-router`, `power-vpn-connections`, `transit-gateway-connection` + +- `pi_workspace_details` - (Map) Workspace information. + + Nested schema for `pi_workspace_details`: + - `creation_date` - (String) Workspace creation date. + - `crn` - (String) Workspace crn. +- `pi_workspace_location` - (Map) Workspace location. + + Nested schema for `Workspace location`: + - `region` - (String) The Workspace location region zone. + - `type` - (String) The Workspace location region type. + - `url`- (String) The Workspace location region url. +- `pi_workspace_name` - (String) The Workspace name. +- `pi_workspace_status` - (String) The Workspace status, `active`, `critical`, `failed`, `provisioning`. +- `pi_workspace_type` - (String) The Workspace type, `off-premises` or `on-premises`. diff --git a/website/docs/d/pi_workspaces.html.markdown b/website/docs/d/pi_workspaces.html.markdown new file mode 100644 index 0000000000..12ca699246 --- /dev/null +++ b/website/docs/d/pi_workspaces.html.markdown @@ -0,0 +1,69 @@ +--- + +subcategory: "Power Systems" +layout: "ibm" +page_title: "IBM: pi_workspaces" +description: |- + Manages workspaces in the Power Virtual Server cloud. +--- + +# ibm_pi_workspaces + +Retrieve information about Power Systems workspaces. + +## Example usage + +```terraform +data "ibm_pi_workspaces" "workspaces" { + pi_cloud_instance_id = "99fba9c9-66f9-99bc-9999-aca999ee9d9b" +} +``` + +## Notes + +- Please find [supported Regions](https://cloud.ibm.com/apidocs/power-cloud#endpoint) for endpoints. +- If a Power cloud instance is provisioned at `lon04`, The provider level attributes should be as follows: + - `region` - `lon` + - `zone` - `lon04` + +Example usage: + + ```terraform + provider "ibm" { + region = "lon" + zone = "lon04" + } + ``` + +## Argument reference + +Review the argument references that you can specify for your data source. + +- `pi_cloud_instance_id` - (Required, String) Cloud Instance ID of a PCloud Instance. + +## Attribute reference + +In addition to all argument reference listed, you can access the following attribute references after your data source is created. + +- `workspaces` - List of all Workspaces. + Nested schema for `workspaces` + - `pi_workspace_capabilities` - (Map) Workspace Capabilities. Capabilities are `true` or `false`. + + Some of `pi_workspace_capabilities` are: + - `cloud-connections` ,`power-edge-router`, `power-vpn-connections`, `transit-gateway-connection` + + - `pi_workspace_details` - (Map) Workspace information. + + Nested schema for `pi_workspace_details`: + - `creation_date` - (String) Workspace creation date. + - `crn` - (String) Workspace crn. + - `pi_workspace_id` - (String) Workspace ID. + - `pi_workspace_location` - (Map) Workspace location. + + Nested schema for `Workspace location`: + - `region` - (String) The Workspace location region zone. + - `type` - (String) The Workspace location region type. + - `url`- (String) The Workspace location region url. + - `pi_workspace_name` - (String) The Workspace name. + - `pi_workspace_status` - (String) The Workspace status, `active`, `critical`, `failed`, `provisioning`. + - `pi_workspace_type` - (String) The Workspace type, `off-premises` or `on-premises`. diff --git a/website/docs/d/project.html.markdown b/website/docs/d/project.html.markdown new file mode 100644 index 0000000000..6cac923733 --- /dev/null +++ b/website/docs/d/project.html.markdown @@ -0,0 +1,132 @@ +--- +layout: "ibm" +page_title: "IBM : ibm_project" +description: |- + Get information about project +subcategory: "Projects" +--- + +# ibm_project + +Provides a read-only data source to retrieve information about a project. You can then reference the fields of the data source in other resources within the same configuration by using interpolation syntax. + +## Example Usage + +```hcl +data "ibm_project" "project" { + project_id = ibm_project.project_instance.id +} +``` + +## Argument Reference + +You can specify the following arguments for this data source. + +* `project_id` - (Required, Forces new resource, String) The unique project ID. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + +## Attribute Reference + +After your data source is created, you can read values from the following attributes. + +* `id` - The unique identifier of the project. +* `configs` - (List) The project configurations. These configurations are only included in the response of creating a project if a configs array is specified in the request payload. + * Constraints: The default value is `[]`. The maximum length is `100` items. The minimum length is `0` items. +Nested schema for **configs**: + * `created_at` - (String) A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339. + * `definition` - (List) The name and description of a project configuration. + Nested schema for **definition**: + * `description` - (String) A project configuration description. + * Constraints: The maximum length is `1024` characters. The minimum length is `0` characters. The value must match regular expression `/^$|^(?!\\s)(?!.*\\s$)[^\\x00-\\x1F]*$/`. + * `name` - (String) The configuration name. It is unique within the account across projects and regions. + * Constraints: The maximum length is `128` characters. The minimum length is `1` character. The value must match regular expression `/^[a-zA-Z0-9][a-zA-Z0-9-_ ]*$/`. + * `href` - (String) A URL. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^(http(s)?:\/\/)[a-zA-Z0-9\\$\\-_\\.+!\\*'\\(\\),=&?\/]+$/`. + * `id` - (String) The ID of the configuration. If this parameter is empty, an ID is automatically created for the configuration. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + * `modified_at` - (String) A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339. + * `project` - (List) The project referenced by this resource. + Nested schema for **project**: + * `crn` - (String) An IBM Cloud resource name, which uniquely identifies a resource. + * Constraints: The maximum length is `512` characters. The minimum length is `4` characters. The value must match regular expression `/(?!\\s)(?!.*\\s$)^(crn)[^'"`<>{}\\s\\x00-\\x1F]*/`. + * `definition` - (List) The definition of the project reference. + Nested schema for **definition**: + * `name` - (String) The name of the project. + * Constraints: The maximum length is `64` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^'"`<>{}\\x00-\\x1F]+$/`. + * `href` - (String) A URL. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^(http(s)?:\/\/)[a-zA-Z0-9\\$\\-_\\.+!\\*'\\(\\),=&?\/]+$/`. + * `id` - (String) The unique ID. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + * `state` - (String) The state of the configuration. + * Constraints: Allowable values are: `approved`, `deleted`, `deleting`, `deleting_failed`, `discarded`, `draft`, `deployed`, `deploying_failed`, `deploying`, `superseded`, `undeploying`, `undeploying_failed`, `validated`, `validating`, `validating_failed`. + * `version` - (Integer) The version of the configuration. + +* `created_at` - (String) A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339. + +* `crn` - (String) An IBM Cloud resource name, which uniquely identifies a resource. + * Constraints: The maximum length is `512` characters. The minimum length is `4` characters. The value must match regular expression `/(?!\\s)(?!.*\\s$)^(crn)[^'"`<>{}\\s\\x00-\\x1F]*/`. + +* `cumulative_needs_attention_view` - (List) The cumulative list of needs attention items for a project. If the view is successfully retrieved, an array which could be empty is returned. + * Constraints: The default value is `[]`. The maximum length is `50` items. The minimum length is `0` items. +Nested schema for **cumulative_needs_attention_view**: + * `config_id` - (String) A unique ID for the configuration. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + * `config_version` - (Integer) The version number of the configuration. + * `event` - (String) The event name. + * Constraints: The maximum length is `64` characters. The minimum length is `0` characters. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^'"`<>{}\\x00-\\x1F]*$/`. + * `event_id` - (String) A unique ID for that individual event. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + +* `cumulative_needs_attention_view_error` - (Boolean) True indicates that the fetch of the needs attention items failed. It only exists if there was an error while retrieving the cumulative needs attention view. + * Constraints: The default value is `false`. + +* `definition` - (List) The definition of the project. +Nested schema for **definition**: + * `description` - (String) A brief explanation of the project's use in the configuration of a deployable architecture. It is possible to create a project without providing a description. + * Constraints: The maximum length is `1024` characters. The minimum length is `0` characters. The value must match regular expression `/^$|^(?!\\s)(?!.*\\s$)[^\\x00-\\x1F]*$/`. + * `destroy_on_delete` - (Boolean) The policy that indicates whether the resources are destroyed or not when a project is deleted. + * `name` - (String) The name of the project. It is unique within the account across regions. + * Constraints: The maximum length is `128` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^'"`<>{}\\x00-\\x1F]+$/`. + +* `environments` - (List) The project environments. These environments are only included in the response if project environments were created on the project. + * Constraints: The default value is `[]`. The maximum length is `20` items. The minimum length is `0` items. +Nested schema for **environments**: + * `created_at` - (String) A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339. + * `definition` - (List) The environment definition used in the project collection. + Nested schema for **definition**: + * `description` - (String) The description of the environment. + * Constraints: The maximum length is `1024` characters. The minimum length is `0` characters. The value must match regular expression `/^$|^(?!\\s)(?!.*\\s$)[^\\x00-\\x1F]*$/`. + * `name` - (String) The name of the environment. It is unique within the account across projects and regions. + * Constraints: The maximum length is `128` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^'"`<>{}\\x00-\\x1F]+$/`. + * `href` - (String) A URL. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^(http(s)?:\/\/)[a-zA-Z0-9\\$\\-_\\.+!\\*'\\(\\),=&?\/]+$/`. + * `id` - (String) The environment id as a friendly name. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$).+$/`. + * `project` - (List) The project referenced by this resource. + Nested schema for **project**: + * `crn` - (String) An IBM Cloud resource name, which uniquely identifies a resource. + * Constraints: The maximum length is `512` characters. The minimum length is `4` characters. The value must match regular expression `/(?!\\s)(?!.*\\s$)^(crn)[^'"`<>{}\\s\\x00-\\x1F]*/`. + * `definition` - (List) The definition of the project reference. + Nested schema for **definition**: + * `name` - (String) The name of the project. + * Constraints: The maximum length is `64` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^'"`<>{}\\x00-\\x1F]+$/`. + * `href` - (String) A URL. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^(http(s)?:\/\/)[a-zA-Z0-9\\$\\-_\\.+!\\*'\\(\\),=&?\/]+$/`. + * `id` - (String) The unique ID. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + +* `event_notifications_crn` - (String) The CRN of the event notifications instance if one is connected to this project. + * Constraints: The maximum length is `512` characters. The minimum length is `0` characters. The value must match regular expression `/^$|^crn:v[0-9](:([A-Za-z0-9\\-._~!$&'()*+,;=@\/]|%[0-9A-Z]{2})*){8}$/`. + +* `location` - (Forces new resource, String) The IBM Cloud location where a resource is deployed. + * Constraints: The maximum length is `64` characters. The minimum length is `0` characters. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^'"`<>{}\\x00-\\x1F]*$/`. + +* `resource_group` - (Forces new resource, String) The resource group name where the project's data and tools are created. + * Constraints: The maximum length is `64` characters. The minimum length is `0` characters. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^'"`<>{}\\x00-\\x1F]*$/`. + +* `resource_group_id` - (String) The resource group id where the project's data and tools are created. + * Constraints: The maximum length is `64` characters. The minimum length is `0` characters. The value must match regular expression `/^[0-9a-zA-Z]+$/`. + +* `state` - (String) The project status value. + * Constraints: Allowable values are: `ready`, `deleting`, `deleting_failed`. + diff --git a/website/docs/d/project_config.html.markdown b/website/docs/d/project_config.html.markdown new file mode 100644 index 0000000000..4db739e668 --- /dev/null +++ b/website/docs/d/project_config.html.markdown @@ -0,0 +1,163 @@ +--- +layout: "ibm" +page_title: "IBM : ibm_project_config" +description: |- + Get information about project_config +subcategory: "Projects" +--- + +# ibm_project_config + +Provides a read-only data source to retrieve information about a project_config. You can then reference the fields of the data source in other resources within the same configuration by using interpolation syntax. + +## Example Usage + +```hcl +data "ibm_project_config" "project_config" { + project_config_id = ibm_project_config.project_config_instance.project_config_id + project_id = ibm_project_config.project_config_instance.project_id +} +``` + +## Argument Reference + +You can specify the following arguments for this data source. + +* `project_config_id` - (Required, Forces new resource, String) The unique config ID. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. +* `project_id` - (Required, Forces new resource, String) The unique project ID. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + +## Attribute Reference + +After your data source is created, you can read values from the following attributes. + +* `id` - The unique identifier of the project_config. +* `created_at` - (String) A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339. + +* `definition` - (List) The name and description of a project configuration. +Nested schema for **definition**: + * `authorizations` - (List) The authorization details. You can authorize by using a trusted profile or an API key in Secrets Manager. + Nested schema for **authorizations**: + * `api_key` - (String) The IBM Cloud API Key. + * Constraints: The maximum length is `512` characters. The minimum length is `0` characters. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^`<>\\x00-\\x1F]*$/`. + * `method` - (String) The authorization method. You can authorize by using a trusted profile or an API key in Secrets Manager. + * Constraints: Allowable values are: `api_key`, `trusted_profile`. + * `trusted_profile_id` - (String) The trusted profile ID. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + * `compliance_profile` - (List) The profile required for compliance. + Nested schema for **compliance_profile**: + * `attachment_id` - (String) A unique ID for the attachment to a compliance profile. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + * `id` - (String) The unique ID for that compliance profile. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + * `instance_id` - (String) A unique ID for an instance of a compliance profile. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + * `instance_location` - (String) The location of the compliance instance. + * Constraints: The maximum length is `12` characters. The minimum length is `0` characters. The value must match regular expression `/^$|^(us-south|us-east|eu-gb|eu-de)$/`. + * `profile_name` - (String) The name of the compliance profile. + * Constraints: The maximum length is `1024` characters. The minimum length is `0` characters. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^`<>\\x00-\\x1F]*$/`. + * `description` - (String) A project configuration description. + * Constraints: The maximum length is `1024` characters. The minimum length is `0` characters. The value must match regular expression `/^$|^(?!\\s)(?!.*\\s$)[^\\x00-\\x1F]*$/`. + * `environment_id` - (String) The ID of the project environment. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + * `inputs` - (List) The input variables for configuration definition and environment. + Nested schema for **inputs**: + * `locator_id` - (Forces new resource, String) A unique concatenation of catalogID.versionID that identifies the DA in the catalog. + * Constraints: The maximum length is `512` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[\\.0-9a-z-A-Z_-]+$/`. + * `name` - (String) The configuration name. It is unique within the account across projects and regions. + * Constraints: The maximum length is `128` characters. The minimum length is `1` character. The value must match regular expression `/^[a-zA-Z0-9][a-zA-Z0-9-_ ]*$/`. + * `settings` - (List) Schematics environment variables to use to deploy the configuration.Settings are only available if they were specified when the configuration was initially created. + Nested schema for **settings**: + +* `is_draft` - (Boolean) The flag that indicates whether the version of the configuration is draft, or active. + +* `last_saved_at` - (String) A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339. + +* `modified_at` - (String) A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339. + +* `needs_attention_state` - (List) The needs attention state of a configuration. + * Constraints: The default value is `[]`. The maximum length is `50` items. The minimum length is `0` items. + +* `outputs` - (List) The outputs of a Schematics template property. + * Constraints: The default value is `[]`. The maximum length is `50` items. The minimum length is `0` items. +Nested schema for **outputs**: + * `description` - (String) A short explanation of the output value. + * Constraints: The maximum length is `1024` characters. The minimum length is `0` characters. The value must match regular expression `/^$|^(?!\\s)(?!.*\\s$)[^\\x00-\\x1F]*$/`. + * `name` - (String) The variable name. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$).+$/`. + * `value` - (String) Can be any value - a string, number, boolean, array, or object. + +* `project` - (List) The project referenced by this resource. +Nested schema for **project**: + * `crn` - (String) An IBM Cloud resource name, which uniquely identifies a resource. + * Constraints: The maximum length is `512` characters. The minimum length is `4` characters. The value must match regular expression `/(?!\\s)(?!.*\\s$)^(crn)[^'"`<>{}\\s\\x00-\\x1F]*/`. + * `definition` - (List) The definition of the project reference. + Nested schema for **definition**: + * `name` - (String) The name of the project. + * Constraints: The maximum length is `64` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^'"`<>{}\\x00-\\x1F]+$/`. + * `href` - (String) A URL. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^(http(s)?:\/\/)[a-zA-Z0-9\\$\\-_\\.+!\\*'\\(\\),=&?\/]+$/`. + * `id` - (String) The unique ID. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + +* `schematics` - (List) A schematics workspace associated to a project configuration, with scripts. +Nested schema for **schematics**: + * `deploy_post_script` - (List) A script to be run as part of a Project configuration, for a given stage (pre, post) and action (validate, deploy, undeploy). + Nested schema for **deploy_post_script**: + * `path` - (String) The path to this script within the current version source. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^\\S+$/`. + * `short_description` - (String) The short description for this script. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/$|^(?!\\s)(?!.*\\s$)[^\\x00-\\x1F]*$/`. + * `type` - (String) The type of the script. + * Constraints: The maximum length is `7` characters. The minimum length is `7` characters. The value must match regular expression `/^(ansible)$/`. + * `deploy_pre_script` - (List) A script to be run as part of a Project configuration, for a given stage (pre, post) and action (validate, deploy, undeploy). + Nested schema for **deploy_pre_script**: + * `path` - (String) The path to this script within the current version source. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^\\S+$/`. + * `short_description` - (String) The short description for this script. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/$|^(?!\\s)(?!.*\\s$)[^\\x00-\\x1F]*$/`. + * `type` - (String) The type of the script. + * Constraints: The maximum length is `7` characters. The minimum length is `7` characters. The value must match regular expression `/^(ansible)$/`. + * `undeploy_post_script` - (List) A script to be run as part of a Project configuration, for a given stage (pre, post) and action (validate, deploy, undeploy). + Nested schema for **undeploy_post_script**: + * `path` - (String) The path to this script within the current version source. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^\\S+$/`. + * `short_description` - (String) The short description for this script. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/$|^(?!\\s)(?!.*\\s$)[^\\x00-\\x1F]*$/`. + * `type` - (String) The type of the script. + * Constraints: The maximum length is `7` characters. The minimum length is `7` characters. The value must match regular expression `/^(ansible)$/`. + * `undeploy_pre_script` - (List) A script to be run as part of a Project configuration, for a given stage (pre, post) and action (validate, deploy, undeploy). + Nested schema for **undeploy_pre_script**: + * `path` - (String) The path to this script within the current version source. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^\\S+$/`. + * `short_description` - (String) The short description for this script. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/$|^(?!\\s)(?!.*\\s$)[^\\x00-\\x1F]*$/`. + * `type` - (String) The type of the script. + * Constraints: The maximum length is `7` characters. The minimum length is `7` characters. The value must match regular expression `/^(ansible)$/`. + * `validate_post_script` - (List) A script to be run as part of a Project configuration, for a given stage (pre, post) and action (validate, deploy, undeploy). + Nested schema for **validate_post_script**: + * `path` - (String) The path to this script within the current version source. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^\\S+$/`. + * `short_description` - (String) The short description for this script. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/$|^(?!\\s)(?!.*\\s$)[^\\x00-\\x1F]*$/`. + * `type` - (String) The type of the script. + * Constraints: The maximum length is `7` characters. The minimum length is `7` characters. The value must match regular expression `/^(ansible)$/`. + * `validate_pre_script` - (List) A script to be run as part of a Project configuration, for a given stage (pre, post) and action (validate, deploy, undeploy). + Nested schema for **validate_pre_script**: + * `path` - (String) The path to this script within the current version source. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^\\S+$/`. + * `short_description` - (String) The short description for this script. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/$|^(?!\\s)(?!.*\\s$)[^\\x00-\\x1F]*$/`. + * `type` - (String) The type of the script. + * Constraints: The maximum length is `7` characters. The minimum length is `7` characters. The value must match regular expression `/^(ansible)$/`. + * `workspace_crn` - (String) An existing schematics workspace CRN. + * Constraints: The maximum length is `512` characters. The minimum length is `4` characters. The value must match regular expression `/^crn:v[0-9](:([A-Za-z0-9\\-._~!$&'()*+,;=@\/]|%[0-9A-Z]{2})*){8}$/`. + +* `state` - (String) The state of the configuration. + * Constraints: Allowable values are: `approved`, `deleted`, `deleting`, `deleting_failed`, `discarded`, `draft`, `deployed`, `deploying_failed`, `deploying`, `superseded`, `undeploying`, `undeploying_failed`, `validated`, `validating`, `validating_failed`. + +* `update_available` - (Boolean) The flag that indicates whether a configuration update is available. + +* `version` - (Integer) The version of the configuration. + diff --git a/website/docs/d/project_environment.html.markdown b/website/docs/d/project_environment.html.markdown new file mode 100644 index 0000000000..3b9420d3fe --- /dev/null +++ b/website/docs/d/project_environment.html.markdown @@ -0,0 +1,84 @@ +--- +layout: "ibm" +page_title: "IBM : ibm_project_environment" +description: |- + Get information about project_environment +subcategory: "Projects" +--- + +# ibm_project_environment + +Provides a read-only data source to retrieve information about a project_environment. You can then reference the fields of the data source in other resources within the same configuration by using interpolation syntax. + +## Example Usage + +```hcl +data "ibm_project_environment" "project_environment" { + project_environment_id = ibm_project_environment.project_environment.project_environment_id + project_id = ibm_project_environment.project_environment.project_id +} +``` + +## Argument Reference + +You can specify the following arguments for this data source. + +* `project_environment_id` - (Required, Forces new resource, String) The environment ID. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$).+$/`. +* `project_id` - (Required, Forces new resource, String) The unique project ID. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + +## Attribute Reference + +After your data source is created, you can read values from the following attributes. + +* `id` - The unique identifier of the project_environment. +* `created_at` - (String) A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339. + +* `definition` - (List) The environment definition. +Nested schema for **definition**: + * `authorizations` - (List) The authorization details. You can authorize by using a trusted profile or an API key in Secrets Manager. + Nested schema for **authorizations**: + * `api_key` - (String) The IBM Cloud API Key. + * Constraints: The maximum length is `512` characters. The minimum length is `0` characters. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^`<>\\x00-\\x1F]*$/`. + * `method` - (String) The authorization method. You can authorize by using a trusted profile or an API key in Secrets Manager. + * Constraints: Allowable values are: `api_key`, `trusted_profile`. + * `trusted_profile_id` - (String) The trusted profile ID. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + * `compliance_profile` - (List) The profile required for compliance. + Nested schema for **compliance_profile**: + * `attachment_id` - (String) A unique ID for the attachment to a compliance profile. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + * `id` - (String) The unique ID for that compliance profile. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + * `instance_id` - (String) A unique ID for an instance of a compliance profile. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + * `instance_location` - (String) The location of the compliance instance. + * Constraints: The maximum length is `12` characters. The minimum length is `0` characters. The value must match regular expression `/^$|^(us-south|us-east|eu-gb|eu-de)$/`. + * `profile_name` - (String) The name of the compliance profile. + * Constraints: The maximum length is `1024` characters. The minimum length is `0` characters. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^`<>\\x00-\\x1F]*$/`. + * `description` - (String) The description of the environment. + * Constraints: The maximum length is `1024` characters. The minimum length is `0` characters. The value must match regular expression `/^$|^(?!\\s)(?!.*\\s$)[^\\x00-\\x1F]*$/`. + * `inputs` - (List) The input variables for configuration definition and environment. + Nested schema for **inputs**: + * `name` - (String) The name of the environment. It is unique within the account across projects and regions. + * Constraints: The maximum length is `128` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^'"`<>{}\\x00-\\x1F]+$/`. + +* `modified_at` - (String) A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339. + +* `project` - (List) The project referenced by this resource. +Nested schema for **project**: + * `crn` - (String) An IBM Cloud resource name, which uniquely identifies a resource. + * Constraints: The maximum length is `512` characters. The minimum length is `4` characters. The value must match regular expression `/(?!\\s)(?!.*\\s$)^(crn)[^'"`<>{}\\s\\x00-\\x1F]*/`. + * `definition` - (List) The definition of the project reference. + Nested schema for **definition**: + * `name` - (String) The name of the project. + * Constraints: The maximum length is `64` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^'"`<>{}\\x00-\\x1F]+$/`. + * `href` - (String) A URL. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^(http(s)?:\/\/)[a-zA-Z0-9\\$\\-_\\.+!\\*'\\(\\),=&?\/]+$/`. + * `id` - (String) The unique ID. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + +* `target_account` - (String) The target account ID derived from the authentication block values. + * Constraints: The maximum length is `64` characters. The value must match regular expression `/^[a-zA-Z0-9.-]+$/`. + diff --git a/website/docs/d/project_event_notification.html.markdown b/website/docs/d/project_event_notification.html.markdown deleted file mode 100644 index 6818a34bc8..0000000000 --- a/website/docs/d/project_event_notification.html.markdown +++ /dev/null @@ -1,107 +0,0 @@ ---- -layout: "ibm" -page_title: "IBM : ibm_project_event_notification" -description: |- - Get information about Project definition -subcategory: "Project" ---- - -# ibm_project_event_notification - -Provides a read-only data source for Project definition. You can then reference the fields of the data source in other resources within the same configuration using interpolation syntax. - -## Example Usage - -```hcl -data "ibm_project_event_notification" "project_event_notification" { - id = "072b70cb-4db7-4c5c-bf1b-8d93d422537d" -} -``` - -## Argument Reference - -Review the argument reference that you can specify for your data source. - -* `id` - (Required, Forces new resource, String) The unique project ID. - * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. - -## Attribute Reference - -In addition to all argument references listed, you can access the following attribute references after your data source is created. - -* `id` - The unique identifier of the Project definition. -* `configs` - (List) The project configurations. - * Constraints: The maximum length is `10000` items. The minimum length is `0` items. -Nested scheme for **configs**: - * `description` - (String) The project configuration description. - * Constraints: The maximum length is `1024` characters. The minimum length is `0` characters. The value must match regular expression `/^$|^(?!\\s).*\\S$/`. - * `id` - (String) The ID of the configuration. If this parameter is empty, an ID is automatically created for the configuration. - * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. - * `input` - (List) The outputs of a Schematics template property. - * Constraints: The maximum length is `10000` items. The minimum length is `0` items. - Nested scheme for **input**: - * `name` - (String) The variable name. - * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$).+$/`. - * `required` - (Boolean) Whether the variable is required or not. - * `type` - (String) The variable type. - * Constraints: Allowable values are: `array`, `boolean`, `float`, `int`, `number`, `password`, `string`, `object`. - * `value` - (String) Can be any value - a string, number, boolean, array, or object. - * `labels` - (List) A collection of configuration labels. - * Constraints: The list items must match regular expression `/^[_\\-a-z0-9:\/=]+$/`. The maximum length is `10000` items. The minimum length is `0` items. - * `locator_id` - (String) A dotted value of catalogID.versionID. - * Constraints: The maximum length is `512` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[\\.0-9a-z-A-Z_-]+$/`. - * `name` - (String) The configuration name. - * Constraints: The maximum length is `64` characters. The minimum length is `1` character. The value must match regular expression `/^[a-zA-Z0-9][a-zA-Z0-9-_ ]*$/`. - * `output` - (List) The outputs of a Schematics template property. - * Constraints: The maximum length is `10000` items. The minimum length is `0` items. - Nested scheme for **output**: - * `description` - (String) A short explanation of the output value. - * Constraints: The maximum length is `1024` characters. The minimum length is `0` characters. The value must match regular expression `/^$|^(?!\\s).*\\S$/`. - * `name` - (String) The variable name. - * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$).+$/`. - * `value` - (String) Can be any value - a string, number, boolean, array, or object. - * `setting` - (List) Schematics environment variables to use to deploy the configuration. - * Constraints: The maximum length is `10000` items. The minimum length is `0` items. - Nested scheme for **setting**: - * `name` - (String) The name of the configuration setting. - * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$).+$/`. - * `value` - (String) The value of the configuration setting. - * Constraints: The maximum length is `1024` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$).+$/`. - * `type` - (String) The type of a project configuration manual property. - * Constraints: Allowable values are: `terraform_template`, `schematics_blueprint`. - -* `crn` - (String) An IBM Cloud resource name, which uniquely identifies a resource. - * Constraints: The maximum length is `512` characters. The minimum length is `9` characters. The value must match regular expression `/^crn:v[0-9](:([A-Za-z0-9\\-._~!$&'()*+,;=@\/]|%[0-9A-Z]{2})*){8}$/`. - -* `description` - (String) A project descriptive text. - * Constraints: The maximum length is `1024` characters. The minimum length is `0` characters. The value must match regular expression `/^$|^(?!\\s).*\\S$/`. - -* `metadata` - (List) The metadata of the project. -Nested scheme for **metadata**: - * `created_at` - (String) A date and time value in the format `YYYY-MM-DDTHH:mm:ssZ` or `YYYY-MM-DDTHH:mm:ss.sssZ`, matching the date and time format as specified by RFC 3339. - * `crn` - (String) An IBM Cloud resource name, which uniquely identifies a resource. - * Constraints: The maximum length is `512` characters. The minimum length is `9` characters. The value must match regular expression `/^crn:v[0-9](:([A-Za-z0-9\\-._~!$&'()*+,;=@\/]|%[0-9A-Z]{2})*){8}$/`. - * `cumulative_needs_attention_view` - (List) The cumulative list of needs attention items for a project. - * Constraints: The maximum length is `10000` items. The minimum length is `0` items. - Nested scheme for **cumulative_needs_attention_view**: - * `config_id` - (String) The unique ID of a project. - * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. - * `config_version` - (Integer) The version number of the configuration. - * `event` - (String) The event name. - * Constraints: The maximum length is `64` characters. The minimum length is `0` characters. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^'"<>{}\\x00-\\x1F]*$/`. - * `event_id` - (String) The unique ID of a project. - * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. - * `cumulative_needs_attention_view_err` - (String) `True` indicates that the fetch of the needs attention items failed. - * Constraints: The maximum length is `64` characters. The minimum length is `0` characters. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^'"<>{}\\x00-\\x1F]*$/`. - * `event_notifications_crn` - (String) The CRN of the event notifications instance if one is connected to this project. - * Constraints: The maximum length is `512` characters. The minimum length is `9` characters. The value must match regular expression `/^crn:v[0-9](:([A-Za-z0-9\\-._~!$&'()*+,;=@\/]|%[0-9A-Z]{2})*){8}$/`. - * `location` - (String) The IBM Cloud location where a resource is deployed. - * Constraints: The maximum length is `64` characters. The minimum length is `0` characters. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^'"<>{}\\x00-\\x1F]*$/`. - * `resource_group` - (String) The resource group where the project's data and tools are created. - * Constraints: The maximum length is `64` characters. The minimum length is `0` characters. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^'"<>{}\\x00-\\x1F]*$/`. - * `state` - (String) The project status value. - * Constraints: The maximum length is `64` characters. The minimum length is `1` character. The value must match regular expression `/^(CREATING|CREATING_FAILED|UPDATING|UPDATING_FAILED|READY)$/`. - -* `name` - (String) The project name. - * Constraints: The maximum length is `64` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^'"<>{}\\x00-\\x1F]+$/`. - diff --git a/website/docs/d/satellite_cluster_worker_pool.html.markdown b/website/docs/d/satellite_cluster_worker_pool.html.markdown index e8030c7eec..b1b4be49e0 100644 --- a/website/docs/d/satellite_cluster_worker_pool.html.markdown +++ b/website/docs/d/satellite_cluster_worker_pool.html.markdown @@ -49,3 +49,4 @@ In addition to all argument references list, you can access the following attrib - `isolation` - (String) Isolation of the worker node. - `auto_scale_enabled` - (String) Enable auto scalling for worker pool. - `worker_count` - (String) The number of workers that are attached. +- `openshift_license_source` - (String) The license source for OpenShift. diff --git a/website/docs/d/scc_control_library.html.markdown b/website/docs/d/scc_control_library.html.markdown index 20db99ed77..fb1273466a 100644 --- a/website/docs/d/scc_control_library.html.markdown +++ b/website/docs/d/scc_control_library.html.markdown @@ -10,7 +10,7 @@ subcategory: "Security and Compliance Center" Retrieve information about a scc_control_library from a read-only data source. Then, you can reference the fields of the data source in other resources within the same configuration by using interpolation syntax. -~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.ibm.com`). +~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.cloud.ibm.com`). ## Example Usage diff --git a/website/docs/d/scc_instance_settings.html.markdown b/website/docs/d/scc_instance_settings.html.markdown index 4c2d84e148..ce53c59171 100644 --- a/website/docs/d/scc_instance_settings.html.markdown +++ b/website/docs/d/scc_instance_settings.html.markdown @@ -10,6 +10,7 @@ subcategory: "Security and Compliance Center" Provides a read-only data source to retrieve information about scc_instance_settings. You can then reference the fields of the data source in other resources within the same configuration by using interpolation syntax. +~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.cloud.ibm.com`). ## Example Usage diff --git a/website/docs/d/scc_latest_reports.html.markdown b/website/docs/d/scc_latest_reports.html.markdown index 8fc6676f60..2d62fb41f9 100644 --- a/website/docs/d/scc_latest_reports.html.markdown +++ b/website/docs/d/scc_latest_reports.html.markdown @@ -10,7 +10,7 @@ subcategory: "Security and Compliance Center" Retrieve information about the latest reports from a read-only data source. Then, you can reference the fields of the data source in other resources within the same configuration by using interpolation syntax. -~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.ibm.com`). +~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.cloud.ibm.com`). ## Example Usage diff --git a/website/docs/d/scc_profile.html.markdown b/website/docs/d/scc_profile.html.markdown index 521f2f2316..73983c2183 100644 --- a/website/docs/d/scc_profile.html.markdown +++ b/website/docs/d/scc_profile.html.markdown @@ -10,7 +10,7 @@ subcategory: "Security and Compliance Center" Retrieve information about a profile from a read-only data source. Then, you can reference the fields of the data source in other resources within the same configuration by using interpolation syntax. -~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.ibm.com`). +~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.cloud.ibm.com`). ## Example Usage diff --git a/website/docs/d/scc_profile_attachment.html.markdown b/website/docs/d/scc_profile_attachment.html.markdown index ae30e2d3fb..15b0f39023 100644 --- a/website/docs/d/scc_profile_attachment.html.markdown +++ b/website/docs/d/scc_profile_attachment.html.markdown @@ -10,7 +10,7 @@ subcategory: "Security and Compliance Center" Retrieve information about a profile attachment from a read-only data source. Then, you can reference the fields of the data source in other resources within the same configuration by using interpolation syntax. -~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.ibm.com`). +~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.cloud.ibm.com`). ## Example Usage diff --git a/website/docs/d/scc_provider_type.html.markdown b/website/docs/d/scc_provider_type.html.markdown index cc2c8d4d4f..55b13ba210 100644 --- a/website/docs/d/scc_provider_type.html.markdown +++ b/website/docs/d/scc_provider_type.html.markdown @@ -10,7 +10,7 @@ subcategory: "Security and Compliance Center" Retrieve information about a provider type from a read-only data source. Then, you can reference the fields of the data source in other resources within the same configuration by using interpolation syntax. -~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.ibm.com`). +~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.cloud.ibm.com`). ## Example Usage diff --git a/website/docs/d/scc_provider_type_collection.html.markdown b/website/docs/d/scc_provider_type_collection.html.markdown index 96d9c51e2e..96dece472f 100644 --- a/website/docs/d/scc_provider_type_collection.html.markdown +++ b/website/docs/d/scc_provider_type_collection.html.markdown @@ -10,7 +10,7 @@ subcategory: "Security and Compliance Center" Retrieve information about a provider type collection from a read-only data source. Then, you can reference the fields of the data source in other resources within the same configuration by using interpolation syntax. -~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.ibm.com`). +~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.cloud.ibm.com`). ## Example Usage diff --git a/website/docs/d/scc_provider_type_instance.html.markdown b/website/docs/d/scc_provider_type_instance.html.markdown index 6f5dc1b7b8..044c336c67 100644 --- a/website/docs/d/scc_provider_type_instance.html.markdown +++ b/website/docs/d/scc_provider_type_instance.html.markdown @@ -10,7 +10,7 @@ subcategory: "Security and Compliance Center" Retrieve information about a provider type instance from a read-only data source. Then, you can reference the fields of the data source in other resources within the same configuration by using interpolation syntax. -~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.ibm.com`). +~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.cloud.ibm.com`). ## Example Usage diff --git a/website/docs/d/scc_report.html.markdown b/website/docs/d/scc_report.html.markdown index 576c99daea..15aa7fedd9 100644 --- a/website/docs/d/scc_report.html.markdown +++ b/website/docs/d/scc_report.html.markdown @@ -10,7 +10,7 @@ subcategory: "Security and Compliance Center" Retrieve information about a report from a read-only data source. Then, you can reference the fields of the data source in other resources within the same configuration by using interpolation syntax. -~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.ibm.com`). +~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.cloud.ibm.com`). ## Example Usage diff --git a/website/docs/d/scc_report_controls.html.markdown b/website/docs/d/scc_report_controls.html.markdown index e36ab1805b..8bf2a1df6f 100644 --- a/website/docs/d/scc_report_controls.html.markdown +++ b/website/docs/d/scc_report_controls.html.markdown @@ -10,7 +10,7 @@ subcategory: "Security and Compliance Center" Retrieve information about report controls from a read-only data source. Then, you can reference the fields of the data source in other resources within the same configuration by using interpolation syntax. -~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.ibm.com`). +~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.cloud.ibm.com`). ## Example Usage diff --git a/website/docs/d/scc_report_evaluations.html.markdown b/website/docs/d/scc_report_evaluations.html.markdown index e67c25a800..8050494e04 100644 --- a/website/docs/d/scc_report_evaluations.html.markdown +++ b/website/docs/d/scc_report_evaluations.html.markdown @@ -10,7 +10,7 @@ subcategory: "Security and Compliance Center" Retrieve information about report evaluations from a read-only data source. Then, you can reference the fields of the data source in other resources within the same configuration by using interpolation syntax. -~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.ibm.com`). +~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.cloud.ibm.com`). ## Example Usage diff --git a/website/docs/d/scc_report_resources.html.markdown b/website/docs/d/scc_report_resources.html.markdown index 340cf9d7f5..4cd1cc270b 100644 --- a/website/docs/d/scc_report_resources.html.markdown +++ b/website/docs/d/scc_report_resources.html.markdown @@ -10,7 +10,7 @@ subcategory: "Security and Compliance Center" Retrieve information about report resources from a read-only data source. Then, you can reference the fields of the data source in other resources within the same configuration by using interpolation syntax. -~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.ibm.com`). +~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.cloud.ibm.com`). ## Example Usage diff --git a/website/docs/d/scc_report_rule.html.markdown b/website/docs/d/scc_report_rule.html.markdown index f579ad4380..aee94a5909 100644 --- a/website/docs/d/scc_report_rule.html.markdown +++ b/website/docs/d/scc_report_rule.html.markdown @@ -10,7 +10,7 @@ subcategory: "Security and Compliance Center" Retrieve information about a report rule from a read-only data source. Then, you can reference the fields of the data source in other resources within the same configuration by using interpolation syntax. -~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.ibm.com`). +~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.cloud.ibm.com`). ## Example Usage diff --git a/website/docs/d/scc_report_summary.html.markdown b/website/docs/d/scc_report_summary.html.markdown index f48e4615ba..1c2348268d 100644 --- a/website/docs/d/scc_report_summary.html.markdown +++ b/website/docs/d/scc_report_summary.html.markdown @@ -10,7 +10,7 @@ subcategory: "Security and Compliance Center" Retrieve information about a report summary from a read-only data source. Then, you can reference the fields of the data source in other resources within the same configuration by using interpolation syntax. -~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.ibm.com`). +~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.cloud.ibm.com`). ## Example Usage diff --git a/website/docs/d/scc_report_tags.html.markdown b/website/docs/d/scc_report_tags.html.markdown index dbc8b0e175..9c10d98e13 100644 --- a/website/docs/d/scc_report_tags.html.markdown +++ b/website/docs/d/scc_report_tags.html.markdown @@ -10,7 +10,7 @@ subcategory: "Security and Compliance Center" Retrieve information about report tags from a read-only data source. Then, you can reference the fields of the data source in other resources within the same configuration by using interpolation syntax. -~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.ibm.com`). +~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.cloud.ibm.com`). ## Example Usage diff --git a/website/docs/d/scc_report_violation_drift.html.markdown b/website/docs/d/scc_report_violation_drift.html.markdown index d6738d4404..14e0d30466 100644 --- a/website/docs/d/scc_report_violation_drift.html.markdown +++ b/website/docs/d/scc_report_violation_drift.html.markdown @@ -10,7 +10,7 @@ subcategory: "Security and Compliance Center" Retrieve information about a report violation drift from a read-only data source. Then, yo can reference the fields of the data source in other resources within the same configuration by using interpolation syntax. -~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.ibm.com`). +~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.cloud.ibm.com`). ## Example Usage diff --git a/website/docs/d/scc_rule.html.markdown b/website/docs/d/scc_rule.html.markdown index f9728bb5b3..5e697578fa 100644 --- a/website/docs/d/scc_rule.html.markdown +++ b/website/docs/d/scc_rule.html.markdown @@ -10,7 +10,7 @@ subcategory: "Security and Compliance Center" Retrieve information about a rule from a read-only data source. Then, you can reference the fields of the data source in other resources within the same configuration by using interpolation syntax. -~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.ibm.com`). +~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.cloud.ibm.com`). ## Example Usage diff --git a/website/docs/d/schematics_agent.html.markdown b/website/docs/d/schematics_agent.html.markdown new file mode 100644 index 0000000000..debcc2afe7 --- /dev/null +++ b/website/docs/d/schematics_agent.html.markdown @@ -0,0 +1,134 @@ +--- +layout: "ibm" +page_title: "IBM : ibm_schematics_agent" +description: |- + Get information about schematics_agent +subcategory: "Schematics" +--- + +# ibm_schematics_agent + +~> **Beta:** This resource is in Beta, and is subject to change. + +Provides a read-only data source for schematics_agent. You can then reference the fields of the data source in other resources within the same configuration using interpolation syntax. + +## Example Usage + +```hcl +data "ibm_schematics_agent" "schematics_agent" { + agent_id = "agent_id" +} +``` + +## Argument Reference + +Review the argument reference that you can specify for your data source. + +* `agent_id` - (Required, Forces new resource, String) Agent ID to get the details of agent. + +## Attribute Reference + +In addition to all argument references listed, you can access the following attribute references after your data source is created. + +* `id` - The unique identifier of the schematics_agent. +* `agent_crn` - (String) The agent crn, obtained from the Schematics agent deployment configuration. + +* `agent_infrastructure` - (List) The infrastructure parameters used by the agent. +Nested scheme for **agent_infrastructure**: + * `cluster_id` - (String) The cluster ID where agent services will be running. + * `cluster_resource_group` - (String) The resource group of the cluster (is it required?). + * `cos_bucket_name` - (String) The COS bucket name used to store the logs. + * `cos_bucket_region` - (String) The COS bucket region. + * `cos_instance_name` - (String) The COS instance name to store the agent logs. + * `infra_type` - (String) Type of target agent infrastructure. + * Constraints: Allowable values are: `ibm_kubernetes`, `ibm_openshift`, `ibm_satellite`. +* `agent_kpi` - (List) Schematics Agent key performance indicators. +Nested scheme for **agent_kpi**: + * `application_indicators` - (List) Agent application key performance indicators. + * `availability_indicator` - (String) Overall availability indicator reported by the agent. + * Constraints: Allowable values are: `available`, `unavailable`, `error`. + * `infra_indicators` - (List) Agent infrastructure key performance indicators. + * `lifecycle_indicator` - (String) Overall lifecycle indicator reported by the agents. + * Constraints: Allowable values are: `consistent`, `inconsistent`, `obselete`. + * `percent_usage_indicator` - (String) Percentage usage of the agent resources. + +* `agent_location` - (String) The location where agent is deployed in the user environment. + +* `agent_metadata` - (List) The metadata of an agent. +Nested scheme for **agent_metadata**: + * `name` - (String) Name of the metadata. + * `value` - (List) Value of the metadata name. + +* `created_at` - (String) The agent creation date-time. + +* `creation_by` - (String) The email address of an user who created the agent. + +* `description` - (String) Agent description. + +* `id` - (String) The agent resource id. + +* `name` - (String) The name of the agent (must be unique, for an account). + +* `recent_deploy_job` - (List) Post-installations checks for Agent health. +Nested scheme for **recent_deploy_job**: + * `agent_id` - (String) Id of the agent. + * `agent_version` - (String) Agent version. + * `is_redeployed` - (Boolean) True, when the same version of the agent was redeployed. + * `job_id` - (String) Job Id. + * `log_url` - (String) URL to the full agent deployment job logs. + * `status_code` - (String) Final result of the agent deployment job. + * Constraints: Allowable values are: `pending`, `in-progress`, `success`, `failed`. + * `status_message` - (String) The outcome of the agent deployment job, in a formatted log string. + * `updated_at` - (String) The agent deploy job updation time. + * `updated_by` - (String) Email address of user who ran the agent deploy job. + +* `recent_health_job` - (List) Agent health check. +Nested scheme for **recent_health_job**: + * `agent_id` - (String) Id of the agent. + * `agent_version` - (String) Agent version. + * `job_id` - (String) Job Id. + * `log_url` - (String) URL to the full health-check job logs. + * `status_code` - (String) Final result of the health-check job. + * Constraints: Allowable values are: `pending`, `in-progress`, `success`, `failed`. + * `status_message` - (String) The outcome of the health-check job, in a formatted log string. + * `updated_at` - (String) The agent health check job updation time. + * `updated_by` - (String) Email address of user who ran the agent health check job. + +* `recent_prs_job` - (List) Run a pre-requisite scanner for deploying agent. +Nested scheme for **recent_prs_job**: + * `agent_id` - (String) Id of the agent. + * `agent_version` - (String) Agent version. + * `job_id` - (String) Job Id. + * `log_url` - (String) URL to the full pre-requisite scanner job logs. + * `status_code` - (String) Final result of the pre-requisite scanner job. + * Constraints: Allowable values are: `pending`, `in-progress`, `success`, `failed`. + * `status_message` - (String) The outcome of the pre-requisite scanner job, in a formatted log string. + * `updated_at` - (String) The agent prs job updation time. + * `updated_by` - (String) Email address of user who ran the agent prs job. + +* `resource_group` - (String) The resource-group name for the agent. By default, agent will be registered in Default Resource Group. + +* `schematics_location` - (String) List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics. + * Constraints: Allowable values are: `us-south`, `us-east`, `eu-gb`, `eu-de`. + +* `system_state` - (List) Computed state of the agent. +Nested scheme for **system_state**: + * `status_code` - (String) Agent Status. + * Constraints: Allowable values are: `error`, `normal`, `in_progress`, `pending`, `draft`. + * `status_message` - (String) The agent status message. + +* `tags` - (List) Tags for the agent. + +* `updated_at` - (String) The agent registration updation time. + +* `updated_by` - (String) Email address of user who updated the agent registration. + +* `user_state` - (List) User defined status of the agent. +Nested scheme for **user_state**: + * `set_at` - (String) When the User who set the state of the Object. + * `set_by` - (String) Name of the User who set the state of the Object. + * `state` - (String) User-defined states * `enable` Agent is enabled by the user. * `disable` Agent is disbaled by the user. + * Constraints: Allowable values are: `enable`, `disable`. + +* `version` - (String) Agent version. + diff --git a/website/docs/d/schematics_agent_deploy.html.markdown b/website/docs/d/schematics_agent_deploy.html.markdown new file mode 100644 index 0000000000..0384799adf --- /dev/null +++ b/website/docs/d/schematics_agent_deploy.html.markdown @@ -0,0 +1,50 @@ +--- +layout: "ibm" +page_title: "IBM : ibm_schematics_agent_deploy" +description: |- + Get information about schematics_agent_deploy +subcategory: "Schematics" +--- + +# ibm_schematics_agent_deploy + +~> **Beta:** This resource is in Beta, and is subject to change. + +Provides a read-only data source for schematics_agent_deploy. You can then reference the fields of the data source in other resources within the same configuration using interpolation syntax. + +## Example Usage + +```hcl +data "ibm_schematics_agent_deploy" "schematics_agent_deploy" { + agent_id = ibm_schematics_agent_deploy.schematics_agent_deploy.agent_id +} +``` + +## Argument Reference + +Review the argument reference that you can specify for your data source. + +* `agent_id` - (Required, Forces new resource, String) Agent ID to get the details of agent. + +## Attribute Reference + +In addition to all argument references listed, you can access the following attribute references after your data source is created. + +* `id` - The unique identifier of the schematics_agent_deploy. +* `agent_version` - (String) Agent version. + +* `is_redeployed` - (Boolean) True, when the same version of the agent was redeployed. + +* `job_id` - (String) Job Id. + +* `log_url` - (String) URL to the full agent deployment job logs. + +* `status_code` - (String) Final result of the agent deployment job. + * Constraints: Allowable values are: `pending`, `in-progress`, `success`, `failed`. + +* `status_message` - (String) The outcome of the agent deployment job, in a formatted log string. + +* `updated_at` - (String) The agent deploy job updation time. + +* `updated_by` - (String) Email address of user who ran the agent deploy job. + diff --git a/website/docs/d/schematics_agent_health.html.markdown b/website/docs/d/schematics_agent_health.html.markdown new file mode 100644 index 0000000000..0ff0fd2d2d --- /dev/null +++ b/website/docs/d/schematics_agent_health.html.markdown @@ -0,0 +1,48 @@ +--- +layout: "ibm" +page_title: "IBM : ibm_schematics_agent_health" +description: |- + Get information about schematics_agent_health +subcategory: "Schematics" +--- + +# ibm_schematics_agent_health + +~> **Beta:** This resource is in Beta, and is subject to change. + +Provides a read-only data source for schematics_agent_health. You can then reference the fields of the data source in other resources within the same configuration using interpolation syntax. + +## Example Usage + +```hcl +data "ibm_schematics_agent_health" "schematics_agent_health" { + agent_id = ibm_schematics_agent_health.schematics_agent_health.agent_id +} +``` + +## Argument Reference + +Review the argument reference that you can specify for your data source. + +* `agent_id` - (Required, Forces new resource, String) Agent ID to get the details of agent. + +## Attribute Reference + +In addition to all argument references listed, you can access the following attribute references after your data source is created. + +* `id` - The unique identifier of the schematics_agent_health. +* `agent_version` - (String) Agent version. + +* `job_id` - (String) Job Id. + +* `log_url` - (String) URL to the full health-check job logs. + +* `status_code` - (String) Final result of the health-check job. + * Constraints: Allowable values are: `pending`, `in-progress`, `success`, `failed`. + +* `status_message` - (String) The outcome of the health-check job, in a formatted log string. + +* `updated_at` - (String) The agent health check job updation time. + +* `updated_by` - (String) Email address of user who ran the agent health check job. + diff --git a/website/docs/d/schematics_agent_prs.html.markdown b/website/docs/d/schematics_agent_prs.html.markdown new file mode 100644 index 0000000000..aefc4c929a --- /dev/null +++ b/website/docs/d/schematics_agent_prs.html.markdown @@ -0,0 +1,48 @@ +--- +layout: "ibm" +page_title: "IBM : ibm_schematics_agent_prs" +description: |- + Get information about schematics_agent_prs +subcategory: "Schematics" +--- + +# ibm_schematics_agent_prs + +~> **Beta:** This resource is in Beta, and is subject to change. + +Provides a read-only data source for schematics_agent_prs. You can then reference the fields of the data source in other resources within the same configuration using interpolation syntax. + +## Example Usage + +```hcl +data "ibm_schematics_agent_prs" "schematics_agent_prs" { + agent_id = ibm_schematics_agent_prs.schematics_agent_prs.agent_id +} +``` + +## Argument Reference + +Review the argument reference that you can specify for your data source. + +* `agent_id` - (Required, Forces new resource, String) Agent ID to get the details of agent. + +## Attribute Reference + +In addition to all argument references listed, you can access the following attribute references after your data source is created. + +* `id` - The unique identifier of the schematics_agent_prs. +* `agent_version` - (String) Agent version. + +* `job_id` - (String) Job Id. + +* `log_url` - (String) URL to the full pre-requisite scanner job logs. + +* `status_code` - (String) Final result of the pre-requisite scanner job. + * Constraints: Allowable values are: `pending`, `in-progress`, `success`, `failed`. + +* `status_message` - (String) The outcome of the pre-requisite scanner job, in a formatted log string. + +* `updated_at` - (String) The agent prs job updation time. + +* `updated_by` - (String) Email address of user who ran the agent prs job. + diff --git a/website/docs/d/schematics_agents.html.markdown b/website/docs/d/schematics_agents.html.markdown new file mode 100644 index 0000000000..14b0034b40 --- /dev/null +++ b/website/docs/d/schematics_agents.html.markdown @@ -0,0 +1,72 @@ +--- +layout: "ibm" +page_title: "IBM : ibm_schematics_agents" +description: |- + Get information about schematics_agents +subcategory: "Schematics" +--- + +# ibm_schematics_agents + +~> **Beta:** This resource is in Beta, and is subject to change. + +Provides a read-only data source for schematics_agents. You can then reference the fields of the data source in other resources within the same configuration using interpolation syntax. + +## Example Usage + +```hcl +data "ibm_schematics_agents" "schematics_agents" { + name = "MyDevAgent" +} +``` + +## Argument Reference + +Review the argument reference that you can specify for your data source. + +* `name` - (Optional, String) The name of the agent (must be unique, for an account). + +## Attribute Reference + +In addition to all argument references listed, you can access the following attribute references after your data source is created. + +* `id` - The unique identifier of the schematics_agents. +* `agents` - (List) The list of agents in the account. +Nested scheme for **agents**: + * `agent_crn` - (String) The Agent crn, obtained from the Schematics Agent deployment configuration. + * `agent_location` - (String) The location where agent is deployed in the user environment. + * `connection_state` - (List) Connection status of the agent. + Nested scheme for **connection_state**: + * `checked_at` - (String) When the connection state is modified. + * `state` - (String) Agent Connection Status * `Connected` When Schematics is able to connect to the agent. * `Disconnected` When Schematics is able not connect to the agent. + * Constraints: Allowable values are: `Connected`, `Disconnected`. + * `description` - (String) Agent description. + * `id` - (String) The Agent registration id. + * `location` - (String) List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics. + * Constraints: Allowable values are: `us-south`, `us-east`, `eu-gb`, `eu-de`. + * `name` - (String) The name of the agent. + * `profile_id` - (String) The IAM trusted profile id, used by the Agent instance. + * `registered_at` - (String) The Agent registration date-time. + * `registered_by` - (String) The email address of an user who registered the Agent. + * `resource_group` - (String) The resource-group name for the agent. By default, Agent will be registered in Default Resource Group. + * `system_state` - (List) Computed state of the agent. + Nested scheme for **system_state**: + * `message` - (String) The Agent status message. + * `state` - (String) Agent Status. + * Constraints: Allowable values are: `error`, `normal`, `in_progress`, `pending`, `draft`. + * `tags` - (List) Tags for the agent. + * `updated_at` - (String) The Agent registration updation time. + * `updated_by` - (String) Email address of user who updated the Agent registration. + * `user_state` - (List) User defined status of the agent. + Nested scheme for **user_state**: + * `set_at` - (String) When the User who set the state of the Object. + * `set_by` - (String) Name of the User who set the state of the Object. + * `state` - (String) User-defined states * `enable` Agent is enabled by the user. * `disable` Agent is disbaled by the user. + * Constraints: Allowable values are: `enable`, `disable`. + +* `limit` - (Integer) The number of records returned. + +* `offset` - (Integer) The skipped number of records. + +* `total_count` - (Integer) The total number of records. + diff --git a/website/docs/d/schematics_policies.html.markdown b/website/docs/d/schematics_policies.html.markdown new file mode 100644 index 0000000000..dbb58395e6 --- /dev/null +++ b/website/docs/d/schematics_policies.html.markdown @@ -0,0 +1,62 @@ +--- +layout: "ibm" +page_title: "IBM : ibm_schematics_policies" +description: |- + Get information about schematics_policies +subcategory: "Schematics" +--- + +# ibm_schematics_policies + +~> **Beta:** This resource is in Beta, and is subject to change. + +Provides a read-only data source for schematics_policies. You can then reference the fields of the data source in other resources within the same configuration using interpolation syntax. + +## Example Usage + +```hcl +data "ibm_schematics_policies" "schematics_policies" { +} +``` + +## Argument Reference + +Review the argument reference that you can specify for your data source. + +* `policy_kind` - (Optional, String) Policy kind or categories for managing and deriving policy decision * `agent_assignment_policy` Agent assignment policy for job execution. + * Constraints: Allowable values are: `agent_assignment_policy`. + +## Attribute Reference + +In addition to all argument references listed, you can access the following attribute references after your data source is created. + +* `id` - The unique identifier of the schematics_policies. +* `limit` - (Integer) The number of policy records returned. + +* `offset` - (Integer) The skipped number of policy records. + +* `policies` - (List) The list of Schematics policies. +Nested scheme for **policies**: + * `account` - (String) The Account id. + * `created_at` - (String) The policy creation time. + * `created_by` - (String) The user who created the Policy. + * `crn` - (String) The policy CRN. + * `description` - (String) The description of Schematics customization policy. + * `id` - (String) The system generated Policy Id. + * `location` - (String) List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics. + * Constraints: Allowable values are: `us-south`, `us-east`, `eu-gb`, `eu-de`. + * `name` - (String) The name of Schematics customization policy. + * `policy_kind` - (String) Policy kind or categories for managing and deriving policy decision * `agent_assignment_policy` Agent assignment policy for job execution. + * Constraints: Allowable values are: `agent_assignment_policy`. + * `resource_group` - (String) Resource-group name for the Policy. By default, Policy will be created in Default Resource Group. + * `state` - (List) User defined status of the Schematics object. + Nested scheme for **state**: + * `set_at` - (String) When the User who set the state of the Object. + * `set_by` - (String) Name of the User who set the state of the Object. + * `state` - (String) User-defined states * `draft` Object can be modified; can be used by Jobs run by the author, during execution * `live` Object can be modified; can be used by Jobs during execution * `locked` Object cannot be modified; can be used by Jobs during execution * `disable` Object can be modified. cannot be used by Jobs during execution. + * Constraints: Allowable values are: `draft`, `live`, `locked`, `disable`. + * `tags` - (List) Tags for the Schematics customization policy. + * `updated_at` - (String) The policy updation time. + +* `total_count` - (Integer) The total number of policy records. + diff --git a/website/docs/d/schematics_policy.html.markdown b/website/docs/d/schematics_policy.html.markdown new file mode 100644 index 0000000000..70fead3f22 --- /dev/null +++ b/website/docs/d/schematics_policy.html.markdown @@ -0,0 +1,102 @@ +--- +layout: "ibm" +page_title: "IBM : ibm_schematics_policy" +description: |- + Get information about schematics_policy +subcategory: "Schematics" +--- + +# ibm_schematics_policy + +~> **Beta:** This resource is in Beta, and is subject to change. + +Provides a read-only data source for schematics_policy. You can then reference the fields of the data source in other resources within the same configuration using interpolation syntax. + +## Example Usage + +```hcl +data "ibm_schematics_policy" "schematics_policy" { + policy_id = "policy_id" +} +``` + +## Argument Reference + +Review the argument reference that you can specify for your data source. + +* `policy_id` - (Required, Forces new resource, String) ID to get the details of policy. + +## Attribute Reference + +In addition to all argument references listed, you can access the following attribute references after your data source is created. + +* `id` - The unique identifier of the schematics_policy. +* `account` - (String) The Account id. + +* `created_at` - (String) The policy creation time. + +* `created_by` - (String) The user who created the policy. + +* `crn` - (String) The policy CRN. + +* `description` - (String) The description of Schematics customization policy. + +* `id` - (String) The system generated policy Id. + +* `kind` - (String) Policy kind or categories for managing and deriving policy decision * `agent_assignment_policy` Agent assignment policy for job execution. + * Constraints: Allowable values are: `agent_assignment_policy`. + +* `location` - (String) List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics. + * Constraints: Allowable values are: `us-south`, `us-east`, `eu-gb`, `eu-de`. + +* `name` - (String) Name of Schematics customization policy. + +* `parameter` - (List) The parameter to tune the Schematics policy. +Nested scheme for **parameter**: + * `agent_assignment_policy_parameter` - (List) Parameters for the `agent_assignment_policy`. + Nested scheme for **agent_assignment_policy_parameter**: + * `selector_ids` - (List) The static selectors of schematics object ids (workspace, action or blueprint) for the Schematics policy. + * `selector_kind` - (String) Types of schematics object selector. + * Constraints: Allowable values are: `ids`, `scoped`. + * `selector_scope` - (List) The selectors to dynamically list of schematics object ids (workspace, action or blueprint) for the Schematics policy. + Nested scheme for **selector_scope**: + * `kind` - (String) Name of the Schematics automation resource. + * Constraints: Allowable values are: `workspace`, `action`, `system`, `environment`, `blueprint`. + * `locations` - (List) The location based selector. + * Constraints: Allowable list items are: `us-south`, `us-east`, `eu-gb`, `eu-de`. + * `resource_groups` - (List) The resource group based selector. + * `tags` - (List) The tag based selector. + +* `resource_group` - (String) The resource group name for the policy. By default, Policy will be created in `default` Resource Group. + +* `scoped_resources` - (List) List of scoped Schematics resources targeted by the policy. +Nested scheme for **scoped_resources**: + * `id` - (String) Schematics resource Id. + * `kind` - (String) Name of the Schematics automation resource. + * Constraints: Allowable values are: `workspace`, `action`, `system`, `environment`, `blueprint`. + +* `state` - (List) User defined status of the Schematics object. +Nested scheme for **state**: + * `set_at` - (String) When the User who set the state of the Object. + * `set_by` - (String) Name of the User who set the state of the Object. + * `state` - (String) User-defined states * `draft` Object can be modified; can be used by Jobs run by the author, during execution * `live` Object can be modified; can be used by Jobs during execution * `locked` Object cannot be modified; can be used by Jobs during execution * `disable` Object can be modified. cannot be used by Jobs during execution. + * Constraints: Allowable values are: `draft`, `live`, `locked`, `disable`. + +* `tags` - (List) Tags for the Schematics customization policy. + +* `target` - (List) The objects for the Schematics policy. +Nested scheme for **target**: + * `selector_ids` - (List) Static selectors of schematics object ids (agent, workspace, action or blueprint) for the Schematics policy. + * `selector_kind` - (String) Types of schematics object selector. + * Constraints: Allowable values are: `ids`, `scoped`. + * `selector_scope` - (List) Selectors to dynamically list of schematics object ids (agent, workspace, action or blueprint) for the Schematics policy. + Nested scheme for **selector_scope**: + * `kind` - (String) Name of the Schematics automation resource. + * Constraints: Allowable values are: `workspace`, `action`, `system`, `environment`, `blueprint`. + * `locations` - (List) The location based selector. + * Constraints: Allowable list items are: `us-south`, `us-east`, `eu-gb`, `eu-de`. + * `resource_groups` - (List) The resource group based selector. + * `tags` - (List) The tag based selector. + +* `updated_at` - (String) The policy updation time. + diff --git a/website/docs/d/schematics_workspace.html.markdown b/website/docs/d/schematics_workspace.html.markdown index 7b5e7aa29c..2f21acc368 100644 --- a/website/docs/d/schematics_workspace.html.markdown +++ b/website/docs/d/schematics_workspace.html.markdown @@ -45,6 +45,11 @@ Nested scheme for **catalog_ref**: * `item_url` - (String) The URL to the software template in the IBM Cloud catalog. * `launch_url` - (String) The URL to the dashboard to access your software. * `offering_version` - (String) The version of the software template that you chose to install from the IBM Cloud catalog. + * `service_extensions` - (List) List of service data +Nested scheme for **service_extensions**: + * `name` - (String) Name of the Service Data. + * `value` - (String) Value of the Service Data. + * `type` - (String) Type of the value string, int, bool. * `created_at` - (String) The timestamp when the workspace was created. @@ -105,7 +110,7 @@ Nested scheme for **env_values**: Nested scheme for **values_metadata**: * `aliases` - (List) The list of aliases for the variable name. * `cloud_data_type` - (String) Cloud data type of the variable. eg. resource_group_id, region, vpc_id. - * `default_value` - (String) Default value for the variable only if the override value is not specified. + * `default` - (String) Default value for the variable only if the override value is not specified. * `description` - (String) The description of the meta data. * `group_by` - (String) The display name of the group this variable belongs to. * `hidden` - (Boolean) If **true**, the variable is not displayed on UI or Command line. @@ -117,13 +122,25 @@ Nested scheme for **env_values**: * `max_value` - (Integer) The maximum value of the variable. Applicable for the integer type. * `min_length` - (Integer) The minimum length of the variable value. Applicable for the string type. * `min_value` - (Integer) The minimum value of the variable. Applicable for the integer type. + * `name` - (String) Name of the variable. * `options` - (List) The list of possible values for this variable. If type is **integer** or **date**, then the array of string is converted to array of integers or date during the runtime. * `position` - (Integer) The relative position of this variable in a list. * `required` - (Boolean) If the variable required?. * `secure` - (Boolean) Is the variable secure or sensitive ?. * `source` - (String) The source of this meta-data. + * `value` - (String) The value of the variable. Applicable for the integer type. + * `type` - (String) Type of the variable. + * Constraints: Allowable values are: `boolean`, `string`, `integer`, `date`, `array`, `list`, `map`, `complex`, `link`. + * `metadata` - (List) List of service data + Nested scheme for **metadata**: + * `default_value` - (String) Default value for the variable only if the override value is not specified. + * `description` - (String) The description of the meta data. + * `hidden` - (Boolean) If **true**, the variable is not displayed on UI or Command line. + * `options` - (List) The list of possible values for this variable. If type is **integer** or **date**, then the array of string is converted to array of integers or date during the runtime. + * `required` - (Boolean) If the variable required?. + * `secure` - (Boolean) Is the variable secure or sensitive ?. * `type` - (String) Type of the variable. - * Constraints: Allowable values are: `boolean`, `string`, `integer`, `date`, `array`, `list`, `map`, `complex`, `link`. + * Constraints: Allowable values are: `boolean`, `string`, `integer`, `date`, `array`, `list`, `map`, `complex`, `link`. * `template_inputs` - (List) Information about the input variables that your template uses. Nested scheme for **variablestore**: diff --git a/website/docs/d/sm_private_certificate.html.markdown b/website/docs/d/sm_private_certificate.html.markdown index 3e7331c496..22bc586770 100644 --- a/website/docs/d/sm_private_certificate.html.markdown +++ b/website/docs/d/sm_private_certificate.html.markdown @@ -2,7 +2,7 @@ layout: "ibm" page_title: "IBM : ibm_sm_private_certificate" description: |- -Get information about PrivateCertificate + Get information about PrivateCertificate subcategory: "Secrets Manager" --- diff --git a/website/docs/r/cd_tekton_pipeline_trigger.html.markdown b/website/docs/r/cd_tekton_pipeline_trigger.html.markdown index 166de62a72..123e19dc6e 100644 --- a/website/docs/r/cd_tekton_pipeline_trigger.html.markdown +++ b/website/docs/r/cd_tekton_pipeline_trigger.html.markdown @@ -15,13 +15,12 @@ Create, update, and delete cd_tekton_pipeline_triggers with this resource. ```hcl resource "ibm_cd_tekton_pipeline_trigger" "cd_tekton_pipeline_trigger_instance" { event_listener = "pr-listener" - events = ["push", "pull_request" ] max_concurrent_runs = 3 name = "Manual Trigger" pipeline_id = "94619026-912b-4d92-8f51-6c74f0692d90" type = "manual" worker { - id = "public" + id = "public" } } ``` diff --git a/website/docs/r/cd_toolchain_tool_securitycompliance.html.markdown b/website/docs/r/cd_toolchain_tool_securitycompliance.html.markdown index 477862aeb4..47011c756e 100644 --- a/website/docs/r/cd_toolchain_tool_securitycompliance.html.markdown +++ b/website/docs/r/cd_toolchain_tool_securitycompliance.html.markdown @@ -33,23 +33,17 @@ You can specify the following arguments for this resource. * Constraints: The maximum length is `128` characters. The minimum length is `0` characters. The value must match regular expression `/^([^\\x00-\\x7F]|[a-zA-Z0-9-._ ])+$/`. * `parameters` - (Required, List) Unique key-value pairs representing parameters to be used to create the tool. A list of parameters for each tool integration can be found in the Configuring tool integrations page. Nested schema for **parameters**: - * `api_key` - (Deprecated, Optional, String) The IBM Cloud API key used to access the Security and Compliance Center API. This parameter is only relevant when the `trigger_scan` parameter is `enabled`. For information about the deprecation see the `trigger_scan` parameter. You can use a toolchain secret reference for this parameter. For more information, see [Protecting your sensitive data in Continuous Delivery](https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-cd_data_security#cd_secure_credentials). - * Constraints: The value must match regular expression `/\\S/`. * `attachment_id` - (Optional, String) An attachment ID. An attachment is configured under a profile to define how a scan will be run. To find the attachment ID, in the browser, in the attachments list, click on the attachment link, and a panel appears with a button to copy the attachment ID. This parameter is only relevant when the `use_profile_attachment` parameter is `enabled`. * Constraints: The value must match regular expression `/^[-0-9a-f]{32,36}$/`. - * `evidence_namespace` - (Required, String) The kind of pipeline evidence to be displayed in Security and Compliance Center for this toolchain. The values are; `cd` which will use evidence generated by a Continuous Deployment pipeline, or `cc` which will use evidence generated by a Continuous Compliance pipeline. + * `evidence_namespace` - (Optional, String) The kind of pipeline evidence to be displayed in Security and Compliance Center for this toolchain. The values are; `cd` which will use evidence generated by a Continuous Deployment pipeline, or `cc` which will use evidence generated by a Continuous Compliance pipeline. * Constraints: Allowable values are: `cd`, `cc`. * `evidence_repo_url` - (Required, String) The URL to a Git repository evidence locker. The DevSecOps toolchain templates will collect and store evidence for scans and tasks in an evidence repository. This evidence URL should match the `repo_url` for a Git tool integration in this toolchain. The DevSecOps toolchain goals in the Security and Compliance Center will check the evidence repository for the pass or fail results for those goals. * `instance_crn` - (Optional, String) The Security and Compliance Center service instance CRN (Cloud Resource Name). It is recommended to provide an instance CRN, but when absent, the oldest service instance will be used. This parameter is only relevant when the `use_profile_attachment` parameter is `enabled`. * Constraints: The value must match regular expression `/^crn:v1:(?:bluemix|staging):public:compliance:[a-zA-Z0-9-]*\\b:a\/[0-9a-fA-F]*\\b:[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}\\b::$/`. * `name` - (Required, String) The name for this tool integration, shown on the toolchain page. - * `profile` - (Deprecated, Optional, String) The name of a Security and Compliance Center, Hybrid cloud profile. Usually, use the predefined profile "IBM Cloud Security Best Practices v1.0.0", which contains the DevSecOps toolchain goals. Or use a user-authored customized profile that has been configured to contain those goals. When the `trigger_scan` parameter is set to `enabled`, then the Validation scan will use the controls and goals in the configured profile. If configured with a profile that does not check the DevSecOps toolchain goals, it might incorrectly indicate that the toolchain status is passed even though some of the DevSecOps scans had actually failed. This parameter is only relevant when the `trigger_scan` parameter is `enabled`. For information about the deprecation see the `trigger_scan` parameter. - * `profile_name` - (Optional, String) The name of a Security and Compliance Center profile. Usually, use one of the predefined profiles "IBM Cloud Security Best Practices" or "IBM Cloud for Financial Services", which contain the DevSecOps Toolchain rules. Or use a user-authored customized profile that has been configured to contain those rules. This parameter is only relevant when the `use_profile_attachment` parameter is `enabled`. + * `profile_name` - (Optional, String) The name of a Security and Compliance Center profile. Usually, use the "IBM Cloud Framework for Financial Services" predefined profile, which contains the DevSecOps Toolchain rules. Or use a user-authored customized profile that has been configured to contain those rules. This parameter is only relevant when the `use_profile_attachment` parameter is `enabled`. * `profile_version` - (Optional, String) The version of a Security and Compliance Center profile, in SemVer format, like '0.0.0'. This parameter is only relevant when the `use_profile_attachment` parameter is `enabled`. * `scc_api_key` - (Optional, String) The IBM Cloud API key used to access the Security and Compliance Center service, for the use profile with attachment setting. This parameter is only relevant when the `use_profile_attachment` parameter is `enabled`. You can use a toolchain secret reference for this parameter. For more information, see [Protecting your sensitive data in Continuous Delivery](https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-cd_data_security#cd_secure_credentials). - * `scope` - (Deprecated, Optional, String) The name of a Security and Compliance Center scope, which has previously been created in that service. When the `trigger_scan` parameter is set to `enabled`, then the Validation scan will scan all the resources in that scope. Select a scope that contains this toolchain, so that the scan will find the evidence that has been recently updated by the DevSecOps pipeline-run. This parameter is only relevant when the `trigger_scan` parameter is `enabled`. For information about the deprecation see the `trigger_scan` parameter. - * `trigger_scan` - (Deprecated, Optional, String) Set to `enabled` to indicate that a DevSecOps pipeline task should trigger a Security and Compliance Center run of a Hybrid cloud validation scan. Note, each scan may incur charges. When enabled, other parameters become relevant that are needed to trigger that scan; `api_key`, `scope`, `profile`. Hybrid cloud scans are deprecated and are planned to be removed. This option will stop working at that time. For more information see the [Security and Compliance Center Release Notes](https://cloud.ibm.com/docs/security-compliance?topic=security-compliance-release-notes#security-compliance-march312023). - * Constraints: Allowable values are: `disabled`, `enabled`. * `use_profile_attachment` - (Optional, String) Set to `enabled` to enable use profile with attachment, so that the scripts in the pipeline can interact with the Security and Compliance Center service. When enabled, other parameters become relevant; `scc_api_key`, `instance_crn`, `profile_name`, `profile_version`, `attachment_id`. * Constraints: Allowable values are: `disabled`, `enabled`. * `toolchain_id` - (Required, Forces new resource, String) ID of the toolchain to bind the tool to. diff --git a/website/docs/r/code_engine_domain_mapping.html.markdown b/website/docs/r/code_engine_domain_mapping.html.markdown new file mode 100644 index 0000000000..005a3cf5db --- /dev/null +++ b/website/docs/r/code_engine_domain_mapping.html.markdown @@ -0,0 +1,92 @@ +--- +layout: "ibm" +page_title: "IBM : ibm_code_engine_domain_mapping" +description: |- + Manages code_engine_domain_mapping. +subcategory: "Code Engine" +--- + +# ibm_code_engine_domain_mapping + +Create, update, and delete code_engine_domain_mappings with this resource. + +## Example Usage + +```hcl +resource "ibm_code_engine_domain_mapping" "code_engine_domain_mapping_instance" { + component { + name = "my-app-1" + resource_type = "app_v2" + } + name = "www.example.com" + project_id = ibm_code_engine_project.code_engine_project_instance.project_id + tls_secret = "my-tls-secret" +} +``` + +## Timeouts + +code_engine_domain_mapping provides the following [Timeouts](https://www.terraform.io/docs/configuration/resources.html#timeouts) configuration options: + +* `create` - (Default 10 minutes) Used for creating a code_engine_domain_mapping. +* `update` - (Default 10 minutes) Used for updating a code_engine_domain_mapping. + +## Argument Reference + +You can specify the following arguments for this resource. + +* `component` - (Required, List) A reference to another component. +Nested scheme for **component**: + * `name` - (Required, String) The name of the referenced component. + * Constraints: The maximum length is `63` characters. The minimum length is `1` character. The value must match regular expression `/^[a-z0-9]([\\-a-z0-9]*[a-z0-9])?$/`. + * `resource_type` - (Required, String) The type of the referenced resource. + * Constraints: The maximum length is `63` characters. The minimum length is `1` character. The value must match regular expression `/.+/`. +* `name` - (Required, Forces new resource, String) The name of the domain mapping. + * Constraints: The maximum length is `253` characters. The minimum length is `1` character. The value must match regular expression `/^[a-z0-9]([\\-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([\\-a-z0-9]*[a-z0-9])?)+$/`. +* `project_id` - (Required, Forces new resource, String) The ID of the project. + * Constraints: The maximum length is `36` characters. The minimum length is `36` characters. The value must match regular expression `/^[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}$/`. +* `tls_secret` - (Required, String) The name of the TLS secret that holds the certificate and private key of this domain mapping. + * Constraints: The maximum length is `253` characters. The minimum length is `1` character. The value must match regular expression `/^[a-z0-9]([\\-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([\\-a-z0-9]*[a-z0-9])?)*$/`. + +## Attribute Reference + +After your resource is created, you can read values from the listed arguments and the following attributes. + +* `id` - The unique identifier of the code_engine_domain_mapping. +* `domain_mapping_id` - (String) The identifier of the resource. + * Constraints: The maximum length is `36` characters. The minimum length is `36` characters. The value must match regular expression `/^[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}$/`. +* `cname_target` - (String) Exposes the value of the CNAME record that needs to be configured in the DNS settings of the domain, to route traffic properly to the target Code Engine region. + * Constraints: The maximum length is `2048` characters. The minimum length is `0` characters. The value must match regular expression `/(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/`. +* `created_at` - (String) The timestamp when the resource was created. +* `entity_tag` - (String) The version of the domain mapping instance, which is used to achieve optimistic locking. + * Constraints: The maximum length is `63` characters. The minimum length is `1` character. The value must match regular expression `/^[\\*\\-a-z0-9]+$/`. +* `href` - (String) When you provision a new domain mapping, a URL is created identifying the location of the instance. + * Constraints: The maximum length is `2048` characters. The minimum length is `0` characters. The value must match regular expression `/(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/`. +* `resource_type` - (String) The type of the CE Resource. + * Constraints: Allowable values are: `domain_mapping_v2`. +* `status` - (String) The current status of the domain mapping. + * Constraints: Possible values are: `ready`, `failed`, `deploying`. +* `status_details` - (List) The detailed status of the domain mapping. +Nested scheme for **status_details**: + * `reason` - (String) Optional information to provide more context in case of a 'failed' or 'warning' status. + * Constraints: Possible values are: `ready`, `domain_already_claimed`, `app_ref_failed`, `failed_reconcile_ingress`, `deploying`, `failed`. +* `user_managed` - (Boolean) Exposes whether the domain mapping is managed by the user or by Code Engine. +* `visibility` - (String) Exposes whether the domain mapping is reachable through the public internet, or private IBM network, or only through other components within the same Code Engine project. + * Constraints: Possible values are: `custom`, `private`, `project`, `public`. +* `etag` - ETag identifier for code_engine_domain_mapping. + +## Import + +You can import the `ibm_code_engine_domain_mapping` resource by using `name`. +The `name` property can be formed from `project_id`, and `name` in the following format: + +``` +/ +``` +* `project_id`: A string in the format `15314cc3-85b4-4338-903f-c28cdee6d005`. The ID of the project. +* `name`: A string in the format `www.example.com`. The name of the domain mapping. + +# Syntax +``` +$ terraform import ibm_code_engine_domain_mapping.code_engine_domain_mapping / +``` diff --git a/website/docs/r/code_engine_job.html.markdown b/website/docs/r/code_engine_job.html.markdown index 50c1847ae5..092a91a37b 100644 --- a/website/docs/r/code_engine_job.html.markdown +++ b/website/docs/r/code_engine_job.html.markdown @@ -58,7 +58,7 @@ Nested scheme for **run_env_variables**: * Constraints: The default value is `literal`. Allowable values are: `literal`, `config_map_full_reference`, `secret_full_reference`, `config_map_key_reference`, `secret_key_reference`. The value must match regular expression `/^(literal|config_map_full_reference|secret_full_reference|config_map_key_reference|secret_key_reference)$/`. * `value` - (Optional, String) The literal value of the environment variable. * Constraints: The maximum length is `253` characters. The minimum length is `1` character. The value must match regular expression `/^[\\-._a-zA-Z0-9]+$/`. -* `run_mode` - (Optional, String) The mode for runs of the job. Valid values are `task` and `daemon`. In `task` mode, the `max_execution_time` and `retry_limit` properties apply. In `daemon` mode, since there is no timeout and failed instances are restarted indefinitely, the `max_execution_time` and `retry_limit` properties are not allowed. +* `run_mode` - (Optional, String) The mode for runs of the job. Valid values are `task` and `daemon`. In `task` mode, the `scale_max_execution_time` and `scale_retry_limit` properties apply. In `daemon` mode, since there is no timeout and failed instances are restarted indefinitely, the `scale_max_execution_time` and `scale_retry_limit` properties are not allowed. * Constraints: The default value is `task`. Allowable values are: `task`, `daemon`. The minimum length is `0` characters. The value must match regular expression `/^(task|daemon)$/`. * `run_service_account` - (Optional, String) The name of the service account. For built-in service accounts, you can use the shortened names `manager`, `none`, `reader`, and `writer`. This property must not be set on a job run, which references a job template. * Constraints: The default value is `default`. Allowable values are: `default`, `manager`, `reader`, `writer`, `none`. The minimum length is `0` characters. The value must match regular expression `/^(manager|reader|writer|none|default)$/`. diff --git a/website/docs/r/container_cluster.html.markdown b/website/docs/r/container_cluster.html.markdown index 0857c6e2eb..3e93cde3d7 100644 --- a/website/docs/r/container_cluster.html.markdown +++ b/website/docs/r/container_cluster.html.markdown @@ -204,12 +204,13 @@ Review the argument references that you can specify for your resource. - `hardware` - (Optional, Forces new resource, String) The level of hardware isolation for your worker node. Use `dedicated` to have available physical resources dedicated to you only, or `shared` to allow physical resources to be shared with other IBM customers. This option is available for virtual machine worker node flavors only. - `image_security_enforcement` - (Optional, Bool) Set to **true** to enable image security enforcement policies in a cluster. - `gateway_enabled` - (Optional, Bool) Set to **true** if you want to automatically create a gateway-enabled cluster. If `gateway_enabled` is set to **true**, then `private_service_endpoint` must be set to **true** at the same time. -- `kms_config` - (Optional, List) Used to attach a Key Protect instance to a cluster. Nested `kms_config` block have `instance_id`, `crk_id`, `private_endpoint` structure. +- `kms_config` - (Optional, List) Used to attach a Key Protect instance to a cluster. Nested `kms_config` block has an `instance_id`, `crk_id`, `private_endpoint` and `account_id`. Nested scheme for `kms_config`: - `crk_id` - (Optional, String) The ID of the customer root key (CRK). - `instance_id` - (Optional, String) The GUID of the Key Protect instance. - `private_endpoint` - (Optional, Bool) Set to **true** to configure the KMS private service endpoint. Default value is **false**. + - `account_id` - (Optional, String) Account ID of KMS instance holder - if not provided, defaults to the account in use. - `kube_version` - (Optional, String) The Kubernetes or OpenShift version that you want to set up in your cluster. If the version is not specified, the default version in [IBM Cloud Kubernetes Service](https://cloud.ibm.com/docs/containers?topic=containers-cs_versions) or [Red Hat OpenShift on IBM Cloud](https://cloud.ibm.com/docs/openshift?topic=openshift-openshift_versions#version_types) is used. For example, to specify Kubernetes version 1.16, enter `1.16`. For OpenShift clusters, you can specify version `3.11_openshift` or `4.3.1_openshift`. - `labels`- (Optional, Map) Labels on all the workers in the default worker pool. - `machine_type` - (Optional, Forces new resource, String) The machine type for your worker node. The machine type determines the amount of memory, CPU, and disk space that is available to the worker node. For an overview of supported machine types, see [Planning your worker node setup](https://cloud.ibm.com/docs/containers?topic=containers-planning_worker_nodes). You can retrieve the value by executing the `ibmcloud ks machine-types ` command in the IBM Cloud CLI. diff --git a/website/docs/r/container_ingress_secret_opaque.html.markdown b/website/docs/r/container_ingress_secret_opaque.html.markdown index cd963413b9..4d94d9ab59 100644 --- a/website/docs/r/container_ingress_secret_opaque.html.markdown +++ b/website/docs/r/container_ingress_secret_opaque.html.markdown @@ -17,10 +17,10 @@ resource "ibm_container_ingress_secret_opaque" "secret" { secret_name="mySecretName" secret_namespace="mySecretNamespace" persistence = true - fields = { + fields { crn = "cert:region:crn" } - fields = { + fields { field_name = "myFieldName" crn = "cert:region:crn" } @@ -34,7 +34,9 @@ Review the argument references that you can specify for your resource. - `secret_name` - (Required, String) The name of the kubernetes secret. - `secret_namespace` - (Required, String) The namespace of the kubernetes secret. - `persistence` - (Bool) Persist the secret data in your cluster. If the secret is later deleted from the command line or OpenShift web console, the secret is automatically re-created in your cluster. - `fields` - (Required, List) List of fields of the opaque secret. +- `update_secret` - (Optional, Integer) This argument is used to force update from upstream secrets manager instance that stores secret. Increment the value to force an update to your Ingress secret for changes made to the upstream secrets manager secret. +- `fields` - (Required, List) List of fields of the opaque secret. + Nested scheme for `fields`: - `crn` - (Required, String) Secrets manager secret crn - `field_name` - (String) Field name @@ -47,7 +49,8 @@ In addition to all argument reference list, you can access the following attribu - `status` - (String) The Status of the secret. - `user_managed` - (Bool) Indicates whether the secret was created by a user. - `persistence` - (Bool) Persist the secret data in your cluster. If the secret is later deleted from the command line or OpenShift web console, the secret is automatically re-created in your cluster. - `fields` - (List) List of fields of the opaque secret. +- `fields` - (List) List of fields of the opaque secret. + Nested scheme for `fields`: - `crn` - (String) Secrets manager secret crn - `field_name` - (String) Requested field name diff --git a/website/docs/r/container_ingress_secret_tls.html.markdown b/website/docs/r/container_ingress_secret_tls.html.markdown index cd6d587ddf..ccd53ba987 100644 --- a/website/docs/r/container_ingress_secret_tls.html.markdown +++ b/website/docs/r/container_ingress_secret_tls.html.markdown @@ -27,6 +27,7 @@ Review the argument references that you can specify for your resource. - `secret_name` - (Required, String) The name of the kubernetes secret. - `secret_namespace` - (Required, string) The namespace of the kubernetes secret. - `cert_crn` - (Required, string) The Secrets Manager crn for a secret of type certificate. +- `update_secret` - (Optional, Integer) This argument is used to force update from upstream secrets manager instance that stores secret. Increment the value to force an update to your Ingress secret for changes made to the upstream secrets manager secret. ## Attribute reference In addition to all argument reference list, you can access the following attribute reference after your resource is created. diff --git a/website/docs/r/container_vpc_cluster.html.markdown b/website/docs/r/container_vpc_cluster.html.markdown index ae738215c6..76c36336b5 100644 --- a/website/docs/r/container_vpc_cluster.html.markdown +++ b/website/docs/r/container_vpc_cluster.html.markdown @@ -178,13 +178,14 @@ Review the argument references that you can specify for your resource. - `flavor` - (Required, Forces new resource, String) The flavor of the VPC worker node that you want to use. - `image_security_enforcement` - (Optional, Bool) Set to **true** to enable image security enforcement policies in a cluster. - `name` - (Required, Forces new resource, String) The name of the cluster. -- `kms_config` - (Optional, String) Use to attach a Key Protect instance to a cluster. Nested `kms_config` block has an `instance_id`, `crk_id`, `private_endpoint`. -- `host_pool_id` - (Optional, String) If provided, the cluster will be associated with a dedicated host pool identified by this ID. +- `kms_config` - (Optional, String) Use to attach a Key Protect instance to a cluster. Nested `kms_config` block has an `instance_id`, `crk_id`, `private_endpoint` and `account_id`. Nested scheme for `kms_config`: - `crk_id` - (Optional, String) The ID of the customer root key (CRK). - `instance_id` - (Optional, String) The GUID of the Key Protect instance. - `private_endpoint` - (Optional, Bool) Set **true** to configure the KMS private service endpoint. Default value is **false**. + - `account_id` - (Optional, String) Account ID of KMS instance holder - if not provided, defaults to the account in use. +- `host_pool_id` - (Optional, String) If provided, the cluster will be associated with a dedicated host pool identified by this ID. - `kube_version` - (Optional, String) Specify the Kubernetes version, including the major.minor version. If you do not include this flag, the default version is used. To see available versions, run `ibmcloud ks versions`. - `operating_system` - (Optional, Forces new resource, String) The operating system of the workers in the default worker pool. For supported options, see [Red Hat OpenShift on IBM Cloud version information](https://cloud.ibm.com/docs/openshift?topic=openshift-openshift_versions) or [IBM Cloud Kubernetes Service version information](https://cloud.ibm.com/docs/containers?topic=containers-cs_versions). - `secondary_storage` - (Optional, Forces new resource, String) The secondary storage option for the default worker pool. @@ -213,9 +214,9 @@ Review the argument references that you can specify for your resource. - `name` - (Required, Forces new resource, String) The zone name for the default worker pool in a multizone cluster. - `subnet_id` - (Required, Forces new resource, String) The VPC subnet to assign the cluster's default worker pool. -- `crk` - Root Key ID for boot volume encryption. -- `kms_instance_id` - Instance ID for boot volume encryption. -- `kms_account_id` - Account ID for boot volume encryption, if other account is providing the kms. +- `crk` - (Optional, String) Root Key ID for boot volume encryption. +- `kms_instance_id` - (Optional, String) Instance ID for boot volume encryption. +- `kms_account_id` - (Optional, String) Account ID for boot volume encryption, if other account is providing the kms. **Note** diff --git a/website/docs/r/database.html.markdown b/website/docs/r/database.html.markdown index 11a0e93bd8..b27f42deab 100644 --- a/website/docs/r/database.html.markdown +++ b/website/docs/r/database.html.markdown @@ -31,7 +31,7 @@ resource "ibm_database" "" { resource_group_id = data.ibm_resource_group.group.id tags = ["tag1", "tag2"] - adminpassword = "password12" + adminpassword = "password12345678" group { group_id = "member" @@ -51,7 +51,7 @@ resource "ibm_database" "" { users { name = "user123" - password = "password12" + password = "password12345678" type = "database" } @@ -67,45 +67,6 @@ output "ICD Etcd database connection string" { ``` -### **Deprecated** Sample database instance by using `node_` attributes -Please Note this has been deprecated: Please use the `group` attribute instead -An example to configure and deploy database by using `node_` attributes instead of `memory_`. - -```terraform -data "ibm_resource_group" "group" { - name = "" -} - -resource "ibm_database" "" { - name = "" - plan = "standard" - location = "eu-gb" - service = "databases-for-etcd" - resource_group_id = data.ibm_resource_group.group.id - tags = ["tag1", "tag2"] - - adminpassword = "password12" - node_count = 3 - node_memory_allocation_mb = 1024 - node_disk_allocation_mb = 20480 - users { - name = "user123" - password = "password12" - type = "database" - } - - allowlist { - address = "172.168.1.1/32" - description = "desc" - } -} - -output "ICD Etcd database connection string" { - value = "http://${ibm_database.test_acc.ibm_database_connection.icd_conn}" -} - -``` - ### Sample database instance by using `group` attributes An example to configure and deploy database by using `group` attributes. @@ -122,7 +83,7 @@ resource "ibm_database" "" { resource_group_id = data.ibm_resource_group.group.id tags = ["tag1", "tag2"] - adminpassword = "password12" + adminpassword = "password12345678" group { group_id = "member" @@ -142,7 +103,7 @@ resource "ibm_database" "" { users { name = "user123" - password = "password12" + password = "password12345678" } allowlist { @@ -226,7 +187,7 @@ resource "ibm_database" "cassandra" { service = "databases-for-cassandra" plan = "enterprise" location = "us-south" - adminpassword = "password12" + adminpassword = "password12345678" group { group_id = "member" @@ -246,7 +207,7 @@ resource "ibm_database" "cassandra" { users { name = "user123" - password = "password12" + password = "password12345678" type = "database" } @@ -278,7 +239,7 @@ resource "ibm_database" "mongodb" { service = "databases-for-mongodb" plan = "enterprise" location = "us-south" - adminpassword = "password12" + adminpassword = "password12345678" group { group_id = "member" @@ -300,7 +261,7 @@ resource "ibm_database" "mongodb" { users { name = "dbuser" - password = "password12" + password = "password12345678" type = "database" } @@ -339,7 +300,7 @@ resource "ibm_database" "mongodb_enterprise" { service = "databases-for-mongodb" plan = "enterprise" location = "us-south" - adminpassword = "password12" + adminpassword = "password12345678" tags = ["one:two"] group { @@ -414,7 +375,7 @@ resource "ibm_database" "edb" { service = "databases-for-enterprisedb" plan = "standard" location = "us-south" - adminpassword = "password12" + adminpassword = "password12345678" group { group_id = "member" @@ -436,7 +397,7 @@ resource "ibm_database" "edb" { users { name = "user123" - password = "password12" + password = "password12345678" type = "database" } @@ -466,7 +427,7 @@ resource "ibm_database" "es" { service = "databases-for-elasticsearch" plan = "enterprise" location = "eu-gb" - adminpassword = "password12" + adminpassword = "password12345678" version = "7.17" group { group_id = "member" @@ -485,7 +446,52 @@ resource "ibm_database" "es" { } users { name = "user123" - password = "password12" + password = "password12345678" + } + allowlist { + address = "172.168.1.2/32" + description = "desc1" + } + + timeouts { + create = "120m" + update = "120m" + delete = "15m" + } +} +``` +### Sample Elasticsearch Platinum instance + +```terraform +data "ibm_resource_group" "test_acc" { + is_default = true +} + +resource "ibm_database" "es" { + resource_group_id = data.ibm_resource_group.test_acc.id + name = "es-platinum" + service = "databases-for-elasticsearch" + plan = "platinum" + location = "eu-gb" + adminpassword = "password12345678" + group { + group_id = "member" + members { + allocation_count = 3 + } + memory { + allocation_mb = 1024 + } + disk { + allocation_mb = 5120 + } + cpu { + allocation_count = 3 + } + } + users { + name = "user123" + password = "password12345678" } allowlist { address = "172.168.1.2/32" @@ -550,7 +556,7 @@ resource "ibm_database" "db" { users { name = "repl" - password = "repl123456" + password = "repl12345password" } configuration = < **Note:** `members_memory_allocation_mb`, `members_disk_allocation_mb`, `members_cpu_allocation_count` conflicts with `node_count`,`node_cpu_allocation_count`, `node_disk_allocation_mb`, `node_memory_allocation_mb`. `group` conflicts with `node_` and `members_` arguments. Either members, node, or group arguments have to be provided. - `name` - (Required, String) A descriptive name that is used to identify the database instance. The name must not include spaces. -- `plan` - (Required, Forces new resource, String) The name of the service plan that you choose for your instance. All databases use `standard`. `enterprise` is supported only for elasticsearch (`databases-for-elasticsearch`), cassandra (`databases-for-cassandra`), and mongodb(`databases-for-mongodb`) -* `plan_validation` - (Optional, bool) Enable or disable validating the database parameters for elasticsearch and postgres (more coming soon) during the plan phase. If not specified defaults to true. +- `offline_restore` - (Optional, Boolean) Enable or disable the Offline Restore option while performing a Point-in-time Recovery for MongoDB EE in a disaster recovery scenario when the source region is unavailable, see [Point-in-time Recovery](https://cloud.ibm.com/docs/databases-for-mongodb?topic=databases-for-mongodb-pitr&interface=api#pitr-offline-restore) +- `plan` - (Required, Forces new resource, String) The name of the service plan that you choose for your instance. All databases use `standard`. `enterprise` is supported only for elasticsearch (`databases-for-elasticsearch`), cassandra (`databases-for-cassandra`), and mongodb(`databases-for-mongodb`). `platinum` is supported for elasticsearch (`databases-for-elasticsearch`). - `point_in_time_recovery_deployment_id` - (Optional, String) The ID of the source deployment that you want to recover back to. - `point_in_time_recovery_time` - (Optional, String) The timestamp in UTC format that you want to restore to. To retrieve the timestamp, run the `ibmcloud cdb postgresql earliest-pitr-timestamp ` command. To restore to the latest available time, use a blank string `""` as the timestamp. For more information, see [Point-in-time Recovery](https://cloud.ibm.com/docs/databases-for-postgresql?topic=databases-for-postgresql-pitr). - `remote_leader_id` - (Optional, String) A CRN of the leader database to make the replica(read-only) deployment. The leader database is created by a database deployment with the same service ID. A read-only replica is set up to replicate all of your data from the leader deployment to the replica deployment by using asynchronous replication. For more information, see [Configuring Read-only Replicas](https://cloud.ibm.com/docs/databases-for-postgresql?topic=databases-for-postgresql-read-only-replicas). @@ -685,7 +682,7 @@ Review the argument reference that you can specify for your resource. Nested scheme for `users`: - `name` - (Required, String) The user name to add to the database instance. The user name must be in the range 5 - 32 characters. - - `password` - (Required, String) The password for the user. The password must be in the range 10 - 32 characters. Users + - `password` - (Required, String) The password for the user. Passwords must be between 15 and 32 characters in length and contain a letter and a number. Users with an `ops_manager` user type must have a password containing a special character `~!@#$%^&*()=+[]{}|;:,.<>/?_-` as well as a letter and a number. Other user types may only use special characters `-_`. - `type` - (Optional, String) The type for the user. Examples: `database`, `ops_manager`, `read_only_replica`. The default value is `database`. - `role` - (Optional, String) The role for the user. Only available for `ops_manager` user type. Examples: `group_read_only`, `group_data_access_admin`. diff --git a/website/docs/r/en_destination_custom_email.html.markdown b/website/docs/r/en_destination_custom_email.html.markdown new file mode 100644 index 0000000000..5f5b9cc1b6 --- /dev/null +++ b/website/docs/r/en_destination_custom_email.html.markdown @@ -0,0 +1,95 @@ +--- +subcategory: 'Event Notifications' +layout: 'ibm' +page_title: 'IBM : ibm_en_destination_custom_email' +description: |- + Manages Event Notification Custom Email destinations. +--- + +# ibm_en_destination_custom_email + +Create, update, or delete a Custom Email destination by using IBM Cloudâ„¢ Event Notifications. + +## Example usage + +```terraform +resource "ibm_en_destination_custom_email" "custom_domain_en_destination" { + instance_guid = ibm_resource_instance.en_terraform_test_resource.guid + name = "Custom Email EN Destination" + type = "smtp_custom" + description = "Destination Custom Email for event notification" + config { + params { + domain = "mailx.com" + } + } +} +``` + +Process To do the Custom Domain Configuration and Verification. + +- Select the configure overflow menu for the destination you want to verify. + +- Create Sender Policy Framework (SPF), which is used to authenticate the sender of an email. SPF specifies the mail servers that are allowed to send email for your domain. + - Open your DNS hosting provider for the domain name configured + - Create a new TXT record with your domain name registerer with the name and value provided in the configure screen for SPF + +- Create DomainKeys Identified Mail (DKIM), which allows an organization to take responsibility for transmitting a message by signing it. DKIM allows the receiver to check the email that claimed to have come from a specific domain, is authorized by the owner of that domain. + - Open your DNS hosting provider for the domain name configured + - Create a new TXT record with your domain name registerer with the name and value provided in the configure screen for DKIM + +- Save the TXT records + +- In the destination verify screen, click on Verify buttons for both SPF and DKIM. + +## Argument reference + +Review the argument reference that you can specify for your resource. + +- `instance_guid` - (Required, Forces new resource, String) Unique identifier for IBM Cloud Event Notifications instance. + +- `name` - (Required, String) The Destintion name. + +- `description` - (Optional, String) The Destination description. + +- `type` - (Required, String) smtp_custom. + +- `config` - (Optional, List) Payload describing a destination configuration. + + Nested scheme for **config**: + + - `params` - (Required, List) + + Nested scheme for **params**: + + - `domain` - (Required, String) The Custom Domain. +## Attribute reference + +In addition to all argument references listed, you can access the following attribute references after your resource is created. + +- `id` - (String) The unique identifier of the `custom_domain_en_destination`. +- `destination_id` - (String) The unique identifier of the created destination. +- `subscription_count` - (Integer) Number of subscriptions. + - Constraints: The minimum value is `0`. +- `subscription_names` - (List) List of subscriptions. +- `updated_at` - (String) Last updated time. + +## Import + +You can import the `ibm_en_destination_custom_email` resource by using `id`. + +The `id` property can be formed from `instance_guid`, and `destination_id` in the following format: + +``` +/ +``` + +- `instance_guid`: A string. Unique identifier for IBM Cloud Event Notifications instance. + +- `destination_id`: A string. Unique identifier for Destination. + +**Example** + +``` +$ terraform import ibm_en_destination_custom_email.custom_domain_email_en_destination / +``` diff --git a/website/docs/r/en_destination_huawei.html.markdown b/website/docs/r/en_destination_huawei.html.markdown index c287d34c6a..e1772d4068 100644 --- a/website/docs/r/en_destination_huawei.html.markdown +++ b/website/docs/r/en_destination_huawei.html.markdown @@ -21,7 +21,7 @@ resource "ibm_en_destination_huawei" "huawei_en_destination" { config { params { client_id = "5237288990" - client_secret = "36228ghutwervhudokmksiegfevssavdvywvwww" + client_secret = "36228ghutwervhudokmksiegfevssavdvywvwww" // pragma: allowlist secret pre_prod = false } } diff --git a/website/docs/r/en_subscription_custom_email.html.markdown b/website/docs/r/en_subscription_custom_email.html.markdown new file mode 100644 index 0000000000..dfdb597921 --- /dev/null +++ b/website/docs/r/en_subscription_custom_email.html.markdown @@ -0,0 +1,111 @@ +--- +subcategory: 'Event Notifications' +layout: 'ibm' +page_title: 'IBM : ibm_en_subscription_custom_email' +description: |- + Manages Event Notifications Custom Email subscription. +--- + +# ibm_en_subscription_custom_email + +Create, update, or delete a Custom Email subscription by using IBM Cloudâ„¢ Event Notifications. + +## Example usage for Custom Email Subscription Creation + +```terraform +resource "ibm_en_subscription_custom_email" "custom_domain_email_subscription" { + instance_guid = ibm_resource_instance.en_terraform_test_resource.guid + name = "Custom Domain Email Subscription" + description = "Subscription for Certificate expiration alert" + destination_id = ibm_resource_instance.ibm_en_subscription_custom_email.destination_id + topic_id = ibm_en_topic.topic1.topic_id + attributes { + add_notification_payload = true + reply_to_mail = "en@ibm.com" + reply_to_name = "EYS ORG" + from_name="ABC ORG" + from_mail="Testuser@mailx.com" + invited = ["test@gmail.com"] + } +} +``` + +## Example usage for Email Subscription Updation + +```terraform +resource "ibm_en_subscription_custom_email" "custom_domain_email_subscription" { + instance_guid = ibm_resource_instance.en_terraform_test_resource.guid + name = "Custom Domain Email Subscription" + description = "Subscription for Certificate expiration alert" + destination_id = ibm_resource_instance.ibm_en_subscription_custom_email.destination_id + topic_id = ibm_en_topic.topic1.topic_id + attributes { + add_notification_payload = true + reply_to_mail = "en@ibm.com" + reply_to_name = "EYS ORG" + from_name = "ABC ORG" + from_mail = "Testuser@mailx.com" + add = ["productionuser@ibm.com"] + remove = ["testuser@gamil.com"] + } +} +``` + +## Argument reference + +Review the argument reference that you can specify for your resource. + +- `instance_guid` - (Required, Forces new resource, String) Unique identifier for IBM Cloud Event Notifications instance. + +- `name` - (Requires, String) Subscription name. + +- `description` - (Optional, String) Subscription description. + +- `destination_id` - (Requires, String) Destination ID. + +- `topic_id` - (Required, String) Topic ID. + +- `attributes` - (Optional, List) Subscription attributes. + Nested scheme for **attributes**: + + - `reply_to_name` - (String) The Email User Name to reply to. + + - `reply_to_mail` - (String) The email address to reply to. + + - `from_name` - (Optional, String) The user name from which email is addressed. + + - `from_name` - (Optional, String) The email address user from which email is addressed(Should belong to the custom domain). + + - `invited`- (List) The Email address to send the email to. + + - `add`- (List) The Email address to add in case of updating the list of email addressses + + - `reomve`- (List) The Email address list to be provided in case of removing the email addresses from subscription + +## Attribute reference + +In addition to all argument references listed, you can access the following attribute references after your resource is created. + +- `id` - (String) The unique identifier of the `custom_domain_email_subscription`. + +- `subscription_id` - (String) The unique identifier of the created subscription. + +- `updated_at` - (String) Last updated time. + +## Import + +You can import the `ibm_en_subscription_custom_email` resource by using `id`. +The `id` property can be formed from `instance_guid`, and `subscription_id` in the following format: + +``` +/ +``` + +- `instance_guid`: A string. Unique identifier for IBM Cloud Event Notifications instance. +- `subscription_id`: A string. Unique identifier for Subscription. + +**Example** + +``` +$ terraform import ibm_en_subscription_custom_email.custom_domain_email_en_subscription / +``` diff --git a/website/docs/r/iam_access_group_policy.html.markdown b/website/docs/r/iam_access_group_policy.html.markdown index c54692b0c9..550dca2d88 100644 --- a/website/docs/r/iam_access_group_policy.html.markdown +++ b/website/docs/r/iam_access_group_policy.html.markdown @@ -267,6 +267,73 @@ resource "ibm_iam_access_group_policy" "policy" { } ``` +### Access Group Policy by using Attribute Based Condition +`rule_conditions` can be used in conjunction with `pattern = attribute-based-condition:resource:literal-and-wildcard` and `rule_operator` to implement more complex policy conditions. **Note** Currently, a policy resource created without `rule_conditions`, `pattern`, and `rule_operator` cannot be updated including those conditions on update. + +```terraform +resource "ibm_iam_access_group" "accgrp" { + name = "access_group" +} +resource "ibm_iam_access_group_policy" "policy" { + access_group_id = ibm_iam_access_group.accgrp.id + roles = ["Writer"] + resource_attributes { + value = "cloud-object-storage" + operator = "stringEquals" + name = "serviceName" + } + resource_attributes { + value = "cos-instance" + operator = "stringEquals" + name = "serviceInstance" + } + resource_attributes { + value = "bucket" + operator = "stringEquals" + name = "resourceType" + } + resource_attributes { + value = "fgac-tf-test" + operator = "stringEquals" + name = "resource" + } + rule_conditions { + operator = "and" + conditions { + key = "{{resource.attributes.prefix}}" + operator = "stringMatch" + value = ["folder1/subfolder1/*"] + } + conditions { + key = "{{resource.attributes.delimiter}}" + operator = "stringEqualsAnyOf" + value = ["/",""] + } + } + rule_conditions { + key = "{{resource.attributes.path}}" + operator = "stringMatch" + value = ["folder1/subfolder1/*"] + } + rule_conditions { + operator = "and" + conditions { + key = "{{resource.attributes.delimiter}}" + operator = "stringExists" + value = ["false"] + } + conditions { + key = "{{resource.attributes.prefix}}" + operator = "stringExists" + value = ["false"] + } + } + rule_operator = "or" + pattern = "attribute-based-condition:resource:literal-and-wildcard" + description = "IAM User Policy Attribute Based Condition Creation for test scenario" +} +``` + ## Argument reference Review the argument references that you can specify for your resource. @@ -304,9 +371,15 @@ Review the argument references that you can specify for your resource. - `rule_conditions` - (Optional, List) A nested block describing the rule conditions of this policy. Nested schema for `rule_conditions`: - - `key` - (Required, String) The key of a rule condition. + - `key` - (Optional, String) The key of a rule condition. - `operator` - (Required, String) The operator of a rule condition. - - `value` - (Required, List) The valjue of a rule condition. + - `value` - (Optional, List) The value of a rule condition. + - `conditions` - (Optional, List) A nested block describing additional conditions of this policy. + + Nested schema for `conditions`: + - `key` - (Required, String) The key of a condition. + - `operator` - (Required, String) The operator of a condition. + - `value` - (Required, List) The value of a condition. - `rule_operator` - (Optional, String) The operator used to evaluate multiple rule conditions, e.g., all must be satisfied with `and`. diff --git a/website/docs/r/iam_service_policy.html.markdown b/website/docs/r/iam_service_policy.html.markdown index dc9b0ec664..99291b2c01 100644 --- a/website/docs/r/iam_service_policy.html.markdown +++ b/website/docs/r/iam_service_policy.html.markdown @@ -268,6 +268,73 @@ resource "ibm_iam_service_policy" "policy" { } ``` +### Service Policy by using Attribute Based Condition +`rule_conditions` can be used in conjunction with `pattern = attribute-based-condition:resource:literal-and-wildcard` and `rule_operator` to implement more complex policy conditions. **Note** Currently, a policy resource created without `rule_conditions`, `pattern`, and `rule_operator` cannot be updated including those conditions on update. + +```terraform +resource "ibm_iam_service_id" "service_id" { + name = "test" +} +resource "ibm_iam_service_policy" "policy" { + iam_service_id = ibm_iam_service_id.service_id.id + roles = ["Writer"] + resource_attributes { + value = "cloud-object-storage" + operator = "stringEquals" + name = "serviceName" + } + resource_attributes { + value = "cos-instance" + operator = "stringEquals" + name = "serviceInstance" + } + resource_attributes { + value = "bucket" + operator = "stringEquals" + name = "resourceType" + } + resource_attributes { + value = "fgac-tf-test" + operator = "stringEquals" + name = "resource" + } + rule_conditions { + operator = "and" + conditions { + key = "{{resource.attributes.prefix}}" + operator = "stringMatch" + value = ["folder1/subfolder1/*"] + } + conditions { + key = "{{resource.attributes.delimiter}}" + operator = "stringEqualsAnyOf" + value = ["/",""] + } + } + rule_conditions { + key = "{{resource.attributes.path}}" + operator = "stringMatch" + value = ["folder1/subfolder1/*"] + } + rule_conditions { + operator = "and" + conditions { + key = "{{resource.attributes.delimiter}}" + operator = "stringExists" + value = ["false"] + } + conditions { + key = "{{resource.attributes.prefix}}" + operator = "stringExists" + value = ["false"] + } + } + rule_operator = "or" + pattern = "attribute-based-condition:resource:literal-and-wildcard" + description = "IAM User Policy Attribute Based Condition Creation for test scenario" +} +``` + ## Argument reference Review the argument references that you can specify for your resource. @@ -307,9 +374,15 @@ Review the argument references that you can specify for your resource. - `rule_conditions` - (Optional, List) A nested block describing the rule conditions of this policy. Nested schema for `rule_conditions`: - - `key` - (Required, String) The key of a rule condition. + - `key` - (Optional, String) The key of a rule condition. - `operator` - (Required, String) The operator of a rule condition. - - `value` - (Required, List) The valjue of a rule condition. + - `value` - (Optional, List) The value of a rule condition. + - `conditions` - (Optional, List) A nested block describing additional conditions of this policy. + + Nested schema for `conditions`: + - `key` - (Required, String) The key of a condition. + - `operator` - (Required, String) The operator of a condition. + - `value` - (Required, List) The value of a condition. - `rule_operator` - (Optional, String) The operator used to evaluate multiple rule conditions, e.g., all must be satisfied with `and`. diff --git a/website/docs/r/iam_trusted_profile_policy.html.markdown b/website/docs/r/iam_trusted_profile_policy.html.markdown index e987c0feb9..79e59ada80 100644 --- a/website/docs/r/iam_trusted_profile_policy.html.markdown +++ b/website/docs/r/iam_trusted_profile_policy.html.markdown @@ -261,6 +261,73 @@ resource "ibm_iam_trusted_profile_policy" "policy" { ``` +### Trusted Profile Policy by using Attribute Based Condition +`rule_conditions` can be used in conjunction with `pattern = attribute-based-condition:resource:literal-and-wildcard` and `rule_operator` to implement more complex policy conditions. **Note** Currently, a policy resource created without `rule_conditions`, `pattern`, and `rule_operator` cannot be updated including those conditions on update. + +```terraform +resource "ibm_iam_trusted_profile" "profile_id" { + name = "test" +} +resource "ibm_iam_trusted_profile_policy" "policy" { + profile_id = ibm_iam_trusted_profile.profile_id.id + roles = ["Writer"] + resource_attributes { + value = "cloud-object-storage" + operator = "stringEquals" + name = "serviceName" + } + resource_attributes { + value = "cos-instance" + operator = "stringEquals" + name = "serviceInstance" + } + resource_attributes { + value = "bucket" + operator = "stringEquals" + name = "resourceType" + } + resource_attributes { + value = "fgac-tf-test" + operator = "stringEquals" + name = "resource" + } + rule_conditions { + operator = "and" + conditions { + key = "{{resource.attributes.prefix}}" + operator = "stringMatch" + value = ["folder1/subfolder1/*"] + } + conditions { + key = "{{resource.attributes.delimiter}}" + operator = "stringEqualsAnyOf" + value = ["/",""] + } + } + rule_conditions { + key = "{{resource.attributes.path}}" + operator = "stringMatch" + value = ["folder1/subfolder1/*"] + } + rule_conditions { + operator = "and" + conditions { + key = "{{resource.attributes.delimiter}}" + operator = "stringExists" + value = ["false"] + } + conditions { + key = "{{resource.attributes.prefix}}" + operator = "stringExists" + value = ["false"] + } + } + rule_operator = "or" + pattern = "attribute-based-condition:resource:literal-and-wildcard" + description = "IAM User Policy Attribute Based Condition Creation for test scenario" +} +``` + ## Argument reference Review the argument references that you can specify for your resource. @@ -301,9 +368,15 @@ Review the argument references that you can specify for your resource. - `rule_conditions` - (Optional, List) A nested block describing the rule conditions of this policy. Nested schema for `rule_conditions`: - - `key` - (Required, String) The key of a rule condition. + - `key` - (Optional, String) The key of a rule condition. - `operator` - (Required, String) The operator of a rule condition. - - `value` - (Required, List) The valjue of a rule condition. + - `value` - (Optional, List) The value of a rule condition. + - `conditions` - (Optional, List) A nested block describing additional conditions of this policy. + + Nested schema for `conditions`: + - `key` - (Required, String) The key of a condition. + - `operator` - (Required, String) The operator of a condition. + - `value` - (Required, List) The value of a condition. - `rule_operator` - (Optional, String) The operator used to evaluate multiple rule conditions, e.g., all must be satisfied with `and`. diff --git a/website/docs/r/iam_user_policy.html.markdown b/website/docs/r/iam_user_policy.html.markdown index ef551b1c77..1a17ab207d 100644 --- a/website/docs/r/iam_user_policy.html.markdown +++ b/website/docs/r/iam_user_policy.html.markdown @@ -202,8 +202,72 @@ resource "ibm_iam_user_policy" "policy" { value = "IAM" } } +``` + +### User Policy by using Attribute Based Condition +`rule_conditions` can be used in conjunction with `pattern = attribute-based-condition:resource:literal-and-wildcard` and `rule_operator` to implement more complex policy conditions. **Note** Currently, a policy resource created without `rule_conditions`, `pattern`, and `rule_operator` cannot be updated including those conditions on update. +```terraform +resource "ibm_iam_user_policy" "policy" { + ibm_id = "test@in.ibm.com" + roles = ["Writer"] + resource_attributes { + value = "cloud-object-storage" + operator = "stringEquals" + name = "serviceName" + } + resource_attributes { + value = "cos-instance" + operator = "stringEquals" + name = "serviceInstance" + } + resource_attributes { + value = "bucket" + operator = "stringEquals" + name = "resourceType" + } + resource_attributes { + value = "fgac-tf-test" + operator = "stringEquals" + name = "resource" + } + rule_conditions { + operator = "and" + conditions { + key = "{{resource.attributes.prefix}}" + operator = "stringMatch" + value = ["folder1/subfolder1/*"] + } + conditions { + key = "{{resource.attributes.delimiter}}" + operator = "stringEqualsAnyOf" + value = ["/",""] + } + } + rule_conditions { + key = "{{resource.attributes.path}}" + operator = "stringMatch" + value = ["folder1/subfolder1/*"] + } + rule_conditions { + operator = "and" + conditions { + key = "{{resource.attributes.delimiter}}" + operator = "stringExists" + value = ["false"] + } + conditions { + key = "{{resource.attributes.prefix}}" + operator = "stringExists" + value = ["false"] + } + } + rule_operator = "or" + pattern = "attribute-based-condition:resource:literal-and-wildcard" + description = "IAM User Policy Attribute Based Condition Creation for test scenario" +} ``` + ## Argument reference Review the argument references that you can specify for your resource. @@ -242,9 +306,15 @@ Review the argument references that you can specify for your resource. - `rule_conditions` - (Optional, List) A nested block describing the rule conditions of this policy. Nested schema for `rule_conditions`: - - `key` - (Required, String) The key of a rule condition. + - `key` - (Optional, String) The key of a rule condition. - `operator` - (Required, String) The operator of a rule condition. - - `value` - (Required, List) The valjue of a rule condition. + - `value` - (Optional, List) The value of a rule condition. + - `conditions` - (Optional, List) A nested block describing additional conditions of this policy. + + Nested schema for `conditions`: + - `key` - (Required, String) The key of a condition. + - `operator` - (Required, String) The operator of a condition. + - `value` - (Required, List) The value of a condition. - `rule_operator` - (Optional, String) The operator used to evaluate multiple rule conditions, e.g., all must be satisfied with `and`. diff --git a/website/docs/r/is_lb.html.markdown b/website/docs/r/is_lb.html.markdown index 1fe27a0a86..5d24ffe531 100644 --- a/website/docs/r/is_lb.html.markdown +++ b/website/docs/r/is_lb.html.markdown @@ -90,7 +90,7 @@ Review the argument references that you can specify for your resource. - `route_mode` - (Optional, Forces new resource, Bool) Indicates whether route mode is enabled for this load balancer. ~> **NOTE:** Currently, `route_mode` enabled is supported only by private network load balancers. -- `security_groups` (Optional, List) A list of security groups to use for this load balancer. This option is supported only for application load balancers. +- `security_groups` (Optional, List) A list of security groups to use for this load balancer. This option is supported for both application and network load balancers. - `subnets` - (Required, List) List of the subnets IDs to connect to the load balancer. ~> **NOTE:** diff --git a/website/docs/r/is_share_mount_target.html.markdown b/website/docs/r/is_share_mount_target.html.markdown index 2d432673d9..3bc0c11a3d 100644 --- a/website/docs/r/is_share_mount_target.html.markdown +++ b/website/docs/r/is_share_mount_target.html.markdown @@ -27,39 +27,39 @@ resource "ibm_is_share" "example" { } resource "ibm_is_share_mount_target" "example" { - share = ibm_is_share.is_share.id - vpc = ibm_is_vpc.vpc.id + share = ibm_is_share.example.id + vpc = ibm_is_vpc.example.id name = "my-share-target" }` ``` ``` //Create mount target with virtual network interface that has primary ip name and subnet id -resource "ibm_is_vpc" "example" { +resource "ibm_is_vpc" "example1" { name = "my-vpc" } -resource "ibm_is_share" "example" { +resource "ibm_is_share" "example1" { access_control_mode = "security_group" zone = "br-sao-2" size = 9600 name = "my-example-share1" profile = "dp2" } -resource "ibm_is_subnet" "example" { +resource "ibm_is_subnet" "example1" { # provider = ibm.sao name = "my-subnet" - vpc = ibm_is_vpc.vpc2.id + vpc = ibm_is_vpc.example1.id zone = "br-sao-2" total_ipv4_address_count = 16 } resource "ibm_is_share_mount_target" "example1" { - share = ibm_is_share.example.id + share = ibm_is_share.example1.id virtual_network_interface { primary_ip { name = "my-example-pip" } - subnet = ibm_is_subnet.example.id + subnet = ibm_is_subnet.example1.id name = "my-example-vni" } name = "my-example-mount-target" @@ -80,8 +80,8 @@ resource "ibm_is_subnet_reserved_ip" "example" { subnet = ibm_is_subnet.example.id name = "my-example-resip" } -resource "ibm_is_share_mount_target" "mtarget1" { - share = ibm_is_share.share.id +resource "ibm_is_share_mount_target" "example" { + share = ibm_is_share.example.id virtual_network_interface { primary_ip { reserved_ip = ibm_is_subnet_reserved_ip.example.reserved_ip @@ -126,14 +126,20 @@ The following arguments are supported: The following attributes are exported: +- `access_control_mode` - (String) The access control mode for the share. +- `mount_target` - (String) The unique identifier of the share target +- `created_at` - (String) The date and time that the share target was created. +- `href` - (String) The URL for this share target. +- `id` - (String) The unique identifier of the ShareTarget. The id is composed of \/\ +- `lifecycle_state` - (String) The lifecycle state of the mount target. +- `mount_path` - (String) The mount path for the share. The server component of the mount path may be either an IP address or a fully qualified domain name. + + This property will be absent if the lifecycle_state of the mount target is 'pending', failed, or deleting. -- `mount_target` - The unique identifier of the share target -- `created_at` - The date and time that the share target was created. -- `href` - The URL for this share target. -- `id` - The unique identifier of the ShareTarget. The id is composed of \/\ -- `lifecycle_state` - The lifecycle state of the mount target. -- `mount_path` - The mount path for the share.The IP addresses used in the mount path are currently within the IBM services IP range, but are expected to change to be within one of the VPC's subnets in the future. -- `resource_type` - The type of resource referenced. + -> **If the share's access_control_mode is:** + • security_group: The IP address used in the mount path is the primary_ip address of the virtual network interface for this share mount target.
+ • vpc: The fully-qualified domain name used in the mount path is an address that resolves to the share mount target.
+- `resource_type` - (String) The type of resource referenced. - `transit_encryption` - (String) The transit encryption mode for this share target. ## Import diff --git a/website/docs/r/logs_router_tenant.html.markdown b/website/docs/r/logs_router_tenant.html.markdown new file mode 100644 index 0000000000..0a193468d8 --- /dev/null +++ b/website/docs/r/logs_router_tenant.html.markdown @@ -0,0 +1,60 @@ +--- +layout: "ibm" +page_title: "IBM : ibm_logs_router_tenant" +description: |- + Manages logs_router_tenant. +subcategory: "Logs Router" +--- + +# ibm_logs_router_tenant + +Create, update, and delete logs_router_tenants with this resource. + +## Example Usage + +```hcl +resource "ibm_logs_router_tenant" "logs_router_tenant_instance" { + target_host = "www.example.com" + target_instance_crn = "crn:v1:bluemix:public:logdna:eu-de:a/3516b8fa0a174a71899f5affa4f18d78:3517d2ed-9429-af34-ad52-34278391cbc8::" + target_port = 10 + target_type = "logdna" +} +``` + +## Argument Reference + +You can specify the following arguments for this resource. + +* `target_host` - (Required, String) Host name of log-sink. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/[a-z,A-Z,0-9,-,.]/`. +* `target_instance_crn` - (Required, String) Cloud resource name of the log-sink target instance. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/[a-z,A-Z,0-9,:,-]/`. +* `target_port` - (Required, Integer) Network port of log sink. +* `target_type` - (Required, String) Type of log-sink. + * Constraints: The maximum length is `32` characters. The minimum length is `1` character. The value must match regular expression `/[a-z,A-Z,0-9,-]/`. + +## Attribute Reference + +After your resource is created, you can read values from the listed arguments and the following attributes. + +* `id` - The unique identifier of the logs_router_tenant. +* `account_id` - (String) The account ID the tenant belongs to. + * Constraints: The maximum length is `32` characters. The minimum length is `32` characters. The value must match regular expression `/[a-z,A-Z,0-9,-]/`. +* `created_at` - (String) Time stamp the tenant was originally created. + * Constraints: The maximum length is `36` characters. The minimum length is `1` character. The value must match regular expression `/[0-9,:,.,-,T,Z]/`. +* `updated_at` - (String) time stamp the tenant was last updated. + * Constraints: The maximum length is `36` characters. The minimum length is `1` character. The value must match regular expression `/[0-9,:,.,-,T,Z]/`. + +## Import + +You can import the `ibm_logs_router_tenant` resource by using `id`. Unique ID of the created instance. + +# Syntax +
+$ terraform import ibm_logs_router_tenant.logs_router_tenant <id>
+
+ +# Example +``` +$ terraform import ibm_logs_router_tenant.logs_router_tenant aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa +``` diff --git a/website/docs/r/pi_workspace.html.markdown b/website/docs/r/pi_workspace.html.markdown new file mode 100644 index 0000000000..b17e5ca2a4 --- /dev/null +++ b/website/docs/r/pi_workspace.html.markdown @@ -0,0 +1,49 @@ +--- + +subcategory: "Power Systems" +layout: "ibm" +page_title: "IBM: pi_workspace" +description: |- + Manages a workspace in the Power Virtual Server cloud. +--- + +# ibm_pi_workspace + +Create or Delete a PowerVS Workspace + +## Example usage + +```terraform +data "ibm_resource_group" "group" { + name = "test" +} + +resource "ibm_pi_workspace" "powervs_service_instance" { + pi_name = "test-name" + pi_datacenter = "us-east" + pi_resource_group_id = data.ibm_resource_group.group.id + pi_plan = "public" +} +``` + +## Notes + +- Please find [supported Regions](https://cloud.ibm.com/apidocs/power-cloud#endpoint) for endpoints. +- If a Power cloud instance is provisioned at `lon04`, The provider level attributes should be as follows: + - `region` - `lon` + - `zone` - `lon04` + +## Argument reference + +Review the argument references that you can specify for your resource. + +- `pi_name` - (Required, String) A descriptive name used to identify the workspace. +- `pi_datacenter` - (Required, String) Target location or environment to create the resource instance. +- `pi_resource_group_id` - (Required, String) The ID of the resource group where you want to create the workspace. You can retrieve the value from data source `ibm_resource_group`. +- `pi_plan` - (Required, String) Plan associated with the offering; Valid values are `public` or `private`. + +## Attribute reference + +In addition to all argument reference listed, you can access the following attribute references after your resource source is created. + +- `id` - (String) Workspace ID. \ No newline at end of file diff --git a/website/docs/r/project.html.markdown b/website/docs/r/project.html.markdown new file mode 100644 index 0000000000..b447a1d627 --- /dev/null +++ b/website/docs/r/project.html.markdown @@ -0,0 +1,134 @@ +--- +layout: "ibm" +page_title: "IBM : ibm_project" +description: |- + Manages project. +subcategory: "Projects" +--- + +# ibm_project + +Create, update, and delete projects with this resource. + +## Example Usage + +```hcl +resource "ibm_project" "project_instance" { + definition { + name = "My static website" + description = "Sample static website test using the IBM catalog deployable architecture" + destroy_on_delete = true + } + location = "us-south" + resource_group = "Default" +} +``` + +## Argument Reference + +You can specify the following arguments for this resource. + +* `definition` - (Required, List) The definition of the project. +Nested schema for **definition**: + * `description` - (Optional, String) A brief explanation of the project's use in the configuration of a deployable architecture. It is possible to create a project without providing a description. + * Constraints: The maximum length is `1024` characters. The minimum length is `0` characters. The value must match regular expression `/^$|^(?!\\s)(?!.*\\s$)[^\\x00-\\x1F]*$/`. + * `destroy_on_delete` - (Required, Boolean) The policy that indicates whether the resources are destroyed or not when a project is deleted. + * `name` - (Required, String) The name of the project. It is unique within the account across regions. + * Constraints: The maximum length is `128` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^'"`<>{}\\x00-\\x1F]+$/`. +* `location` - (Required, Forces new resource, String) The IBM Cloud location where a resource is deployed. + * Constraints: The maximum length is `64` characters. The minimum length is `0` characters. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^'"`<>{}\\x00-\\x1F]*$/`. +* `resource_group` - (Required, Forces new resource, String) The resource group name where the project's data and tools are created. + * Constraints: The maximum length is `64` characters. The minimum length is `0` characters. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^'"`<>{}\\x00-\\x1F]*$/`. + +## Attribute Reference + +After your resource is created, you can read values from the listed arguments and the following attributes. + +* `id` - The unique identifier of the project. +* `configs` - (List) The project configurations. These configurations are only included in the response of creating a project if a configs array is specified in the request payload. + * Constraints: The default value is `[]`. The maximum length is `100` items. The minimum length is `0` items. +Nested schema for **configs**: + * `created_at` - (String) A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339. + * `definition` - (List) The name and description of a project configuration. + Nested schema for **definition**: + * `description` - (String) A project configuration description. + * Constraints: The maximum length is `1024` characters. The minimum length is `0` characters. The value must match regular expression `/^$|^(?!\\s)(?!.*\\s$)[^\\x00-\\x1F]*$/`. + * `name` - (String) The configuration name. It is unique within the account across projects and regions. + * Constraints: The maximum length is `128` characters. The minimum length is `1` character. The value must match regular expression `/^[a-zA-Z0-9][a-zA-Z0-9-_ ]*$/`. + * `href` - (String) A URL. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^(http(s)?:\/\/)[a-zA-Z0-9\\$\\-_\\.+!\\*'\\(\\),=&?\/]+$/`. + * `id` - (String) The ID of the configuration. If this parameter is empty, an ID is automatically created for the configuration. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + * `modified_at` - (String) A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339. + * `project` - (List) The project referenced by this resource. + Nested schema for **project**: + * `crn` - (String) An IBM Cloud resource name, which uniquely identifies a resource. + * Constraints: The maximum length is `512` characters. The minimum length is `4` characters. The value must match regular expression `/(?!\\s)(?!.*\\s$)^(crn)[^'"`<>{}\\s\\x00-\\x1F]*/`. + * `definition` - (List) The definition of the project reference. + Nested schema for **definition**: + * `name` - (String) The name of the project. + * Constraints: The maximum length is `64` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^'"`<>{}\\x00-\\x1F]+$/`. + * `href` - (String) A URL. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^(http(s)?:\/\/)[a-zA-Z0-9\\$\\-_\\.+!\\*'\\(\\),=&?\/]+$/`. + * `id` - (String) The unique ID. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + * `state` - (String) The state of the configuration. + * Constraints: Allowable values are: `approved`, `deleted`, `deleting`, `deleting_failed`, `discarded`, `draft`, `deployed`, `deploying_failed`, `deploying`, `superseded`, `undeploying`, `undeploying_failed`, `validated`, `validating`, `validating_failed`. + * `version` - (Integer) The version of the configuration. +* `created_at` - (String) A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339. +* `crn` - (String) An IBM Cloud resource name, which uniquely identifies a resource. + * Constraints: The maximum length is `512` characters. The minimum length is `4` characters. The value must match regular expression `/(?!\\s)(?!.*\\s$)^(crn)[^'"`<>{}\\s\\x00-\\x1F]*/`. +* `cumulative_needs_attention_view` - (List) The cumulative list of needs attention items for a project. If the view is successfully retrieved, an array which could be empty is returned. + * Constraints: The default value is `[]`. The maximum length is `50` items. The minimum length is `0` items. +Nested schema for **cumulative_needs_attention_view**: + * `config_id` - (String) A unique ID for the configuration. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + * `config_version` - (Integer) The version number of the configuration. + * `event` - (String) The event name. + * Constraints: The maximum length is `64` characters. The minimum length is `0` characters. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^'"`<>{}\\x00-\\x1F]*$/`. + * `event_id` - (String) A unique ID for that individual event. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. +* `cumulative_needs_attention_view_error` - (Boolean) True indicates that the fetch of the needs attention items failed. It only exists if there was an error while retrieving the cumulative needs attention view. + * Constraints: The default value is `false`. +* `environments` - (List) The project environments. These environments are only included in the response if project environments were created on the project. + * Constraints: The default value is `[]`. The maximum length is `20` items. The minimum length is `0` items. +Nested schema for **environments**: + * `created_at` - (String) A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339. + * `definition` - (List) The environment definition used in the project collection. + Nested schema for **definition**: + * `description` - (String) The description of the environment. + * Constraints: The maximum length is `1024` characters. The minimum length is `0` characters. The value must match regular expression `/^$|^(?!\\s)(?!.*\\s$)[^\\x00-\\x1F]*$/`. + * `name` - (String) The name of the environment. It is unique within the account across projects and regions. + * Constraints: The maximum length is `128` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^'"`<>{}\\x00-\\x1F]+$/`. + * `href` - (String) A URL. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^(http(s)?:\/\/)[a-zA-Z0-9\\$\\-_\\.+!\\*'\\(\\),=&?\/]+$/`. + * `id` - (String) The environment id as a friendly name. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$).+$/`. + * `project` - (List) The project referenced by this resource. + Nested schema for **project**: + * `crn` - (String) An IBM Cloud resource name, which uniquely identifies a resource. + * Constraints: The maximum length is `512` characters. The minimum length is `4` characters. The value must match regular expression `/(?!\\s)(?!.*\\s$)^(crn)[^'"`<>{}\\s\\x00-\\x1F]*/`. + * `definition` - (List) The definition of the project reference. + Nested schema for **definition**: + * `name` - (String) The name of the project. + * Constraints: The maximum length is `64` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^'"`<>{}\\x00-\\x1F]+$/`. + * `href` - (String) A URL. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^(http(s)?:\/\/)[a-zA-Z0-9\\$\\-_\\.+!\\*'\\(\\),=&?\/]+$/`. + * `id` - (String) The unique ID. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. +* `event_notifications_crn` - (String) The CRN of the event notifications instance if one is connected to this project. + * Constraints: The maximum length is `512` characters. The minimum length is `0` characters. The value must match regular expression `/^$|^crn:v[0-9](:([A-Za-z0-9\\-._~!$&'()*+,;=@\/]|%[0-9A-Z]{2})*){8}$/`. +* `resource_group_id` - (String) The resource group id where the project's data and tools are created. + * Constraints: The maximum length is `64` characters. The minimum length is `0` characters. The value must match regular expression `/^[0-9a-zA-Z]+$/`. +* `state` - (String) The project status value. + * Constraints: Allowable values are: `ready`, `deleting`, `deleting_failed`. + + +## Import + +You can import the `ibm_project` resource by using `id`. The unique project ID. + +# Syntax +
+$ terraform import ibm_project.project <id>
+
diff --git a/website/docs/r/project_config.html.markdown b/website/docs/r/project_config.html.markdown new file mode 100644 index 0000000000..995dfa3570 --- /dev/null +++ b/website/docs/r/project_config.html.markdown @@ -0,0 +1,183 @@ +--- +layout: "ibm" +page_title: "IBM : ibm_project_config" +description: |- + Manages project_config. +subcategory: "Projects" +--- + +# ibm_project_config + +Create, update, and delete project_configs with this resource. + +## Example Usage + +```hcl +resource "ibm_project_config" "project_config_instance" { + definition { + name = "static-website-dev" + description = "Website - development" + authorizations { + method = "api_key" + api_key = "" + } + locator_id = "1082e7d2-5e2f-0a11-a3bc-f88a8e1931fc.145be7c1-9ec4-4719-b586-584ee52fbed0-global" + input { + name = "app_repo_name" + } + setting { + name = "app_repo_name" + value = "static-website-dev-app-repo" + } + } + project_id = ibm_project.project_instance.id +} +``` + +## Argument Reference + +You can specify the following arguments for this resource. + +* `definition` - (Required, List) The name and description of a project configuration. +Nested schema for **definition**: + * `authorizations` - (Optional, List) The authorization details. You can authorize by using a trusted profile or an API key in Secrets Manager. + Nested schema for **authorizations**: + * `api_key` - (Optional, String) The IBM Cloud API Key. + * Constraints: The maximum length is `512` characters. The minimum length is `0` characters. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^`<>\\x00-\\x1F]*$/`. + * `method` - (Optional, String) The authorization method. You can authorize by using a trusted profile or an API key in Secrets Manager. + * Constraints: Allowable values are: `api_key`, `trusted_profile`. + * `trusted_profile_id` - (Optional, String) The trusted profile ID. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + * `compliance_profile` - (Optional, List) The profile required for compliance. + Nested schema for **compliance_profile**: + * `attachment_id` - (Optional, String) A unique ID for the attachment to a compliance profile. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + * `id` - (Optional, String) The unique ID for that compliance profile. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + * `instance_id` - (Optional, String) A unique ID for an instance of a compliance profile. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + * `instance_location` - (Optional, String) The location of the compliance instance. + * Constraints: The maximum length is `12` characters. The minimum length is `0` characters. The value must match regular expression `/^$|^(us-south|us-east|eu-gb|eu-de)$/`. + * `profile_name` - (Optional, String) The name of the compliance profile. + * Constraints: The maximum length is `1024` characters. The minimum length is `0` characters. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^`<>\\x00-\\x1F]*$/`. + * `description` - (Optional, String) A project configuration description. + * Constraints: The maximum length is `1024` characters. The minimum length is `0` characters. The value must match regular expression `/^$|^(?!\\s)(?!.*\\s$)[^\\x00-\\x1F]*$/`. + * `environment_id` - (Optional, String) The ID of the project environment. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + * `inputs` - (Optional, List) The input variables for configuration definition and environment. + Nested schema for **inputs**: + * `locator_id` - (Required, Forces new resource, String) A unique concatenation of catalogID.versionID that identifies the DA in the catalog. + * Constraints: The maximum length is `512` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[\\.0-9a-z-A-Z_-]+$/`. + * `name` - (Required, String) The configuration name. It is unique within the account across projects and regions. + * Constraints: The maximum length is `128` characters. The minimum length is `1` character. The value must match regular expression `/^[a-zA-Z0-9][a-zA-Z0-9-_ ]*$/`. + * `settings` - (Optional, List) Schematics environment variables to use to deploy the configuration.Settings are only available if they were specified when the configuration was initially created. + Nested schema for **settings**: +* `project_id` - (Required, Forces new resource, String) The unique project ID. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. +* `schematics` - (Optional, List) A schematics workspace associated to a project configuration, with scripts. +Nested schema for **schematics**: + * `deploy_post_script` - (Optional, List) A script to be run as part of a Project configuration, for a given stage (pre, post) and action (validate, deploy, undeploy). + Nested schema for **deploy_post_script**: + * `path` - (Computed, String) The path to this script within the current version source. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^\\S+$/`. + * `short_description` - (Computed, String) The short description for this script. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/$|^(?!\\s)(?!.*\\s$)[^\\x00-\\x1F]*$/`. + * `type` - (Computed, String) The type of the script. + * Constraints: The maximum length is `7` characters. The minimum length is `7` characters. The value must match regular expression `/^(ansible)$/`. + * `deploy_pre_script` - (Optional, List) A script to be run as part of a Project configuration, for a given stage (pre, post) and action (validate, deploy, undeploy). + Nested schema for **deploy_pre_script**: + * `path` - (Computed, String) The path to this script within the current version source. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^\\S+$/`. + * `short_description` - (Computed, String) The short description for this script. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/$|^(?!\\s)(?!.*\\s$)[^\\x00-\\x1F]*$/`. + * `type` - (Computed, String) The type of the script. + * Constraints: The maximum length is `7` characters. The minimum length is `7` characters. The value must match regular expression `/^(ansible)$/`. + * `undeploy_post_script` - (Optional, List) A script to be run as part of a Project configuration, for a given stage (pre, post) and action (validate, deploy, undeploy). + Nested schema for **undeploy_post_script**: + * `path` - (Computed, String) The path to this script within the current version source. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^\\S+$/`. + * `short_description` - (Computed, String) The short description for this script. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/$|^(?!\\s)(?!.*\\s$)[^\\x00-\\x1F]*$/`. + * `type` - (Computed, String) The type of the script. + * Constraints: The maximum length is `7` characters. The minimum length is `7` characters. The value must match regular expression `/^(ansible)$/`. + * `undeploy_pre_script` - (Optional, List) A script to be run as part of a Project configuration, for a given stage (pre, post) and action (validate, deploy, undeploy). + Nested schema for **undeploy_pre_script**: + * `path` - (Computed, String) The path to this script within the current version source. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^\\S+$/`. + * `short_description` - (Computed, String) The short description for this script. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/$|^(?!\\s)(?!.*\\s$)[^\\x00-\\x1F]*$/`. + * `type` - (Computed, String) The type of the script. + * Constraints: The maximum length is `7` characters. The minimum length is `7` characters. The value must match regular expression `/^(ansible)$/`. + * `validate_post_script` - (Optional, List) A script to be run as part of a Project configuration, for a given stage (pre, post) and action (validate, deploy, undeploy). + Nested schema for **validate_post_script**: + * `path` - (Computed, String) The path to this script within the current version source. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^\\S+$/`. + * `short_description` - (Computed, String) The short description for this script. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/$|^(?!\\s)(?!.*\\s$)[^\\x00-\\x1F]*$/`. + * `type` - (Computed, String) The type of the script. + * Constraints: The maximum length is `7` characters. The minimum length is `7` characters. The value must match regular expression `/^(ansible)$/`. + * `validate_pre_script` - (Optional, List) A script to be run as part of a Project configuration, for a given stage (pre, post) and action (validate, deploy, undeploy). + Nested schema for **validate_pre_script**: + * `path` - (Computed, String) The path to this script within the current version source. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^\\S+$/`. + * `short_description` - (Computed, String) The short description for this script. + * Constraints: The maximum length is `256` characters. The minimum length is `0` characters. The value must match regular expression `/$|^(?!\\s)(?!.*\\s$)[^\\x00-\\x1F]*$/`. + * `type` - (Computed, String) The type of the script. + * Constraints: The maximum length is `7` characters. The minimum length is `7` characters. The value must match regular expression `/^(ansible)$/`. + * `workspace_crn` - (Optional, String) An existing schematics workspace CRN. + * Constraints: The maximum length is `512` characters. The minimum length is `4` characters. The value must match regular expression `/^crn:v[0-9](:([A-Za-z0-9\\-._~!$&'()*+,;=@\/]|%[0-9A-Z]{2})*){8}$/`. + +## Attribute Reference + +After your resource is created, you can read values from the listed arguments and the following attributes. + +* `id` - The unique identifier of the project_config. +* `created_at` - (String) A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339. +* `is_draft` - (Boolean) The flag that indicates whether the version of the configuration is draft, or active. +* `last_saved_at` - (String) A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339. +* `modified_at` - (String) A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339. +* `needs_attention_state` - (List) The needs attention state of a configuration. + * Constraints: The default value is `[]`. The maximum length is `50` items. The minimum length is `0` items. +* `outputs` - (List) The outputs of a Schematics template property. + * Constraints: The default value is `[]`. The maximum length is `50` items. The minimum length is `0` items. +Nested schema for **outputs**: + * `description` - (String) A short explanation of the output value. + * Constraints: The maximum length is `1024` characters. The minimum length is `0` characters. The value must match regular expression `/^$|^(?!\\s)(?!.*\\s$)[^\\x00-\\x1F]*$/`. + * `name` - (String) The variable name. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$).+$/`. + * `value` - (String) Can be any value - a string, number, boolean, array, or object. +* `project` - (List) The project referenced by this resource. +Nested schema for **project**: + * `crn` - (String) An IBM Cloud resource name, which uniquely identifies a resource. + * Constraints: The maximum length is `512` characters. The minimum length is `4` characters. The value must match regular expression `/(?!\\s)(?!.*\\s$)^(crn)[^'"`<>{}\\s\\x00-\\x1F]*/`. + * `definition` - (List) The definition of the project reference. + Nested schema for **definition**: + * `name` - (String) The name of the project. + * Constraints: The maximum length is `64` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^'"`<>{}\\x00-\\x1F]+$/`. + * `href` - (String) A URL. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^(http(s)?:\/\/)[a-zA-Z0-9\\$\\-_\\.+!\\*'\\(\\),=&?\/]+$/`. + * `id` - (String) The unique ID. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. +* `project_config_id` - (String) The ID of the configuration. If this parameter is empty, an ID is automatically created for the configuration. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. +* `state` - (String) The state of the configuration. + * Constraints: Allowable values are: `approved`, `deleted`, `deleting`, `deleting_failed`, `discarded`, `draft`, `deployed`, `deploying_failed`, `deploying`, `superseded`, `undeploying`, `undeploying_failed`, `validated`, `validating`, `validating_failed`. +* `update_available` - (Boolean) The flag that indicates whether a configuration update is available. +* `version` - (Integer) The version of the configuration. + + +## Import + +You can import the `ibm_project_config` resource by using `id`. +The `id` property can be formed from `project_id`, and `project_config_id` in the following format: + +
+<project_id>/<project_config_id>
+
+* `project_id`: A string. The unique project ID. +* `project_config_id`: A string. The ID of the configuration. If this parameter is empty, an ID is automatically created for the configuration. + +# Syntax +
+$ terraform import ibm_project_config.project_config <project_id>/<project_config_id>
+
diff --git a/website/docs/r/project_environment.html.markdown b/website/docs/r/project_environment.html.markdown new file mode 100644 index 0000000000..f9783845eb --- /dev/null +++ b/website/docs/r/project_environment.html.markdown @@ -0,0 +1,103 @@ +--- +layout: "ibm" +page_title: "IBM : ibm_project_environment" +description: |- + Manages project_environment. +subcategory: "Projects" +--- + +# ibm_project_environment + +Create, update, and delete project_environments with this resource. + +## Example Usage + +```hcl +resource "ibm_project_environment" "project_environment" { + definition { + name = "environment-stage" + description = "environment for stage project" + authorizations { + method = "api_key" + api_key = "" + } + } + project_id = ibm_project.project_instance.id +} +``` + +## Argument Reference + +You can specify the following arguments for this resource. + +* `definition` - (Required, List) The environment definition. +Nested schema for **definition**: + * `authorizations` - (Optional, List) The authorization details. You can authorize by using a trusted profile or an API key in Secrets Manager. + Nested schema for **authorizations**: + * `api_key` - (Optional, String) The IBM Cloud API Key. + * Constraints: The maximum length is `512` characters. The minimum length is `0` characters. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^`<>\\x00-\\x1F]*$/`. + * `method` - (Optional, String) The authorization method. You can authorize by using a trusted profile or an API key in Secrets Manager. + * Constraints: Allowable values are: `api_key`, `trusted_profile`. + * `trusted_profile_id` - (Optional, String) The trusted profile ID. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + * `compliance_profile` - (Optional, List) The profile required for compliance. + Nested schema for **compliance_profile**: + * `attachment_id` - (Optional, String) A unique ID for the attachment to a compliance profile. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + * `id` - (Optional, String) The unique ID for that compliance profile. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + * `instance_id` - (Optional, String) A unique ID for an instance of a compliance profile. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + * `instance_location` - (Optional, String) The location of the compliance instance. + * Constraints: The maximum length is `12` characters. The minimum length is `0` characters. The value must match regular expression `/^$|^(us-south|us-east|eu-gb|eu-de)$/`. + * `profile_name` - (Optional, String) The name of the compliance profile. + * Constraints: The maximum length is `1024` characters. The minimum length is `0` characters. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^`<>\\x00-\\x1F]*$/`. + * `description` - (Optional, String) The description of the environment. + * Constraints: The maximum length is `1024` characters. The minimum length is `0` characters. The value must match regular expression `/^$|^(?!\\s)(?!.*\\s$)[^\\x00-\\x1F]*$/`. + * `inputs` - (Optional, List) The input variables for configuration definition and environment. + Nested schema for **inputs**: + * `name` - (Required, String) The name of the environment. It is unique within the account across projects and regions. + * Constraints: The maximum length is `128` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^'"`<>{}\\x00-\\x1F]+$/`. +* `project_id` - (Required, Forces new resource, String) The unique project ID. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. + +## Attribute Reference + +After your resource is created, you can read values from the listed arguments and the following attributes. + +* `id` - The unique identifier of the project_environment. +* `created_at` - (String) A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339. +* `modified_at` - (String) A date and time value in the format YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.sssZ, matching the date and time format as specified by RFC 3339. +* `project` - (List) The project referenced by this resource. +Nested schema for **project**: + * `crn` - (String) An IBM Cloud resource name, which uniquely identifies a resource. + * Constraints: The maximum length is `512` characters. The minimum length is `4` characters. The value must match regular expression `/(?!\\s)(?!.*\\s$)^(crn)[^'"`<>{}\\s\\x00-\\x1F]*/`. + * `definition` - (List) The definition of the project reference. + Nested schema for **definition**: + * `name` - (String) The name of the project. + * Constraints: The maximum length is `64` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^'"`<>{}\\x00-\\x1F]+$/`. + * `href` - (String) A URL. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^(http(s)?:\/\/)[a-zA-Z0-9\\$\\-_\\.+!\\*'\\(\\),=&?\/]+$/`. + * `id` - (String) The unique ID. + * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. +* `project_environment_id` - (String) The environment id as a friendly name. + * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$).+$/`. +* `target_account` - (String) The target account ID derived from the authentication block values. + * Constraints: The maximum length is `64` characters. The value must match regular expression `/^[a-zA-Z0-9.-]+$/`. + + +## Import + +You can import the `ibm_project_environment` resource by using `id`. +The `id` property can be formed from `project_id`, and `project_environment_id` in the following format: + +
+<project_id>/<project_environment_id>
+
+* `project_id`: A string. The unique project ID. +* `project_environment_id`: A string. The environment id as a friendly name. + +# Syntax +
+$ terraform import ibm_project_environment.project_environment <project_id>/<project_environment_id>
+
diff --git a/website/docs/r/project_instance.html.markdown b/website/docs/r/project_instance.html.markdown deleted file mode 100644 index 5193113914..0000000000 --- a/website/docs/r/project_instance.html.markdown +++ /dev/null @@ -1,117 +0,0 @@ ---- -layout: "ibm" -page_title: "IBM : ibm_project_instance" -description: |- - Manages Project definition. -subcategory: "Project" ---- - -# ibm_project_instance - -Provides a resource for Project definition. This allows Project definition to be created, updated and deleted. - -## Example Usage - -```hcl -resource "ibm_project_instance" "project_instance" { - configs { - id = "0013790d-6cb5-4adc-8927-a725a1261d0c" - name = "static-website-dev" - labels = [ "env:dev", "billing:internal" ] - description = "Website - development" - locator_id = "1082e7d2-5e2f-0a11-a3bc-f88a8e1931fc.145be7c1-9ec4-4719-b586-584ee52fbed0-global" - input { - name = "app_repo_name" - } - setting { - name = "app_repo_name" - value = "static-website-dev-app-repo" - } - } - description = "Sample static website test using the IBM catalog deployable architecture" - name = "My static website" - location = "us-south" - resource_group = "Default" -} -``` - -## Argument Reference - -Review the argument reference that you can specify for your resource. - -* `configs` - (Optional, List) The project configurations. - * Constraints: The maximum length is `10000` items. The minimum length is `0` items. -Nested scheme for **configs**: - * `description` - (Optional, String) The project configuration description. - * Constraints: The maximum length is `1024` characters. The minimum length is `0` characters. The value must match regular expression `/^$|^(?!\\s).*\\S$/`. - * `id` - (Optional, String) The ID of the configuration. If this parameter is empty, an ID is automatically created for the configuration. - * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. - * `input` - (Optional, List) The input values to use to deploy the configuration. - * Constraints: The maximum length is `10000` items. The minimum length is `0` items. - Nested scheme for **input**: - * `name` - (Required, String) The variable name. - * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$).+$/`. - * `value` - (Optional, String) Can be any value - a string, number, boolean, array, or object. - * `labels` - (Optional, List) A collection of configuration labels. - * Constraints: The list items must match regular expression `/^[_\\-a-z0-9:\/=]+$/`. The maximum length is `10000` items. The minimum length is `0` items. - * `locator_id` - (Required, String) A dotted value of catalogID.versionID. - * Constraints: The maximum length is `512` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[\\.0-9a-z-A-Z_-]+$/`. - * `name` - (Required, String) The configuration name. - * Constraints: The maximum length is `64` characters. The minimum length is `1` character. The value must match regular expression `/^[a-zA-Z0-9][a-zA-Z0-9-_ ]*$/`. - * `setting` - (Optional, List) Schematics environment variables to use to deploy the configuration. - * Constraints: The maximum length is `10000` items. The minimum length is `0` items. - Nested scheme for **setting**: - * `name` - (Required, String) The name of the configuration setting. - * Constraints: The maximum length is `256` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$).+$/`. - * `value` - (Required, String) The value of the configuration setting. - * Constraints: The maximum length is `1024` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$).+$/`. -* `description` - (Optional, String) A project's descriptive text. - * Constraints: The maximum length is `1024` characters. The minimum length is `0` characters. The value must match regular expression `/^$|^(?!\\s).*\\S$/`. -* `location` - (Required, String) The location where the project's data and tools are created. - * Constraints: The maximum length is `12` characters. The minimum length is `0` characters. The value must match regular expression `/^$|^(us-south|us-east|eu-gb|eu-de)$/`. -* `name` - (Required, String) The project name. - * Constraints: The maximum length is `64` characters. The minimum length is `1` character. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^'"<>{}\\x00-\\x1F]+$/`. -* `resource_group` - (Required, String) The resource group where the project's data and tools are created. - * Constraints: The maximum length is `40` characters. The minimum length is `0` characters. The value must match regular expression `/^$|^(?!\\s)(?!.*\\s$)[^'"<>{}\\x00-\\x1F]*$/`. - -## Attribute Reference - -In addition to all argument references listed, you can access the following attribute references after your resource is created. - -* `id` - The unique identifier of the Project definition. -* `crn` - (String) An IBM Cloud resource name, which uniquely identifies a resource. - * Constraints: The maximum length is `512` characters. The minimum length is `9` characters. The value must match regular expression `/^crn:v[0-9](:([A-Za-z0-9\\-._~!$&'()*+,;=@\/]|%[0-9A-Z]{2})*){8}$/`. -* `metadata` - (List) The metadata of the project. -Nested scheme for **metadata**: - * `created_at` - (String) A date and time value in the format `YYYY-MM-DDTHH:mm:ssZ` or `YYYY-MM-DDTHH:mm:ss.sssZ`, matching the date and time format as specified by RFC 3339. - * `crn` - (String) An IBM Cloud resource name, which uniquely identifies a resource. - * Constraints: The maximum length is `512` characters. The minimum length is `9` characters. The value must match regular expression `/^crn:v[0-9](:([A-Za-z0-9\\-._~!$&'()*+,;=@\/]|%[0-9A-Z]{2})*){8}$/`. - * `cumulative_needs_attention_view` - (List) The cumulative list of needs attention items for a project. - * Constraints: The maximum length is `10000` items. The minimum length is `0` items. - Nested scheme for **cumulative_needs_attention_view**: - * `config_id` - (String) The unique ID of a project. - * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. - * `config_version` - (Integer) The version number of the configuration. - * `event` - (String) The event name. - * Constraints: The maximum length is `64` characters. The minimum length is `0` characters. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^'"<>{}\\x00-\\x1F]*$/`. - * `event_id` - (String) The unique ID of a project. - * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. - * `cumulative_needs_attention_view_err` - (String) `True` indicates that the fetch of the needs attention items failed. - * Constraints: The maximum length is `64` characters. The minimum length is `0` characters. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^'"<>{}\\x00-\\x1F]*$/`. - * `event_notifications_crn` - (String) The CRN of the event notifications instance if one is connected to this project. - * Constraints: The maximum length is `512` characters. The minimum length is `9` characters. The value must match regular expression `/^crn:v[0-9](:([A-Za-z0-9\\-._~!$&'()*+,;=@\/]|%[0-9A-Z]{2})*){8}$/`. - * `location` - (String) The IBM Cloud location where a resource is deployed. - * Constraints: The maximum length is `64` characters. The minimum length is `0` characters. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^'"<>{}\\x00-\\x1F]*$/`. - * `resource_group` - (String) The resource group where the project's data and tools are created. - * Constraints: The maximum length is `64` characters. The minimum length is `0` characters. The value must match regular expression `/^(?!\\s)(?!.*\\s$)[^'"<>{}\\x00-\\x1F]*$/`. - * `state` - (String) The project status value. - * Constraints: The maximum length is `64` characters. The minimum length is `1` character. The value must match regular expression `/^(CREATING|CREATING_FAILED|UPDATING|UPDATING_FAILED|READY)$/`. - -## Import - -You can import the `ibm_project_instance` resource by using `id`. The unique ID of a project. - -# Syntax -``` -$ terraform import ibm_project_instance.project_instance -``` diff --git a/website/docs/r/satellite_cluster.html.markdown b/website/docs/r/satellite_cluster.html.markdown index b01648bd64..b4d8a42038 100644 --- a/website/docs/r/satellite_cluster.html.markdown +++ b/website/docs/r/satellite_cluster.html.markdown @@ -50,6 +50,7 @@ Review the argument references that you can specify for your resource. - `location` - (Required, String) The name or ID of the Satellite location. - `kube_version` - (Optional, String) The Red Hart OpenShift Container Platform version. - `operating_system` - (Optional, String) Operating system of the default worker pool. Options are REDHAT_7_64, REDHAT_8_64, or RHCOS. +- `entitlement` - (Optional, String) Entitlement reduces additional OCP Licence cost in OpenShift clusters. Use Cloud Pak with OCP Licence entitlement to create the OpenShift cluster. **Note**
  • It is set only when the first time creation of the cluster, further modifications are not impacted.
  • Set this argument to `cloud_pak` only if you use the cluster with a Cloud Pak that has an OpenShift entitlement.
. - `zones` - (Optional, Array of Strings) The name of the zones to create the default worker pool. - `worker_count` - (Optional, String) The number of worker nodes to create per zone in the default worker pool. - `enable_config_admin` - (Optional, Bool) User provided value to indicate opt-in agreement to SatCon admin agent. diff --git a/website/docs/r/scc_control_library.html.markdown b/website/docs/r/scc_control_library.html.markdown index 201b87552b..98ef982637 100644 --- a/website/docs/r/scc_control_library.html.markdown +++ b/website/docs/r/scc_control_library.html.markdown @@ -10,7 +10,7 @@ subcategory: "Security and Compliance Center" Create, update, and delete control libraries by using this resource. -~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.ibm.com`). +~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.cloud.ibm.com`). ## Example Usage diff --git a/website/docs/r/scc_profile.html.markdown b/website/docs/r/scc_profile.html.markdown index b0360fe701..9f1d94cc57 100644 --- a/website/docs/r/scc_profile.html.markdown +++ b/website/docs/r/scc_profile.html.markdown @@ -10,7 +10,7 @@ subcategory: "Security and Compliance Center" Create, update, and delete profiles with this resource. -~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.ibm.com`). +~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.cloud.ibm.com`). ## Example Usage diff --git a/website/docs/r/scc_profile_attachment.html.markdown b/website/docs/r/scc_profile_attachment.html.markdown index 064429b657..d821939540 100644 --- a/website/docs/r/scc_profile_attachment.html.markdown +++ b/website/docs/r/scc_profile_attachment.html.markdown @@ -10,7 +10,7 @@ subcategory: "Security and Compliance Center" Create, update, and delete profile attachments with this resource. -~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.ibm.com`). +~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.cloud.ibm.com`). ## Example Usage @@ -58,9 +58,11 @@ Nested schema for **scope**: * `properties` - (List) The properties supported for scoping by this environment. * Constraints: The maximum length is `8` items. The minimum length is `0` items. Nested schema for **properties**: - * `name` - (String) The name of the property. + -> NOTE: Defining the `scope_type` value must be either `account`, `account.resource_group`, `enterprise`, `enterprise.account` and `enterprise.account_group`." + -> NOTE: Defining the `scope_id` value will be the id of the `scope_type`(ex. `enterprise.account_group` will be the ID of the account_group within an enterprise) + * `name` - (Required, String) The name of the property. * Constraints: The maximum length is `64` characters. The minimum length is `2` characters. The value must match regular expression `/[A-Za-z0-9]+/`. - * `value` - (String) The value of the property. + * `value` - (Required, String) The value of the property. * Constraints: The maximum length is `64` characters. The minimum length is `2` characters. The value must match regular expression `/[A-Za-z0-9]+/`. * `notifications` - (List) The request payload of the attachment notifications. Nested schema for **notifications**: diff --git a/website/docs/r/scc_provider_type_instance.html.markdown b/website/docs/r/scc_provider_type_instance.html.markdown index 2a75e888d7..f67260edc4 100644 --- a/website/docs/r/scc_provider_type_instance.html.markdown +++ b/website/docs/r/scc_provider_type_instance.html.markdown @@ -10,7 +10,7 @@ subcategory: "Security and Compliance Center" Create, update, and delete provider type instances with this resource. -~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.ibm.com`). +~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.cloud.ibm.com`). ## Example Usage diff --git a/website/docs/r/scc_rule.html.markdown b/website/docs/r/scc_rule.html.markdown index 322fa63013..1fbe9fbbf4 100644 --- a/website/docs/r/scc_rule.html.markdown +++ b/website/docs/r/scc_rule.html.markdown @@ -10,7 +10,7 @@ subcategory: "Security and Compliance Center" Create, update, and delete rules with this resource. -~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.ibm.com`). +~> NOTE: if you specify the `region` in the provider, that region will become the default URL. Else, exporting the environmental variable IBMCLOUD_SCC_API_ENDPOINT will override any URL(ex. `export IBMCLOUD_SCC_API_ENDPOINT=https://us-south.compliance.cloud.ibm.com`). ## Example Usage diff --git a/website/docs/r/schematics_agent.html.markdown b/website/docs/r/schematics_agent.html.markdown new file mode 100644 index 0000000000..4b04b38e6a --- /dev/null +++ b/website/docs/r/schematics_agent.html.markdown @@ -0,0 +1,138 @@ +--- +layout: "ibm" +page_title: "IBM : ibm_schematics_agent" +description: |- + Manages schematics_agent. +subcategory: "Schematics" +--- + +# ibm_schematics_agent + +~> **Beta:** This resource is in Beta, and is subject to change. + +Provides a resource for schematics_agent. This allows schematics_agent to be created, updated and deleted. + +## Example Usage + +```hcl +resource "ibm_schematics_agent" "schematics_agent_instance" { + agent_infrastructure { + infra_type = "ibm_kubernetes" + cluster_id = "cluster_id" + cluster_resource_group = "cluster_resource_group" + cos_instance_name = "cos_instance_name" + cos_bucket_name = "cos_bucket_name" + cos_bucket_region = "cos_bucket_region" + } + agent_location = "us-south" + agent_metadata { + name = "purpose" + value = ["git", "terraform", "ansible"] + } + description = "Create Agent" + name = "MyDevAgent" + resource_group = "Default" + schematics_location = "us-south" + version = "1.0.0-beta2" +} +``` + +## Argument Reference + +Review the argument reference that you can specify for your resource. + +* `agent_infrastructure` - (Required, List) The infrastructure parameters used by the agent. +Nested scheme for **agent_infrastructure**: + * `cluster_id` - (Optional, String) The cluster ID where agent services will be running. + * `cluster_resource_group` - (Optional, String) The resource group of the cluster (is it required?). + * `cos_bucket_name` - (Optional, String) The COS bucket name used to store the logs. + * `cos_bucket_region` - (Optional, String) The COS bucket region. + * `cos_instance_name` - (Optional, String) The COS instance name to store the agent logs. + * `infra_type` - (Optional, String) Type of target agent infrastructure. + * Constraints: Allowable values are: `ibm_kubernetes`, `ibm_openshift`, `ibm_satellite`. +* `agent_kpi` - (Optional, List) Schematics Agent key performance indicators. +Nested scheme for **agent_kpi**: + * `application_indicators` - (Optional, List) Agent application key performance indicators. + * `availability_indicator` - (Optional, String) Overall availability indicator reported by the agent. + * Constraints: Allowable values are: `available`, `unavailable`, `error`. + * `infra_indicators` - (Optional, List) Agent infrastructure key performance indicators. + * `lifecycle_indicator` - (Optional, String) Overall lifecycle indicator reported by the agents. + * Constraints: Allowable values are: `consistent`, `inconsistent`, `obselete`. + * `percent_usage_indicator` - (Optional, String) Percentage usage of the agent resources. +* `agent_location` - (Required, String) The location where agent is deployed in the user environment. +* `agent_metadata` - (Optional, List) The metadata of an agent. +Nested scheme for **agent_metadata**: + * `name` - (Optional, String) Name of the metadata. + * `value` - (Optional, List) Value of the metadata name. +* `description` - (Optional, String) Agent description. +* `name` - (Required, String) The name of the agent (must be unique, for an account). +* `resource_group` - (Required, String) The resource-group name for the agent. By default, agent will be registered in Default Resource Group. +* `schematics_location` - (Required, String) List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics. + * Constraints: Allowable values are: `us-south`, `us-east`, `eu-gb`, `eu-de`. +* `tags` - (Optional, List) Tags for the agent. +* `user_state` - (Optional, List) User defined status of the agent. +Nested scheme for **user_state**: + * `set_at` - (Computed, String) When the User who set the state of the Object. + * `set_by` - (Computed, String) Name of the User who set the state of the Object. + * `state` - (Optional, String) User-defined states * `enable` Agent is enabled by the user. * `disable` Agent is disbaled by the user. + * Constraints: Allowable values are: `enable`, `disable`. +* `version` - (Required, String) Agent version. Available Versions are 1.0.0-beta1, 1.0.0-beta2 + +## Attribute Reference + +In addition to all argument references listed, you can access the following attribute references after your resource is created. + +* `id` - The unique identifier of the schematics_agent. +* `agent_crn` - (String) The agent crn, obtained from the Schematics agent deployment configuration. +* `created_at` - (String) The agent creation date-time. +* `creation_by` - (String) The email address of an user who created the agent. +* `recent_deploy_job` - (List) Post-installations checks for Agent health. +Nested scheme for **recent_deploy_job**: + * `agent_id` - (String) Id of the agent. + * `agent_version` - (String) Agent version. + * `is_redeployed` - (Boolean) True, when the same version of the agent was redeployed. + * `job_id` - (String) Job Id. + * `log_url` - (String) URL to the full agent deployment job logs. + * `status_code` - (String) Final result of the agent deployment job. + * Constraints: Allowable values are: `pending`, `in-progress`, `success`, `failed`. + * `status_message` - (String) The outcome of the agent deployment job, in a formatted log string. + * `updated_at` - (String) The agent deploy job updation time. + * `updated_by` - (String) Email address of user who ran the agent deploy job. +* `recent_health_job` - (List) Agent health check. +Nested scheme for **recent_health_job**: + * `agent_id` - (String) Id of the agent. + * `agent_version` - (String) Agent version. + * `job_id` - (String) Job Id. + * `log_url` - (String) URL to the full health-check job logs. + * `status_code` - (String) Final result of the health-check job. + * Constraints: Allowable values are: `pending`, `in-progress`, `success`, `failed`. + * `status_message` - (String) The outcome of the health-check job, in a formatted log string. + * `updated_at` - (String) The agent health check job updation time. + * `updated_by` - (String) Email address of user who ran the agent health check job. +* `recent_prs_job` - (List) Run a pre-requisite scanner for deploying agent. +Nested scheme for **recent_prs_job**: + * `agent_id` - (String) Id of the agent. + * `agent_version` - (String) Agent version. + * `job_id` - (String) Job Id. + * `log_url` - (String) URL to the full pre-requisite scanner job logs. + * `status_code` - (String) Final result of the pre-requisite scanner job. + * Constraints: Allowable values are: `pending`, `in-progress`, `success`, `failed`. + * `status_message` - (String) The outcome of the pre-requisite scanner job, in a formatted log string. + * `updated_at` - (String) The agent prs job updation time. + * `updated_by` - (String) Email address of user who ran the agent prs job. +* `system_state` - (List) Computed state of the agent. +Nested scheme for **system_state**: + * `status_code` - (String) Agent Status. + * Constraints: Allowable values are: `error`, `normal`, `in_progress`, `pending`, `draft`. + * `status_message` - (String) The agent status message. +* `updated_at` - (String) The agent registration updation time. +* `updated_by` - (String) Email address of user who updated the agent registration. + +## Import + +You can import the `ibm_schematics_agent` resource by using `id`. The agent resource id. + +# Syntax +``` +$ terraform import ibm_schematics_agent.schematics_agent +``` diff --git a/website/docs/r/schematics_agent_deploy.html.markdown b/website/docs/r/schematics_agent_deploy.html.markdown new file mode 100644 index 0000000000..0089f2b684 --- /dev/null +++ b/website/docs/r/schematics_agent_deploy.html.markdown @@ -0,0 +1,59 @@ +--- +layout: "ibm" +page_title: "IBM : ibm_schematics_agent_deploy" +description: |- + Manages schematics_agent_deploy. +subcategory: "Schematics" +--- + +# ibm_schematics_agent_deploy + +~> **Beta:** This resource is in Beta, and is subject to change. + +Provides a resource for schematics_agent_deploy. This allows schematics_agent_deploy to be created, updated and deleted. + +## Example Usage + +```hcl +resource "ibm_schematics_agent_deploy" "schematics_agent_deploy_instance" { + agent_id = "agent_id" +} +``` + +## Argument Reference + +Review the argument reference that you can specify for your resource. + +* `agent_id` - (Required, Forces new resource, String) Agent ID to get the details of agent. +* `force` - (Optional, Boolean) Equivalent to -force options in the command line, default is false. + +## Attribute Reference + +In addition to all argument references listed, you can access the following attribute references after your resource is created. + +* `id` - The unique identifier of the schematics_agent_deploy. +* `agent_version` - (String) Agent version. +* `is_redeployed` - (Boolean) True, when the same version of the agent was redeployed. +* `job_id` - (String) Job Id. +* `log_url` - (String) URL to the full agent deployment job logs. +* `status_code` - (String) Final result of the agent deployment job. + * Constraints: Allowable values are: `pending`, `in-progress`, `success`, `failed`. +* `status_message` - (String) The outcome of the agent deployment job, in a formatted log string. +* `updated_at` - (String) The agent deploy job updation time. +* `updated_by` - (String) Email address of user who ran the agent deploy job. + +## Import + +You can import the `ibm_schematics_agent_deploy` resource by using `agent_id`. +The `agent_id` property can be formed from `agent_id`, and `agent_id` in the following format: + +``` +/ +``` +* `agent_id`: A string. Agent ID to get the details of agent. +* `agent_id`: A string. Agent ID to get the details of agent. + +# Syntax +``` +$ terraform import ibm_schematics_agent_deploy.schematics_agent_deploy / +``` diff --git a/website/docs/r/schematics_agent_health.html.markdown b/website/docs/r/schematics_agent_health.html.markdown new file mode 100644 index 0000000000..82ecf4f647 --- /dev/null +++ b/website/docs/r/schematics_agent_health.html.markdown @@ -0,0 +1,58 @@ +--- +layout: "ibm" +page_title: "IBM : ibm_schematics_agent_health" +description: |- + Manages schematics_agent_health. +subcategory: "Schematics" +--- + +# ibm_schematics_agent_health + +~> **Beta:** This resource is in Beta, and is subject to change. + +Provides a resource for schematics_agent_health. This allows schematics_agent_health to be created, updated and deleted. + +## Example Usage + +```hcl +resource "ibm_schematics_agent_health" "schematics_agent_health_instance" { + agent_id = "agent_id" +} +``` + +## Argument Reference + +Review the argument reference that you can specify for your resource. + +* `agent_id` - (Required, Forces new resource, String) Agent ID to get the details of agent. +* `force` - (Optional, Boolean) Equivalent to -force options in the command line, default is false. + +## Attribute Reference + +In addition to all argument references listed, you can access the following attribute references after your resource is created. + +* `id` - The unique identifier of the schematics_agent_health. +* `agent_version` - (String) Agent version. +* `job_id` - (String) Job Id. +* `log_url` - (String) URL to the full health-check job logs. +* `status_code` - (String) Final result of the health-check job. + * Constraints: Allowable values are: `pending`, `in-progress`, `success`, `failed`. +* `status_message` - (String) The outcome of the health-check job, in a formatted log string. +* `updated_at` - (String) The agent health check job updation time. +* `updated_by` - (String) Email address of user who ran the agent health check job. + +## Import + +You can import the `ibm_schematics_agent_health` resource by using `agent_id`. +The `agent_id` property can be formed from `agent_id`, and `agent_id` in the following format: + +``` +/ +``` +* `agent_id`: A string. Agent ID to get the details of agent. +* `agent_id`: A string. Agent ID to get the details of agent. + +# Syntax +``` +$ terraform import ibm_schematics_agent_health.schematics_agent_health / +``` diff --git a/website/docs/r/schematics_agent_prs.html.markdown b/website/docs/r/schematics_agent_prs.html.markdown new file mode 100644 index 0000000000..00d3dce5f7 --- /dev/null +++ b/website/docs/r/schematics_agent_prs.html.markdown @@ -0,0 +1,58 @@ +--- +layout: "ibm" +page_title: "IBM : ibm_schematics_agent_prs" +description: |- + Manages schematics_agent_prs. +subcategory: "Schematics" +--- + +# ibm_schematics_agent_prs + +~> **Beta:** This resource is in Beta, and is subject to change. + +Provides a resource for schematics_agent_prs. This allows schematics_agent_prs to be created, updated and deleted. + +## Example Usage + +```hcl +resource "ibm_schematics_agent_prs" "schematics_agent_prs_instance" { + agent_id = "agent_id" +} +``` + +## Argument Reference + +Review the argument reference that you can specify for your resource. + +* `agent_id` - (Required, Forces new resource, String) Agent ID to get the details of agent. +* `force` - (Optional, Boolean) Equivalent to -force options in the command line, default is false. + +## Attribute Reference + +In addition to all argument references listed, you can access the following attribute references after your resource is created. + +* `id` - The unique identifier of the schematics_agent_prs. +* `agent_version` - (String) Agent version. +* `job_id` - (String) Job Id. +* `log_url` - (String) URL to the full pre-requisite scanner job logs. +* `status_code` - (String) Final result of the pre-requisite scanner job. + * Constraints: Allowable values are: `pending`, `in-progress`, `success`, `failed`. +* `status_message` - (String) The outcome of the pre-requisite scanner job, in a formatted log string. +* `updated_at` - (String) The agent prs job updation time. +* `updated_by` - (String) Email address of user who ran the agent prs job. + +## Import + +You can import the `ibm_schematics_agent_prs` resource by using `agent_id`. +The `agent_id` property can be formed from `agent_id`, and `agent_id` in the following format: + +``` +/ +``` +* `agent_id`: A string. Agent ID to get the details of agent. +* `agent_id`: A string. Agent ID to get the details of agent. + +# Syntax +``` +$ terraform import ibm_schematics_agent_prs.schematics_agent_prs / +``` diff --git a/website/docs/r/schematics_policy.html.markdown b/website/docs/r/schematics_policy.html.markdown new file mode 100644 index 0000000000..b1618ba389 --- /dev/null +++ b/website/docs/r/schematics_policy.html.markdown @@ -0,0 +1,126 @@ +--- +layout: "ibm" +page_title: "IBM : ibm_schematics_policy" +description: |- + Manages schematics_policy. +subcategory: "Schematics" +--- + +# ibm_schematics_policy + +~> **Beta:** This resource is in Beta, and is subject to change. + +Provides a resource for schematics_policy. This allows schematics_policy to be created, updated and deleted. + +## Example Usage + +```hcl +resource "ibm_schematics_policy" "schematics_policy_instance" { + description = "Policy for job execution of secured workspaces on agent1" + name = "Agent1-DevWS" + parameter { + agent_assignment_policy_parameter { + selector_kind = "ids" + selector_ids = [ "selector_ids" ] + selector_scope { + kind = "workspace" + tags = [ "tags" ] + resource_groups = [ "resource_groups" ] + locations = [ "us-south" ] + } + } + } + resource_group = "Default" + scoped_resources { + kind = "workspace" + id = "id" + } + state { + state = "draft" + set_by = "set_by" + set_at = "2021-01-31T09:44:12Z" + } + target { + selector_kind = "ids" + selector_ids = [ "selector_ids" ] + selector_scope { + kind = "workspace" + tags = [ "tags" ] + resource_groups = [ "resource_groups" ] + locations = [ "us-south" ] + } + } +} +``` + +## Argument Reference + +Review the argument reference that you can specify for your resource. + +* `name` - (Required, String) Name of Schematics customization policy. +* `description` - (Optional, String) The description of Schematics customization policy. +* `kind` - (Optional, String) Policy kind or categories for managing and deriving policy decision * `agent_assignment_policy` Agent assignment policy for job execution. + * Constraints: Allowable values are: `agent_assignment_policy`. +* `location` - (Optional, String) List of locations supported by IBM Cloud Schematics service. While creating your workspace or action, choose the right region, since it cannot be changed. Note, this does not limit the location of the IBM Cloud resources, provisioned using Schematics. + * Constraints: Allowable values are: `us-south`, `us-east`, `eu-gb`, `eu-de`. +* `parameter` - (Optional, List) The parameter to tune the Schematics policy. +Nested scheme for **parameter**: + * `agent_assignment_policy_parameter` - (Optional, List) Parameters for the `agent_assignment_policy`. + Nested scheme for **agent_assignment_policy_parameter**: + * `selector_ids` - (Optional, List) The static selectors of schematics object ids (workspace, action or blueprint) for the Schematics policy. + * `selector_kind` - (Optional, String) Types of schematics object selector. + * Constraints: Allowable values are: `ids`, `scoped`. + * `selector_scope` - (Optional, List) The selectors to dynamically list of schematics object ids (workspace, action or blueprint) for the Schematics policy. + Nested scheme for **selector_scope**: + * `kind` - (Optional, String) Name of the Schematics automation resource. + * Constraints: Allowable values are: `workspace`, `action`, `system`, `environment`, `blueprint`. + * `locations` - (Optional, List) The location based selector. + * Constraints: Allowable list items are: `us-south`, `us-east`, `eu-gb`, `eu-de`. + * `resource_groups` - (Optional, List) The resource group based selector. + * `tags` - (Optional, List) The tag based selector. +* `resource_group` - (Optional, String) The resource group name for the policy. By default, Policy will be created in `default` Resource Group. +* `scoped_resources` - (Optional, List) List of scoped Schematics resources targeted by the policy. +Nested scheme for **scoped_resources**: + * `id` - (Optional, String) Schematics resource Id. + * `kind` - (Optional, String) Name of the Schematics automation resource. + * Constraints: Allowable values are: `workspace`, `action`, `system`, `environment`, `blueprint`. +* `state` - (Optional, List) User defined status of the Schematics object. +Nested scheme for **state**: + * `set_at` - (Computed, String) When the User who set the state of the Object. + * `set_by` - (Computed, String) Name of the User who set the state of the Object. + * `state` - (Optional, String) User-defined states * `draft` Object can be modified; can be used by Jobs run by the author, during execution * `live` Object can be modified; can be used by Jobs during execution * `locked` Object cannot be modified; can be used by Jobs during execution * `disable` Object can be modified. cannot be used by Jobs during execution. + * Constraints: Allowable values are: `draft`, `live`, `locked`, `disable`. +* `tags` - (Optional, List) Tags for the Schematics customization policy. +* `target` - (Optional, List) The objects for the Schematics policy. +Nested scheme for **target**: + * `selector_ids` - (Optional, List) Static selectors of schematics object ids (agent, workspace, action or blueprint) for the Schematics policy. + * `selector_kind` - (Optional, String) Types of schematics object selector. + * Constraints: Allowable values are: `ids`, `scoped`. + * `selector_scope` - (Optional, List) Selectors to dynamically list of schematics object ids (agent, workspace, action or blueprint) for the Schematics policy. + Nested scheme for **selector_scope**: + * `kind` - (Optional, String) Name of the Schematics automation resource. + * Constraints: Allowable values are: `workspace`, `action`, `system`, `environment`, `blueprint`. + * `locations` - (Optional, List) The location based selector. + * Constraints: Allowable list items are: `us-south`, `us-east`, `eu-gb`, `eu-de`. + * `resource_groups` - (Optional, List) The resource group based selector. + * `tags` - (Optional, List) The tag based selector. + +## Attribute Reference + +In addition to all argument references listed, you can access the following attribute references after your resource is created. + +* `id` - The unique identifier of the schematics_policy. +* `account` - (String) The Account id. +* `created_at` - (String) The policy creation time. +* `created_by` - (String) The user who created the policy. +* `crn` - (String) The policy CRN. +* `updated_at` - (String) The policy updation time. + +## Import + +You can import the `ibm_schematics_policy` resource by using `id`. The system generated policy Id. + +# Syntax +``` +$ terraform import ibm_schematics_policy.schematics_policy +``` diff --git a/website/docs/r/schematics_workspace.html.markdown b/website/docs/r/schematics_workspace.html.markdown index 69d51cd954..4e3a390a4c 100644 --- a/website/docs/r/schematics_workspace.html.markdown +++ b/website/docs/r/schematics_workspace.html.markdown @@ -67,7 +67,7 @@ Nested scheme for **shared_data**: Nested scheme for **template_values_metadata**: * `aliases` - (Optional, List) The list of aliases for the variable name. * `cloud_data_type` - (Optional, String) Cloud data type of the variable. eg. resource_group_id, region, vpc_id. - * `default_value` - (Optional, String) Default value for the variable only if the override value is not specified. + * `default` - (Optional, String) Default value for the variable only if the override value is not specified. * `description` - (Optional, String) The description of the meta data. * `group_by` - (Optional, String) The display name of the group this variable belongs to. * `hidden` - (Optional, Boolean) If **true**, the variable is not displayed on UI or Command line. @@ -79,6 +79,7 @@ Nested scheme for **template_values_metadata**: * `max_value` - (Optional, Integer) The maximum value of the variable. Applicable for the integer type. * `min_length` - (Optional, Integer) The minimum length of the variable value. Applicable for the string type. * `min_value` - (Optional, Integer) The minimum value of the variable. Applicable for the integer type. + * `name` - (String) Name of the variable. * `options` - (Optional, List) The list of possible values for this variable. If type is **integer** or **date**, then the array of string is converted to array of integers or date during the runtime. * `position` - (Optional, Integer) The relative position of this variable in a list. * `required` - (Optional, Boolean) If the variable required?. diff --git a/website/docs/r/sm_arbitrary_secret.html.markdown b/website/docs/r/sm_arbitrary_secret.html.markdown index 0a5d5ae144..aadaef107d 100644 --- a/website/docs/r/sm_arbitrary_secret.html.markdown +++ b/website/docs/r/sm_arbitrary_secret.html.markdown @@ -14,6 +14,7 @@ Provides a resource for ArbitrarySecret. This allows ArbitrarySecret to be creat ```hcl resource "ibm_sm_arbitrary_secret" "sm_arbitrary_secret" { + name = "secret-name" instance_id = ibm_resource_instance.sm_instance.guid region = "us-south" custom_metadata = {"key":"value"} diff --git a/website/docs/r/trusted_profile_template.html.markdown b/website/docs/r/trusted_profile_template.html.markdown index c46e543e85..da47c9a24a 100644 --- a/website/docs/r/trusted_profile_template.html.markdown +++ b/website/docs/r/trusted_profile_template.html.markdown @@ -2,7 +2,7 @@ layout: "ibm" page_title: "IBM : ibm_trusted_profile_template" description: |- - Manages IAM trusted profile templates + Manages IAM trusted profile templates subcategory: "Identity & Access Management (IAM)" ---