diff --git a/.secrets.baseline b/.secrets.baseline index 62f6501cfd..79ba34d3a3 100644 --- a/.secrets.baseline +++ b/.secrets.baseline @@ -3,7 +3,7 @@ "files": "go.mod|go.sum|.*.map|^.secrets.baseline$", "lines": null }, - "generated_at": "2024-05-09T17:26:03Z", + "generated_at": "2024-05-20T09:17:45Z", "plugins_used": [ { "name": "ArtifactoryDetector" @@ -383,6 +383,14 @@ "line_number": 428, "type": "Secret Keyword", "verified_result": null + }, + { + "hashed_secret": "4397a44a17c075e20d9ece07c77dc3b9d5dfee5f", + "is_secret": false, + "is_verified": false, + "line_number": 771, + "type": "Hex High Entropy String", + "verified_result": null } ], "examples/ibm-cloudant-database/modules/instance/README.md": [ @@ -742,7 +750,7 @@ "hashed_secret": "731438016c5ab94431f61820f35e3ae5f8ad6004", "is_secret": false, "is_verified": false, - "line_number": 460, + "line_number": 473, "type": "Secret Keyword", "verified_result": null }, @@ -750,7 +758,7 @@ "hashed_secret": "12da2e35d6b50c902c014f1ab9e3032650368df7", "is_secret": false, "is_verified": false, - "line_number": 466, + "line_number": 479, "type": "Secret Keyword", "verified_result": null }, @@ -758,7 +766,7 @@ "hashed_secret": "813274ccae5b6b509379ab56982d862f7b5969b6", "is_secret": false, "is_verified": false, - "line_number": 1218, + "line_number": 1231, "type": "Base64 High Entropy String", "verified_result": null } @@ -768,7 +776,7 @@ "hashed_secret": "9184b0c38101bf24d78b2bb0d044deb1d33696fc", "is_secret": false, "is_verified": false, - "line_number": 132, + "line_number": 134, "type": "Secret Keyword", "verified_result": null }, @@ -776,7 +784,7 @@ "hashed_secret": "c427f185ddcb2440be9b77c8e45f1cd487a2e790", "is_secret": false, "is_verified": false, - "line_number": 1445, + "line_number": 1471, "type": "Base64 High Entropy String", "verified_result": null }, @@ -784,7 +792,7 @@ "hashed_secret": "1f7e33de15e22de9d2eaf502df284ed25ca40018", "is_secret": false, "is_verified": false, - "line_number": 1512, + "line_number": 1538, "type": "Secret Keyword", "verified_result": null }, @@ -792,7 +800,7 @@ "hashed_secret": "1f614c2eb6b3da22d89bd1b9fd47d7cb7c8fc670", "is_secret": false, "is_verified": false, - "line_number": 3339, + "line_number": 3412, "type": "Secret Keyword", "verified_result": null }, @@ -800,7 +808,7 @@ "hashed_secret": "7abfce65b8504403afc25c9790f358d513dfbcc6", "is_secret": false, "is_verified": false, - "line_number": 3352, + "line_number": 3425, "type": "Secret Keyword", "verified_result": null }, @@ -808,7 +816,7 @@ "hashed_secret": "0c2d85bf9a9b1579b16f220a4ea8c3d62b2e24b1", "is_secret": false, "is_verified": false, - "line_number": 3393, + "line_number": 3466, "type": "Secret Keyword", "verified_result": null } @@ -836,7 +844,7 @@ "hashed_secret": "1a0334cfa65f4be58b9d914b8e96e9d9478bfbac", "is_secret": false, "is_verified": false, - "line_number": 3277, + "line_number": 3290, "type": "Secret Keyword", "verified_result": null } @@ -846,7 +854,7 @@ "hashed_secret": "c8b6f5ef11b9223ac35a5663975a466ebe7ebba9", "is_secret": false, "is_verified": false, - "line_number": 2042, + "line_number": 2117, "type": "Secret Keyword", "verified_result": null }, @@ -854,7 +862,7 @@ "hashed_secret": "8abf4899c01104241510ba87685ad4de76b0c437", "is_secret": false, "is_verified": false, - "line_number": 2048, + "line_number": 2123, "type": "Secret Keyword", "verified_result": null } @@ -1467,6 +1475,16 @@ "verified_result": null } ], + "ibm/service/cis/resource_ibm_cis_ruleset_rule_test.go": [ + { + "hashed_secret": "4397a44a17c075e20d9ece07c77dc3b9d5dfee5f", + "is_secret": false, + "is_verified": false, + "line_number": 37, + "type": "Hex High Entropy String", + "verified_result": null + } + ], "ibm/service/cis/resource_ibm_cis_waf_group_test.go": [ { "hashed_secret": "ece6e4a51cf5a18845f07c95832586a96d5fcf4c", @@ -2519,6 +2537,34 @@ "verified_result": null } ], + "ibm/service/eventnotification/resource_ibm_en_slack_template_test.go": [ + { + "hashed_secret": "446796e8cbb931d00b23f98a695cb338832c2590", + "is_secret": false, + "is_verified": false, + "line_number": 75, + "type": "Base64 High Entropy String", + "verified_result": null + } + ], + "ibm/service/eventnotification/resource_ibm_en_smtp_user.go": [ + { + "hashed_secret": "3046d9f6cfaaeea6eed9bb7a4ab010fe49b0cfd4", + "is_secret": false, + "is_verified": false, + "line_number": 62, + "type": "Secret Keyword", + "verified_result": null + }, + { + "hashed_secret": "b732fb611fd46a38e8667f9972e0cde777fbe37f", + "is_secret": false, + "is_verified": false, + "line_number": 129, + "type": "Secret Keyword", + "verified_result": null + } + ], "ibm/service/eventstreams/resource_ibm_event_streams_topic.go": [ { "hashed_secret": "b02fa7fd7ca08b5dc86c2548e40f8a21171ef977", @@ -2764,7 +2810,7 @@ "hashed_secret": "568dddb6103d4279bdf89c42a203e0f1ebbd3be3", "is_secret": false, "is_verified": false, - "line_number": 24, + "line_number": 23, "type": "Base64 High Entropy String", "verified_result": null } @@ -2844,7 +2890,7 @@ "hashed_secret": "3046d9f6cfaaeea6eed9bb7a4ab010fe49b0cfd4", "is_secret": false, "is_verified": false, - "line_number": 491, + "line_number": 489, "type": "Secret Keyword", "verified_result": null }, @@ -2852,7 +2898,7 @@ "hashed_secret": "cf82ffec7623dc7b6f0931140a5b5bae30f5cc69", "is_secret": false, "is_verified": false, - "line_number": 1082, + "line_number": 1063, "type": "Secret Keyword", "verified_result": null } @@ -2862,7 +2908,7 @@ "hashed_secret": "347cd9c53ff77d41a7b22aa56c7b4efaf54658e3", "is_secret": false, "is_verified": false, - "line_number": 61, + "line_number": 65, "type": "Secret Keyword", "verified_result": null } @@ -2872,7 +2918,7 @@ "hashed_secret": "3046d9f6cfaaeea6eed9bb7a4ab010fe49b0cfd4", "is_secret": false, "is_verified": false, - "line_number": 124, + "line_number": 128, "type": "Secret Keyword", "verified_result": null }, @@ -2880,7 +2926,7 @@ "hashed_secret": "cf82ffec7623dc7b6f0931140a5b5bae30f5cc69", "is_secret": false, "is_verified": false, - "line_number": 311, + "line_number": 308, "type": "Secret Keyword", "verified_result": null } @@ -2890,7 +2936,7 @@ "hashed_secret": "347cd9c53ff77d41a7b22aa56c7b4efaf54658e3", "is_secret": false, "is_verified": false, - "line_number": 57, + "line_number": 61, "type": "Secret Keyword", "verified_result": null } @@ -2900,7 +2946,7 @@ "hashed_secret": "3046d9f6cfaaeea6eed9bb7a4ab010fe49b0cfd4", "is_secret": false, "is_verified": false, - "line_number": 277, + "line_number": 281, "type": "Secret Keyword", "verified_result": null }, @@ -2908,7 +2954,7 @@ "hashed_secret": "cf82ffec7623dc7b6f0931140a5b5bae30f5cc69", "is_secret": false, "is_verified": false, - "line_number": 1483, + "line_number": 1507, "type": "Secret Keyword", "verified_result": null } @@ -2928,7 +2974,7 @@ "hashed_secret": "3046d9f6cfaaeea6eed9bb7a4ab010fe49b0cfd4", "is_secret": false, "is_verified": false, - "line_number": 73, + "line_number": 77, "type": "Secret Keyword", "verified_result": null }, @@ -2936,7 +2982,7 @@ "hashed_secret": "cf82ffec7623dc7b6f0931140a5b5bae30f5cc69", "is_secret": false, "is_verified": false, - "line_number": 512, + "line_number": 520, "type": "Secret Keyword", "verified_result": null } @@ -3806,7 +3852,7 @@ "hashed_secret": "5fb0fa884132a8724a8d7cba55853737e442adbd", "is_secret": false, "is_verified": false, - "line_number": 119094, + "line_number": 119093, "type": "Secret Keyword", "verified_result": null }, @@ -3814,7 +3860,7 @@ "hashed_secret": "1e5c2f367f02e47a8c160cda1cd9d91decbac441", "is_secret": false, "is_verified": false, - "line_number": 151302, + "line_number": 151301, "type": "Secret Keyword", "verified_result": null } @@ -3829,6 +3875,16 @@ "verified_result": null } ], + "website/docs/d/cis_ruleset_rules_by_tag.html.markdown": [ + { + "hashed_secret": "4397a44a17c075e20d9ece07c77dc3b9d5dfee5f", + "is_secret": false, + "is_verified": false, + "line_number": 18, + "type": "Hex High Entropy String", + "verified_result": null + } + ], "website/docs/d/cis_waf_groups.html.markdown": [ { "hashed_secret": "ece6e4a51cf5a18845f07c95832586a96d5fcf4c", @@ -4183,6 +4239,26 @@ "verified_result": null } ], + "website/docs/r/cis_ruleset.html.markdown": [ + { + "hashed_secret": "4397a44a17c075e20d9ece07c77dc3b9d5dfee5f", + "is_secret": false, + "is_verified": false, + "line_number": 22, + "type": "Hex High Entropy String", + "verified_result": null + } + ], + "website/docs/r/cis_ruleset_rule.html.markdown": [ + { + "hashed_secret": "4397a44a17c075e20d9ece07c77dc3b9d5dfee5f", + "is_secret": false, + "is_verified": false, + "line_number": 19, + "type": "Hex High Entropy String", + "verified_result": null + } + ], "website/docs/r/cis_waf_group.html.markdown": [ { "hashed_secret": "ece6e4a51cf5a18845f07c95832586a96d5fcf4c", @@ -4393,6 +4469,16 @@ "verified_result": null } ], + "website/docs/r/en_slack_template.html.markdown": [ + { + "hashed_secret": "446796e8cbb931d00b23f98a695cb338832c2590", + "is_secret": false, + "is_verified": false, + "line_number": 22, + "type": "Base64 High Entropy String", + "verified_result": null + } + ], "website/docs/r/event_streams_topic.html.markdown": [ { "hashed_secret": "fd8bc0cb6ce2ef2fe2934f6d2d1ce1d648503740", diff --git a/CHANGELOG.md b/CHANGELOG.md index bffb19acf2..17e4bc79d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,105 @@ -# 1.66.0 (May 18, 2024) + +# 1.66.0 (May 31, 2024) + +Features +* Support Cloud Logs + - **Datasources** + - ibm_logs_alert + - ibm_logs_alerts + - ibm_logs_rule_group + - ibm_logs_rule_groups + - ibm_logs_policy + - ibm_logs_policies + - ibm_logs_dashboard + - ibm_logs_e2m + - ibm_logs_e2ms + - ibm_logs_outgoing_webhook + - ibm_logs_outgoing_webhooks + - ibm_logs_view_folder + - ibm_logs_view_folders + - ibm_logs_view + - ibm_logs_views + - **Resources** + - ibm_logs_alert + - ibm_logs_rule_group + - ibm_logs_policy + - ibm_logs_dashboard + - ibm_logs_e2m + - ibm_logs_outgoing_webhook + - ibm_logs_view_folder + - ibm_logs_view +* Support Event Notification + - **Datasources** + - ibm_en_smtp_configuration + - ibm_en_smtp_configurations + - ibm_en_smtp_user + - ibm_en_smtp_users + - ibm_en_slack_template + - **Resources** + - ibm_en_smtp_configuration + - ibm_en_smtp_user + - ibm_en_slack_template + - ibm_en_smtp_setting +* Support CIS + - **Datasources** + - ibm_cis_rulesets + - ibm_cis_ruleset_versions + - ibm_cis_ruleset_rules_by_tag + - ibm_cis_ruleset_entrypoint_versions + - **Resources** + - ibm_cis_ruleset + - ibm_cis_ruleset_version_detach + - ibm_cis_ruleset_rule + - ibm_cis_ruleset_entrypoint_version +* Support KMS + - **Datasources** + - ibm_kms_kmip_adapter + - ibm_kms_kmip_adapters + - ibm_kms_kmip_client_cert + - ibm_kms_kmip_client_certs + - ibm_kms_kmip_object + - ibm_kms_kmip_objects + - **Resources** + - ibm_kms_kmip_adapter + - ibm_kms_kmip_client_cert +* Support IAM + - **Resources** + - ibm_iam_policy_assignment + + +Enhancements +* Add empty validation for console languages ([5336](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/5336)) +* Lower timeout for placement-group add/delete to 10 minutes ([5335](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/5335)) +* align Projects terraform provider to latest API spec ([5293](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/5293)) +* feat(Catalog Management): support plan_id on offering instances ([5337](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/5337)) +* remove workerpool related fields from vpc cluster Read ([5287](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/5287)) +* Add Fault Attribute to Pi_Instance ([5344](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/5344)) +* Support outbound-traffic-protection ([5268](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/5268)) +* scc fix: ability to add profile_version during create ([5332](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/5332)) +* update documentation with instructions to provide public access to bucket ([1268](https://github.com/IBM-Cloud/terraform-provider-ibm/issues/1268)) +* Docfix: name change Activity Tracker to Activity Tracker Event Routing ([5312](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/5312)) +* wait for kms apply for cluster provisioning ([5383](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/5383)) +* ContinuousTargetOccurence updates ([5393](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/5393)) +* Restrict to old multitenant ([5395](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/5395)) +* Update Usage Reports terraform code to support new error handling ([5365](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/5365)) +* regenerate code for projects ([5375](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/5375)) +* ICD: Add switchover warning for Old Multitenant ([5395](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/5395)) +* Add support for role 'NONE' ([5400](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/5400)) + +BugFixes +* Fix snapshot markdown ([5331](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/5331)) +* Resource ibm_scc_rule creation issue ([5327](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/5327)) +* Enterprise: Added IAM attributes for reference in enterprise markdown ([5334](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/5334)) +* fix(security-group-rule): Wrong error message when remote value wrong ([5348](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/5348)) +* updating docs for SCC profile attachment notifications ([5357](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/5357)) +* updated the docs for vpc security group rule ([5360](https://github.com/IBM-Cloud/terraform-provider-ibm/pull/5360)) +* description property of cis_filter and cis_firewall_rule bugged ([5378](https://github.com/IBM-Cloud/terraform-provider-ibm/issues/5378)) +* SM imported cert bug fix ([5392](https://github.com/IBM-Cloud/terraform-provider-ibm/issues/5392)) +* fix(tg): fixed global change issue ([5366](https://github.com/IBM-Cloud/terraform-provider-ibm/issues/5366)) +* fix instance policies to set endpoint type when api url specifies so ([5394](https://github.com/IBM-Cloud/terraform-provider-ibm/issues/5394)) + +# 1.66.0-beta0 (May 18, 2024) Features * Support Cloud Logs diff --git a/examples/ibm-atracker/README.md b/examples/ibm-atracker/README.md index 6e2d771fb2..e0c04bbd11 100644 --- a/examples/ibm-atracker/README.md +++ b/examples/ibm-atracker/README.md @@ -4,9 +4,9 @@ This example illustrates how to use the AtrackerV2 The following types of resources are supported: -* Activity Tracker Target -* Activity Tracker Route -* Activity Tracker Settings +* Activity Tracker Event Routing Target +* Activity Tracker Event Routing Route +* Activity Tracker Event Routing Settings ## Usage diff --git a/examples/ibm-resource-instance/README.md b/examples/ibm-resource-instance/README.md index cd23ce55e1..be2b01d40c 100644 --- a/examples/ibm-resource-instance/README.md +++ b/examples/ibm-resource-instance/README.md @@ -1,6 +1,6 @@ # IBM Cloud resource instance example -The following example creates an instance of IBM Cloud resource. Instance could be of any resource, for example Cloud Object Storage, Activity Tracker, metrics monitor etc. By specifying the right value to argument `service`, we can provision respective resource instance. +The following example creates an instance of IBM Cloud resource. Instance could be of any resource, for example Cloud Object Storage, Activity Tracker Event Routing, metrics monitor etc. By specifying the right value to argument `service`, we can provision respective resource instance. Document reference https://servicedata-application-2f.za7agtyv6vj.us-east.codeengine.appdomain.cloud/ Following types of resources are supported: diff --git a/examples/ibm-usage-reports/README.md b/examples/ibm-usage-reports/README.md index d588bda6dd..225c2c272c 100644 --- a/examples/ibm-usage-reports/README.md +++ b/examples/ibm-usage-reports/README.md @@ -1,10 +1,12 @@ -# Example for UsageReportsV4 +# Examples for Usage Reports -This example illustrates how to use the UsageReportsV4 +These examples illustrate how to use the resources and data sources associated with Usage Reports. -The following types of resources are supported: +The following resources are supported: +* ibm_billing_report_snapshot -* billing_report_snapshot +The following data sources are supported: +* ibm_billing_snapshot_list ## Usage @@ -18,14 +20,12 @@ $ terraform apply Run `terraform destroy` when you don't need these resources. +## Usage Reports resources -## UsageReportsV4 resources - -billing_report_snapshot resource: +### Resource: ibm_billing_report_snapshot ```hcl -resource "billing_report_snapshot" "billing_report_snapshot_instance" { - account_id = var.billing_report_snapshot_account_id +resource "ibm_billing_report_snapshot" "billing_report_snapshot_instance" { interval = var.billing_report_snapshot_interval versioning = var.billing_report_snapshot_versioning report_types = var.billing_report_snapshot_report_types @@ -35,19 +35,60 @@ resource "billing_report_snapshot" "billing_report_snapshot_instance" { } ``` -## UsageReportsV4 data sources +#### Inputs + +| Name | Description | Type | Required | +|------|-------------|------|---------| +| ibmcloud\_api\_key | IBM Cloud API key | `string` | true | +| interval | Frequency of taking the snapshot of the billing reports. | `string` | true | +| versioning | A new version of report is created or the existing report version is overwritten with every update. | `string` | false | +| report_types | The type of billing reports to take snapshot of. Possible values are [account_summary, enterprise_summary, account_resource_instance_usage]. | `list(string)` | false | +| cos_reports_folder | The billing reports root folder to store the billing reports snapshots. Defaults to "IBMCloud-Billing-Reports". | `string` | false | +| cos_bucket | The name of the COS bucket to store the snapshot of the billing reports. | `string` | true | +| cos_location | Region of the COS instance. | `string` | true | -billing_snapshot_list data source: +#### Outputs + +| Name | Description | +|------|-------------| +| state | Status of the billing snapshot configuration. Possible values are [enabled, disabled]. | +| account_type | Type of account. Possible values are [enterprise, account]. | +| compression | Compression format of the snapshot report. | +| content_type | Type of content stored in snapshot report. | +| cos_endpoint | The endpoint of the COS instance. | +| created_at | Timestamp in milliseconds when the snapshot configuration was created. | +| last_updated_at | Timestamp in milliseconds when the snapshot configuration was last updated. | +| history | List of previous versions of the snapshot configurations. | + +## Usage Reports data sources + +### Data source: ibm_billing_snapshot_list ```hcl -data "billing_snapshot_list" "billing_snapshot_list_instance" { - account_id = var.billing_snapshot_list_account_id +data "ibm_billing_snapshot_list" "billing_snapshot_list_instance" { month = var.billing_snapshot_list_month date_from = var.billing_snapshot_list_date_from date_to = var.billing_snapshot_list_date_to + limit = var.billing_snapshot_list_limit } ``` +#### Inputs + +| Name | Description | Type | Required | +|------|-------------|------|---------| +| month | The month for which billing report snapshot is requested. Format is yyyy-mm. | `string` | true | +| date_from | Timestamp in milliseconds for which billing report snapshot is requested. | `number` | false | +| date_to | Timestamp in milliseconds for which billing report snapshot is requested. | `number` | false | +| limit | Number of usage records returned. The default value is 30. Maximum value is 200. | `number` | false | + +#### Outputs + +| Name | Description | +|------|-------------| +| count | Number of total snapshots. | +| snapshots | | + ## Assumptions 1. TODO @@ -67,27 +108,3 @@ data "billing_snapshot_list" "billing_snapshot_list_instance" { | Name | Version | |------|---------| | ibm | 1.13.1 | - -## Inputs - -| Name | Description | Type | Required | -|------|-------------|------|---------| -| ibmcloud\_api\_key | IBM Cloud API key | `string` | true | -| account_id | Account ID for which billing report snapshot is configured. | `string` | true | -| interval | Frequency of taking the snapshot of the billing reports. | `string` | true | -| versioning | A new version of report is created or the existing report version is overwritten with every update. | `string` | false | -| report_types | The type of billing reports to take snapshot of. Possible values are [account_summary, enterprise_summary, account_resource_instance_usage]. | `list(string)` | false | -| cos_reports_folder | The billing reports root folder to store the billing reports snapshots. Defaults to "IBMCloud-Billing-Reports". | `string` | false | -| cos_bucket | The name of the COS bucket to store the snapshot of the billing reports. | `string` | true | -| cos_location | Region of the COS instance. | `string` | true | -| account_id | Account ID for which the billing report snapshot is requested. | `string` | true | -| month | The month for which billing report snapshot is requested. Format is yyyy-mm. | `string` | true | -| date_from | Timestamp in milliseconds for which billing report snapshot is requested. | `number` | false | -| date_to | Timestamp in milliseconds for which billing report snapshot is requested. | `number` | false | - -## Outputs - -| Name | Description | -|------|-------------| -| billing_report_snapshot | billing_report_snapshot object | -| billing_snapshot_list | billing_snapshot_list object | diff --git a/examples/ibm-usage-reports/variables.tf b/examples/ibm-usage-reports/variables.tf index d8c62e6b2f..468ff1724d 100644 --- a/examples/ibm-usage-reports/variables.tf +++ b/examples/ibm-usage-reports/variables.tf @@ -56,3 +56,8 @@ variable "billing_snapshot_list_date_to" { type = number default = 1675987200000 } +variable "billing_snapshot_list_limit" { + description = "Number of usage records returned. The default value is 30. Maximum value is 200." + type = number + default = 0 +} diff --git a/go.mod b/go.mod index d82a3333d8..ea3499138e 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( github.com/IBM/keyprotect-go-client v0.14.0 github.com/IBM/networking-go-sdk v0.46.1 github.com/IBM/platform-services-go-sdk v0.62.11 - github.com/IBM/project-go-sdk v0.3.0 + github.com/IBM/project-go-sdk v0.3.2 github.com/IBM/push-notifications-go-sdk v0.0.0-20210310100607-5790b96c47f5 github.com/IBM/scc-go-sdk/v5 v5.1.6 github.com/IBM/schematics-go-sdk v0.2.3 @@ -77,6 +77,7 @@ require ( require ( cloud.google.com/go/kms v1.10.1 // indirect cloud.google.com/go/monitoring v1.13.0 // indirect + github.com/Bowery/prompt v0.0.0-20190916142128-fa8279994f75 // indirect github.com/Logicalis/asn1 v0.0.0-20190312173541-d60463189a56 // indirect github.com/PromonLogicalis/asn1 v0.0.0-20190312173541-d60463189a56 // indirect github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 // indirect @@ -95,6 +96,7 @@ require ( github.com/coreos/pkg v0.0.0-20220810130054-c7d1c02cb6cf // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dchest/bcrypt_pbkdf v0.0.0-20150205184540-83f37f9c154a // indirect + github.com/dchest/safefile v0.0.0-20151022103144-855e8d98f185 // indirect github.com/dgrijalva/jwt-go v3.2.0+incompatible // indirect github.com/eapache/go-resiliency v1.4.0 // indirect github.com/eapache/go-xerial-snappy v0.0.0-20230731223053-c322873962e3 // indirect @@ -127,6 +129,7 @@ require ( github.com/google/gnostic v0.6.9 // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/google/gofuzz v1.2.0 // indirect + github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-checkpoint v0.5.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect @@ -167,6 +170,7 @@ require ( github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect + github.com/kardianos/govendor v1.0.9 // 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.4.0 // indirect @@ -178,6 +182,8 @@ require ( github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect github.com/mitchellh/go-wordwrap v1.0.0 // indirect + github.com/mitchellh/gox v1.0.1 // indirect + github.com/mitchellh/iochan v1.0.0 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/moby/spdystream v0.2.0 // indirect @@ -218,6 +224,9 @@ require ( golang.org/x/term v0.19.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.3.0 // indirect + golang.org/x/tools v0.16.1 // indirect + golang.org/x/tools/cmd/cover v0.1.0-deprecated // indirect + golang.org/x/tools/go/vcs v0.1.0-deprecated // indirect 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 @@ -241,6 +250,7 @@ replace github.com/dgrijalva/jwt-go v3.2.0+incompatible => github.com/golang-jwt // add sdk changes. replace github.com/portworx/sched-ops v0.0.0-20200831185134-3e8010dc7056 => github.com/portworx/sched-ops v0.20.4-openstorage-rc3 // required by rook v1.7 + exclude ( github.com/kubernetes-incubator/external-storage v0.20.4-openstorage-rc2 k8s.io/client-go v11.0.1-0.20190409021438-1a26190bd76a+incompatible diff --git a/go.sum b/go.sum index 2d08036976..1d1832c98c 100644 --- a/go.sum +++ b/go.sum @@ -29,14 +29,11 @@ cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUM cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= cloud.google.com/go/compute v1.19.1 h1:am86mquDUgjGNWxiGn+5PGLbmgiWXlE/yNWpIpNvuXY= -cloud.google.com/go/compute v1.19.1/go.mod h1:6ylj3a05WF8leseCdIf77NK0g1ey+nj5IKd5/kvShxE= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= -cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= cloud.google.com/go/iam v0.13.0 h1:+CmB+K0J/33d0zSQ9SlFWUeCCEn5XJA0ZMZ3pHE9u8k= -cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0= cloud.google.com/go/kms v1.10.1 h1:7hm1bRqGCA1GBRQUrp831TwJ9TWhP+tvLuP497CQS2g= cloud.google.com/go/kms v1.10.1/go.mod h1:rIWk/TryCkR59GMC3YtHtXeLzd634lBbKenvyySAyYI= cloud.google.com/go/monitoring v1.13.0 h1:2qsrgXGVoRXpP7otZ14eE1I568zAa92sJSDPyOJvwjM= @@ -52,12 +49,10 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= code.cloudfoundry.org/gofileutils v0.0.0-20170111115228-4d0c80011a0f/go.mod h1:sk5LnIjB/nIEU7yP5sDQExVm62wu0pBh3yrElngUisI= dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= -dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= git.apache.org/thrift.git v0.12.0/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= github.com/Azure/azure-sdk-for-go v36.2.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go v67.2.0+incompatible h1:Uu/Ww6ernvPTrpq31kITVTIm/I5jlJ1wjtEH/bmSB2k= -github.com/Azure/azure-sdk-for-go v67.2.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= @@ -67,7 +62,6 @@ github.com/Azure/go-autorest/autorest v0.9.6/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdA github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw= github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA= github.com/Azure/go-autorest/autorest v0.11.28 h1:ndAExarwr5Y+GaHE6VCaY1kyS/HwwGGyuimVhWsHOEM= -github.com/Azure/go-autorest/autorest v0.11.28/go.mod h1:MrkzG3Y3AH668QyF9KRk5neJnGgmhQ6krbhR8Q5eMvA= github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= github.com/Azure/go-autorest/autorest/adal v0.6.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc= github.com/Azure/go-autorest/autorest/adal v0.7.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc= @@ -76,13 +70,10 @@ github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQW github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A= github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M= github.com/Azure/go-autorest/autorest/adal v0.9.20 h1:gJ3E98kMpFB1MFqQCvA1yFab8vthOeD4VlFRQULxahg= -github.com/Azure/go-autorest/autorest/adal v0.9.20/go.mod h1:XVVeme+LZwABT8K5Lc3hA4nAe8LDBVle26gTrguhhPQ= github.com/Azure/go-autorest/autorest/azure/auth v0.4.0/go.mod h1:Oo5cRhLvZteXzI2itUm5ziqsoIxRkzrt3t61FeZaS18= github.com/Azure/go-autorest/autorest/azure/auth v0.5.12 h1:wkAZRgT/pn8HhFyzfe9UnqOjJYqlembgCTi72Bm/xKk= -github.com/Azure/go-autorest/autorest/azure/auth v0.5.12/go.mod h1:84w/uV8E37feW2NCJ08uT9VBfjfUHpgLVnG2InYD6cg= github.com/Azure/go-autorest/autorest/azure/cli v0.3.0/go.mod h1:rNYMNAefZMRowqCV0cVhr/YDW5dD7afFq9nXAXL4ykE= github.com/Azure/go-autorest/autorest/azure/cli v0.4.5 h1:0W/yGmFdTIT77fvdlGZ0LMISoLHFJ7Tx4U0yeB+uFs4= -github.com/Azure/go-autorest/autorest/azure/cli v0.4.5/go.mod h1:ADQAXrkgm7acgWVUNamOgh8YNrv4p27l3Wc55oVfpzg= github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g= github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw= @@ -94,10 +85,8 @@ github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935 github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= github.com/Azure/go-autorest/autorest/to v0.3.0/go.mod h1:MgwOyqaIuKdG4TL/2ywSsIWKAfJfgHDo8ObuUk3t5sA= github.com/Azure/go-autorest/autorest/to v0.4.0 h1:oXVqrxakqqV1UZdSazDOPOLvOIz+XA683u8EctwboHk= -github.com/Azure/go-autorest/autorest/to v0.4.0/go.mod h1:fE8iZBn7LQR7zH/9XU2NcPR4o9jEImooCeWJcYV/zLE= github.com/Azure/go-autorest/autorest/validation v0.2.0/go.mod h1:3EEqHnBxQGHXRYq3HT1WyXAvT7LLY3tl70hw6tQIbjI= github.com/Azure/go-autorest/autorest/validation v0.3.1 h1:AgyqjAd94fwNAoTjl/WQXg4VvFeRFpO+UhNyRXqF1ac= -github.com/Azure/go-autorest/autorest/validation v0.3.1/go.mod h1:yhLgjC0Wda5DYXl6JAsWyUe4KVNffhoDhG0zVzUMo3E= github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg= @@ -105,9 +94,10 @@ github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZ github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= +github.com/Bowery/prompt v0.0.0-20190916142128-fa8279994f75 h1:xGHheKK44eC6K0u5X+DZW/fRaR1LnDdqPHMZMWx5fv8= +github.com/Bowery/prompt v0.0.0-20190916142128-fa8279994f75/go.mod h1:4/6eNcqZ09BZ9wLK3tZOjBA1nDj+B0728nlX5YRlSmQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.2.0 h1:Rt8g24XnyGTyglgET/PRUNlrUeu9F5L+7FilkXfZgs0= -github.com/BurntSushi/toml v1.2.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/DataDog/datadog-go v2.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/DataDog/datadog-go v3.2.0+incompatible h1:qSG2N4FghB1He/r2mFrWKCaL7dXCilEuNEeAn20fdD4= @@ -174,8 +164,8 @@ github.com/IBM/networking-go-sdk v0.46.1 h1:DnnLR7YDJQRE38/nIeeD7PaKyxpoiIe/aW7N github.com/IBM/networking-go-sdk v0.46.1/go.mod h1:yF4XStkswGgVwQVqPUk6b4YTP0dVap52q8HDYwY4gXQ= github.com/IBM/platform-services-go-sdk v0.62.11 h1:EGsiY90bM9M9sSdBVgpsX4QK1z99JZzedVDlrY2gzmc= github.com/IBM/platform-services-go-sdk v0.62.11/go.mod h1:M26dloj9C48k9AjfMcKGsgH/acEjaUvxjVS8z41Q8dg= -github.com/IBM/project-go-sdk v0.3.0 h1:lZR4wT6UCsOZ8QkEBITrfM6OZkLlL70/HXiPxF/Olt4= -github.com/IBM/project-go-sdk v0.3.0/go.mod h1:FOJM9ihQV3EEAY6YigcWiTNfVCThtdY8bLC/nhQHFvo= +github.com/IBM/project-go-sdk v0.3.2 h1:cKz8Lh/zsHgIgZBpBAZye889njcgBHksTR0fk29vEk8= +github.com/IBM/project-go-sdk v0.3.2/go.mod h1:FOJM9ihQV3EEAY6YigcWiTNfVCThtdY8bLC/nhQHFvo= 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= @@ -197,17 +187,13 @@ github.com/Jeffail/gabs v1.1.1/go.mod h1:6xMvQMK4k33lb7GUUpaAPh6nKMmemQeg5d4gn7/ github.com/Logicalis/asn1 v0.0.0-20190312173541-d60463189a56 h1:vuquMR410psHNax14XKNWa0Ae/kYgWJcXi0IFuX60N0= github.com/Logicalis/asn1 v0.0.0-20190312173541-d60463189a56/go.mod h1:Zb3OT4l0mf7P/GOs2w2Ilj5sdm5Whoq3pa24dAEBHFc= github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= -github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc= -github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= github.com/Masterminds/sprig v2.22.0+incompatible h1:z4yfnGrZ7netVz+0EDJ0Wi+5VZCSYp4Z0m2dk6cEM60= github.com/Masterminds/sprig/v3 v3.2.1 h1:n6EPaDyLSvCEa3frruQvAiHuNp2dhBlMSmkEr+HuzGc= -github.com/Masterminds/sprig/v3 v3.2.1/go.mod h1:UoaO7Yp8KlPnJIYWTFkMaqPUYKTfGFPhxNuwnnxkKlk= github.com/Microsoft/go-winio v0.4.13/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I= github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= @@ -231,7 +217,6 @@ github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMx github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= github.com/abdullin/seq v0.0.0-20160510034733-d5467c17e7af/go.mod h1:5Jv4cbFiHJMsVxt52+i0Ha45fjshj6wxYr1r19tB9bw= github.com/acomagu/bufpipe v1.0.4 h1:e3H4WUzM3npvo5uv95QuJM3cQspFNtFBzvJ2oNjKIDQ= -github.com/acomagu/bufpipe v1.0.4/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= github.com/agext/levenshtein v1.2.2 h1:0S/Yg6LYmFJ5stwQeRp6EeOcCbj7xiqQSdNelsXvaqE= github.com/agext/levenshtein v1.2.2/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= @@ -247,7 +232,6 @@ github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk5 github.com/aliyun/alibaba-cloud-sdk-go v0.0.0-20190412020505-60e2075261b6/go.mod h1:T9M45xf79ahXVelWoOBmH0y4aC1t5kXO5BxwyakgIGA= github.com/aliyun/alibaba-cloud-sdk-go v0.0.0-20190620160927-9418d7b0cd0f/go.mod h1:myCDvQSzCW+wB1WAlocEru4wMGJxy+vlxHdhegi1CDQ= github.com/aliyun/alibaba-cloud-sdk-go v1.62.146 h1:zAH0YjWzonbKHvNkfbxqTmX51uHbkQYu+jJah2IAiCA= -github.com/aliyun/alibaba-cloud-sdk-go v1.62.146/go.mod h1:Api2AkmMgGaSUAhmk76oaFObkoeCPc/bKAqcyplPODs= github.com/aliyun/aliyun-oss-go-sdk v0.0.0-20190307165228-86c17b95fcd5/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8= github.com/andres-erbsen/clock v0.0.0-20160526145045-9e14626cd129 h1:MzBOUgng9orim59UnfUTLRjMpd09C5uEVQ6RPGeCaVI= github.com/andres-erbsen/clock v0.0.0-20160526145045-9e14626cd129/go.mod h1:rFgpPQZYZ8vdbc+48xibu8ALc3yeyd64IhHS+PU6Yyg= @@ -281,7 +265,6 @@ github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI= github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= -github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= @@ -294,9 +277,7 @@ github.com/aws/aws-sdk-go v1.25.37/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpi github.com/aws/aws-sdk-go v1.25.41/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.34.28/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48= github.com/aws/aws-sdk-go v1.44.191 h1:GnbkalCx/AgobaorDMFCa248acmk+91+aHBQOk7ljzU= -github.com/aws/aws-sdk-go v1.44.191/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/axiomhq/hyperloglog v0.0.0-20220105174342-98591331716a h1:eqjiAL3qooftPm8b9C1GsSSRcmlw7iOva8vdBTmV2PY= -github.com/axiomhq/hyperloglog v0.0.0-20220105174342-98591331716a/go.mod h1:2stgcRjl6QmW+gU2h5E7BQXg4HU0gzxKWDuT5HviN9s= github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59/go.mod h1:q/89r3U2H7sSsE2t6Kca0lfwTK8JdoNGS/yzM/4iH5I= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -313,10 +294,8 @@ github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dR github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= github.com/boombuler/barcode v1.0.1 h1:NDBbPmhS+EqABEs5Kg3n/5ZNjy73Pz7SIV+KCeqyXcs= -github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= github.com/briankassouf/jose v0.9.2-0.20180619214549-d2569464773f/go.mod h1:HQhVmdUf7dBNwIIdBTivnCDxcf6IZY3/zrb+uKSJz6Y= github.com/bufbuild/protocompile v0.4.0 h1:LbFKd2XowZvQ/kajzguUp2DC9UEIQhIq77fZZlaQsNA= -github.com/bufbuild/protocompile v0.4.0/go.mod h1:3v93+mbWn/v3xzN+31nwkJfrEpAUwp+BagBSZWx+TP8= github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= @@ -325,7 +304,6 @@ github.com/cenkalti/backoff/v3 v3.0.0/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4r github.com/cenkalti/backoff/v3 v3.2.2 h1:cfUAAO3yvKMYKPrvhDuHSwQnhZNk/RMHKdZqKTxfm6M= github.com/cenkalti/backoff/v3 v3.2.2/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs= github.com/cenkalti/backoff/v4 v4.1.3 h1:cFAlzYUlVYDysBEH2T5hyJZMh3+5+WCBvSnK6Q8UtC4= -github.com/cenkalti/backoff/v4 v4.1.3/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/centrify/cloud-golang-sdk v0.0.0-20190214225812-119110094d0f/go.mod h1:C0rtzmGXgN78pYR0tGJFhtHgkbAs0lIbHwkB81VxDQE= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= @@ -382,36 +360,30 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsr github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= -github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dchest/bcrypt_pbkdf v0.0.0-20150205184540-83f37f9c154a h1:saTgr5tMLFnmy/yg3qDTft4rE5DY2uJ/cCxCe3q0XTU= github.com/dchest/bcrypt_pbkdf v0.0.0-20150205184540-83f37f9c154a/go.mod h1:Bw9BbhOJVNR+t0jCqx2GC6zv0TGBsShs56Y3gfSCvl0= +github.com/dchest/safefile v0.0.0-20151022103144-855e8d98f185 h1:3T8ZyTDp5QxTx3NU48JVb2u+75xc040fofcBaN+6jPA= +github.com/dchest/safefile v0.0.0-20151022103144-855e8d98f185/go.mod h1:cFRxtTwTOJkz2x3rQUNCYKWC93yP1VKjR8NUhqFxZNU= github.com/denisenkom/go-mssqldb v0.0.0-20190412130859-3b1d194e553a/go.mod h1:zAg7JM8CkOJ43xKXIj7eRO9kmWm/TW578qo+oDO6tuM= github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba h1:p6poVbjHDkKa+wtC8frBMwQtT3BmqGYBjzMwJ63tuR4= -github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0= github.com/dgryski/go-metro v0.0.0-20180109044635-280f6062b5bc h1:8WFBn63wegobsYAX0YjD+8suexZDga5CctH4CCTx2+8= -github.com/dgryski/go-metro v0.0.0-20180109044635-280f6062b5bc/go.mod h1:c9O8+fpSOX1DM8cPNSkX/qsBWdkD4yd2dpciOWQjpBw= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/digitalocean/godo v1.65.0 h1:3SywGJBC18HaYtPQF+T36jYzXBi+a6eIMonSjDll7TA= -github.com/digitalocean/godo v1.65.0/go.mod h1:p7dOjjtSBqCTUksqtA5Fd3uaKs9kyTq2xcz76ulEJRU= github.com/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQvIirEdv+8= github.com/dimchansky/utfbom v1.1.1 h1:vV6w1AhK4VMnhBno/TPVCoK9U/LP0PkLCS9tbxHdi/U= -github.com/dimchansky/utfbom v1.1.1/go.mod h1:SxdoEBH5qIqFocHMyGOXVAybYJdr71b1Q/j0mACtrfE= github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= -github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/docker v0.7.3-0.20190327010347-be7ac8be2ae0/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v24.0.5+incompatible h1:WmgcE4fxyI6EEXxBRxsHnZXrO1pQ3smi0k/jho4HLeY= -github.com/docker/docker v24.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= -github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docker/spdystream v0.0.0-20181023171402-6480d4af844c/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= @@ -440,7 +412,6 @@ github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT github.com/emicklei/go-restful/v3 v3.10.0 h1:X4gma4HM7hFm6WMeAsTfqA0GOfdNoCzBIkHGoRLGXuM= github.com/emicklei/go-restful/v3 v3.10.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= -github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= @@ -456,7 +427,6 @@ github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLi github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= -github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch/v5 v5.5.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4= github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJCLunww= github.com/evanphx/json-patch/v5 v5.6.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4= @@ -470,7 +440,6 @@ github.com/flowstack/go-jsonschema v0.1.1/go.mod h1:yL7fNggx1o8rm9RlgXv7hTBWxdBM github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= -github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/frankban/quicktest v1.4.0/go.mod h1:36zfPVQyHxymz4cH7wlDmVwDrJuljRB60qkgn7rorfQ= github.com/frankban/quicktest v1.4.1/go.mod h1:36zfPVQyHxymz4cH7wlDmVwDrJuljRB60qkgn7rorfQ= github.com/frankban/quicktest v1.10.0/go.mod h1:ui7WezCLWMWxVWr1GETZY3smRy0G4KWq9vcPtJmFl7Y= @@ -496,11 +465,8 @@ github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0 github.com/go-asn1-ber/asn1-ber v1.3.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= -github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU= -github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow= github.com/go-git/go-git/v5 v5.9.0 h1:cD9SFA7sHVRdJ7AYck1ZaAa/yeuBvGPxwXDL8cxrObY= -github.com/go-git/go-git/v5 v5.9.0/go.mod h1:RKIqga24sWdMGZF+1Ekv9kylsDz6LzdTSI2s/OsZWE0= 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= @@ -529,11 +495,9 @@ github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-logr/zapr v0.1.0/go.mod h1:tabnROwaDl0UNxkVeFRbY8bwB37GwRv0P8lg6aAiEnk= github.com/go-logr/zapr v1.2.3 h1:a9vnzlIBPQBBkeaR9IuMUfmVOrQlkoC4YfPoFkX3T7A= -github.com/go-logr/zapr v1.2.3/go.mod h1:eIauM6P8qSvTw5o2ez6UEAfGjQKrxQTl5EoK+Qa2oG4= github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8= github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= -github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= @@ -611,11 +575,9 @@ github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85n github.com/go-openapi/validate v0.22.4 h1:5v3jmMyIPKTR8Lv9syBAIRxG6lY0RqeBPB1LKEijzk8= github.com/go-openapi/validate v0.22.4/go.mod h1:qm6O8ZIcPVdSY5219468Jv7kBdGvkiZLPOmqnqTUZ2A= github.com/go-ozzo/ozzo-validation v3.6.0+incompatible h1:msy24VGS42fKO9K1vLz82/GeYW1cILu7Nuuj1N3BBkE= -github.com/go-ozzo/ozzo-validation v3.6.0+incompatible/go.mod h1:gsEKFIVnabGBt6mXmxK0MoFy+cZoTJY6mu5Ll3LVLBU= github.com/go-ozzo/ozzo-validation/v4 v4.3.0 h1:byhDUpfEwjsVQb1vBunvIjh2BHQ9ead57VkAEY4V+Es= github.com/go-ozzo/ozzo-validation/v4 v4.3.0/go.mod h1:2NKgrcHl3z6cJs+3Oo940FPRiTzuqKbvfrL2RxCj6Ew= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= -github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.12.1/go.mod h1:IUMDtCfWo/w/mtMfIE/IG2K+Ey3ygWanZIBtBW0W2TM= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs= @@ -631,7 +593,6 @@ github.com/go-playground/validator/v10 v10.19.0/go.mod h1:dbuPbCMFw/DrkbEynArYaC 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= -github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= @@ -640,7 +601,6 @@ github.com/go-test/deep v1.0.1/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3a github.com/go-test/deep v1.0.2-0.20181118220953-042da051cf31/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= github.com/go-test/deep v1.0.2/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= github.com/go-test/deep v1.1.0 h1:WOcxcdHcvdgThNXjw0t76K42FXTU7HpNQWHpA2HHNlg= -github.com/go-test/deep v1.1.0/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE= github.com/go-yaml/yaml v2.1.0+incompatible/go.mod h1:w2MrLa16VYP0jy6N7M5kHaCkaLENm+P+Tv+MfurjSw0= github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= @@ -679,7 +639,6 @@ github.com/golang-jwt/jwt v3.2.1+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzq github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang-jwt/jwt/v4 v4.4.2 h1:rcc4lwaZgFMCZ5jxF9ABolDcIHdBytAFgqFPbSJQAYs= -github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20180513044358-24b0969c4cb7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -772,8 +731,9 @@ github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20230510103437-eeec1cb781c3 h1:2XF1Vzq06X+inNqgJ9tRnGuw+ZVCB3FazXODD6JE1R8= -github.com/google/pprof v0.0.0-20230510103437-eeec1cb781c3/go.mod h1:79YE0hCXdHag9sBkw2o+N/YnZtTkXi0UT9Nnixa5eYk= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -782,11 +742,9 @@ github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.2.3 h1:yk9/cqRKtT9wXZSsRH9aurXEpJX+U6FLtpYTdC3R06k= -github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.7.1 h1:gF4c0zjUP2H/s/hEGyLA3I0fA2ZWjzYiONAD6cvPr8A= -github.com/googleapis/gax-go/v2 v2.7.1/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.1.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.3.1/go.mod h1:on+2t9HRStVgn95RSsFWFz+6Q0Snyqv1awfrALZdbtU= @@ -829,7 +787,6 @@ github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brv github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/eventlogger v0.1.1 h1:zyCjxsy7KunFsMPZKU5PnwWEakSrp1zjj2vPFmrDaeo= -github.com/hashicorp/eventlogger v0.1.1/go.mod h1://CHt6/j+Q2lc0NlUB5af4aS2M0c0aVBg9/JfcpAyhM= github.com/hashicorp/go-checkpoint v0.5.0 h1:MFYpPZCnQqQTE18jFwSII6eUQrD/oxMFp3mlgcqk5mU= github.com/hashicorp/go-checkpoint v0.5.0/go.mod h1:7nfLNL10NsxqO4iWuW6tWW0HjZuDrwkBuEQsVcpCOgg= github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= @@ -839,7 +796,6 @@ github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/S github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320 h1:1/D3zfFHttUKaCaGKZ/dR2roBXv0vKbSCnssIldfQdI= github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320/go.mod h1:EiZBMaudVLy8fmjf9Npq1dq9RalhveqZG5w/yz3mHWs= github.com/hashicorp/go-discover v0.0.0-20210818145131-c573d69da192 h1:eje2KOX8Sf7aYPiAsLnpWdAIrGRMcpFjN/Go/Exb7Zo= -github.com/hashicorp/go-discover v0.0.0-20210818145131-c573d69da192/go.mod h1:3/4dzY4lR1Hzt9bBqMhBzG7lngZ0GKx/nL6G/ad62wE= github.com/hashicorp/go-gatedio v0.5.0/go.mod h1:Lr3t8L6IyxD3DAeaUxGcgl2JnRUpWMCsmBl4Omu/2t4= github.com/hashicorp/go-gcp-common v0.5.0/go.mod h1:IDGUI2N/OS3PiU4qZcXJeWKPI6O/9Y8hOrbSiMcqyYw= github.com/hashicorp/go-gcp-common v0.6.0/go.mod h1:RuZi18562/z30wxOzpjeRrGcmk9Ro/rBzixaSZDhIhY= @@ -866,28 +822,18 @@ github.com/hashicorp/go-kms-wrapping/entropy v0.1.0/go.mod h1:d1g9WGtAunDNpek8jU github.com/hashicorp/go-kms-wrapping/entropy/v2 v2.0.0 h1:pSjQfW3vPtrOTcasTUKgCTQT7OGPPTTMVRrOfU6FJD8= github.com/hashicorp/go-kms-wrapping/entropy/v2 v2.0.0/go.mod h1:xvb32K2keAc+R8DSFG2IwDcydK9DBQE+fGA5fsw6hSk= github.com/hashicorp/go-kms-wrapping/v2 v2.0.9-0.20230228100945-740d2999c798 h1:22yjMhn+kJ7u8RaP5qcYEn02zHWnIg1/JxE4BL8JLtQ= -github.com/hashicorp/go-kms-wrapping/v2 v2.0.9-0.20230228100945-740d2999c798/go.mod h1:iRHxwFG8L24HhemSuvDYtuwVkjkl+OkTLvQ5bmqzAqE= github.com/hashicorp/go-kms-wrapping/wrappers/aead/v2 v2.0.7-1 h1:ZV26VJYcITBom0QqYSUOIj4HOHCVPEFjLqjxyXV/AbA= -github.com/hashicorp/go-kms-wrapping/wrappers/aead/v2 v2.0.7-1/go.mod h1:b99cDSA+OzcyRoBZroSf174/ss/e6gUuS45wue9ZQfc= github.com/hashicorp/go-kms-wrapping/wrappers/alicloudkms/v2 v2.0.1 h1:ydUCtmr8f9F+mHZ1iCsvzqFTXqNVpewX3s9zcYipMKI= -github.com/hashicorp/go-kms-wrapping/wrappers/alicloudkms/v2 v2.0.1/go.mod h1:Sl/ffzV57UAyjtSg1h5Km0rN5+dtzZJm1CUztkoCW2c= github.com/hashicorp/go-kms-wrapping/wrappers/awskms/v2 v2.0.7 h1:E3eEWpkofgPNrYyYznfS1+drq4/jFcqHQVNcL7WhUCo= -github.com/hashicorp/go-kms-wrapping/wrappers/awskms/v2 v2.0.7/go.mod h1:j5vefRoguQUG7iM4reS/hKIZssU1lZRqNPM5Wow6UnM= github.com/hashicorp/go-kms-wrapping/wrappers/azurekeyvault/v2 v2.0.8-0.20230905162003-bfa3347a7c85 h1:yZqD2ZQ4kWyVI2reKGC8Hl78ywWBtl1iLz/Bb5GBvMA= -github.com/hashicorp/go-kms-wrapping/wrappers/azurekeyvault/v2 v2.0.8-0.20230905162003-bfa3347a7c85/go.mod h1:0mKsr+G70TGABNbdS5dGiZTVoXe9qM/mhEIQL3lOQRc= github.com/hashicorp/go-kms-wrapping/wrappers/gcpckms/v2 v2.0.8 h1:16I8OqBEuxZIowwn3jiLvhlx+z+ia4dJc9stvz0yUBU= -github.com/hashicorp/go-kms-wrapping/wrappers/gcpckms/v2 v2.0.8/go.mod h1:6QUMo5BrXAtbzSuZilqmx0A4px2u6PeFK7vfp2WIzeM= github.com/hashicorp/go-kms-wrapping/wrappers/ocikms/v2 v2.0.7 h1:KeG3QGrbxbr2qAqCJdf3NR4ijAYwdcWLTmwSbR0yusM= -github.com/hashicorp/go-kms-wrapping/wrappers/ocikms/v2 v2.0.7/go.mod h1:rXxYzjjGw4HltEwxPp9zYSRIo6R+rBf1MSPk01bvodc= github.com/hashicorp/go-kms-wrapping/wrappers/transit/v2 v2.0.7 h1:G25tZFw/LrAzJWxvS0/BFI7V1xAP/UsAIsgBwiE0mwo= -github.com/hashicorp/go-kms-wrapping/wrappers/transit/v2 v2.0.7/go.mod h1:hxNA5oTfAvwPacWVg1axtF/lvTafwlAa6a6K4uzWHhw= github.com/hashicorp/go-memdb v1.0.2/go.mod h1:I6dKdmYhZqU0RJSheVEWgTNWdVQH5QvTgIUQ0t/t32M= github.com/hashicorp/go-memdb v1.3.4 h1:XSL3NR682X/cVk2IeV0d70N4DZ9ljI885xAEU8IoK3c= -github.com/hashicorp/go-memdb v1.3.4/go.mod h1:uBTr1oQbtuMgd1SSGoR8YV27eT3sBHbYiNm53bMpgSg= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-msgpack v0.5.5/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-msgpack v1.1.5 h1:9byZdVjKTe5mce63pRVNP1L7UAmdHOTEMGehn6KvJWs= -github.com/hashicorp/go-msgpack v1.1.5/go.mod h1:gWVc3sv/wbDmR3rQsj1CAktEZzoz1YNK9NfGLXJ69/4= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= @@ -911,13 +857,10 @@ github.com/hashicorp/go-rootcerts v1.0.1/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR3 github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-secure-stdlib/awsutil v0.1.6 h1:W9WN8p6moV1fjKLkeqEgkAMu5rauy9QeYDAmIaPuuiA= -github.com/hashicorp/go-secure-stdlib/awsutil v0.1.6/go.mod h1:MpCPSPGLDILGb4JMm94/mMi3YysIqsXzGCzkEZjcjXg= github.com/hashicorp/go-secure-stdlib/base62 v0.1.1/go.mod h1:EdWO6czbmthiwZ3/PUsDV+UD1D5IRU4ActiaWGwt0Yw= github.com/hashicorp/go-secure-stdlib/base62 v0.1.2 h1:ET4pqyjiGmY09R5y+rSd70J2w45CtbWDNvGqWp/R3Ng= -github.com/hashicorp/go-secure-stdlib/base62 v0.1.2/go.mod h1:EdWO6czbmthiwZ3/PUsDV+UD1D5IRU4ActiaWGwt0Yw= github.com/hashicorp/go-secure-stdlib/mlock v0.1.1/go.mod h1:zq93CJChV6L9QTfGKtfBxKqD7BqqXx5O04A/ns2p5+I= github.com/hashicorp/go-secure-stdlib/mlock v0.1.2 h1:p4AKXPPS24tO8Wc8i1gLvSKdmkiSY5xuju57czJ/IJQ= -github.com/hashicorp/go-secure-stdlib/mlock v0.1.2/go.mod h1:zq93CJChV6L9QTfGKtfBxKqD7BqqXx5O04A/ns2p5+I= github.com/hashicorp/go-secure-stdlib/parseutil v0.1.1/go.mod h1:QmrqtbKuxxSWTN3ETMPuB+VtEiBJ/A9XhoYGv8E1uD8= github.com/hashicorp/go-secure-stdlib/parseutil v0.1.6/go.mod h1:QmrqtbKuxxSWTN3ETMPuB+VtEiBJ/A9XhoYGv8E1uD8= github.com/hashicorp/go-secure-stdlib/parseutil v0.1.7 h1:UpiO20jno/eV1eVZcxqWnUohyKRe1g8FPV/xH1s/2qs= @@ -925,15 +868,12 @@ github.com/hashicorp/go-secure-stdlib/parseutil v0.1.7/go.mod h1:QmrqtbKuxxSWTN3 github.com/hashicorp/go-secure-stdlib/password v0.1.1 h1:6JzmBqXprakgFEHwBgdchsjaA9x3GyjdI568bXKxa60= github.com/hashicorp/go-secure-stdlib/password v0.1.1/go.mod h1:9hH302QllNwu1o2TGYtSk8I8kTAN0ca1EHpwhm5Mmzo= github.com/hashicorp/go-secure-stdlib/plugincontainer v0.1.1 h1:1F0n5stk5uz4yIw2elN3k6bGbIv95OQaJVR2sVQ1kk0= -github.com/hashicorp/go-secure-stdlib/plugincontainer v0.1.1/go.mod h1:kRpzC4wHYXc2+sjXA9vuKawXYs0x0d0HuqqbaW1fj1w= github.com/hashicorp/go-secure-stdlib/reloadutil v0.1.1 h1:SMGUnbpAcat8rIKHkBPjfv81yC46a8eCNZ2hsR2l1EI= -github.com/hashicorp/go-secure-stdlib/reloadutil v0.1.1/go.mod h1:Ch/bf00Qnx77MZd49JRgHYqHQjtEmTgGU2faufpVZb0= github.com/hashicorp/go-secure-stdlib/strutil v0.1.1/go.mod h1:gKOamz3EwoIoJq7mlMIRBpVTAUn8qPCrEclOKKWhD3U= github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 h1:kes8mmyCpxJsI7FTwtzRqEy9CdjCtrXrXGuOpxEA7Ts= github.com/hashicorp/go-secure-stdlib/strutil v0.1.2/go.mod h1:Gou2R9+il93BqX25LAKCLuM+y9U2T4hlwvT1yprcna4= github.com/hashicorp/go-secure-stdlib/tlsutil v0.1.1/go.mod h1:l8slYwnJA26yBz+ErHpp2IRCLr0vuOMGBORIz4rRiAs= github.com/hashicorp/go-secure-stdlib/tlsutil v0.1.2 h1:phcbL8urUzF/kxA/Oj6awENaRwfWsjP59GW7u2qlDyY= -github.com/hashicorp/go-secure-stdlib/tlsutil v0.1.2/go.mod h1:l8slYwnJA26yBz+ErHpp2IRCLr0vuOMGBORIz4rRiAs= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-sockaddr v1.0.2 h1:ztczhD1jLxIRjVejw8gFomI1BQZOe2WoVOu0SyteCQc= github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= @@ -944,6 +884,7 @@ github.com/hashicorp/go-uuid v1.0.2-0.20191001231223-f32f5fe8d6a8/go.mod h1:6SBZ github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-version v1.0.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.1.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= @@ -963,28 +904,22 @@ github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06A github.com/hashicorp/hcl/v2 v2.19.1 h1://i05Jqznmb2EXqa39Nsvyan2o5XyMowW5fnCKW5RPI= github.com/hashicorp/hcl/v2 v2.19.1/go.mod h1:ThLC89FV4p9MPW804KVbe/cEXoQ8NZEh+JtMeeGErHE= github.com/hashicorp/hcp-sdk-go v0.23.0 h1:3WarkQSK0VzxJaH6psHIGQagag3ujL+NjWagZZHpiZM= -github.com/hashicorp/hcp-sdk-go v0.23.0/go.mod h1:/9UoDY2FYYA8lFaKBb2HmM/jKYZGANmf65q9QRc/cVw= github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= github.com/hashicorp/mdns v1.0.4 h1:sY0CMhFmjIPDMlTB+HfymFHCaYLhgifZ0QhjaYKD/UQ= -github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/memberlist v0.1.4/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/nomad/api v0.0.0-20191220223628-edc62acd919d/go.mod h1:WKCL+tLVhN1D+APwH3JiTRZoxcdwRk86bWu1LVCUPaE= github.com/hashicorp/raft v1.0.1/go.mod h1:DVSAWItjLjTOkVbSpWQ0j0kUADIvDaCtBxIcbNAQLkI= github.com/hashicorp/raft v1.1.2-0.20191002163536-9c6bd3e3eb17/go.mod h1:vPAJM8Asw6u8LxC3eJCUZmRP/E4QmUGE1R7g7k8sG/8= github.com/hashicorp/raft v1.3.10 h1:LR5QZX1VQd0DFWZfeCwWawyeKfpS/Tm1yjnJIY5X4Tw= -github.com/hashicorp/raft v1.3.10/go.mod h1:J8naEwc6XaaCfts7+28whSeRvCqTd6e20BlCU3LtEO4= github.com/hashicorp/raft-autopilot v0.2.0 h1:2/R2RPgamgRKgNWGQioULZvjeKXQZmDuw5Ty+6c+H7Y= -github.com/hashicorp/raft-autopilot v0.2.0/go.mod h1:q6tZ8UAZ5xio2gv2JvjgmtOlh80M6ic8xQYBe2Egkg8= github.com/hashicorp/raft-boltdb v0.0.0-20171010151810-6e5ba93211ea h1:xykPFhrBAS2J0VBzVa5e80b5ZtYuNQtgXjN40qBZlD4= github.com/hashicorp/raft-boltdb v0.0.0-20171010151810-6e5ba93211ea/go.mod h1:pNv7Wc3ycL6F5oOWn+tPGo2gWD4a5X+yp/ntwdKLjRk= github.com/hashicorp/raft-boltdb/v2 v2.0.0-20210421194847-a7e34179d62c h1:oiKun9QlrOz5yQxMZJ3tf1kWtFYuKSJzxzEDxDPevj4= -github.com/hashicorp/raft-boltdb/v2 v2.0.0-20210421194847-a7e34179d62c/go.mod h1:kiPs9g148eLShc2TYagUAyKDnD+dH9U+CQKsXzlY9xo= github.com/hashicorp/raft-snapshot v1.0.2-0.20190827162939-8117efcc5aab/go.mod h1:5sL9eUn72lH5DzsFIJ9jaysITbHksSSszImWSOTC8Ic= github.com/hashicorp/raft-snapshot v1.0.4 h1:EuDuayAJPdiDmVk1ygTDnG2zDzrs0/6/yBuma1IYSow= -github.com/hashicorp/raft-snapshot v1.0.4/go.mod h1:5sL9eUn72lH5DzsFIJ9jaysITbHksSSszImWSOTC8Ic= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= github.com/hashicorp/serf v0.8.3/go.mod h1:UpNcs7fFbpKIyZaUuSW6EPiH+eZC7OuyFD+wc1oal+k= github.com/hashicorp/terraform-exec v0.19.0 h1:FpqZ6n50Tk95mItTSS9BjeOVUb4eg81SpgVtZNNtFSM= @@ -1050,7 +985,6 @@ github.com/hashicorp/vault/sdk v0.6.0/go.mod h1:+DRpzoXIdMvKc88R4qxr+edwy/RvH5QK github.com/hashicorp/vault/sdk v0.10.0 h1:dDAe1mMG7Qqor1h3i7TU70ykwJy8ijyWeZZkN2CB0j4= github.com/hashicorp/vault/sdk v0.10.0/go.mod h1:s9F8+FF/Q9HuChoi1OWnIPoHRU6V675qHhCYkXVPPQE= github.com/hashicorp/vic v1.5.1-0.20190403131502-bbfe86ec9443 h1:O/pT5C1Q3mVXMyuqg7yuAWUg/jMZR1/0QTzTRdNR6Uw= -github.com/hashicorp/vic v1.5.1-0.20190403131502-bbfe86ec9443/go.mod h1:bEpDU35nTu0ey1EXjwNwPjI9xErAsoOCmcMb9GKvyxo= github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE= @@ -1059,7 +993,6 @@ github.com/hokaccha/go-prettyjson v0.0.0-20170213120834-e6b9231a2b1c h1:vlXZsaTg github.com/hokaccha/go-prettyjson v0.0.0-20170213120834-e6b9231a2b1c/go.mod h1:pFlLw2CfqZiIBOx6BuCeRLCrfxBJipTY0nIOF/VbGcI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/xstrings v1.3.2 h1:L18LIDzqlW6xN2rEkpdV8+oL/IXWJ1APd+vsdYy4Wdw= -github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= @@ -1075,7 +1008,6 @@ github.com/jarcoal/httpmock v1.0.5/go.mod h1:ATjnClrvW/3tijVmpL/va5Z3aAyGvqU3gCT github.com/jarcoal/httpmock v1.0.7 h1:d1a2VFpSdm5gtjhCPWsQHSnx8+5V3ms5431YwvmkuNk= github.com/jarcoal/httpmock v1.0.7/go.mod h1:ATjnClrvW/3tijVmpL/va5Z3aAyGvqU3gCT8nX0Txik= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= -github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= github.com/jcmturner/aescts v1.0.1/go.mod h1:k9gJoDUf1GH5r2IBtBjwjDCoLELYxOcEhitdP8RL7qQ= github.com/jcmturner/aescts/v2 v2.0.0 h1:9YKLH6ey7H4eDBXW8khjYslgyqG2xZikXP0EQFKrle8= github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs= @@ -1101,7 +1033,6 @@ github.com/jefferai/jsonx v1.0.0/go.mod h1:OGmqmi2tTeI/PS+qQfBDToLHHJIy/RMp24fPo github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jhump/protoreflect v1.6.0/go.mod h1:eaTn3RZAmMBcV0fifFvlm6VHNz3wSkYyXYWUh7ymB74= github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c= -github.com/jhump/protoreflect v1.15.1/go.mod h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo= github.com/jinzhu/copier v0.3.2 h1:QdBOCbaouLDYaIPFfi1bKv5F5tPpeTwXe4sD0jqtz5w= github.com/jinzhu/copier v0.3.2/go.mod h1:24xnZezI2Yqac9J61UC6/dG/k76ttpq0DdJI3QmUvro= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= @@ -1116,7 +1047,6 @@ github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8Hm github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/joyent/triton-go v0.0.0-20190112182421-51ffac552869/go.mod h1:U+RSyWxWd04xTqnuOQxnai7XGS2PrPY2cfGoDKtMHjA= github.com/joyent/triton-go v1.7.1-0.20200416154420-6801d15b779f h1:ENpDacvnr8faw5ugQmEF1QYk+f/Y9lXFvuYmRxykago= -github.com/joyent/triton-go v1.7.1-0.20200416154420-6801d15b779f/go.mod h1:KDSfL7qe5ZfQqvlDMkVjCztbmcpp/c8M77vhQP8ZPvk= github.com/jpillora/backoff v0.0.0-20180909062703-3050d21c67d7/go.mod h1:2iMrUgbbvHEiQClaW2NsSzMyGHqN+rDFqY705q49KG0= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v0.0.0-20180701071628-ab8a2e0c74be/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= @@ -1135,13 +1065,13 @@ github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVY github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= +github.com/kardianos/govendor v1.0.9 h1:WOH3FcVI9eOgnIZYg96iwUwrL4eOVx+aQ66oyX2R8Yc= +github.com/kardianos/govendor v1.0.9/go.mod h1:yvmR6q9ZZ7nSF5Wvh40v0wfP+3TwwL8zYQp+itoZSVM= github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= github.com/kelseyhightower/envconfig v1.3.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg= github.com/kelseyhightower/envconfig v1.4.0 h1:Im6hONhd3pLkfDFsbRgu68RDNkGF1r3dvMUtDTo2cv8= -github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg= github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= -github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/keybase/go-crypto v0.0.0-20190403132359-d65b6b94177f/go.mod h1:ghbZscTyKdM07+Fw3KSi0hcJm+AlEUWj8QLlPtijN/M= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= @@ -1162,7 +1092,6 @@ github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfn github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= -github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -1172,7 +1101,6 @@ github.com/kube-object-storage/lib-bucket-provisioner v0.0.0-20221122204822-d1a8 github.com/kube-object-storage/lib-bucket-provisioner v0.0.0-20221122204822-d1a8c34382f1/go.mod h1:my+EVjOJLeQ9lUR9uVkxRvNNkhO2saSGIgzV8GZT9HY= github.com/kubernetes-csi/external-snapshotter/client/v4 v4.0.0/go.mod h1:YBCo4DoEeDndqvAn6eeu0vWM7QdXmHEeI9cFWplmBys= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= -github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= 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.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= @@ -1185,9 +1113,7 @@ github.com/libopenstorage/secrets v0.0.0-20220823020833-2ecadaf59d8a h1:dHCYranr github.com/libopenstorage/secrets v0.0.0-20220823020833-2ecadaf59d8a/go.mod h1:JqaGrr4zerBaTqX04dajFE14AHcDDrxvCq8nZ5/r4AU= github.com/libopenstorage/stork v1.3.0-beta1.0.20200630005842-9255e7a98775/go.mod h1:qBSzYTJVHlOMg5RINNiHD1kBzlasnrc2uKLPZLgu1Qs= github.com/linode/linodego v0.7.1 h1:4WZmMpSA2NRwlPZcc0+4Gyn7rr99Evk9bnr0B3gXRKE= -github.com/linode/linodego v0.7.1/go.mod h1:ga11n3ivecUrPCHN0rANxKmfWBJVkOXfLMZinAbj2sY= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= @@ -1234,12 +1160,10 @@ github.com/michaelklishin/rabbit-hole v0.0.0-20191008194146-93d9988f0cd5/go.mod github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.15/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.41 h1:WMszZWJG0XmzbK9FEmzH2TVcqYzFesusSIB41b8KHxY= -github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= github.com/minsikl/netscaler-nitro-go v0.0.0-20170827154432-5b14ce3643e3 h1:PHPBYVeLuR7/2XSOfVwDpW+70KNuxMWygsyOZSKK15Y= github.com/minsikl/netscaler-nitro-go v0.0.0-20170827154432-5b14ce3643e3/go.mod h1:jh28TRFZwBumf7OjMQbRb8TNtDuuX7QNAGRjFEt+h6I= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/cli v1.1.5 h1:OxRIeJXpAMztws/XHlN2vu6imG5Dpq+j61AzAX5fLng= -github.com/mitchellh/cli v1.1.5/go.mod h1:v8+iFts2sPIKUV1ltktPXMCC8fumSKFItNcD2cLtRR4= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= @@ -1253,7 +1177,10 @@ github.com/mitchellh/go-testing-interface v1.14.1/go.mod h1:gfgS7OtZj6MA4U1UrDRp github.com/mitchellh/go-wordwrap v1.0.0 h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9Gns0u4= github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= +github.com/mitchellh/gox v1.0.1 h1:x0jD3dcHk9a9xPSDN6YEL4xL6Qz0dvNYm8yZqui5chI= +github.com/mitchellh/gox v1.0.1/go.mod h1:ED6BioOGXMswlXa2zxfh/xdd5QhwYliBFn9V18Ap4z4= github.com/mitchellh/hashstructure v1.0.0/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1DutKwClXU/ABz6AQ= +github.com/mitchellh/iochan v1.0.0 h1:C+X3KsSTLFVBr/tK1eYN/vs4rJcvsiLU338UhYPJWeY= github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= @@ -1293,13 +1220,11 @@ github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ github.com/nicksnyder/go-i18n v1.10.0 h1:5AzlPKvXBH4qBzmZ09Ua9Gipyruv6uApMcrNZdo96+Q= github.com/nicksnyder/go-i18n v1.10.0/go.mod h1:HrK7VCrbOvQoUAQ7Vpy7i87N7JZZZ7R2xBGjv0j365Q= github.com/nicolai86/scaleway-sdk v1.10.2-0.20180628010248-798f60e20bb2 h1:BQ1HW7hr4IVovMwWg0E0PYcyW8CzqDcVmaew9cujU4s= -github.com/nicolai86/scaleway-sdk v1.10.2-0.20180628010248-798f60e20bb2/go.mod h1:TLb2Sg7HQcgGdloNxkrmtgDNR9uVYF3lfdFIN4Ro6Sk= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= 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/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/nxadm/tail v1.4.11 h1:8feyoE3OzPrcshW5/MJ4sGESc5cqmGkGCWlco4l0bqY= -github.com/nxadm/tail v1.4.11/go.mod h1:OTaG3NK980DZzxbRq6lEuzgU+mug70nY11sMd4JXXHc= 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= @@ -1308,7 +1233,6 @@ github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn github.com/okta/okta-sdk-golang v1.0.1 h1:1DGm5+h2JvfdHz07yVVM7+LgUVSwxnk+6RoLUOB6CwI= github.com/okta/okta-sdk-golang v1.0.1/go.mod h1:8k//sN2mFTq8Ayo90DqGbcumCkSmYjF0+2zkIbZysec= github.com/okta/okta-sdk-golang/v2 v2.12.1 h1:U+smE7trkHSZO8Mval3Ow85dbxawO+pMAr692VZq9gM= -github.com/okta/okta-sdk-golang/v2 v2.12.1/go.mod h1:KRoAArk1H216oiRnQT77UN6JAhBOnOWkK27yA1SM7FQ= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= @@ -1376,10 +1300,8 @@ github.com/onsi/gomega v1.31.1 h1:KYppCUK+bUgAZwHOu7EXVBKyQA6ILvOESHkn/tgoqvo= github.com/onsi/gomega v1.31.1/go.mod h1:y40C95dwAD1Nz36SsEnxvfFe8FFfNxzI5eJ0EYGyAy0= 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/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b h1:YWuSjZCQAPM8UUBLkYUk1e+rZcvWHJmFb6i6rM44Xs8= -github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ= github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= github.com/openshift/api v0.0.0-20210105115604-44119421ec6b/go.mod h1:aqU5Cq+kqKKPbDMqxo9FojgDeSpNJI7iuskjXjtojDg= github.com/openshift/api v0.0.0-20230329202819-04d4fb776982 h1:WQ6AkeLlqh6OrGuric5yYJ7j29QpsDiDNkdMKIqq3Dc= @@ -1396,12 +1318,10 @@ github.com/oracle/oci-go-sdk v7.0.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35ukw github.com/oracle/oci-go-sdk v12.5.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35ukwStZIg5F66tcBccjip/j888= github.com/oracle/oci-go-sdk v24.3.0+incompatible h1:x4mcfb4agelf1O4/1/auGlZ1lr97jXRSSN5MxTgG/zU= github.com/oracle/oci-go-sdk/v60 v60.0.0 h1:EJAWjEi4SY5Raha6iUzq4LTQ0uM5YFw/wat/L1ehIEM= -github.com/oracle/oci-go-sdk/v60 v60.0.0/go.mod h1:krz+2gkSzlSL/L4PvP0Z9pZpag9HYLNtsMd1PmxlA2w= github.com/ory/dockertest v3.3.4+incompatible/go.mod h1:1vX4m9wsvi00u5bseYwXaSnhNrne+V0E6LAcBILJdPs= github.com/ory/dockertest v3.3.5+incompatible/go.mod h1:1vX4m9wsvi00u5bseYwXaSnhNrne+V0E6LAcBILJdPs= github.com/oxtoacart/bpool v0.0.0-20150712133111-4e1c5567d7c2/go.mod h1:L3UMQOThbttwfYRNFOWLLVXMhk5Lkio4GGOtw5UrxS0= github.com/packethost/packngo v0.1.1-0.20180711074735-b9cb5096f54c h1:vwpFWvAO8DeIZfFeqASzZfsxuWPno9ncAebBEP0N3uE= -github.com/packethost/packngo v0.1.1-0.20180711074735-b9cb5096f54c/go.mod h1:otzZQXgoO96RTzDB/Hycg0qZcXZsWJGJRSXbmEIJ+4M= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= @@ -1416,7 +1336,6 @@ github.com/pelletier/go-toml v1.7.0 h1:7utD74fnzVc/cpcyy8sjrlFr5vYpypUixARcHIMIG github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 h1:q2e307iGHPdTGp0hoxKjt1H5pDo6utceo3dQVK3I5XQ= -github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pierrec/lz4 v2.2.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pierrec/lz4 v2.2.6+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= @@ -1426,9 +1345,7 @@ github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi github.com/pierrec/lz4/v4 v4.1.18 h1:xaKrnTkyoqfh1YItXl56+6KJNVYWlEEPuAQW9xsplYQ= github.com/pierrec/lz4/v4 v4.1.18/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pires/go-proxyproto v0.6.1 h1:EBupykFmo22SDjv4fQVQd2J9NOoLPmyZA/15ldOGkPw= -github.com/pires/go-proxyproto v0.6.1/go.mod h1:Odh9VFOZJCf9G8cLW5o435Xf1J95Jw9Gw5rnCjcwzAY= github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= -github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -1443,9 +1360,7 @@ github.com/portworx/talisman v0.0.0-20191007232806-837747f38224/go.mod h1:OjpMH9 github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/posener/complete v1.2.1/go.mod h1:6gapUrK/U1TAN7ciCoNRIdVC5sbdBTUh1DKN0g6uH7E= github.com/posener/complete v1.2.3 h1:NP0eAhjcjImqslEwo/1hq7gpajME0fTLTezBKDqfXqo= -github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/pquerna/otp v1.2.1-0.20191009055518-468c2dd2b58d h1:PinQItctnaL2LtkaSM678+ZLLy5TajwOeXzWvYC7tII= @@ -1499,7 +1414,6 @@ github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5 github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rboyer/safeio v0.2.1 h1:05xhhdRNAdS3apYm7JRjOqngf4xruaW959jmRxGDuSU= -github.com/rboyer/safeio v0.2.1/go.mod h1:Cq/cEPK+YXFn622lsQ0K4KsPZSPtaptHHEldsy7Fmig= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= @@ -1512,7 +1426,6 @@ github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= -github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/rook/rook v1.11.4 h1:V5+r8JnVpSCdWGZ8eV5zUX1SnMTgCnz3azux+7Jefzc= github.com/rook/rook v1.11.4/go.mod h1:RwQdIZvb7BGomy9yR9caWYCoT8pHngYsxBXg6Fl8LZk= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= @@ -1523,22 +1436,17 @@ github.com/ryanuber/go-glob v1.0.0 h1:iQh3xXAumdQ+4Ufa5b25cRpC5TYKlno6hsv6Cb3pkB github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= github.com/samuel/go-zookeeper v0.0.0-20180130194729-c4fab1ac1bec/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/sasha-s/go-deadlock v0.2.0 h1:lMqc+fUb7RrFS3gQLtoQsJ7/6TV/pAIFvBsqX73DK8Y= -github.com/sasha-s/go-deadlock v0.2.0/go.mod h1:StQn567HiB1fF2yJ44N9au7wOhrPS3iZqiDbRupzT10= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= -github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/sethvargo/go-limiter v0.7.2 h1:FgC4N7RMpV5gMrUdda15FaFTkQ/L4fEqM7seXMs4oO8= -github.com/sethvargo/go-limiter v0.7.2/go.mod h1:C0kbSFbiriE5k2FFOe18M1YZbAR2Fiwf72uGu0CXCcU= github.com/shirou/gopsutil v2.19.9+incompatible h1:IrPVlK4nfwW10DF7pW+7YJKws9NkgNzWozwwWv9FsgY= github.com/shirou/gopsutil v2.19.9+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shirou/gopsutil/v3 v3.22.6 h1:FnHOFOh+cYAM0C30P+zysPISzlknLC5Z1G4EAElznfQ= -github.com/shirou/gopsutil/v3 v3.22.6/go.mod h1:EdIubSnZhbAvBS1yJ7Xi+AShB/hxwLHOMz4MCYz7yMs= github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc= github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ= -github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= @@ -1548,7 +1456,6 @@ github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrf github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/skeema/knownhosts v1.2.0 h1:h9r9cf0+u7wSE+M183ZtMGgOJKiL96brpaz5ekfJCpM= -github.com/skeema/knownhosts v1.2.0/go.mod h1:g4fPeYpque7P0xefxtGzV81ihjC8sX2IqpAoNkjxbMo= github.com/smartystreets/assertions v0.0.0-20180725160413-e900ae048470/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/assertions v1.0.0/go.mod h1:kHHU4qYBaI3q23Pp3VPrmWhuIUrLW/7eUrw0BU5VaoM= @@ -1561,13 +1468,11 @@ github.com/softlayer/xmlrpc v0.0.0-20200409220501-5f089df7cb7e h1:3OgWYFw7jxCZPc github.com/softlayer/xmlrpc v0.0.0-20200409220501-5f089df7cb7e/go.mod h1:fKZCUVdirrxrBpwd9wb+lSoVixvpwAu8eHzbQB2tums= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/sony/gobreaker v0.4.2-0.20210216022020-dd874f9dd33b h1:br+bPNZsJWKicw/5rALEo67QHs5weyD5tf8WST+4sJ0= -github.com/sony/gobreaker v0.4.2-0.20210216022020-dd874f9dd33b/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng= -github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI= @@ -1605,7 +1510,6 @@ github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsT github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= 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/tencentcloud/tencentcloud-sdk-go v3.0.171+incompatible/go.mod h1:0PfYow01SHPMhKY31xa+EFz2RStxIqj6JFAJS+IkCi4= 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= @@ -1615,14 +1519,11 @@ github.com/tj/go-elastic v0.0.0-20171221160941-36157cbbebc2/go.mod h1:WjeM0Oo1eN github.com/tj/go-kinesis v0.0.0-20171128231115-08b17f58cb1b/go.mod h1:/yhzCV0xPfx6jb1bBgRFjl5lytqVqZXEaeqWP8lTEao= github.com/tj/go-spin v1.1.0/go.mod h1:Mg1mzmePZm4dva8Qz60H2lHwmJ2loum4VIrLgVnKwh4= github.com/tklauser/go-sysconf v0.3.10 h1:IJ1AZGZRWbY8T5Vfk04D9WOA5WSejdflXxP03OUqALw= -github.com/tklauser/go-sysconf v0.3.10/go.mod h1:C8XykCvCb+Gn0oNCWPIlcb0RuglQTYaQ2hGm7jmxEFk= github.com/tklauser/numcpus v0.4.0 h1:E53Dm1HjH1/R2/aoCtXtPgzmElmn51aOkhCFSuZq//o= -github.com/tklauser/numcpus v0.4.0/go.mod h1:1+UI3pD8NW14VMwdgJNJ1ESk2UnwhAnz5hMwiKKqXCQ= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c h1:u6SKchux2yDvFQnDHS3lPnIRmfVJ5Sxy3ao2SIdysLQ= -github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9Kjc7aWznkXaL4U4TWaDSs8zcsY4Ka08nM= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/ulikunitz/xz v0.5.6/go.mod h1:2bypXElzHzzJZwzH67Y6wb67pO62Rzfn7BSiF4ABRW8= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= @@ -1636,14 +1537,14 @@ github.com/vmihailenco/msgpack/v5 v5.3.5/go.mod h1:7xyJ9e+0+9SaZT0Wt1RGleJXzli6Q github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g= github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= github.com/vmware/govmomi v0.18.0 h1:f7QxSmP7meCtoAmiKZogvVbLInT+CZx6Px6K5rYsJZo= -github.com/vmware/govmomi v0.18.0/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= -github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= 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= @@ -1662,14 +1563,12 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1 github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg= -github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= github.com/zclconf/go-cty v1.14.1 h1:t9fyA35fwjjUMcmL5hLER+e/rEPqrbCK1/OSE4SI9KA= github.com/zclconf/go-cty v1.14.1/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= go.etcd.io/bbolt v1.3.6 h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU= -go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= go.etcd.io/etcd v0.5.0-alpha.5.0.20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489/go.mod h1:yVHk9ub3CSBatqGNg7GRmsnfLWtoW60w4eDYfh7vHDg= @@ -1696,11 +1595,9 @@ go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= -go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/otel v1.14.0 h1:/79Huy8wbf5DnIPhemGB+zEPVwnN6fuQybr/SRXa6hM= go.opentelemetry.io/otel v1.14.0/go.mod h1:o4buv+dJzx8rohcUeRmWUZhqupFvzWis188WlggnNeU= go.opentelemetry.io/otel/sdk v1.14.0 h1:PDCppFRDq8A1jL9v6KMI6dYesaq+DFcDZvjsoGvxGzY= -go.opentelemetry.io/otel/sdk v1.14.0/go.mod h1:bwIC5TjrNG6QDCHNWvW4HLHtUQ4I+VQDsnjhvyZCALM= go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyKcFq/M= go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= @@ -1709,16 +1606,13 @@ go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= -go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8= -go.uber.org/multierr v1.8.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= go.uber.org/ratelimit v0.2.0 h1:UQE2Bgi7p2B85uP5dC2bbRtig0C+OeNRnNEafLjsLPA= go.uber.org/ratelimit v0.2.0/go.mod h1:YYBV4e4naJvhpitQrWJu1vCpgB7CboMe0qhltKt6mUg= go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= -go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= golang.org/x/crypto v0.0.0-20180820150726-614d502a4dac/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -2169,6 +2063,10 @@ golang.org/x/tools v0.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/tools v0.16.1 h1:TLyB3WofjdOEepBHAU20JdNC1Zbg87elYofWYAY5oZA= golang.org/x/tools v0.16.1/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= +golang.org/x/tools/cmd/cover v0.1.0-deprecated h1:Rwy+mWYz6loAF+LnG1jHG/JWMHRMMC2/1XX3Ejkx9lA= +golang.org/x/tools/cmd/cover v0.1.0-deprecated/go.mod h1:hMDiIvlpN1NoVgmjLjUJE9tMHyxHjFX7RuQ+rW12mSA= +golang.org/x/tools/go/vcs v0.1.0-deprecated h1:cOIJqWBl99H1dH5LWizPa+0ImeeJq3t3cJjaeOWUAL4= +golang.org/x/tools/go/vcs v0.1.0-deprecated/go.mod h1:zUrvATBAvEI9535oC0yWYsLsHIV4Z7g63sNPVMtuBy8= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -2204,7 +2102,6 @@ google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjR google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= google.golang.org/api v0.114.0 h1:1xQPji6cO2E2vLiI+C/XiFAnsn1WV3mjaEwGLhi3grE= -google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -2264,9 +2161,7 @@ google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54 h1:9NWlQfY2ePejTmfwUH1OWwmznFa+0kKcHGPDvcPza9M= -google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk= google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9 h1:m8v1xLLLzMe1m5P+gCTF8nJB9epwZQUBERm20Oy1poQ= -google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 h1:0nDDozoAU19Qb2HwhXadU8OcsiO/09cnTqhUtq2MEOM= google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= @@ -2355,11 +2250,9 @@ gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76 gopkg.in/square/go-jose.v2 v2.4.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/square/go-jose.v2 v2.6.0 h1:NGk74WTnPKBNUhNzQX7PYcTLUjoq7mzKk2OKbvwk2iI= -gopkg.in/square/go-jose.v2 v2.6.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= -gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -2403,7 +2296,6 @@ k8s.io/apiextensions-apiserver v0.0.0-20190409022649-727a075fdec8/go.mod h1:Ixke k8s.io/apiextensions-apiserver v0.18.3/go.mod h1:TMsNGs7DYpMXd+8MOCX8KzPOCx8fnZMoIGB24m03+JE= k8s.io/apiextensions-apiserver v0.20.1/go.mod h1:ntnrZV+6a3dB504qwC5PN/Yg9PBiDNt1EVqbW2kORVk= k8s.io/apiextensions-apiserver v0.26.0 h1:Gy93Xo1eg2ZIkNX/8vy5xviVSxwQulsnUdQ00nEdpDo= -k8s.io/apiextensions-apiserver v0.26.0/go.mod h1:7ez0LTiyW5nq3vADtK6C3kMESxadD51Bh6uz3JOlqWQ= k8s.io/apimachinery v0.0.0-20190404173353-6a84e37a896d/go.mod h1:ccL7Eh7zubPUSh9A3USN90/OzHNSVN6zxzde07TDCL0= k8s.io/apimachinery v0.0.0-20190409092423-760d1845f48b/go.mod h1:FW86P8YXVLsbuplGMZeb20J3jYHscrDqw4jELaFJvRU= k8s.io/apimachinery v0.18.3/go.mod h1:OaXp26zu/5J7p0f92ASynJa1pZo06YlV9fG7BoWbCko= @@ -2432,7 +2324,6 @@ k8s.io/code-generator v0.20.1/go.mod h1:UsqdF+VX4PU2g46NC2JRs4gc+IfrctnwHb76RNbW k8s.io/component-base v0.18.3/go.mod h1:bp5GzGR0aGkYEfTj+eTY0AN/vXTgkJdQXjNTTVUaa3k= k8s.io/component-base v0.20.1/go.mod h1:guxkoJnNoh8LNrbtiQOlyp2Y2XFCZQmrcg2n/DeYNLk= k8s.io/component-base v0.26.1 h1:4ahudpeQXHZL5kko+iDHqLj/FSGAEUnSVO0EBbgDd+4= -k8s.io/component-base v0.26.1/go.mod h1:VHrLR0b58oC035w6YQiBSbtsf0ThuSwXP+p5dD/kAWU= k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20200114144118-36b2048a9120/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= @@ -2468,7 +2359,6 @@ k8s.io/utils v0.0.0-20230313181309-38a27ef9d749 h1:xMMXJlJbsU8w3V5N2FLDQ8YgU8s1E k8s.io/utils v0.0.0-20230313181309-38a27ef9d749/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= layeh.com/radius v0.0.0-20190322222518-890bc1058917/go.mod h1:fywZKyu//X7iRzaxLgPWsvc0L26IUpVvE/aeIL2JtIQ= nhooyr.io/websocket v1.8.7 h1:usjR2uOr/zjjkVMy0lW+PPohFok7PCow5sDjLgX4P4g= -nhooyr.io/websocket v1.8.7/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/ibm/conns/config.go b/ibm/conns/config.go index d79da32fb5..0e8750619c 100644 --- a/ibm/conns/config.go +++ b/ibm/conns/config.go @@ -1,4 +1,4 @@ -// Copyright IBM Corp. 2017, 2021 All Rights Reserved. +// Copyright IBM Corp. 2024 All Rights Reserved. // Licensed under the Mozilla Public License v2.0 package conns diff --git a/ibm/flex/structures.go b/ibm/flex/structures.go index f5e1c525d8..a8ed56381a 100644 --- a/ibm/flex/structures.go +++ b/ibm/flex/structures.go @@ -3431,6 +3431,14 @@ func FindRoleByName(supported []iampolicymanagementv1.PolicyRole, name string) ( } } } + if name == "NONE" { + name := "NONE" + r := iampolicymanagementv1.PolicyRole{ + DisplayName: &name, + RoleID: &name, + } + return r, nil + } supportedRoles := getSupportedRolesStr(supported) return iampolicymanagementv1.PolicyRole{}, bmxerror.New("RoleDoesnotExist", fmt.Sprintf("%s was not found. Valid roles are %s", name, supportedRoles)) @@ -3453,7 +3461,7 @@ func FindRoleByCRN(supported []iampolicymanagementv1.PolicyRole, crn string) (ia } func getSupportedRolesStr(supported []iampolicymanagementv1.PolicyRole) string { - rolesStr := "" + rolesStr := "NONE, " for index, role := range supported { if index != 0 { rolesStr += ", " diff --git a/ibm/provider/provider.go b/ibm/provider/provider.go index a24ea078ef..b9f186283a 100644 --- a/ibm/provider/provider.go +++ b/ibm/provider/provider.go @@ -1,4 +1,4 @@ -// Copyright IBM Corp. 2017, 2021 All Rights Reserved. +// Copyright IBM Corp. 2024 All Rights Reserved. // Licensed under the Mozilla Public License v2.0 package provider diff --git a/ibm/service/cis/resource_ibm_cis_filter.go b/ibm/service/cis/resource_ibm_cis_filter.go index b8776c7fe6..eb22b3ab41 100644 --- a/ibm/service/cis/resource_ibm_cis_filter.go +++ b/ibm/service/cis/resource_ibm_cis_filter.go @@ -59,10 +59,9 @@ func ResourceIBMCISFilter() *schema.Resource { Description: "Filter Expression", }, cisFilterDescription: { - Type: schema.TypeString, - Optional: true, - Description: "Filter Description", - ValidateFunc: validate.InvokeValidator(ibmCISFilters, cisFilterDescription), + Type: schema.TypeString, + Optional: true, + Description: "Filter Description", }, }, } diff --git a/ibm/service/cis/resource_ibm_cis_firewall_rules.go b/ibm/service/cis/resource_ibm_cis_firewall_rules.go index 83eb5fcab0..12c7b408a5 100644 --- a/ibm/service/cis/resource_ibm_cis_firewall_rules.go +++ b/ibm/service/cis/resource_ibm_cis_firewall_rules.go @@ -67,10 +67,9 @@ func ResourceIBMCISFirewallrules() *schema.Resource { ValidateFunc: validate.InvokeValidator(ibmCISFirewallrules, cisFirewallrulesPriority), }, cisFirewallrulesDescription: { - Type: schema.TypeString, - Optional: true, - Description: "Firewallrules Description", - ValidateFunc: validate.InvokeValidator(ibmCISFirewallrules, cisFirewallrulesDescription), + Type: schema.TypeString, + Optional: true, + Description: "Firewallrules Description", }, cisFirewallrulesPaused: { Type: schema.TypeBool, diff --git a/ibm/service/database/resource_ibm_database.go b/ibm/service/database/resource_ibm_database.go index b5fb8e7500..dc3723ca51 100644 --- a/ibm/service/database/resource_ibm_database.go +++ b/ibm/service/database/resource_ibm_database.go @@ -1817,7 +1817,14 @@ func resourceIBMDatabaseInstanceRead(context context.Context, d *schema.Resource return diag.FromErr(fmt.Errorf("[ERROR] Error setting the database configuration schema: %s", err)) } } + + // This can be removed any time after August once all old multitenant instances are switched over to the new multitenant + if groupList.Groups[0].HostFlavor == nil && (groupList.Groups[0].CPU != nil && *groupList.Groups[0].CPU.AllocationCount == 0) { + return appendSwitchoverWarning() + } + return nil + } func resourceIBMDatabaseInstanceUpdate(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { @@ -2897,8 +2904,22 @@ func validateMultitenantMemoryCpu(resourceDefaults *Group, group *Group, cpuEnfo if group.CPU.Allocation >= cpuEnforcementRatioCeilingTemp/cpuEnforcementRatioMb { return nil } else { - return fmt.Errorf("The current cpu alloaction of %d is not valid for your current configuration.", group.CPU.Allocation) + return fmt.Errorf("The current cpu allocation of %d is not valid for your current configuration.", group.CPU.Allocation) + } +} + +// This can be removed any time after August once all old multitenant instances are switched over to the new multitenant +func appendSwitchoverWarning() diag.Diagnostics { + var diags diag.Diagnostics + + warning := diag.Diagnostic{ + Severity: diag.Warning, + Summary: "Note: IBM Cloud Databases released new Hosting Models on May 1. All existing multi-tenant instances will have their resources adjusted to Shared Compute allocations during August 2024. To monitor your current resource needs, and learn about how the transition to Shared Compute will impact your instance, see our documentation https://cloud.ibm.com/docs/cloud-databases?topic=cloud-databases-hosting-models", } + + diags = append(diags, warning) + + return diags } func validateGroupsDiff(_ context.Context, diff *schema.ResourceDiff, meta interface{}) (err error) { diff --git a/ibm/service/database/resource_ibm_database_test.go b/ibm/service/database/resource_ibm_database_test.go index 5e58458d58..81090ce690 100644 --- a/ibm/service/database/resource_ibm_database_test.go +++ b/ibm/service/database/resource_ibm_database_test.go @@ -4,9 +4,11 @@ package database import ( + "testing" + "github.com/IBM/go-sdk-core/v5/core" + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" "gotest.tools/assert" - "testing" ) func TestValidateUserPassword(t *testing.T) { @@ -193,3 +195,20 @@ func TestValidateRBACRole(t *testing.T) { } } } + +func TestAppendSwitchoverWarning(t *testing.T) { + diags := appendSwitchoverWarning() + warningNote := "Note: IBM Cloud Databases released new Hosting Models on May 1. All existing multi-tenant instances will have their resources adjusted to Shared Compute allocations during August 2024. To monitor your current resource needs, and learn about how the transition to Shared Compute will impact your instance, see our documentation https://cloud.ibm.com/docs/cloud-databases?topic=cloud-databases-hosting-models" + + if len(diags) != 1 { + t.Fatalf("expected 1 diagnostic, got %d", len(diags)) + } + + if diags[0].Severity != diag.Warning { + t.Errorf("expected severity %v, got %v", diag.Warning, diags[0].Severity) + } + + if diags[0].Summary != warningNote { + t.Errorf("expected summary %v, got %v", warningNote, diags[0].Summary) + } +} diff --git a/ibm/service/eventnotification/resource_ibm_en_smtp_setting.go b/ibm/service/eventnotification/resource_ibm_en_smtp_setting.go index 1c3461b248..d585bd5e2e 100644 --- a/ibm/service/eventnotification/resource_ibm_en_smtp_setting.go +++ b/ibm/service/eventnotification/resource_ibm_en_smtp_setting.go @@ -37,7 +37,7 @@ func ResourceIBMEnSMTPSetting() *schema.Resource { "settings": { Type: schema.TypeList, MaxItems: 1, - Optional: true, + Required: true, Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ "subnets": { @@ -64,7 +64,7 @@ func resourceIBMEnSMTPSettingCreate(context context.Context, d *schema.ResourceD options.SetInstanceID(d.Get("instance_guid").(string)) options.SetID(d.Get("smtp_config_id").(string)) - subnets := AllowedIPSMap(d.Get("settings").(map[string]interface{})) + subnets := AllowedIPSMap(d.Get("settings.0").(map[string]interface{})) options.SetSubnets(subnets) _, response, err := enClient.UpdateSMTPAllowedIpsWithContext(context, options) diff --git a/ibm/service/kms/resource_ibm_kms_instance_policies.go b/ibm/service/kms/resource_ibm_kms_instance_policies.go index ac8bc19717..a47e4631bc 100644 --- a/ibm/service/kms/resource_ibm_kms_instance_policies.go +++ b/ibm/service/kms/resource_ibm_kms_instance_policies.go @@ -6,14 +6,14 @@ package kms import ( "context" "fmt" - "log" - "time" - "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex" "github.com/IBM-Cloud/terraform-provider-ibm/ibm/validate" kp "github.com/IBM/keyprotect-go-client" "github.com/hashicorp/terraform-plugin-sdk/v2/diag" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "log" + "strings" + "time" ) func ResourceIBMKmsInstancePolicy() *schema.Resource { @@ -259,6 +259,12 @@ func resourceIBMKmsInstancePoliciesRead(context context.Context, d *schema.Resou setIfNotEmpty("metrics", instancePolicies) setIfNotEmpty("key_create_import_access", instancePolicies) + if strings.Contains((kpAPI.URL).String(), "private") || strings.Contains(kpAPI.Config.BaseURL, "private") { + d.Set("endpoint_type", "private") + } else { + d.Set("endpoint_type", "public") + } + return nil } diff --git a/ibm/service/kubernetes/resource_ibm_container_cluster.go b/ibm/service/kubernetes/resource_ibm_container_cluster.go index d67e5c63f0..98eeb77d17 100644 --- a/ibm/service/kubernetes/resource_ibm_container_cluster.go +++ b/ibm/service/kubernetes/resource_ibm_container_cluster.go @@ -53,6 +53,8 @@ const ( defaultWorkerPool = "default" computeWorkerPool = "compute" gatewayWorkerpool = "gateway" + + masterDeployed = "deployed" ) const PUBLIC_SUBNET_TYPE = "public" @@ -1565,7 +1567,7 @@ func WaitForClusterVersionUpdate(d *schema.ResourceData, meta interface{}, targe Timeout: d.Timeout(schema.TimeoutUpdate), Delay: 20 * time.Second, MinTimeout: 10 * time.Second, - ContinuousTargetOccurence: 5, + ContinuousTargetOccurence: 3, } return stateConf.WaitForState() diff --git a/ibm/service/kubernetes/resource_ibm_container_storage_attachment.go b/ibm/service/kubernetes/resource_ibm_container_storage_attachment.go index ce68729024..8b46ab777f 100644 --- a/ibm/service/kubernetes/resource_ibm_container_storage_attachment.go +++ b/ibm/service/kubernetes/resource_ibm_container_storage_attachment.go @@ -299,7 +299,7 @@ func waitforVolumetoAttach(d *schema.ResourceData, meta interface{}) (interface{ Timeout: d.Timeout(schema.TimeoutCreate), Delay: 10 * time.Second, MinTimeout: 5 * time.Second, - ContinuousTargetOccurence: 5, + ContinuousTargetOccurence: 3, } return createStateConf.WaitForState() } diff --git a/ibm/service/kubernetes/resource_ibm_container_vpc_cluster.go b/ibm/service/kubernetes/resource_ibm_container_vpc_cluster.go index 1fa6089f17..e168e05841 100644 --- a/ibm/service/kubernetes/resource_ibm_container_vpc_cluster.go +++ b/ibm/service/kubernetes/resource_ibm_container_vpc_cluster.go @@ -105,6 +105,12 @@ func ResourceIBMContainerVpcCluster() *schema.Resource { Optional: true, Description: "Account ID of KMS instance holder - if not provided, defaults to the account in use", }, + "wait_for_apply": { + Type: schema.TypeBool, + Optional: true, + Default: false, + Description: "Forces terraform to wait till the changes take effect, not marking the cluster complete till", + }, }, }, }, @@ -720,6 +726,7 @@ func resourceIBMContainerVpcClusterUpdate(d *schema.ResourceData, meta interface kmsConfig := v2.KmsEnableReq{} kmsConfig.Cluster = clusterID targetEnv := v2.ClusterHeader{} + var waitForApply bool if kms, ok := d.GetOk("kms_config"); ok { kmsConfiglist := kms.([]interface{}) @@ -745,16 +752,22 @@ func resourceIBMContainerVpcClusterUpdate(d *schema.ResourceData, meta interface accountid_string := accountid.(string) kmsConfig.AccountID = accountid_string } + + if wait, ok := kmsMap["wait_for_apply"].(bool); ok { + waitForApply = wait + } } - } - err := csClient.Kms().EnableKms(kmsConfig, targetEnv) - if err != nil { - log.Printf( - "An error occured during EnableKms (cluster: %s) error: %s", d.Id(), err) - return err + err := csClient.Kms().EnableKms(kmsConfig, targetEnv) + if err != nil { + log.Printf( + "An error occured during EnableKms (cluster: %s) error: %s", d.Id(), err) + return err + } + if waitForApply { + waitForVpcClusterMasterKMSApply(d, meta) + } } - } if d.HasChange(DisableOutboundTrafficProtectionFlag) { @@ -1183,7 +1196,7 @@ func waitForVpcClusterOneWorkerAvailable(d *schema.ResourceData, meta interface{ Timeout: d.Timeout(schema.TimeoutCreate), Delay: 10 * time.Second, MinTimeout: 5 * time.Second, - ContinuousTargetOccurence: 5, + ContinuousTargetOccurence: 3, } return createStateConf.WaitForState() } @@ -1219,7 +1232,7 @@ func waitForVpcClusterState(d *schema.ResourceData, meta interface{}, waitForSta Timeout: d.Timeout(schema.TimeoutCreate), Delay: 10 * time.Second, MinTimeout: 5 * time.Second, - ContinuousTargetOccurence: 5, + ContinuousTargetOccurence: 3, } return createStateConf.WaitForState() } @@ -1253,7 +1266,49 @@ func waitForVpcClusterMasterAvailable(d *schema.ResourceData, meta interface{}) Timeout: d.Timeout(schema.TimeoutCreate), Delay: 10 * time.Second, MinTimeout: 5 * time.Second, - ContinuousTargetOccurence: 5, + ContinuousTargetOccurence: 3, + } + return createStateConf.WaitForState() +} + +func waitForVpcClusterMasterKMSApply(d *schema.ResourceData, meta interface{}) (interface{}, error) { + log.Printf("[DEBUG] Wait for KMS to apply to master") + targetEnv, err := getVpcClusterTargetHeader(d, meta) + if err != nil { + return nil, err + } + csClient, err := meta.(conns.ClientSession).VpcContainerAPI() + if err != nil { + return nil, err + } + clusterID := d.Id() + createStateConf := &resource.StateChangeConf{ + Pending: []string{deployRequested, deployInProgress}, + Target: []string{ready}, + Refresh: func() (interface{}, string, error) { + log.Printf("[DEBUG] Waiting for KMS to apply to master") + clusterInfo, clusterInfoErr := csClient.Clusters().GetCluster(clusterID, targetEnv) + + if err != nil || clusterInfoErr != nil { + return clusterInfo, deployInProgress, clusterInfoErr + } + if clusterInfo.Features.KeyProtectEnabled == false { + log.Printf("[DEBUG] KeyProtectEnabled still false") + return clusterInfo, deployInProgress, nil + } + + if clusterInfo.Lifecycle.MasterStatus == ready && + clusterInfo.Lifecycle.MasterState == masterDeployed { + log.Printf("[DEBUG] KMS applied to master") + return clusterInfo, ready, nil + } + return clusterInfo, deployInProgress, nil + + }, + Timeout: d.Timeout(schema.TimeoutCreate), + Delay: 10 * time.Second, + MinTimeout: 5 * time.Second, + ContinuousTargetOccurence: 1, } return createStateConf.WaitForState() } @@ -1287,7 +1342,7 @@ func waitForVpcClusterIngressAvailable(d *schema.ResourceData, meta interface{}) Timeout: d.Timeout(schema.TimeoutCreate), Delay: 10 * time.Second, MinTimeout: 5 * time.Second, - ContinuousTargetOccurence: 5, + ContinuousTargetOccurence: 3, } return createStateConf.WaitForState() } @@ -1342,7 +1397,7 @@ func WaitForVpcClusterVersionUpdate(d *schema.ResourceData, meta interface{}, ta Timeout: d.Timeout(schema.TimeoutUpdate), Delay: 10 * time.Second, MinTimeout: 10 * time.Second, - ContinuousTargetOccurence: 5, + ContinuousTargetOccurence: 3, } return stateConf.WaitForState() @@ -1380,7 +1435,7 @@ func WaitForVpcClusterWokersVersionUpdate(d *schema.ResourceData, meta interface Timeout: d.Timeout(schema.TimeoutUpdate), Delay: 10 * time.Second, MinTimeout: 10 * time.Second, - ContinuousTargetOccurence: 5, + ContinuousTargetOccurence: 3, } return stateConf.WaitForState() 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 94447e8b57..7d9c8f0b69 100644 --- a/ibm/service/kubernetes/resource_ibm_container_vpc_cluster_test.go +++ b/ibm/service/kubernetes/resource_ibm_container_vpc_cluster_test.go @@ -812,6 +812,7 @@ func testAccCheckIBMContainerVpcClusterBaseEnvvar(name string) string { instance_id = "%[1]s" crk_id = "%[2]s" account_id = "%[3]s" + wait_for_apply = "true" } `, acc.KmsInstanceID, acc.CrkID, acc.KmsAccountID) } @@ -826,7 +827,7 @@ func testAccCheckIBMContainerVpcClusterBaseEnvvar(name string) string { subnet_id = "%[4]s" name = "us-south-1" } - wait_till = "normal" + wait_till = "IngressReady" %[5]s } `, name, acc.IksClusterVpcID, acc.IksClusterResourceGroupID, acc.IksClusterSubnetID, kmsConfig) diff --git a/ibm/service/kubernetes/resource_ibm_container_vpc_worker.go b/ibm/service/kubernetes/resource_ibm_container_vpc_worker.go index 60247cec98..5fbadaeb16 100644 --- a/ibm/service/kubernetes/resource_ibm_container_vpc_worker.go +++ b/ibm/service/kubernetes/resource_ibm_container_vpc_worker.go @@ -688,7 +688,7 @@ func WaitForVpcClusterVpcWokersVersionUpdate(d *schema.ResourceData, meta interf Timeout: d.Timeout(schema.TimeoutUpdate), Delay: 10 * time.Second, MinTimeout: 10 * time.Second, - ContinuousTargetOccurence: 5, + ContinuousTargetOccurence: 3, } return stateConf.WaitForState() diff --git a/ibm/service/power/ibm_pi_constants.go b/ibm/service/power/ibm_pi_constants.go index 20b0ef58e9..b9ec88a7ff 100644 --- a/ibm/service/power/ibm_pi_constants.go +++ b/ibm/service/power/ibm_pi_constants.go @@ -11,6 +11,7 @@ const ( Arg_AntiAffinityVolumes = "pi_anti_affinity_volumes" Arg_CloudConnectionName = "pi_cloud_connection_name" Arg_CloudInstanceID = "pi_cloud_instance_id" + Arg_Datacenter = "pi_datacenter" Arg_DatacenterZone = "pi_datacenter_zone" Arg_Description = "pi_description" Arg_DhcpCidr = "pi_cidr" @@ -26,14 +27,17 @@ const ( Arg_InstanceName = "pi_instance_name" Arg_KeyName = "pi_key_name" Arg_LanguageCode = "pi_language_code" + Arg_Name = "pi_name" Arg_NetworkName = "pi_network_name" Arg_PIInstanceSharedProcessorPool = "pi_shared_processor_pool" Arg_PlacementGroupName = "pi_placement_group_name" Arg_PlacementGroupPolicy = "pi_placement_group_policy" + Arg_Plan = "pi_plan" Arg_PVMInstanceActionType = "pi_action" Arg_PVMInstanceHealthStatus = "pi_health_status" Arg_PVMInstanceId = "pi_instance_id" Arg_ReplicationEnabled = "pi_replication_enabled" + Arg_ResourceGroupID = "pi_resource_group_id" Arg_SAP = "sap" Arg_SAPProfileID = "pi_sap_profile_id" Arg_SharedProcessorPoolHostGroup = "pi_shared_processor_pool_host_group" @@ -93,9 +97,9 @@ const ( Attr_CoreMemoryRatio = "core_memory_ratio" Attr_Cores = "cores" Attr_CPUs = "cpus" + Attr_Created = "created" Attr_CreateTime = "create_time" Attr_CreationDate = "creation_date" - Attr_Created = "created" Attr_CRN = "crn" Attr_CyclePeriodSeconds = "cycle_period_seconds" Attr_CyclingMode = "cycling_mode" @@ -327,27 +331,29 @@ const ( // Affinty Values Affinity = "affinity" AntiAffinity = "anti-affinity" + Private = "private" + Public = "public" // States - State_Active = "active" - State_ACTIVE = "ACTIVE" - State_Added = "added" - State_Adding = "adding" - State_Available = "available" - State_BUILD = "BUILD" - State_Creating = "creating" - State_Deleted = "deleted" - State_Deleting = "deleting" - State_DELETING = "DELETING" - State_Failed = "failed" - State_Inactive = "inactive" - State_InProgress = "in progress" - State_InUse = "in-use" - State_NotFound = "Not Found" - State_PendingReclaimation = "pending_reclamation" - State_Provisioning = "provisioning" - State_Removed = "removed" - State_Retry = "retry" + State_Active = "active" + State_ACTIVE = "ACTIVE" + State_Added = "added" + State_Adding = "adding" + State_Available = "available" + State_BUILD = "BUILD" + State_Creating = "creating" + State_Deleted = "deleted" + State_Deleting = "deleting" + State_DELETING = "DELETING" + State_Failed = "failed" + State_Inactive = "inactive" + State_InProgress = "in progress" + State_InUse = "in-use" + State_NotFound = "Not Found" + State_PendingReclamation = "pending_reclamation" + State_Provisioning = "provisioning" + State_Removed = "removed" + State_Retry = "retry" // Health Health_OK = "OK" diff --git a/ibm/service/power/resource_ibm_pi_workspace.go b/ibm/service/power/resource_ibm_pi_workspace.go index bdb0a24424..6315413830 100644 --- a/ibm/service/power/resource_ibm_pi_workspace.go +++ b/ibm/service/power/resource_ibm_pi_workspace.go @@ -6,12 +6,14 @@ import ( "log" "time" - st "github.com/IBM-Cloud/power-go-client/clients/instance" + "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/IBM-Cloud/terraform-provider-ibm/ibm/validate" "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/retry" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" ) func ResourceIBMPIWorkspace() *schema.Resource { @@ -27,30 +29,38 @@ func ResourceIBMPIWorkspace() *schema.Resource { }, Schema: map[string]*schema.Schema{ - PIWorkspaceName: { - Type: schema.TypeString, - Required: true, - ForceNew: true, - Description: "A descriptive name used to identify the workspace.", + // Arguments + Arg_Datacenter: { + Description: "Target location or environment to create the resource instance.", + ForceNew: true, + Required: true, + Type: schema.TypeString, + ValidateFunc: validation.NoZeroValues, }, - PIWorkspaceDatacenter: { - Type: schema.TypeString, - Required: true, - ForceNew: true, - Description: "Target location or environment to create the resource instance.", + Arg_Name: { + Description: "A descriptive name used to identify the workspace.", + ForceNew: true, + Required: true, + Type: schema.TypeString, + ValidateFunc: validation.NoZeroValues, }, - 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.", + Arg_Plan: { + Default: Public, + Description: "Plan associated with the offering; Valid values are public or private.", + ForceNew: true, + Optional: true, + Type: schema.TypeString, + ValidateFunc: validate.ValidateAllowedStringValues([]string{Private, Public}), }, - PIWorkspacePlan: { - Type: schema.TypeString, - Required: true, - ForceNew: true, - Description: "Plan associated with the offering; Valid values are public or private.", + Arg_ResourceGroupID: { + 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.", + ForceNew: true, + Required: true, + Type: schema.TypeString, + ValidateFunc: validation.NoZeroValues, }, + + // Attributes Attr_WorkspaceDetails: { Computed: true, Description: "Workspace information.", @@ -66,13 +76,13 @@ func resourceIBMPIWorkspaceCreate(ctx context.Context, d *schema.ResourceData, m return diag.FromErr(err) } - name := d.Get(PIWorkspaceName).(string) - datacenter := d.Get(PIWorkspaceDatacenter).(string) - resourceGroup := d.Get(PIWorkspaceResourceGroup).(string) - plan := d.Get(PIWorkspacePlan).(string) + name := d.Get(Arg_Name).(string) + datacenter := d.Get(Arg_Datacenter).(string) + resourceGroup := d.Get(Arg_ResourceGroupID).(string) + plan := d.Get(Arg_Plan).(string) // No need for cloudInstanceID because we are creating a workspace - client := st.NewIBMPIWorkspacesClient(ctx, sess, "") + client := instance.NewIBMPIWorkspacesClient(ctx, sess, "") controller, _, err := client.Create(name, datacenter, resourceGroup, plan) if err != nil { log.Printf("[DEBUG] create workspace failed %v", err) @@ -88,10 +98,10 @@ func resourceIBMPIWorkspaceCreate(ctx context.Context, d *schema.ResourceData, m 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"}, +func waitForResourceInstanceCreate(ctx context.Context, client *instance.IBMPIWorkspacesClient, id string, timeout time.Duration) (interface{}, error) { + stateConf := &retry.StateChangeConf{ + Pending: []string{State_InProgress, State_Inactive, State_Provisioning}, + Target: []string{State_Active}, Refresh: isIBMPIWorkspaceCreateRefreshFunc(client, id), Delay: 10 * time.Second, MinTimeout: 1 * time.Minute, @@ -100,13 +110,13 @@ func waitForResourceInstanceCreate(ctx context.Context, client *st.IBMPIWorkspac return stateConf.WaitForStateContext(ctx) } -func isIBMPIWorkspaceCreateRefreshFunc(client *st.IBMPIWorkspacesClient, id string) resource.StateRefreshFunc { +func isIBMPIWorkspaceCreateRefreshFunc(client *instance.IBMPIWorkspacesClient, id string) retry.StateRefreshFunc { return func() (interface{}, string, error) { controller, _, err := client.GetRC(id) if err != nil { return nil, "", err } - if *controller.State == "failed" { + if *controller.State == State_Failed { return controller, *controller.State, fmt.Errorf("[ERROR] The resource instance %s failed to create", id) } return controller, *controller.State, nil @@ -121,12 +131,12 @@ func resourceIBMPIWorkspaceRead(ctx context.Context, d *schema.ResourceData, met } cloudInstanceID := d.Id() - client := st.NewIBMPIWorkspacesClient(ctx, sess, cloudInstanceID) + client := instance.NewIBMPIWorkspacesClient(ctx, sess, cloudInstanceID) controller, _, err := client.GetRC(cloudInstanceID) if err != nil { return diag.FromErr(err) } - d.Set(PIWorkspaceName, controller.Name) + d.Set(Arg_Name, controller.Name) wsDetails := map[string]interface{}{ Attr_CreationDate: controller.CreatedAt, Attr_CRN: controller.TargetCRN, @@ -144,7 +154,7 @@ func resourceIBMPIWorkspaceDelete(ctx context.Context, d *schema.ResourceData, m } cloudInstanceID := d.Id() - client := st.NewIBMPIWorkspacesClient(ctx, sess, cloudInstanceID) + client := instance.NewIBMPIWorkspacesClient(ctx, sess, cloudInstanceID) response, err := client.Delete(cloudInstanceID) if err != nil && response != nil && response.StatusCode == 410 { return nil @@ -158,10 +168,10 @@ func resourceIBMPIWorkspaceDelete(ctx context.Context, d *schema.ResourceData, m 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"}, +func waitForResourceInstanceDelete(ctx context.Context, client *instance.IBMPIWorkspacesClient, id string, timeout time.Duration) (interface{}, error) { + stateConf := &retry.StateChangeConf{ + Pending: []string{State_InProgress, State_Inactive, State_Active}, + Target: []string{State_Removed, State_PendingReclamation}, Refresh: isIBMPIResourceDeleteRefreshFunc(client, id), Delay: 10 * time.Second, MinTimeout: 1 * time.Second, @@ -170,19 +180,19 @@ func waitForResourceInstanceDelete(ctx context.Context, client *st.IBMPIWorkspac return stateConf.WaitForStateContext(ctx) } -func isIBMPIResourceDeleteRefreshFunc(client *st.IBMPIWorkspacesClient, id string) resource.StateRefreshFunc { +func isIBMPIResourceDeleteRefreshFunc(client *instance.IBMPIWorkspacesClient, id string) retry.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 controller, State_Active, nil } return nil, "", err } if controller == nil { - return controller, "removed", nil + return controller, State_Removed, nil } else { - if *controller.State == "failed" { + if *controller.State == 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 index d38062f794..dd5938119e 100644 --- a/ibm/service/power/resource_ibm_pi_workspace_test.go +++ b/ibm/service/power/resource_ibm_pi_workspace_test.go @@ -10,6 +10,7 @@ import ( 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/IBM-Cloud/terraform-provider-ibm/ibm/service/power" "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" @@ -37,9 +38,8 @@ func testAccCheckIBMPIWorkspaceConfig(name string) string { return fmt.Sprintf(` resource "ibm_pi_workspace" "powervs_service_instance" { pi_name = "%[1]s" - pi_datacenter = "dal" + pi_datacenter = "dal12" pi_resource_group_id = "%[2]s" - pi_plan = "public" } `, name, acc.Pi_resource_group_id) } @@ -57,7 +57,7 @@ func testAccIBMPIWorkspaceDestroy(s *terraform.State) error { client := st.NewIBMPIWorkspacesClient(context.Background(), sess, cloudInstanceID) workspace, resp, err := client.GetRC(cloudInstanceID) if err == nil { - if *workspace.State == "active" { + if *workspace.State == power.State_Active { return fmt.Errorf("Resource Instance still exists: %s", rs.Primary.ID) } } else { diff --git a/ibm/service/project/data_source_ibm_project.go b/ibm/service/project/data_source_ibm_project.go index 03c8be1e5d..b54a6412cf 100644 --- a/ibm/service/project/data_source_ibm_project.go +++ b/ibm/service/project/data_source_ibm_project.go @@ -1,6 +1,10 @@ // Copyright IBM Corp. 2024 All Rights Reserved. // Licensed under the Mozilla Public License v2.0 +/* + * IBM OpenAPI Terraform Generator Version: 3.90.1-64fd3296-20240515-180710 + */ + package project import ( @@ -136,6 +140,11 @@ func DataSourceIbmProject() *schema.Resource { Computed: true, Description: "The state of the configuration.", }, + "state_code": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Computed state code clarifying the prerequisites for validation for the configuration.", + }, "version": &schema.Schema{ Type: schema.TypeInt, Computed: true, @@ -179,6 +188,11 @@ func DataSourceIbmProject() *schema.Resource { Computed: true, Description: "The state of the configuration.", }, + "state_code": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Computed state code clarifying the prerequisites for validation for the configuration.", + }, "version": &schema.Schema{ Type: schema.TypeInt, Computed: true, @@ -409,6 +423,7 @@ func DataSourceIbmProject() *schema.Resource { func dataSourceIbmProjectRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { projectClient, err := meta.(conns.ClientSession).ProjectV1() if err != nil { + // Error is coming from SDK client, so it doesn't need to be discriminated. tfErr := flex.TerraformErrorf(err, err.Error(), "(Data) ibm_project", "read") log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage()) return tfErr.GetDiag() @@ -428,13 +443,11 @@ func dataSourceIbmProjectRead(context context.Context, d *schema.ResourceData, m d.SetId(fmt.Sprintf("%s", *getProjectOptions.ID)) if err = d.Set("crn", project.Crn); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting crn: %s", err), "(Data) ibm_project", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting crn: %s", err), "(Data) ibm_project", "read", "set-crn").GetDiag() } if err = d.Set("created_at", flex.DateTimeToString(project.CreatedAt)); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting created_at: %s", err), "(Data) ibm_project", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting created_at: %s", err), "(Data) ibm_project", "read", "set-created_at").GetDiag() } cumulativeNeedsAttentionView := []map[string]interface{}{} @@ -442,50 +455,41 @@ func dataSourceIbmProjectRead(context context.Context, d *schema.ResourceData, m for _, modelItem := range project.CumulativeNeedsAttentionView { modelMap, err := DataSourceIbmProjectCumulativeNeedsAttentionToMap(&modelItem) if err != nil { - tfErr := flex.TerraformErrorf(err, err.Error(), "(Data) ibm_project", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_project", "read", "cumulative_needs_attention_view-to-map").GetDiag() } cumulativeNeedsAttentionView = append(cumulativeNeedsAttentionView, modelMap) } } if err = d.Set("cumulative_needs_attention_view", cumulativeNeedsAttentionView); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting cumulative_needs_attention_view: %s", err), "(Data) ibm_project", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting cumulative_needs_attention_view: %s", err), "(Data) ibm_project", "read", "set-cumulative_needs_attention_view").GetDiag() } if err = d.Set("cumulative_needs_attention_view_error", project.CumulativeNeedsAttentionViewError); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting cumulative_needs_attention_view_error: %s", err), "(Data) ibm_project", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting cumulative_needs_attention_view_error: %s", err), "(Data) ibm_project", "read", "set-cumulative_needs_attention_view_error").GetDiag() } if err = d.Set("location", project.Location); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting location: %s", err), "(Data) ibm_project", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting location: %s", err), "(Data) ibm_project", "read", "set-location").GetDiag() } if err = d.Set("resource_group_id", project.ResourceGroupID); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting resource_group_id: %s", err), "(Data) ibm_project", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting resource_group_id: %s", err), "(Data) ibm_project", "read", "set-resource_group_id").GetDiag() } if err = d.Set("state", project.State); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting state: %s", err), "(Data) ibm_project", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting state: %s", err), "(Data) ibm_project", "read", "set-state").GetDiag() } if err = d.Set("href", project.Href); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting href: %s", err), "(Data) ibm_project", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting href: %s", err), "(Data) ibm_project", "read", "set-href").GetDiag() } if err = d.Set("resource_group", project.ResourceGroup); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting resource_group: %s", err), "(Data) ibm_project", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting resource_group: %s", err), "(Data) ibm_project", "read", "set-resource_group").GetDiag() } if err = d.Set("event_notifications_crn", project.EventNotificationsCrn); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting event_notifications_crn: %s", err), "(Data) ibm_project", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting event_notifications_crn: %s", err), "(Data) ibm_project", "read", "set-event_notifications_crn").GetDiag() } configs := []map[string]interface{}{} @@ -493,15 +497,13 @@ func dataSourceIbmProjectRead(context context.Context, d *schema.ResourceData, m for _, modelItem := range project.Configs { modelMap, err := DataSourceIbmProjectProjectConfigSummaryToMap(&modelItem) if err != nil { - tfErr := flex.TerraformErrorf(err, err.Error(), "(Data) ibm_project", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_project", "read", "configs-to-map").GetDiag() } configs = append(configs, modelMap) } } if err = d.Set("configs", configs); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting configs: %s", err), "(Data) ibm_project", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting configs: %s", err), "(Data) ibm_project", "read", "set-configs").GetDiag() } environments := []map[string]interface{}{} @@ -509,29 +511,25 @@ func dataSourceIbmProjectRead(context context.Context, d *schema.ResourceData, m for _, modelItem := range project.Environments { modelMap, err := DataSourceIbmProjectProjectEnvironmentSummaryToMap(&modelItem) if err != nil { - tfErr := flex.TerraformErrorf(err, err.Error(), "(Data) ibm_project", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_project", "read", "environments-to-map").GetDiag() } environments = append(environments, modelMap) } } if err = d.Set("environments", environments); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting environments: %s", err), "(Data) ibm_project", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting environments: %s", err), "(Data) ibm_project", "read", "set-environments").GetDiag() } definition := []map[string]interface{}{} if project.Definition != nil { modelMap, err := DataSourceIbmProjectProjectDefinitionPropertiesToMap(project.Definition) if err != nil { - tfErr := flex.TerraformErrorf(err, err.Error(), "(Data) ibm_project", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_project", "read", "definition-to-map").GetDiag() } definition = append(definition, modelMap) } if err = d.Set("definition", definition); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting definition: %s", err), "(Data) ibm_project", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting definition: %s", err), "(Data) ibm_project", "read", "set-definition").GetDiag() } return nil @@ -600,6 +598,9 @@ func DataSourceIbmProjectProjectConfigVersionSummaryToMap(model *projectv1.Proje } modelMap["definition"] = []map[string]interface{}{definitionMap} modelMap["state"] = *model.State + if model.StateCode != nil { + modelMap["state_code"] = *model.StateCode + } modelMap["version"] = flex.IntValue(model.Version) modelMap["href"] = *model.Href 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 index 241dca2be4..19a158d268 100644 --- a/ibm/service/project/data_source_ibm_project_config.go +++ b/ibm/service/project/data_source_ibm_project_config.go @@ -1,6 +1,10 @@ // Copyright IBM Corp. 2024 All Rights Reserved. // Licensed under the Mozilla Public License v2.0 +/* + * IBM OpenAPI Terraform Generator Version: 3.90.1-64fd3296-20240515-180710 + */ + package project import ( @@ -121,12 +125,6 @@ func DataSourceIbmProjectConfig() *schema.Resource { Computed: true, Description: "This property can be any value - a string, number, boolean, array, or object.", }, - "value_json": &schema.Schema{ - Type: schema.TypeString, - Deprecated: "This property will be deprecated, it will be replaced by the existing property 'value'.", - Computed: true, - Description: "This property can be any value - a string, number, boolean, array, or object.", - }, }, }, }, @@ -573,6 +571,11 @@ func DataSourceIbmProjectConfig() *schema.Resource { Computed: true, Description: "The state of the configuration.", }, + "state_code": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Computed state code clarifying the prerequisites for validation for the configuration.", + }, "version": &schema.Schema{ Type: schema.TypeInt, Computed: true, @@ -616,6 +619,11 @@ func DataSourceIbmProjectConfig() *schema.Resource { Computed: true, Description: "The state of the configuration.", }, + "state_code": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Computed state code clarifying the prerequisites for validation for the configuration.", + }, "version": &schema.Schema{ Type: schema.TypeInt, Computed: true, @@ -636,6 +644,7 @@ func DataSourceIbmProjectConfig() *schema.Resource { func dataSourceIbmProjectConfigRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { projectClient, err := meta.(conns.ClientSession).ProjectV1() if err != nil { + // Error is coming from SDK client, so it doesn't need to be discriminated. tfErr := flex.TerraformErrorf(err, err.Error(), "(Data) ibm_project_config", "read") log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage()) return tfErr.GetDiag() @@ -656,13 +665,11 @@ func dataSourceIbmProjectConfigRead(context context.Context, d *schema.ResourceD d.SetId(fmt.Sprintf("%s/%s", *getConfigOptions.ProjectID, *getConfigOptions.ID)) if err = d.Set("version", flex.IntValue(projectConfig.Version)); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting version: %s", err), "(Data) ibm_project_config", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting version: %s", err), "(Data) ibm_project_config", "read", "set-version").GetDiag() } if err = d.Set("is_draft", projectConfig.IsDraft); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting is_draft: %s", err), "(Data) ibm_project_config", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting is_draft: %s", err), "(Data) ibm_project_config", "read", "set-is_draft").GetDiag() } needsAttentionState := []map[string]interface{}{} @@ -670,30 +677,25 @@ func dataSourceIbmProjectConfigRead(context context.Context, d *schema.ResourceD for _, modelItem := range projectConfig.NeedsAttentionState { modelMap, err := DataSourceIbmProjectConfigProjectConfigNeedsAttentionStateToMap(&modelItem) if err != nil { - tfErr := flex.TerraformErrorf(err, err.Error(), "(Data) ibm_project_config", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_project_config", "read", "needs_attention_state-to-map").GetDiag() } needsAttentionState = append(needsAttentionState, modelMap) } } if err = d.Set("needs_attention_state", needsAttentionState); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting needs_attention_state: %s", err), "(Data) ibm_project_config", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting needs_attention_state: %s", err), "(Data) ibm_project_config", "read", "set-needs_attention_state").GetDiag() } if err = d.Set("created_at", flex.DateTimeToString(projectConfig.CreatedAt)); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting created_at: %s", err), "(Data) ibm_project_config", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting created_at: %s", err), "(Data) ibm_project_config", "read", "set-created_at").GetDiag() } if err = d.Set("modified_at", flex.DateTimeToString(projectConfig.ModifiedAt)); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting modified_at: %s", err), "(Data) ibm_project_config", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting modified_at: %s", err), "(Data) ibm_project_config", "read", "set-modified_at").GetDiag() } if err = d.Set("last_saved_at", flex.DateTimeToString(projectConfig.LastSavedAt)); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting last_saved_at: %s", err), "(Data) ibm_project_config", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting last_saved_at: %s", err), "(Data) ibm_project_config", "read", "set-last_saved_at").GetDiag() } outputs := []map[string]interface{}{} @@ -701,129 +703,109 @@ func dataSourceIbmProjectConfigRead(context context.Context, d *schema.ResourceD for _, modelItem := range projectConfig.Outputs { modelMap, err := DataSourceIbmProjectConfigOutputValueToMap(&modelItem) if err != nil { - tfErr := flex.TerraformErrorf(err, err.Error(), "(Data) ibm_project_config", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_project_config", "read", "outputs-to-map").GetDiag() } outputs = append(outputs, modelMap) } } if err = d.Set("outputs", outputs); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting outputs: %s", err), "(Data) ibm_project_config", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting outputs: %s", err), "(Data) ibm_project_config", "read", "set-outputs").GetDiag() } project := []map[string]interface{}{} if projectConfig.Project != nil { modelMap, err := DataSourceIbmProjectConfigProjectReferenceToMap(projectConfig.Project) if err != nil { - tfErr := flex.TerraformErrorf(err, err.Error(), "(Data) ibm_project_config", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_project_config", "read", "project-to-map").GetDiag() } project = append(project, modelMap) } if err = d.Set("project", project); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting project: %s", err), "(Data) ibm_project_config", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting project: %s", err), "(Data) ibm_project_config", "read", "set-project").GetDiag() } schematics := []map[string]interface{}{} if projectConfig.Schematics != nil { modelMap, err := DataSourceIbmProjectConfigSchematicsMetadataToMap(projectConfig.Schematics) if err != nil { - tfErr := flex.TerraformErrorf(err, err.Error(), "(Data) ibm_project_config", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_project_config", "read", "schematics-to-map").GetDiag() } schematics = append(schematics, modelMap) } if err = d.Set("schematics", schematics); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting schematics: %s", err), "(Data) ibm_project_config", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting schematics: %s", err), "(Data) ibm_project_config", "read", "set-schematics").GetDiag() } if err = d.Set("state", projectConfig.State); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting state: %s", err), "(Data) ibm_project_config", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting state: %s", err), "(Data) ibm_project_config", "read", "set-state").GetDiag() } if err = d.Set("update_available", projectConfig.UpdateAvailable); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting update_available: %s", err), "(Data) ibm_project_config", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting update_available: %s", err), "(Data) ibm_project_config", "read", "set-update_available").GetDiag() } if err = d.Set("template_id", projectConfig.TemplateID); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting template_id: %s", err), "(Data) ibm_project_config", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting template_id: %s", err), "(Data) ibm_project_config", "read", "set-template_id").GetDiag() } memberOf := []map[string]interface{}{} if projectConfig.MemberOf != nil { modelMap, err := DataSourceIbmProjectConfigMemberOfDefinitionToMap(projectConfig.MemberOf) if err != nil { - tfErr := flex.TerraformErrorf(err, err.Error(), "(Data) ibm_project_config", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_project_config", "read", "member_of-to-map").GetDiag() } memberOf = append(memberOf, modelMap) } if err = d.Set("member_of", memberOf); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting member_of: %s", err), "(Data) ibm_project_config", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting member_of: %s", err), "(Data) ibm_project_config", "read", "set-member_of").GetDiag() } if err = d.Set("href", projectConfig.Href); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting href: %s", err), "(Data) ibm_project_config", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting href: %s", err), "(Data) ibm_project_config", "read", "set-href").GetDiag() } if err = d.Set("deployment_model", projectConfig.DeploymentModel); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting deployment_model: %s", err), "(Data) ibm_project_config", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting deployment_model: %s", err), "(Data) ibm_project_config", "read", "set-deployment_model").GetDiag() } if err = d.Set("state_code", projectConfig.StateCode); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting state_code: %s", err), "(Data) ibm_project_config", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting state_code: %s", err), "(Data) ibm_project_config", "read", "set-state_code").GetDiag() } definition := []map[string]interface{}{} if projectConfig.Definition != nil { modelMap, err := DataSourceIbmProjectConfigProjectConfigDefinitionResponseToMap(projectConfig.Definition) if err != nil { - tfErr := flex.TerraformErrorf(err, err.Error(), "(Data) ibm_project_config", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_project_config", "read", "definition-to-map").GetDiag() } definition = append(definition, modelMap) } if err = d.Set("definition", definition); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting definition: %s", err), "(Data) ibm_project_config", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting definition: %s", err), "(Data) ibm_project_config", "read", "set-definition").GetDiag() } approvedVersion := []map[string]interface{}{} if projectConfig.ApprovedVersion != nil { modelMap, err := DataSourceIbmProjectConfigProjectConfigVersionSummaryToMap(projectConfig.ApprovedVersion) if err != nil { - tfErr := flex.TerraformErrorf(err, err.Error(), "(Data) ibm_project_config", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_project_config", "read", "approved_version-to-map").GetDiag() } approvedVersion = append(approvedVersion, modelMap) } if err = d.Set("approved_version", approvedVersion); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting approved_version: %s", err), "(Data) ibm_project_config", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting approved_version: %s", err), "(Data) ibm_project_config", "read", "set-approved_version").GetDiag() } deployedVersion := []map[string]interface{}{} if projectConfig.DeployedVersion != nil { modelMap, err := DataSourceIbmProjectConfigProjectConfigVersionSummaryToMap(projectConfig.DeployedVersion) if err != nil { - tfErr := flex.TerraformErrorf(err, err.Error(), "(Data) ibm_project_config", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_project_config", "read", "deployed_version-to-map").GetDiag() } deployedVersion = append(deployedVersion, modelMap) } if err = d.Set("deployed_version", deployedVersion); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting deployed_version: %s", err), "(Data) ibm_project_config", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting deployed_version: %s", err), "(Data) ibm_project_config", "read", "set-deployed_version").GetDiag() } return nil @@ -857,7 +839,6 @@ func DataSourceIbmProjectConfigOutputValueToMap(model *projectv1.OutputValue) (m } if model.Value != nil { modelMap["value"] = flex.Stringify(model.Value) - modelMap["value_json"] = modelMap["value"] } return modelMap, nil } @@ -1221,6 +1202,9 @@ func DataSourceIbmProjectConfigProjectConfigVersionSummaryToMap(model *projectv1 } modelMap["definition"] = []map[string]interface{}{definitionMap} modelMap["state"] = *model.State + if model.StateCode != nil { + modelMap["state_code"] = *model.StateCode + } modelMap["version"] = flex.IntValue(model.Version) modelMap["href"] = *model.Href 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 index 620013fb52..57daf97d27 100644 --- a/ibm/service/project/data_source_ibm_project_config_test.go +++ b/ibm/service/project/data_source_ibm_project_config_test.go @@ -1,6 +1,10 @@ // Copyright IBM Corp. 2024 All Rights Reserved. // Licensed under the Mozilla Public License v2.0 +/* + * IBM OpenAPI Terraform Generator Version: 3.90.1-64fd3296-20240515-180710 + */ + package project_test import ( diff --git a/ibm/service/project/data_source_ibm_project_environment.go b/ibm/service/project/data_source_ibm_project_environment.go index f793053b8e..e31177fb78 100644 --- a/ibm/service/project/data_source_ibm_project_environment.go +++ b/ibm/service/project/data_source_ibm_project_environment.go @@ -1,6 +1,10 @@ // Copyright IBM Corp. 2024 All Rights Reserved. // Licensed under the Mozilla Public License v2.0 +/* + * IBM OpenAPI Terraform Generator Version: 3.90.1-64fd3296-20240515-180710 + */ + package project import ( @@ -182,6 +186,7 @@ func DataSourceIbmProjectEnvironment() *schema.Resource { func dataSourceIbmProjectEnvironmentRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { projectClient, err := meta.(conns.ClientSession).ProjectV1() if err != nil { + // Error is coming from SDK client, so it doesn't need to be discriminated. tfErr := flex.TerraformErrorf(err, err.Error(), "(Data) ibm_project_environment", "read") log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage()) return tfErr.GetDiag() @@ -205,48 +210,40 @@ func dataSourceIbmProjectEnvironmentRead(context context.Context, d *schema.Reso if environment.Project != nil { modelMap, err := DataSourceIbmProjectEnvironmentProjectReferenceToMap(environment.Project) if err != nil { - tfErr := flex.TerraformErrorf(err, err.Error(), "(Data) ibm_project_environment", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_project_environment", "read", "project-to-map").GetDiag() } project = append(project, modelMap) } if err = d.Set("project", project); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting project: %s", err), "(Data) ibm_project_environment", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting project: %s", err), "(Data) ibm_project_environment", "read", "set-project").GetDiag() } if err = d.Set("created_at", flex.DateTimeToString(environment.CreatedAt)); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting created_at: %s", err), "(Data) ibm_project_environment", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting created_at: %s", err), "(Data) ibm_project_environment", "read", "set-created_at").GetDiag() } if err = d.Set("target_account", environment.TargetAccount); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting target_account: %s", err), "(Data) ibm_project_environment", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting target_account: %s", err), "(Data) ibm_project_environment", "read", "set-target_account").GetDiag() } if err = d.Set("modified_at", flex.DateTimeToString(environment.ModifiedAt)); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting modified_at: %s", err), "(Data) ibm_project_environment", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting modified_at: %s", err), "(Data) ibm_project_environment", "read", "set-modified_at").GetDiag() } if err = d.Set("href", environment.Href); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting href: %s", err), "(Data) ibm_project_environment", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting href: %s", err), "(Data) ibm_project_environment", "read", "set-href").GetDiag() } definition := []map[string]interface{}{} if environment.Definition != nil { modelMap, err := DataSourceIbmProjectEnvironmentEnvironmentDefinitionRequiredPropertiesResponseToMap(environment.Definition) if err != nil { - tfErr := flex.TerraformErrorf(err, err.Error(), "(Data) ibm_project_environment", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_project_environment", "read", "definition-to-map").GetDiag() } definition = append(definition, modelMap) } if err = d.Set("definition", definition); err != nil { - tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting definition: %s", err), "(Data) ibm_project_environment", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting definition: %s", err), "(Data) ibm_project_environment", "read", "set-definition").GetDiag() } return 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 index 648095c74e..c02895838c 100644 --- a/ibm/service/project/data_source_ibm_project_environment_test.go +++ b/ibm/service/project/data_source_ibm_project_environment_test.go @@ -1,6 +1,10 @@ // Copyright IBM Corp. 2024 All Rights Reserved. // Licensed under the Mozilla Public License v2.0 +/* + * IBM OpenAPI Terraform Generator Version: 3.90.1-64fd3296-20240515-180710 + */ + package project_test import ( diff --git a/ibm/service/project/data_source_ibm_project_test.go b/ibm/service/project/data_source_ibm_project_test.go index 553e45f12c..f4fdc731b0 100644 --- a/ibm/service/project/data_source_ibm_project_test.go +++ b/ibm/service/project/data_source_ibm_project_test.go @@ -1,6 +1,10 @@ // Copyright IBM Corp. 2024 All Rights Reserved. // Licensed under the Mozilla Public License v2.0 +/* + * IBM OpenAPI Terraform Generator Version: 3.90.1-64fd3296-20240515-180710 + */ + package project_test import ( diff --git a/ibm/service/project/resource_ibm_project.go b/ibm/service/project/resource_ibm_project.go index 6d98cbac06..24830fee89 100644 --- a/ibm/service/project/resource_ibm_project.go +++ b/ibm/service/project/resource_ibm_project.go @@ -1,6 +1,10 @@ // Copyright IBM Corp. 2024 All Rights Reserved. // Licensed under the Mozilla Public License v2.0 +/* + * IBM OpenAPI Terraform Generator Version: 3.90.1-64fd3296-20240515-180710 + */ + package project import ( @@ -173,6 +177,11 @@ func ResourceIbmProject() *schema.Resource { Computed: true, Description: "The state of the configuration.", }, + "state_code": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Computed state code clarifying the prerequisites for validation for the configuration.", + }, "version": &schema.Schema{ Type: schema.TypeInt, Computed: true, @@ -217,6 +226,11 @@ func ResourceIbmProject() *schema.Resource { Computed: true, Description: "The state of the configuration.", }, + "state_code": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Computed state code clarifying the prerequisites for validation for the configuration.", + }, "version": &schema.Schema{ Type: schema.TypeInt, Computed: true, @@ -446,6 +460,7 @@ func ResourceIbmProjectValidator() *validate.ResourceValidator { func resourceIbmProjectCreate(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { projectClient, err := meta.(conns.ClientSession).ProjectV1() if err != nil { + // Error is coming from SDK client, so it doesn't need to be discriminated. tfErr := flex.TerraformErrorf(err, err.Error(), "ibm_project", "create") log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage()) return tfErr.GetDiag() @@ -455,7 +470,7 @@ func resourceIbmProjectCreate(context context.Context, d *schema.ResourceData, m definitionModel, err := ResourceIbmProjectMapToProjectPrototypeDefinition(d.Get("definition.0").(map[string]interface{})) if err != nil { - return diag.FromErr(err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project", "create", "parse-definition").GetDiag() } createProjectOptions.SetDefinition(definitionModel) createProjectOptions.SetLocation(d.Get("location").(string)) @@ -466,7 +481,7 @@ func resourceIbmProjectCreate(context context.Context, d *schema.ResourceData, m value := v.(map[string]interface{}) configsItem, err := ResourceIbmProjectMapToProjectConfigPrototype(value) if err != nil { - return diag.FromErr(err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project", "create", "parse-configs").GetDiag() } configs = append(configs, *configsItem) } @@ -478,7 +493,7 @@ func resourceIbmProjectCreate(context context.Context, d *schema.ResourceData, m value := v.(map[string]interface{}) environmentsItem, err := ResourceIbmProjectMapToEnvironmentPrototype(value) if err != nil { - return diag.FromErr(err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project", "create", "parse-environments").GetDiag() } environments = append(environments, *environmentsItem) } @@ -521,75 +536,88 @@ func resourceIbmProjectRead(context context.Context, d *schema.ResourceData, met } if err = d.Set("location", project.Location); err != nil { - return diag.FromErr(fmt.Errorf("Error setting location: %s", err)) + err = fmt.Errorf("Error setting location: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project", "read", "set-location").GetDiag() } if err = d.Set("resource_group", project.ResourceGroup); err != nil { - return diag.FromErr(fmt.Errorf("Error setting resource_group: %s", err)) + err = fmt.Errorf("Error setting resource_group: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project", "read", "set-resource_group").GetDiag() } definitionMap, err := ResourceIbmProjectProjectDefinitionPropertiesToMap(project.Definition) if err != nil { - return diag.FromErr(err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project", "read", "definition-to-map").GetDiag() } if err = d.Set("definition", []map[string]interface{}{definitionMap}); err != nil { - return diag.FromErr(fmt.Errorf("Error setting definition: %s", err)) + err = fmt.Errorf("Error setting definition: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project", "read", "set-definition").GetDiag() } if err = d.Set("crn", project.Crn); err != nil { - return diag.FromErr(fmt.Errorf("Error setting crn: %s", err)) + err = fmt.Errorf("Error setting crn: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project", "read", "set-crn").GetDiag() } if err = d.Set("created_at", flex.DateTimeToString(project.CreatedAt)); err != nil { - return diag.FromErr(fmt.Errorf("Error setting created_at: %s", err)) + err = fmt.Errorf("Error setting created_at: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project", "read", "set-created_at").GetDiag() } cumulativeNeedsAttentionView := []map[string]interface{}{} for _, cumulativeNeedsAttentionViewItem := range project.CumulativeNeedsAttentionView { cumulativeNeedsAttentionViewItemMap, err := ResourceIbmProjectCumulativeNeedsAttentionToMap(&cumulativeNeedsAttentionViewItem) if err != nil { - return diag.FromErr(err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project", "read", "cumulative_needs_attention_view-to-map").GetDiag() } 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)) + err = fmt.Errorf("Error setting cumulative_needs_attention_view: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project", "read", "set-cumulative_needs_attention_view").GetDiag() } 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)) + err = fmt.Errorf("Error setting cumulative_needs_attention_view_error: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project", "read", "set-cumulative_needs_attention_view_error").GetDiag() } } if err = d.Set("resource_group_id", project.ResourceGroupID); err != nil { - return diag.FromErr(fmt.Errorf("Error setting resource_group_id: %s", err)) + err = fmt.Errorf("Error setting resource_group_id: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project", "read", "set-resource_group_id").GetDiag() } if err = d.Set("state", project.State); err != nil { - return diag.FromErr(fmt.Errorf("Error setting state: %s", err)) + err = fmt.Errorf("Error setting state: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project", "read", "set-state").GetDiag() } if err = d.Set("href", project.Href); err != nil { - return diag.FromErr(fmt.Errorf("Error setting href: %s", err)) + err = fmt.Errorf("Error setting href: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project", "read", "set-href").GetDiag() } 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)) + err = fmt.Errorf("Error setting event_notifications_crn: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project", "read", "set-event_notifications_crn").GetDiag() } } configs := []map[string]interface{}{} for _, configsItem := range project.Configs { configsItemMap, err := ResourceIbmProjectProjectConfigSummaryToMap(&configsItem) if err != nil { - return diag.FromErr(err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project", "read", "configs-to-map").GetDiag() } configs = append(configs, configsItemMap) } if err = d.Set("configs", configs); err != nil { - return diag.FromErr(fmt.Errorf("Error setting configs: %s", err)) + err = fmt.Errorf("Error setting configs: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project", "read", "set-configs").GetDiag() } environments := []map[string]interface{}{} for _, environmentsItem := range project.Environments { environmentsItemMap, err := ResourceIbmProjectProjectEnvironmentSummaryToMap(&environmentsItem) if err != nil { - return diag.FromErr(err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project", "read", "environments-to-map").GetDiag() } environments = append(environments, environmentsItemMap) } if err = d.Set("environments", environments); err != nil { - return diag.FromErr(fmt.Errorf("Error setting environments: %s", err)) + err = fmt.Errorf("Error setting environments: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project", "read", "set-environments").GetDiag() } return nil @@ -612,7 +640,7 @@ func resourceIbmProjectUpdate(context context.Context, d *schema.ResourceData, m if d.HasChange("definition") { definition, err := ResourceIbmProjectMapToProjectPatchDefinitionBlock(d.Get("definition.0").(map[string]interface{})) if err != nil { - return diag.FromErr(err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project", "update", "parse-definition").GetDiag() } updateProjectOptions.SetDefinition(definition) hasChange = true @@ -973,6 +1001,9 @@ func ResourceIbmProjectProjectConfigVersionSummaryToMap(model *projectv1.Project } modelMap["definition"] = []map[string]interface{}{definitionMap} modelMap["state"] = *model.State + if model.StateCode != nil { + modelMap["state_code"] = *model.StateCode + } modelMap["version"] = flex.IntValue(model.Version) modelMap["href"] = *model.Href return modelMap, nil diff --git a/ibm/service/project/resource_ibm_project_config.go b/ibm/service/project/resource_ibm_project_config.go index bc5a1b841c..cb0674e5d7 100644 --- a/ibm/service/project/resource_ibm_project_config.go +++ b/ibm/service/project/resource_ibm_project_config.go @@ -1,6 +1,10 @@ // Copyright IBM Corp. 2024 All Rights Reserved. // Licensed under the Mozilla Public License v2.0 +/* + * IBM OpenAPI Terraform Generator Version: 3.90.1-64fd3296-20240515-180710 + */ + package project import ( @@ -413,12 +417,6 @@ func ResourceIbmProjectConfig() *schema.Resource { Computed: true, Description: "This property can be any value - a string, number, boolean, array, or object.", }, - "value_json": &schema.Schema{ - Type: schema.TypeString, - Deprecated: "This property will be deprecated, it will be replaced by the existing property 'value'.", - Computed: true, - Description: "This property can be any value - a string, number, boolean, array, or object.", - }, }, }, }, @@ -580,6 +578,11 @@ func ResourceIbmProjectConfig() *schema.Resource { Computed: true, Description: "The state of the configuration.", }, + "state_code": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Computed state code clarifying the prerequisites for validation for the configuration.", + }, "version": &schema.Schema{ Type: schema.TypeInt, Computed: true, @@ -625,6 +628,11 @@ func ResourceIbmProjectConfig() *schema.Resource { Computed: true, Description: "The state of the configuration.", }, + "state_code": &schema.Schema{ + Type: schema.TypeString, + Computed: true, + Description: "Computed state code clarifying the prerequisites for validation for the configuration.", + }, "version": &schema.Schema{ Type: schema.TypeInt, Computed: true, @@ -667,6 +675,7 @@ func ResourceIbmProjectConfigValidator() *validate.ResourceValidator { func resourceIbmProjectConfigCreate(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { projectClient, err := meta.(conns.ClientSession).ProjectV1() if err != nil { + // Error is coming from SDK client, so it doesn't need to be discriminated. tfErr := flex.TerraformErrorf(err, err.Error(), "ibm_project_config", "create") log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage()) return tfErr.GetDiag() @@ -677,13 +686,13 @@ func resourceIbmProjectConfigCreate(context context.Context, d *schema.ResourceD createConfigOptions.SetProjectID(d.Get("project_id").(string)) definitionModel, err := ResourceIbmProjectConfigMapToProjectConfigDefinitionPrototype(d.Get("definition.0").(map[string]interface{})) if err != nil { - return diag.FromErr(err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "create", "parse-definition").GetDiag() } 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) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "create", "parse-schematics").GetDiag() } createConfigOptions.SetSchematics(schematicsModel) } @@ -712,8 +721,7 @@ func resourceIbmProjectConfigRead(context context.Context, d *schema.ResourceDat parts, err := flex.SepIdParts(d.Id(), "/") if err != nil { - tfErr := flex.TerraformErrorf(err, err.Error(), "ibm_project_config", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "read", "sep-id-parts").GetDiag() } getConfigOptions.SetProjectID(parts[0]) @@ -732,112 +740,131 @@ func resourceIbmProjectConfigRead(context context.Context, d *schema.ResourceDat definitionMap, err := ResourceIbmProjectConfigProjectConfigDefinitionResponseToMap(projectConfig.Definition) if err != nil { - return diag.FromErr(err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "read", "definition-to-map").GetDiag() } if err = d.Set("definition", []map[string]interface{}{definitionMap}); err != nil { - return diag.FromErr(fmt.Errorf("Error setting definition: %s", err)) + err = fmt.Errorf("Error setting definition: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "read", "set-definition").GetDiag() } if err = d.Set("version", flex.IntValue(projectConfig.Version)); err != nil { - return diag.FromErr(fmt.Errorf("Error setting version: %s", err)) + err = fmt.Errorf("Error setting version: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "read", "set-version").GetDiag() } if err = d.Set("is_draft", projectConfig.IsDraft); err != nil { - return diag.FromErr(fmt.Errorf("Error setting is_draft: %s", err)) + err = fmt.Errorf("Error setting is_draft: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "read", "set-is_draft").GetDiag() } needsAttentionState := []map[string]interface{}{} for _, needsAttentionStateItem := range projectConfig.NeedsAttentionState { needsAttentionStateItemMap, err := ResourceIbmProjectConfigProjectConfigNeedsAttentionStateToMap(&needsAttentionStateItem) if err != nil { - return diag.FromErr(err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "read", "needs_attention_state-to-map").GetDiag() } needsAttentionState = append(needsAttentionState, needsAttentionStateItemMap) } if err = d.Set("needs_attention_state", needsAttentionState); err != nil { - return diag.FromErr(fmt.Errorf("Error setting needs_attention_state: %s", err)) + err = fmt.Errorf("Error setting needs_attention_state: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "read", "set-needs_attention_state").GetDiag() } if err = d.Set("created_at", flex.DateTimeToString(projectConfig.CreatedAt)); err != nil { - return diag.FromErr(fmt.Errorf("Error setting created_at: %s", err)) + err = fmt.Errorf("Error setting created_at: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "read", "set-created_at").GetDiag() } if err = d.Set("modified_at", flex.DateTimeToString(projectConfig.ModifiedAt)); err != nil { - return diag.FromErr(fmt.Errorf("Error setting modified_at: %s", err)) + err = fmt.Errorf("Error setting modified_at: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "read", "set-modified_at").GetDiag() } 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)) + err = fmt.Errorf("Error setting last_saved_at: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "read", "set-last_saved_at").GetDiag() } } outputs := []map[string]interface{}{} for _, outputsItem := range projectConfig.Outputs { outputsItemMap, err := ResourceIbmProjectConfigOutputValueToMap(&outputsItem) if err != nil { - return diag.FromErr(err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "read", "outputs-to-map").GetDiag() } outputs = append(outputs, outputsItemMap) } if err = d.Set("outputs", outputs); err != nil { - return diag.FromErr(fmt.Errorf("Error setting outputs: %s", err)) + err = fmt.Errorf("Error setting outputs: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "read", "set-outputs").GetDiag() } projectMap, err := ResourceIbmProjectConfigProjectReferenceToMap(projectConfig.Project) if err != nil { - return diag.FromErr(err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "read", "project-to-map").GetDiag() } if err = d.Set("project", []map[string]interface{}{projectMap}); err != nil { - return diag.FromErr(fmt.Errorf("Error setting project: %s", err)) + err = fmt.Errorf("Error setting project: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "read", "set-project").GetDiag() } if err = d.Set("state", projectConfig.State); err != nil { - return diag.FromErr(fmt.Errorf("Error setting state: %s", err)) + err = fmt.Errorf("Error setting state: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "read", "set-state").GetDiag() } if !core.IsNil(projectConfig.UpdateAvailable) { if err = d.Set("update_available", projectConfig.UpdateAvailable); err != nil { - return diag.FromErr(fmt.Errorf("Error setting update_available: %s", err)) + err = fmt.Errorf("Error setting update_available: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "read", "set-update_available").GetDiag() } } if !core.IsNil(projectConfig.TemplateID) { if err = d.Set("template_id", projectConfig.TemplateID); err != nil { - return diag.FromErr(fmt.Errorf("Error setting template_id: %s", err)) + err = fmt.Errorf("Error setting template_id: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "read", "set-template_id").GetDiag() } } if !core.IsNil(projectConfig.MemberOf) { memberOfMap, err := ResourceIbmProjectConfigMemberOfDefinitionToMap(projectConfig.MemberOf) if err != nil { - return diag.FromErr(err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "read", "member_of-to-map").GetDiag() } if err = d.Set("member_of", []map[string]interface{}{memberOfMap}); err != nil { - return diag.FromErr(fmt.Errorf("Error setting member_of: %s", err)) + err = fmt.Errorf("Error setting member_of: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "read", "set-member_of").GetDiag() } } if err = d.Set("href", projectConfig.Href); err != nil { - return diag.FromErr(fmt.Errorf("Error setting href: %s", err)) + err = fmt.Errorf("Error setting href: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "read", "set-href").GetDiag() } if !core.IsNil(projectConfig.DeploymentModel) { if err = d.Set("deployment_model", projectConfig.DeploymentModel); err != nil { - return diag.FromErr(fmt.Errorf("Error setting deployment_model: %s", err)) + err = fmt.Errorf("Error setting deployment_model: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "read", "set-deployment_model").GetDiag() } } if !core.IsNil(projectConfig.StateCode) { if err = d.Set("state_code", projectConfig.StateCode); err != nil { - return diag.FromErr(fmt.Errorf("Error setting state_code: %s", err)) + err = fmt.Errorf("Error setting state_code: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "read", "set-state_code").GetDiag() } } if !core.IsNil(projectConfig.ApprovedVersion) { approvedVersionMap, err := ResourceIbmProjectConfigProjectConfigVersionSummaryToMap(projectConfig.ApprovedVersion) if err != nil { - return diag.FromErr(err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "read", "approved_version-to-map").GetDiag() } if err = d.Set("approved_version", []map[string]interface{}{approvedVersionMap}); err != nil { - return diag.FromErr(fmt.Errorf("Error setting approved_version: %s", err)) + err = fmt.Errorf("Error setting approved_version: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "read", "set-approved_version").GetDiag() } } if !core.IsNil(projectConfig.DeployedVersion) { deployedVersionMap, err := ResourceIbmProjectConfigProjectConfigVersionSummaryToMap(projectConfig.DeployedVersion) if err != nil { - return diag.FromErr(err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "read", "deployed_version-to-map").GetDiag() } if err = d.Set("deployed_version", []map[string]interface{}{deployedVersionMap}); err != nil { - return diag.FromErr(fmt.Errorf("Error setting deployed_version: %s", err)) + err = fmt.Errorf("Error setting deployed_version: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "read", "set-deployed_version").GetDiag() } } if err = d.Set("project_config_id", projectConfig.ID); err != nil { - return diag.FromErr(fmt.Errorf("Error setting project_config_id: %s", err)) + err = fmt.Errorf("Error setting project_config_id: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "read", "set-project_config_id").GetDiag() } return nil @@ -855,8 +882,7 @@ func resourceIbmProjectConfigUpdate(context context.Context, d *schema.ResourceD parts, err := flex.SepIdParts(d.Id(), "/") if err != nil { - tfErr := flex.TerraformErrorf(err, err.Error(), "ibm_project_config", "update") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "update", "sep-id-parts").GetDiag() } updateConfigOptions.SetProjectID(parts[0]) @@ -867,13 +893,12 @@ func resourceIbmProjectConfigUpdate(context context.Context, d *schema.ResourceD if d.HasChange("project_id") { errMsg := fmt.Sprintf("Cannot update resource property \"%s\" with the ForceNew annotation."+ " The resource must be re-created to update this property.", "project_id") - tfErr := flex.TerraformErrorf(err, errMsg, "ibm_project_config", "update") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(nil, errMsg, "ibm_project_config", "update", "project_id-forces-new").GetDiag() } if d.HasChange("definition") { definition, err := ResourceIbmProjectConfigMapToProjectConfigDefinitionPatch(d.Get("definition.0").(map[string]interface{})) if err != nil { - return diag.FromErr(err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "update", "parse-definition").GetDiag() } updateConfigOptions.SetDefinition(definition) hasChange = true @@ -903,8 +928,7 @@ func resourceIbmProjectConfigDelete(context context.Context, d *schema.ResourceD parts, err := flex.SepIdParts(d.Id(), "/") if err != nil { - tfErr := flex.TerraformErrorf(err, err.Error(), "ibm_project_config", "delete") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_config", "delete", "sep-id-parts").GetDiag() } deleteConfigOptions.SetProjectID(parts[0]) @@ -1649,7 +1673,6 @@ func ResourceIbmProjectConfigOutputValueToMap(model *projectv1.OutputValue) (map } if model.Value != nil { modelMap["value"] = flex.Stringify(model.Value) - modelMap["value_json"] = modelMap["value"] } return modelMap, nil } @@ -1709,6 +1732,9 @@ func ResourceIbmProjectConfigProjectConfigVersionSummaryToMap(model *projectv1.P } modelMap["definition"] = []map[string]interface{}{definitionMap} modelMap["state"] = *model.State + if model.StateCode != nil { + modelMap["state_code"] = *model.StateCode + } modelMap["version"] = flex.IntValue(model.Version) modelMap["href"] = *model.Href return modelMap, nil diff --git a/ibm/service/project/resource_ibm_project_environment.go b/ibm/service/project/resource_ibm_project_environment.go index 8af6411fbe..2dfca14cdb 100644 --- a/ibm/service/project/resource_ibm_project_environment.go +++ b/ibm/service/project/resource_ibm_project_environment.go @@ -1,6 +1,10 @@ // Copyright IBM Corp. 2024 All Rights Reserved. // Licensed under the Mozilla Public License v2.0 +/* + * IBM OpenAPI Terraform Generator Version: 3.90.1-64fd3296-20240515-180710 + */ + package project import ( @@ -210,6 +214,7 @@ func ResourceIbmProjectEnvironmentValidator() *validate.ResourceValidator { func resourceIbmProjectEnvironmentCreate(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { projectClient, err := meta.(conns.ClientSession).ProjectV1() if err != nil { + // Error is coming from SDK client, so it doesn't need to be discriminated. tfErr := flex.TerraformErrorf(err, err.Error(), "ibm_project_environment", "create") log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage()) return tfErr.GetDiag() @@ -220,7 +225,7 @@ func resourceIbmProjectEnvironmentCreate(context context.Context, d *schema.Reso createProjectEnvironmentOptions.SetProjectID(d.Get("project_id").(string)) definitionModel, err := ResourceIbmProjectEnvironmentMapToEnvironmentDefinitionRequiredProperties(d.Get("definition.0").(map[string]interface{})) if err != nil { - return diag.FromErr(err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_environment", "create", "parse-definition").GetDiag() } createProjectEnvironmentOptions.SetDefinition(definitionModel) @@ -248,8 +253,7 @@ func resourceIbmProjectEnvironmentRead(context context.Context, d *schema.Resour parts, err := flex.SepIdParts(d.Id(), "/") if err != nil { - tfErr := flex.TerraformErrorf(err, err.Error(), "ibm_project_environment", "read") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_environment", "read", "sep-id-parts").GetDiag() } getProjectEnvironmentOptions.SetProjectID(parts[0]) @@ -268,34 +272,41 @@ func resourceIbmProjectEnvironmentRead(context context.Context, d *schema.Resour definitionMap, err := ResourceIbmProjectEnvironmentEnvironmentDefinitionRequiredPropertiesResponseToMap(environment.Definition) if err != nil { - return diag.FromErr(err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_environment", "read", "definition-to-map").GetDiag() } if err = d.Set("definition", []map[string]interface{}{definitionMap}); err != nil { - return diag.FromErr(fmt.Errorf("Error setting definition: %s", err)) + err = fmt.Errorf("Error setting definition: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_environment", "read", "set-definition").GetDiag() } projectMap, err := ResourceIbmProjectEnvironmentProjectReferenceToMap(environment.Project) if err != nil { - return diag.FromErr(err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_environment", "read", "project-to-map").GetDiag() } if err = d.Set("project", []map[string]interface{}{projectMap}); err != nil { - return diag.FromErr(fmt.Errorf("Error setting project: %s", err)) + err = fmt.Errorf("Error setting project: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_environment", "read", "set-project").GetDiag() } if err = d.Set("created_at", flex.DateTimeToString(environment.CreatedAt)); err != nil { - return diag.FromErr(fmt.Errorf("Error setting created_at: %s", err)) + err = fmt.Errorf("Error setting created_at: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_environment", "read", "set-created_at").GetDiag() } 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)) + err = fmt.Errorf("Error setting target_account: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_environment", "read", "set-target_account").GetDiag() } } if err = d.Set("modified_at", flex.DateTimeToString(environment.ModifiedAt)); err != nil { - return diag.FromErr(fmt.Errorf("Error setting modified_at: %s", err)) + err = fmt.Errorf("Error setting modified_at: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_environment", "read", "set-modified_at").GetDiag() } if err = d.Set("href", environment.Href); err != nil { - return diag.FromErr(fmt.Errorf("Error setting href: %s", err)) + err = fmt.Errorf("Error setting href: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_environment", "read", "set-href").GetDiag() } if err = d.Set("project_environment_id", environment.ID); err != nil { - return diag.FromErr(fmt.Errorf("Error setting project_environment_id: %s", err)) + err = fmt.Errorf("Error setting project_environment_id: %s", err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_environment", "read", "set-project_environment_id").GetDiag() } return nil @@ -313,8 +324,7 @@ func resourceIbmProjectEnvironmentUpdate(context context.Context, d *schema.Reso parts, err := flex.SepIdParts(d.Id(), "/") if err != nil { - tfErr := flex.TerraformErrorf(err, err.Error(), "ibm_project_environment", "update") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_environment", "update", "sep-id-parts").GetDiag() } updateProjectEnvironmentOptions.SetProjectID(parts[0]) @@ -325,13 +335,12 @@ func resourceIbmProjectEnvironmentUpdate(context context.Context, d *schema.Reso if d.HasChange("project_id") { errMsg := fmt.Sprintf("Cannot update resource property \"%s\" with the ForceNew annotation."+ " The resource must be re-created to update this property.", "project_id") - tfErr := flex.TerraformErrorf(err, errMsg, "ibm_project_environment", "update") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(nil, errMsg, "ibm_project_environment", "update", "project_id-forces-new").GetDiag() } if d.HasChange("definition") { definition, err := ResourceIbmProjectEnvironmentMapToEnvironmentDefinitionPropertiesPatch(d.Get("definition.0").(map[string]interface{})) if err != nil { - return diag.FromErr(err) + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_environment", "update", "parse-definition").GetDiag() } updateProjectEnvironmentOptions.SetDefinition(definition) hasChange = true @@ -361,8 +370,7 @@ func resourceIbmProjectEnvironmentDelete(context context.Context, d *schema.Reso parts, err := flex.SepIdParts(d.Id(), "/") if err != nil { - tfErr := flex.TerraformErrorf(err, err.Error(), "ibm_project_environment", "delete") - return tfErr.GetDiag() + return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_project_environment", "delete", "sep-id-parts").GetDiag() } deleteProjectEnvironmentOptions.SetProjectID(parts[0]) diff --git a/ibm/service/resourcecontroller/data_source_ibm_resource_key_test.go b/ibm/service/resourcecontroller/data_source_ibm_resource_key_test.go index 8db60b2fb9..3041400963 100644 --- a/ibm/service/resourcecontroller/data_source_ibm_resource_key_test.go +++ b/ibm/service/resourcecontroller/data_source_ibm_resource_key_test.go @@ -25,10 +25,10 @@ func TestAccIBMResourceKeyDataSource_basic(t *testing.T) { Config: testAccCheckIBMResourceKeyDataSourceConfig(resourceName, resourceKey), Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr("data.ibm_resource_key.testacc_ds_resource_key", "name", resourceKey), - resource.TestCheckResourceAttr("data.ibm_resource_key.testacc_ds_resource_key", "credentials.%", "7"), + resource.TestCheckResourceAttr("data.ibm_resource_key.testacc_ds_resource_key", "credentials.%", "8"), resource.TestCheckResourceAttr("data.ibm_resource_key.testacc_ds_resource_key", "role", "Writer"), resource.TestCheckResourceAttr("data.ibm_resource_key.testacc_ds_resource_key1", "name", resourceKey), - resource.TestCheckResourceAttr("data.ibm_resource_key.testacc_ds_resource_key1", "credentials.%", "7"), + resource.TestCheckResourceAttr("data.ibm_resource_key.testacc_ds_resource_key1", "credentials.%", "8"), resource.TestCheckResourceAttr("data.ibm_resource_key.testacc_ds_resource_key1", "role", "Writer"), ), }, @@ -48,9 +48,9 @@ func TestAccIBMResourceKeyDataSource_mostrecent(t *testing.T) { Config: testAccCheckIBMResourceKeyDataSourceConfigRecent(resourceName, resourceKey), Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr("data.ibm_resource_key.testacc_ds_resource_key", "name", resourceKey), - resource.TestCheckResourceAttr("data.ibm_resource_key.testacc_ds_resource_key", "credentials.%", "7"), + resource.TestCheckResourceAttr("data.ibm_resource_key.testacc_ds_resource_key", "credentials.%", "8"), resource.TestCheckResourceAttr("data.ibm_resource_key.testacc_ds_resource_key1", "name", resourceKey), - resource.TestCheckResourceAttr("data.ibm_resource_key.testacc_ds_resource_key1", "credentials.%", "7"), + resource.TestCheckResourceAttr("data.ibm_resource_key.testacc_ds_resource_key1", "credentials.%", "8"), ), }, }, diff --git a/ibm/service/resourcecontroller/resource_ibm_resource_key.go b/ibm/service/resourcecontroller/resource_ibm_resource_key.go index de1d2dba56..55e3a83ded 100644 --- a/ibm/service/resourcecontroller/resource_ibm_resource_key.go +++ b/ibm/service/resourcecontroller/resource_ibm_resource_key.go @@ -45,6 +45,7 @@ func ResourceIBMResourceKey() *schema.Resource { "role": { Type: schema.TypeString, Optional: true, + Computed: true, ForceNew: true, Description: "Name of the user role.Valid roles are Writer, Reader, Manager, Administrator, Operator, Viewer, Editor and Custom Roles.", // ValidateFunc: validateRole, @@ -270,7 +271,9 @@ func resourceIBMResourceKeyCreate(d *schema.ResourceData, meta interface{}) erro if err != nil { return fmt.Errorf("[ERROR] Error creating resource key when get role: %s", err) } - keyParameters.SetProperty("role_crn", serviceRole.RoleID) + if role != "NONE" { + keyParameters.SetProperty("role_crn", serviceRole.RoleID) + } resourceKeyCreate.Role = serviceRole.RoleID } diff --git a/ibm/service/resourcecontroller/resource_ibm_resource_key_test.go b/ibm/service/resourcecontroller/resource_ibm_resource_key_test.go index 99aebcd523..a189af59c1 100644 --- a/ibm/service/resourcecontroller/resource_ibm_resource_key_test.go +++ b/ibm/service/resourcecontroller/resource_ibm_resource_key_test.go @@ -31,7 +31,7 @@ func TestAccIBMResourceKey_Basic(t *testing.T) { Check: resource.ComposeAggregateTestCheckFunc( testAccCheckIBMResourceKeyExists("ibm_resource_key.resourceKey"), resource.TestCheckResourceAttr("ibm_resource_key.resourceKey", "name", resourceKey), - resource.TestCheckResourceAttr("ibm_resource_key.resourceKey", "credentials.%", "7"), + resource.TestCheckResourceAttr("ibm_resource_key.resourceKey", "credentials.%", "8"), resource.TestCheckResourceAttrSet("ibm_resource_key.resourceKey", "credentials_json"), resource.TestCheckResourceAttr("ibm_resource_key.resourceKey", "role", "Reader"), ), @@ -114,7 +114,7 @@ func TestAccIBMResourceKey_WithCustomRole(t *testing.T) { Check: resource.ComposeAggregateTestCheckFunc( testAccCheckIBMResourceKeyExists("ibm_resource_key.resourceKey"), resource.TestCheckResourceAttr("ibm_resource_key.resourceKey", "name", resourceKey), - resource.TestCheckResourceAttr("ibm_resource_key.resourceKey", "credentials.%", "7"), + resource.TestCheckResourceAttr("ibm_resource_key.resourceKey", "credentials.%", "8"), resource.TestCheckResourceAttr("ibm_resource_key.resourceKey", "role", displayName), ), }, @@ -122,6 +122,35 @@ func TestAccIBMResourceKey_WithCustomRole(t *testing.T) { }) } +func TestAccIBMResourceKeyWithRoleNone(t *testing.T) { + resourceName := fmt.Sprintf("tf-cos-%d", acctest.RandIntRange(10, 100)) + resourceKey := fmt.Sprintf("tf-cos-%d", acctest.RandIntRange(10, 100)) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIBMResourceKeyDestroy, + Steps: []resource.TestStep{ + { + Config: testAccCheckIBMResourceKeyRoleNone(resourceName, resourceKey), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIBMResourceKeyExists("ibm_resource_key.resourceKey"), + resource.TestCheckResourceAttr("ibm_resource_key.resourceKey", "name", resourceKey), + resource.TestCheckResourceAttrSet("ibm_resource_key.resourceKey", "credentials_json"), + resource.TestCheckResourceAttr("ibm_resource_key.resourceKey", "role", "NONE"), + ), + }, + { + ResourceName: "ibm_resource_key.resourceKey", + ImportState: true, + ImportStateVerify: true, + ImportStateVerifyIgnore: []string{ + "resource_instance_id", "resource_alias_id", "role"}, + }, + }, + }) +} + func testAccCheckIBMResourceKeyExists(n string) resource.TestCheckFunc { return func(s *terraform.State) error { @@ -273,3 +302,20 @@ func testAccCheckIBMResourceKeyParameters(resourceName, resourceKey string) stri } `, resourceName, resourceKey) } + +func testAccCheckIBMResourceKeyRoleNone(resourceName, resourceKey string) string { + return fmt.Sprintf(` + + resource "ibm_resource_instance" "resource" { + name = "%s" + service = "cloud-object-storage" + plan = "standard" + location = "global" + } + resource "ibm_resource_key" "resourceKey" { + name = "%s" + resource_instance_id = ibm_resource_instance.resource.id + role = "NONE" + } + `, resourceName, resourceKey) +} diff --git a/ibm/service/satellite/resource_ibm_satellite_cluster.go b/ibm/service/satellite/resource_ibm_satellite_cluster.go index 27042ec954..af7733052a 100644 --- a/ibm/service/satellite/resource_ibm_satellite_cluster.go +++ b/ibm/service/satellite/resource_ibm_satellite_cluster.go @@ -984,7 +984,7 @@ func WaitForSatelliteClusterVersionUpdate(d *schema.ResourceData, meta interface Timeout: d.Timeout(schema.TimeoutUpdate), Delay: 20 * time.Second, MinTimeout: 10 * time.Second, - ContinuousTargetOccurence: 5, + ContinuousTargetOccurence: 3, } return stateConf.WaitForState() diff --git a/ibm/service/secretsmanager/data_source_ibm_sm_imported_certificate.go b/ibm/service/secretsmanager/data_source_ibm_sm_imported_certificate.go index cb1b9f4f6c..d951300505 100644 --- a/ibm/service/secretsmanager/data_source_ibm_sm_imported_certificate.go +++ b/ibm/service/secretsmanager/data_source_ibm_sm_imported_certificate.go @@ -120,14 +120,6 @@ func DataSourceIbmSmImportedCertificate() *schema.Resource { Computed: true, Description: "The identifier for the cryptographic algorithm that was used by the issuing certificate authority to sign a certificate.", }, - "alt_names": &schema.Schema{ - Type: schema.TypeList, - Computed: true, - Description: "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", - Elem: &schema.Schema{ - Type: schema.TypeString, - }, - }, "common_name": &schema.Schema{ Type: schema.TypeString, Computed: true, diff --git a/ibm/service/secretsmanager/data_source_ibm_sm_imported_certificate_metadata.go b/ibm/service/secretsmanager/data_source_ibm_sm_imported_certificate_metadata.go index f34ed71830..deb8aeb65d 100644 --- a/ibm/service/secretsmanager/data_source_ibm_sm_imported_certificate_metadata.go +++ b/ibm/service/secretsmanager/data_source_ibm_sm_imported_certificate_metadata.go @@ -112,14 +112,6 @@ func DataSourceIbmSmImportedCertificateMetadata() *schema.Resource { Computed: true, Description: "The identifier for the cryptographic algorithm that was used by the issuing certificate authority to sign a certificate.", }, - "alt_names": &schema.Schema{ - Type: schema.TypeList, - Computed: true, - Description: "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", - Elem: &schema.Schema{ - Type: schema.TypeString, - }, - }, "common_name": &schema.Schema{ Type: schema.TypeString, Computed: true, diff --git a/ibm/service/secretsmanager/resource_ibm_sm_imported_certificate.go b/ibm/service/secretsmanager/resource_ibm_sm_imported_certificate.go index aae9c5503c..c91f1c2d31 100644 --- a/ibm/service/secretsmanager/resource_ibm_sm_imported_certificate.go +++ b/ibm/service/secretsmanager/resource_ibm_sm_imported_certificate.go @@ -122,12 +122,6 @@ func ResourceIbmSmImportedCertificate() *schema.Resource { Computed: true, Description: "The Common Name (AKA CN) represents the server name that is protected by the SSL certificate.", }, - "alt_names": &schema.Schema{ - Type: schema.TypeList, - Computed: true, - Description: "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", - Elem: &schema.Schema{Type: schema.TypeString}, - }, "key_algorithm": &schema.Schema{ Type: schema.TypeString, Computed: true, @@ -386,11 +380,6 @@ func resourceIbmSmImportedCertificateRead(context context.Context, d *schema.Res if err = d.Set("signing_algorithm", secret.SigningAlgorithm); err != nil { return diag.FromErr(fmt.Errorf("Error setting signing_algorithm: %s", err)) } - if secret.AltNames != nil { - if err = d.Set("alt_names", secret.AltNames); err != nil { - return diag.FromErr(fmt.Errorf("Error setting alt_names: %s", err)) - } - } if err = d.Set("common_name", secret.CommonName); err != nil { return diag.FromErr(fmt.Errorf("Error setting common_name: %s", err)) } diff --git a/ibm/service/secretsmanager/resource_ibm_sm_private_certificate.go b/ibm/service/secretsmanager/resource_ibm_sm_private_certificate.go index 19bd04e50c..6cd0aa6faf 100644 --- a/ibm/service/secretsmanager/resource_ibm_sm_private_certificate.go +++ b/ibm/service/secretsmanager/resource_ibm_sm_private_certificate.go @@ -71,12 +71,13 @@ func ResourceIbmSmPrivateCertificate() *schema.Resource { Description: "The Common Name (AKA CN) represents the server name that is protected by the SSL certificate.", }, "alt_names": &schema.Schema{ - Type: schema.TypeList, - ForceNew: true, - Optional: true, - Computed: true, - Description: "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", - Elem: &schema.Schema{Type: schema.TypeString}, + Type: schema.TypeList, + ForceNew: true, + Optional: true, + Computed: true, + Description: "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", + Elem: &schema.Schema{Type: schema.TypeString}, + DiffSuppressFunc: altNamesDiffSuppress, }, "ip_sans": &schema.Schema{ Type: schema.TypeString, diff --git a/ibm/service/secretsmanager/resource_ibm_sm_private_certificate_configuration_action_sign_csr.go b/ibm/service/secretsmanager/resource_ibm_sm_private_certificate_configuration_action_sign_csr.go index 205ab2a478..0c808c4791 100644 --- a/ibm/service/secretsmanager/resource_ibm_sm_private_certificate_configuration_action_sign_csr.go +++ b/ibm/service/secretsmanager/resource_ibm_sm_private_certificate_configuration_action_sign_csr.go @@ -48,11 +48,12 @@ func ResourceIbmSmPrivateCertificateConfigurationActionSignCsr() *schema.Resourc Description: "The Common Name (AKA CN) represents the server name that is protected by the SSL certificate.", }, "alt_names": &schema.Schema{ - Type: schema.TypeList, - ForceNew: true, - Optional: true, - Description: "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", - Elem: &schema.Schema{Type: schema.TypeString}, + Type: schema.TypeList, + ForceNew: true, + Optional: true, + Description: "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", + Elem: &schema.Schema{Type: schema.TypeString}, + DiffSuppressFunc: altNamesDiffSuppress, }, "ip_sans": &schema.Schema{ Type: schema.TypeString, diff --git a/ibm/service/secretsmanager/resource_ibm_sm_private_certificate_configuration_intermediate_ca.go b/ibm/service/secretsmanager/resource_ibm_sm_private_certificate_configuration_intermediate_ca.go index 795460a263..221f227363 100644 --- a/ibm/service/secretsmanager/resource_ibm_sm_private_certificate_configuration_intermediate_ca.go +++ b/ibm/service/secretsmanager/resource_ibm_sm_private_certificate_configuration_intermediate_ca.go @@ -90,11 +90,12 @@ func ResourceIbmSmPrivateCertificateConfigurationIntermediateCA() *schema.Resour Description: "The Common Name (AKA CN) represents the server name that is protected by the SSL certificate.", }, "alt_names": &schema.Schema{ - Type: schema.TypeList, - Optional: true, - ForceNew: true, - Description: "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", - Elem: &schema.Schema{Type: schema.TypeString}, + Type: schema.TypeList, + Optional: true, + ForceNew: true, + Description: "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", + Elem: &schema.Schema{Type: schema.TypeString}, + DiffSuppressFunc: altNamesDiffSuppress, }, "ip_sans": &schema.Schema{ Type: schema.TypeString, diff --git a/ibm/service/secretsmanager/resource_ibm_sm_private_certificate_configuration_root_ca.go b/ibm/service/secretsmanager/resource_ibm_sm_private_certificate_configuration_root_ca.go index 767250b940..88f3e2a823 100644 --- a/ibm/service/secretsmanager/resource_ibm_sm_private_certificate_configuration_root_ca.go +++ b/ibm/service/secretsmanager/resource_ibm_sm_private_certificate_configuration_root_ca.go @@ -75,11 +75,12 @@ func ResourceIbmSmPrivateCertificateConfigurationRootCA() *schema.Resource { Description: "The Common Name (AKA CN) represents the server name that is protected by the SSL certificate.", }, "alt_names": &schema.Schema{ - Type: schema.TypeList, - Optional: true, - ForceNew: true, - Description: "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", - Elem: &schema.Schema{Type: schema.TypeString}, + Type: schema.TypeList, + Optional: true, + ForceNew: true, + Description: "With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate.", + Elem: &schema.Schema{Type: schema.TypeString}, + DiffSuppressFunc: altNamesDiffSuppress, }, "ip_sans": &schema.Schema{ Type: schema.TypeString, diff --git a/ibm/service/transitgateway/resource_ibm_tg_gateway.go b/ibm/service/transitgateway/resource_ibm_tg_gateway.go index e79257daf2..c50ce5b4ef 100644 --- a/ibm/service/transitgateway/resource_ibm_tg_gateway.go +++ b/ibm/service/transitgateway/resource_ibm_tg_gateway.go @@ -348,10 +348,8 @@ func resourceIBMTransitGatewayUpdate(d *schema.ResourceData, meta interface{}) e } } if d.HasChange(tgGlobal) { - if tgwglobal, ok := d.GetOk(tgGlobal); ok { - global := tgwglobal.(bool) - updateTransitGatewayOptions.Global = &global - } + global := d.Get(tgGlobal).(bool) + updateTransitGatewayOptions.Global = &global } if d.HasChange(tgGatewayTags) { oldList, newList := d.GetChange(tgGatewayTags) diff --git a/ibm/service/transitgateway/resource_ibm_tg_gateway_test.go b/ibm/service/transitgateway/resource_ibm_tg_gateway_test.go index 247b553c0d..88398a4aab 100644 --- a/ibm/service/transitgateway/resource_ibm_tg_gateway_test.go +++ b/ibm/service/transitgateway/resource_ibm_tg_gateway_test.go @@ -47,6 +47,49 @@ func TestAccIBMTransitGateway_basic(t *testing.T) { }, }) } +func TestAccIBMTransitGateway_globalUpdate(t *testing.T) { + var instance string + gatewayname := fmt.Sprintf("tg-gateway-name-%d", acctest.RandIntRange(10, 100)) + newgatewayname := fmt.Sprintf("newgateway-name-%d", acctest.RandIntRange(10, 100)) + location := "us-south" + globalTrue := true + globalFalse := false + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIBMTransitGatewayDestroy, // Delete test case + Steps: []resource.TestStep{ + { + //Create test case + Config: testAccCheckIBMTransitGatewayGlobalUpdateConfig(gatewayname, location, globalTrue), + Check: resource.ComposeTestCheckFunc( + testAccCheckIBMTransitGatewayExists("ibm_tg_gateway.test_tg_gateway", instance), + resource.TestCheckResourceAttr("ibm_tg_gateway.test_tg_gateway", "name", gatewayname), + resource.TestCheckResourceAttr("ibm_tg_gateway.test_tg_gateway", "location", location), + resource.TestCheckResourceAttr("ibm_tg_gateway.test_tg_gateway", "global", fmt.Sprintf("%t", globalTrue)), + ), + }, + { + //Update test case + Config: testAccCheckIBMTransitGatewayGlobalUpdateConfig(newgatewayname, location, globalFalse), + Check: resource.ComposeTestCheckFunc( + testAccCheckIBMTransitGatewayExists("ibm_tg_gateway.test_tg_gateway", instance), + resource.TestCheckResourceAttr("ibm_tg_gateway.test_tg_gateway", "name", newgatewayname), + resource.TestCheckResourceAttr("ibm_tg_gateway.test_tg_gateway", "global", fmt.Sprintf("%t", globalFalse)), + ), + }, + { + //Update test case + Config: testAccCheckIBMTransitGatewayGlobalUpdateConfig(newgatewayname, location, globalTrue), + Check: resource.ComposeTestCheckFunc( + testAccCheckIBMTransitGatewayExists("ibm_tg_gateway.test_tg_gateway", instance), + resource.TestCheckResourceAttr("ibm_tg_gateway.test_tg_gateway", "name", newgatewayname), + resource.TestCheckResourceAttr("ibm_tg_gateway.test_tg_gateway", "global", fmt.Sprintf("%t", globalTrue)), + ), + }, + }, + }) +} func testAccCheckIBMTransitGatewayConfig(gatewayname, location string) string { return fmt.Sprintf(` @@ -58,6 +101,16 @@ func testAccCheckIBMTransitGatewayConfig(gatewayname, location string) string { } `, gatewayname, location) } +func testAccCheckIBMTransitGatewayGlobalUpdateConfig(gatewayname, location string, global bool) string { + return fmt.Sprintf(` + + resource "ibm_tg_gateway" "test_tg_gateway"{ + name="%s" + location="%s" + global=%t + } + `, gatewayname, location, global) +} func testAccCheckIBMTransitGatewayExists(n string, instance string) resource.TestCheckFunc { return func(s *terraform.State) error { diff --git a/ibm/service/usagereports/data_source_ibm_billing_snapshot_list.go b/ibm/service/usagereports/data_source_ibm_billing_snapshot_list.go index b5a688212c..712e7db949 100644 --- a/ibm/service/usagereports/data_source_ibm_billing_snapshot_list.go +++ b/ibm/service/usagereports/data_source_ibm_billing_snapshot_list.go @@ -1,4 +1,4 @@ -// Copyright IBM Corp. 2023 All Rights Reserved. +// Copyright IBM Corp. 2024 All Rights Reserved. // Licensed under the Mozilla Public License v2.0 package usagereports @@ -22,68 +22,74 @@ func DataSourceIBMBillingSnapshotList() *schema.Resource { ReadContext: dataSourceIBMBillingSnapshotListRead, Schema: map[string]*schema.Schema{ - "month": { + "month": &schema.Schema{ Type: schema.TypeString, Required: true, Description: "The month for which billing report snapshot is requested. Format is yyyy-mm.", }, - "date_from": { + "date_from": &schema.Schema{ Type: schema.TypeInt, Optional: true, Description: "Timestamp in milliseconds for which billing report snapshot is requested.", }, - "date_to": { + "date_to": &schema.Schema{ Type: schema.TypeInt, Optional: true, Description: "Timestamp in milliseconds for which billing report snapshot is requested.", }, - "snapshotcount": { + "limit": &schema.Schema{ + Type: schema.TypeInt, + Optional: true, + Default: 30, + Description: "Number of usage records returned. The default value is 30. Maximum value is 200.", + }, + "snapshotcount": &schema.Schema{ Type: schema.TypeInt, Computed: true, Description: "Number of total snapshots.", }, - "snapshots": { + "snapshots": &schema.Schema{ Type: schema.TypeList, Computed: true, Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ - "account_id": { + "account_id": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "Account ID for which billing report snapshot is configured.", }, - "month": { + "month": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "Month of captured snapshot.", }, - "account_type": { + "account_type": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "Type of account. Possible values are [enterprise, account].", }, - "expected_processed_at": { + "expected_processed_at": &schema.Schema{ Type: schema.TypeInt, Computed: true, Description: "Timestamp of snapshot processed.", }, - "state": { + "state": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "Status of the billing snapshot configuration. Possible values are [enabled, disabled].", }, - "billing_period": { + "billing_period": &schema.Schema{ Type: schema.TypeList, Computed: true, Description: "Period of billing in snapshot.", Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ - "start": { + "start": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "Date and time of start of billing in the respective snapshot.", }, - "end": { + "end": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "Date and time of end of billing in the respective snapshot.", @@ -91,53 +97,53 @@ func DataSourceIBMBillingSnapshotList() *schema.Resource { }, }, }, - "snapshot_id": { + "snapshot_id": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "Id of the snapshot captured.", }, - "charset": { + "charset": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "Character encoding used.", }, - "compression": { + "compression": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "Compression format of the snapshot report.", }, - "content_type": { + "content_type": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "Type of content stored in snapshot report.", }, - "bucket": { + "bucket": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "The name of the COS bucket to store the snapshot of the billing reports.", }, - "version": { + "version": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "Version of the snapshot.", }, - "created_on": { + "created_on": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "Date and time of creation of snapshot.", }, - "report_types": { + "report_types": &schema.Schema{ Type: schema.TypeList, Computed: true, Description: "List of report types configured for the snapshot.", Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ - "type": { + "type": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "The type of billing report of the snapshot. Possible values are [account_summary, enterprise_summary, account_resource_instance_usage].", }, - "version": { + "version": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "Version of the snapshot.", @@ -145,23 +151,23 @@ func DataSourceIBMBillingSnapshotList() *schema.Resource { }, }, }, - "files": { + "files": &schema.Schema{ Type: schema.TypeList, Computed: true, Description: "List of location of reports.", Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ - "report_types": { + "report_types": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "The type of billing report stored. Possible values are [account_summary, enterprise_summary, account_resource_instance_usage].", }, - "location": { + "location": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "Absolute path of the billing report in the COS instance.", }, - "account_id": { + "account_id": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "Account ID for which billing report is captured.", @@ -169,7 +175,7 @@ func DataSourceIBMBillingSnapshotList() *schema.Resource { }, }, }, - "processed_at": { + "processed_at": &schema.Schema{ Type: schema.TypeInt, Computed: true, Description: "Timestamp at which snapshot is captured.", @@ -184,67 +190,61 @@ func DataSourceIBMBillingSnapshotList() *schema.Resource { func dataSourceIBMBillingSnapshotListRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { usageReportsClient, err := meta.(conns.ClientSession).UsageReportsV4() if err != nil { - return diag.FromErr(err) + tfErr := flex.TerraformErrorf(err, err.Error(), "(Data) ibm_billing_snapshot_list", "read") + log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage()) + return tfErr.GetDiag() } - - var next_ref string - var snapshotList []usagereportsv4.SnapshotListSnapshotsItem userDetails, err := meta.(conns.ClientSession).BluemixUserDetails() if err != nil { - return diag.FromErr(err) + tfErr := flex.TerraformErrorf(err, err.Error(), "(Data) ibm_billing_snapshot_list", "read") + log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage()) + return tfErr.GetDiag() } - for { - getReportsSnapshotOptions := &usagereportsv4.GetReportsSnapshotOptions{} - if next_ref != "" { - getReportsSnapshotOptions.SetStart(next_ref) - } - getReportsSnapshotOptions.SetAccountID(userDetails.UserAccount) - getReportsSnapshotOptions.SetMonth(d.Get("month").(string)) - if _, ok := d.GetOk("date_from"); ok { - getReportsSnapshotOptions.SetDateFrom(int64(d.Get("date_from").(int))) - } - if _, ok := d.GetOk("date_to"); ok { - getReportsSnapshotOptions.SetDateTo(int64(d.Get("date_to").(int))) - } + getReportsSnapshotOptions := &usagereportsv4.GetReportsSnapshotOptions{} - snapshotListResponse, response, err := usageReportsClient.GetReportsSnapshotWithContext(context, getReportsSnapshotOptions) - if err != nil { - log.Printf("[DEBUG] GetReportsSnapshotWithContext failed %s\n%s", err, response) - return diag.FromErr(fmt.Errorf("GetReportsSnapshotWithContext failed %s\n%s", err, response)) - } - if snapshotListResponse.Snapshots != nil && len(snapshotListResponse.Snapshots) > 0 { - snapshotList = append(snapshotList, snapshotListResponse.Snapshots...) - } - if snapshotListResponse.Next == nil || snapshotListResponse.Next.Offset == nil { - break - } - next_ref = *snapshotListResponse.Next.Offset - if err != nil { - log.Printf("[DEBUG] ListAccountGroupsWithContext failed. Error occurred while parsing NextURL: %s", err) - return diag.FromErr(err) - } - if next_ref == "" { - break - } + getReportsSnapshotOptions.SetAccountID(userDetails.UserAccount) + getReportsSnapshotOptions.SetMonth(d.Get("month").(string)) + if _, ok := d.GetOk("date_from"); ok { + getReportsSnapshotOptions.SetDateFrom(int64(d.Get("date_from").(int))) + } + if _, ok := d.GetOk("date_to"); ok { + getReportsSnapshotOptions.SetDateTo(int64(d.Get("date_to").(int))) + } + if _, ok := d.GetOk("limit"); ok { + getReportsSnapshotOptions.SetLimit(int64(d.Get("limit").(int))) } - d.SetId(dataSourceIBMBillingSnapshotListID(d)) + var pager *usagereportsv4.GetReportsSnapshotPager + pager, err = usageReportsClient.NewGetReportsSnapshotPager(getReportsSnapshotOptions) + if err != nil { + tfErr := flex.TerraformErrorf(err, err.Error(), "(Data) ibm_billing_snapshot_list", "read") + log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage()) + return tfErr.GetDiag() + } - if len(snapshotList) == 0 { - return diag.FromErr(fmt.Errorf("no snapshots found for account: %s", userDetails.UserAccount)) + snapshotList, err := pager.GetAll() + if err != nil { + tfErr := flex.TerraformErrorf(err, fmt.Sprintf("GetReportsSnapshotPager.GetAll() failed %s", err), "(Data) ibm_billing_snapshot_list", "read") + log.Printf("[DEBUG] %s", tfErr.GetDebugMessage()) + return tfErr.GetDiag() } + d.SetId(dataSourceIBMBillingSnapshotListID(d)) + snapshots := []map[string]interface{}{} for _, modelItem := range snapshotList { modelMap, err := dataSourceIBMBillingSnapshotListSnapshotListSnapshotsItemToMap(&modelItem) if err != nil { - return diag.FromErr(err) + tfErr := flex.TerraformErrorf(err, err.Error(), "(Data) ibm_billing_snapshot_list", "read") + return tfErr.GetDiag() } snapshots = append(snapshots, modelMap) } + if err = d.Set("snapshots", snapshots); err != nil { - return diag.FromErr(fmt.Errorf("Error setting snapshots %s", err)) + tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting snapshots %s", err), "(Data) ibm_billing_snapshot_list", "read") + return tfErr.GetDiag() } return nil diff --git a/ibm/service/usagereports/data_source_ibm_billing_snapshot_list_test.go b/ibm/service/usagereports/data_source_ibm_billing_snapshot_list_test.go index e195d730be..20f818a0de 100644 --- a/ibm/service/usagereports/data_source_ibm_billing_snapshot_list_test.go +++ b/ibm/service/usagereports/data_source_ibm_billing_snapshot_list_test.go @@ -1,4 +1,4 @@ -// Copyright IBM Corp. 2023 All Rights Reserved. +// Copyright IBM Corp. 2024 All Rights Reserved. // Licensed under the Mozilla Public License v2.0 package usagereports_test @@ -21,7 +21,7 @@ func TestAccIBMBillingSnapshotListDataSourceBasic(t *testing.T) { PreCheck: func() { acc.TestAccPreCheckUsage(t) }, Providers: acc.TestAccProviders, Steps: []resource.TestStep{ - { + resource.TestStep{ Config: testAccCheckIBMBillingSnapshotListDataSourceConfigBasic(month, date_from, date_to), Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttrSet("data.ibm_billing_snapshot_list.billing_snapshot_list_instance", "id"), diff --git a/ibm/service/usagereports/resource_ibm_billing_report_snapshot.go b/ibm/service/usagereports/resource_ibm_billing_report_snapshot.go index efa9f4f649..1e9fa28f30 100644 --- a/ibm/service/usagereports/resource_ibm_billing_report_snapshot.go +++ b/ibm/service/usagereports/resource_ibm_billing_report_snapshot.go @@ -1,4 +1,4 @@ -// Copyright IBM Corp. 2023 All Rights Reserved. +// Copyright IBM Corp. 2024 All Rights Reserved. // Licensed under the Mozilla Public License v2.0 package usagereports @@ -22,159 +22,164 @@ func ResourceIBMBillingReportSnapshot() *schema.Resource { return &schema.Resource{ CreateContext: resourceIBMBillingReportSnapshotCreate, ReadContext: resourceIBMBillingReportSnapshotRead, - UpdateContext: resourceIBMBillingReportSnapshotUpdate, DeleteContext: resourceIBMBillingReportSnapshotDelete, Importer: &schema.ResourceImporter{}, Schema: map[string]*schema.Schema{ - "interval": { + "interval": &schema.Schema{ Type: schema.TypeString, Required: true, + ForceNew: true, ValidateFunc: validate.InvokeValidator("ibm_billing_report_snapshot", "interval"), Description: "Frequency of taking the snapshot of the billing reports.", }, - "versioning": { + "versioning": &schema.Schema{ Type: schema.TypeString, Optional: true, Default: "new", + ForceNew: true, ValidateFunc: validate.InvokeValidator("ibm_billing_report_snapshot", "versioning"), Description: "A new version of report is created or the existing report version is overwritten with every update.", }, - "report_types": { + "report_types": &schema.Schema{ Type: schema.TypeList, Optional: true, + ForceNew: true, Description: "The type of billing reports to take snapshot of. Possible values are [account_summary, enterprise_summary, account_resource_instance_usage].", Elem: &schema.Schema{Type: schema.TypeString}, }, - "cos_reports_folder": { + "cos_reports_folder": &schema.Schema{ Type: schema.TypeString, Optional: true, Default: "IBMCloud-Billing-Reports", + ForceNew: true, Description: "The billing reports root folder to store the billing reports snapshots. Defaults to \"IBMCloud-Billing-Reports\".", }, - "cos_bucket": { + "cos_bucket": &schema.Schema{ Type: schema.TypeString, Required: true, + ForceNew: true, Description: "The name of the COS bucket to store the snapshot of the billing reports.", }, - "cos_location": { + "cos_location": &schema.Schema{ Type: schema.TypeString, Required: true, + ForceNew: true, Description: "Region of the COS instance.", }, - "state": { + "state": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "Status of the billing snapshot configuration. Possible values are [enabled, disabled].", }, - "account_type": { + "account_type": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "Type of account. Possible values are [enterprise, account].", }, - "compression": { + "compression": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "Compression format of the snapshot report.", }, - "content_type": { + "content_type": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "Type of content stored in snapshot report.", }, - "cos_endpoint": { + "cos_endpoint": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "The endpoint of the COS instance.", }, - "created_at": { + "created_at": &schema.Schema{ Type: schema.TypeInt, Computed: true, Description: "Timestamp in milliseconds when the snapshot configuration was created.", }, - "last_updated_at": { + "last_updated_at": &schema.Schema{ Type: schema.TypeInt, Computed: true, Description: "Timestamp in milliseconds when the snapshot configuration was last updated.", }, - "history": { + "history": &schema.Schema{ Type: schema.TypeList, Computed: true, Description: "List of previous versions of the snapshot configurations.", Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ - "start_time": { + "start_time": &schema.Schema{ Type: schema.TypeInt, Computed: true, Description: "Timestamp in milliseconds when the snapshot configuration was created.", }, - "end_time": { + "end_time": &schema.Schema{ Type: schema.TypeInt, Computed: true, Description: "Timestamp in milliseconds when the snapshot configuration ends.", }, - "updated_by": { + "updated_by": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "Account that updated the billing snapshot configuration.", }, - "account_id": { + "account_id": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "Account ID for which billing report snapshot is configured.", }, - "state": { + "state": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "Status of the billing snapshot configuration. Possible values are [enabled, disabled].", }, - "account_type": { + "account_type": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "Type of account. Possible values [enterprise, account].", }, - "interval": { + "interval": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "Frequency of taking the snapshot of the billing reports.", }, - "versioning": { + "versioning": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "A new version of report is created or the existing report version is overwritten with every update.", }, - "report_types": { + "report_types": &schema.Schema{ Type: schema.TypeList, Computed: true, Description: "The type of billing reports to take snapshot of. Possible values are [account_summary, enterprise_summary, account_resource_instance_usage].", Elem: &schema.Schema{Type: schema.TypeString}, }, - "compression": { + "compression": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "Compression format of the snapshot report.", }, - "content_type": { + "content_type": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "Type of content stored in snapshot report.", }, - "cos_reports_folder": { + "cos_reports_folder": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "The billing reports root folder to store the billing reports snapshots. Defaults to \"IBMCloud-Billing-Reports\".", }, - "cos_bucket": { + "cos_bucket": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "The name of the COS bucket to store the snapshot of the billing reports.", }, - "cos_location": { + "cos_location": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "Region of the COS instance.", }, - "cos_endpoint": { + "cos_endpoint": &schema.Schema{ Type: schema.TypeString, Computed: true, Description: "The endpoint of the COS instance.", @@ -212,14 +217,18 @@ func ResourceIBMBillingReportSnapshotValidator() *validate.ResourceValidator { func resourceIBMBillingReportSnapshotCreate(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { usageReportsClient, err := meta.(conns.ClientSession).UsageReportsV4() if err != nil { - return diag.FromErr(err) + tfErr := flex.TerraformErrorf(err, err.Error(), "ibm_billing_report_snapshot", "create") + log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage()) + return tfErr.GetDiag() } createReportsSnapshotConfigOptions := &usagereportsv4.CreateReportsSnapshotConfigOptions{} userDetails, err := meta.(conns.ClientSession).BluemixUserDetails() if err != nil { - return diag.FromErr(err) + tfErr := flex.TerraformErrorf(err, err.Error(), "ibm_billing_report_snapshot", "create") + log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage()) + return tfErr.GetDiag() } createReportsSnapshotConfigOptions.SetAccountID(userDetails.UserAccount) @@ -241,10 +250,11 @@ func resourceIBMBillingReportSnapshotCreate(context context.Context, d *schema.R createReportsSnapshotConfigOptions.SetVersioning(d.Get("versioning").(string)) } - snapshotConfig, response, err := usageReportsClient.CreateReportsSnapshotConfigWithContext(context, createReportsSnapshotConfigOptions) + snapshotConfig, _, err := usageReportsClient.CreateReportsSnapshotConfigWithContext(context, createReportsSnapshotConfigOptions) if err != nil { - log.Printf("[DEBUG] CreateReportsSnapshotConfigWithContext failed %s\n%s", err, response) - return diag.FromErr(fmt.Errorf("CreateReportsSnapshotConfigWithContext failed %s\n%s", err, response)) + tfErr := flex.TerraformErrorf(err, fmt.Sprintf("CreateReportsSnapshotConfigWithContext failed: %s", err.Error()), "ibm_billing_report_snapshot", "create") + log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage()) + return tfErr.GetDiag() } d.SetId(*snapshotConfig.AccountID) @@ -255,7 +265,9 @@ func resourceIBMBillingReportSnapshotCreate(context context.Context, d *schema.R func resourceIBMBillingReportSnapshotRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { usageReportsClient, err := meta.(conns.ClientSession).UsageReportsV4() if err != nil { - return diag.FromErr(err) + tfErr := flex.TerraformErrorf(err, err.Error(), "ibm_billing_report_snapshot", "read") + log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage()) + return tfErr.GetDiag() } getReportsSnapshotConfigOptions := &usagereportsv4.GetReportsSnapshotConfigOptions{} @@ -268,8 +280,9 @@ func resourceIBMBillingReportSnapshotRead(context context.Context, d *schema.Res d.SetId("") return nil } - log.Printf("[DEBUG] GetReportsSnapshotConfigWithContext failed %s\n%s", err, response) - return diag.FromErr(fmt.Errorf("GetReportsSnapshotConfigWithContext failed %s\n%s", err, response)) + tfErr := flex.TerraformErrorf(err, fmt.Sprintf("GetReportsSnapshotConfigWithContext failed: %s", err.Error()), "ibm_billing_report_snapshot", "read") + log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage()) + return tfErr.GetDiag() } if err = d.Set("interval", snapshotConfig.Interval); err != nil { @@ -348,73 +361,23 @@ func resourceIBMBillingReportSnapshotRead(context context.Context, d *schema.Res return nil } -func resourceIBMBillingReportSnapshotUpdate(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - usageReportsClient, err := meta.(conns.ClientSession).UsageReportsV4() - if err != nil { - return diag.FromErr(err) - } - - updateReportsSnapshotConfigOptions := &usagereportsv4.UpdateReportsSnapshotConfigOptions{} - - updateReportsSnapshotConfigOptions.SetAccountID(d.Id()) - - hasChange := false - - if d.HasChange("interval") { - updateReportsSnapshotConfigOptions.SetInterval(d.Get("interval").(string)) - hasChange = true - } - if d.HasChange("cos_bucket") { - updateReportsSnapshotConfigOptions.SetCosBucket(d.Get("cos_bucket").(string)) - hasChange = true - } - if d.HasChange("cos_location") { - updateReportsSnapshotConfigOptions.SetCosLocation(d.Get("cos_location").(string)) - hasChange = true - } - if d.HasChange("cos_reports_folder") { - updateReportsSnapshotConfigOptions.SetCosReportsFolder(d.Get("cos_reports_folder").(string)) - hasChange = true - } - if d.HasChange("report_types") { - var reportTypes []string - for _, v := range d.Get("report_types").([]interface{}) { - reportTypesItem := v.(string) - reportTypes = append(reportTypes, reportTypesItem) - } - updateReportsSnapshotConfigOptions.SetReportTypes(reportTypes) - hasChange = true - } - if d.HasChange("versioning") { - updateReportsSnapshotConfigOptions.SetVersioning(d.Get("versioning").(string)) - hasChange = true - } - - if hasChange { - _, response, err := usageReportsClient.UpdateReportsSnapshotConfigWithContext(context, updateReportsSnapshotConfigOptions) - if err != nil { - log.Printf("[DEBUG] UpdateReportsSnapshotConfigWithContext failed %s\n%s", err, response) - return diag.FromErr(fmt.Errorf("UpdateReportsSnapshotConfigWithContext failed %s\n%s", err, response)) - } - } - - return resourceIBMBillingReportSnapshotRead(context, d, meta) -} - func resourceIBMBillingReportSnapshotDelete(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { usageReportsClient, err := meta.(conns.ClientSession).UsageReportsV4() if err != nil { - return diag.FromErr(err) + tfErr := flex.TerraformErrorf(err, err.Error(), "ibm_billing_report_snapshot", "delete") + log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage()) + return tfErr.GetDiag() } deleteReportsSnapshotConfigOptions := &usagereportsv4.DeleteReportsSnapshotConfigOptions{} deleteReportsSnapshotConfigOptions.SetAccountID(d.Id()) - response, err := usageReportsClient.DeleteReportsSnapshotConfigWithContext(context, deleteReportsSnapshotConfigOptions) + _, err = usageReportsClient.DeleteReportsSnapshotConfigWithContext(context, deleteReportsSnapshotConfigOptions) if err != nil { - log.Printf("[DEBUG] DeleteReportsSnapshotConfigWithContext failed %s\n%s", err, response) - return diag.FromErr(fmt.Errorf("DeleteReportsSnapshotConfigWithContext failed %s\n%s", err, response)) + tfErr := flex.TerraformErrorf(err, fmt.Sprintf("DeleteReportsSnapshotConfigWithContext failed: %s", err.Error()), "ibm_billing_report_snapshot", "delete") + log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage()) + return tfErr.GetDiag() } d.SetId("") diff --git a/ibm/service/usagereports/resource_ibm_billing_report_snapshot_test.go b/ibm/service/usagereports/resource_ibm_billing_report_snapshot_test.go index 008725309b..3ae55443bc 100644 --- a/ibm/service/usagereports/resource_ibm_billing_report_snapshot_test.go +++ b/ibm/service/usagereports/resource_ibm_billing_report_snapshot_test.go @@ -1,4 +1,4 @@ -// Copyright IBM Corp. 2023 All Rights Reserved. +// Copyright IBM Corp. 2024 All Rights Reserved. // Licensed under the Mozilla Public License v2.0 package usagereports_test @@ -7,6 +7,7 @@ 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" @@ -29,21 +30,49 @@ func TestAccIBMBillingReportSnapshotBasic(t *testing.T) { Providers: acc.TestAccProviders, CheckDestroy: testAccCheckIBMBillingReportSnapshotDestroy, Steps: []resource.TestStep{ - { + resource.TestStep{ Config: testAccCheckIBMBillingReportSnapshotConfigBasic(interval, cosBucket, cosLocation), Check: resource.ComposeAggregateTestCheckFunc( - testAccCheckIBMBillingReportSnapshotExists("ibm_billing_report_snapshot.billing_report_snapshot_instance_1", conf), - resource.TestCheckResourceAttr("ibm_billing_report_snapshot.billing_report_snapshot_instance_1", "interval", interval), - resource.TestCheckResourceAttr("ibm_billing_report_snapshot.billing_report_snapshot_instance_1", "cos_bucket", cosBucket), - resource.TestCheckResourceAttr("ibm_billing_report_snapshot.billing_report_snapshot_instance_1", "cos_location", cosLocation), + testAccCheckIBMBillingReportSnapshotExists("ibm_billing_report_snapshot.billing_report_snapshot_instance", conf), + resource.TestCheckResourceAttr("ibm_billing_report_snapshot.billing_report_snapshot_instance", "interval", interval), + resource.TestCheckResourceAttr("ibm_billing_report_snapshot.billing_report_snapshot_instance", "cos_bucket", cosBucket), + resource.TestCheckResourceAttr("ibm_billing_report_snapshot.billing_report_snapshot_instance", "cos_location", cosLocation), ), }, { Config: testAccCheckIBMBillingReportSnapshotConfigBasic(intervalUpdate, cosBucketUpdate, cosLocationUpdate), Check: resource.ComposeAggregateTestCheckFunc( - resource.TestCheckResourceAttr("ibm_billing_report_snapshot.billing_report_snapshot_instance_1", "interval", intervalUpdate), - resource.TestCheckResourceAttr("ibm_billing_report_snapshot.billing_report_snapshot_instance_1", "cos_bucket", cosBucketUpdate), - resource.TestCheckResourceAttr("ibm_billing_report_snapshot.billing_report_snapshot_instance_1", "cos_location", cosLocationUpdate), + resource.TestCheckResourceAttr("ibm_billing_report_snapshot.billing_report_snapshot_instance", "interval", intervalUpdate), + resource.TestCheckResourceAttr("ibm_billing_report_snapshot.billing_report_snapshot_instance", "cos_bucket", cosBucketUpdate), + resource.TestCheckResourceAttr("ibm_billing_report_snapshot.billing_report_snapshot_instance", "cos_location", cosLocationUpdate), + ), + }, + }, + }) +} + +func TestAccIBMBillingReportSnapshotAllArgs(t *testing.T) { + var conf usagereportsv4.SnapshotConfig + interval := "daily" + versioning := "new" + cosReportsFolder := fmt.Sprintf("tf_cos_reports_folder_%d", acctest.RandIntRange(10, 100)) + cosBucket := acc.Cos_bucket + cosLocation := acc.Cos_location + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheckUsage(t) }, + Providers: acc.TestAccProviders, + CheckDestroy: testAccCheckIBMBillingReportSnapshotDestroy, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccCheckIBMBillingReportSnapshotConfig(interval, versioning, cosReportsFolder, cosBucket, cosLocation), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckIBMBillingReportSnapshotExists("ibm_billing_report_snapshot.billing_report_snapshot_instance", conf), + resource.TestCheckResourceAttr("ibm_billing_report_snapshot.billing_report_snapshot_instance", "interval", interval), + resource.TestCheckResourceAttr("ibm_billing_report_snapshot.billing_report_snapshot_instance", "versioning", versioning), + resource.TestCheckResourceAttr("ibm_billing_report_snapshot.billing_report_snapshot_instance", "cos_reports_folder", cosReportsFolder), + resource.TestCheckResourceAttr("ibm_billing_report_snapshot.billing_report_snapshot_instance", "cos_bucket", cosBucket), + resource.TestCheckResourceAttr("ibm_billing_report_snapshot.billing_report_snapshot_instance", "cos_location", cosLocation), ), }, }, @@ -52,7 +81,7 @@ func TestAccIBMBillingReportSnapshotBasic(t *testing.T) { func testAccCheckIBMBillingReportSnapshotConfigBasic(interval string, cosBucket string, cosLocation string) string { return fmt.Sprintf(` - resource "ibm_billing_report_snapshot" "billing_report_snapshot_instance_1" { + resource "ibm_billing_report_snapshot" "billing_report_snapshot_instance" { interval = "%s" cos_bucket = "%s" cos_location = "%s" @@ -61,6 +90,20 @@ func testAccCheckIBMBillingReportSnapshotConfigBasic(interval string, cosBucket `, interval, cosBucket, cosLocation) } +func testAccCheckIBMBillingReportSnapshotConfig(interval string, versioning string, cosReportsFolder string, cosBucket string, cosLocation string) string { + return fmt.Sprintf(` + + resource "ibm_billing_report_snapshot" "billing_report_snapshot_instance" { + interval = "%s" + versioning = "%s" + report_types = ["account_summary", "account_resource_instance_usage"] + cos_reports_folder = "%s" + cos_bucket = "%s" + cos_location = "%s" + } + `, interval, versioning, cosReportsFolder, cosBucket, cosLocation) +} + func testAccCheckIBMBillingReportSnapshotExists(n string, obj usagereportsv4.SnapshotConfig) resource.TestCheckFunc { return func(s *terraform.State) error { diff --git a/version/version.go b/version/version.go index 73cc0339b0..9303860af8 100644 --- a/version/version.go +++ b/version/version.go @@ -5,7 +5,7 @@ import ( ) // Version is the current provider main version -const Version = "1.66.0-beta0" +const Version = "1.66.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 fefdd8c673..5416d7813f 100644 --- a/website/allowed-subcategories.txt +++ b/website/allowed-subcategories.txt @@ -1,4 +1,4 @@ -Activity Tracker +Activity Tracker Event Routing API Gateway App ID Management App Configuration diff --git a/website/docs/d/atracker_routes.html.markdown b/website/docs/d/atracker_routes.html.markdown index a451160ec4..d19404e2af 100644 --- a/website/docs/d/atracker_routes.html.markdown +++ b/website/docs/d/atracker_routes.html.markdown @@ -3,7 +3,7 @@ layout: "ibm" page_title: "IBM : ibm_atracker_routes" description: |- Get information about atracker_routes -subcategory: "Activity Tracker" +subcategory: "Activity Tracker Event Routing" --- # ibm_atracker_routes diff --git a/website/docs/d/atracker_targets.html.markdown b/website/docs/d/atracker_targets.html.markdown index 3ac5a2b988..1b99365572 100644 --- a/website/docs/d/atracker_targets.html.markdown +++ b/website/docs/d/atracker_targets.html.markdown @@ -3,7 +3,7 @@ layout: "ibm" page_title: "IBM : ibm_atracker_targets" description: |- Get information about atracker_targets -subcategory: "Activity Tracker" +subcategory: "Activity Tracker Event Routing" --- # ibm_atracker_targets diff --git a/website/docs/d/billing_snapshot_list.html.markdown b/website/docs/d/billing_snapshot_list.html.markdown index 4c7f384141..75d15f67d4 100644 --- a/website/docs/d/billing_snapshot_list.html.markdown +++ b/website/docs/d/billing_snapshot_list.html.markdown @@ -26,6 +26,8 @@ You can specify the following arguments for this data source. * `date_from` - (Optional, Integer) Timestamp in milliseconds for which billing report snapshot is requested. * `date_to` - (Optional, Integer) Timestamp in milliseconds for which billing report snapshot is requested. +* `limit` - (Optional, Integer) Number of usage records returned. The default value is 30. Maximum value is 200. + * Constraints: The default value is `30`. The maximum value is `200`. The minimum value is `1`. * `month` - (Required, String) The month for which billing report snapshot is requested. Format is yyyy-mm. ## Attribute Reference @@ -34,6 +36,7 @@ After your data source is created, you can read values from the following attrib * `id` - The unique identifier of the billing_snapshot_list. * `count` - (Integer) Number of total snapshots. + * `snapshots` - (List) Nested schema for **snapshots**: * `account_id` - (String) Account ID for which billing report snapshot is configured. diff --git a/website/docs/d/en_smtp_configuration.html.markdown b/website/docs/d/en_smtp_configuration.html.markdown index c771a9acb1..e853bfb3c3 100644 --- a/website/docs/d/en_smtp_configuration.html.markdown +++ b/website/docs/d/en_smtp_configuration.html.markdown @@ -37,10 +37,10 @@ After your data source is created, you can read values from the following attrib Nested schema for **config**: * `dkim` - (List) The DKIM attributes. Nested schema for **dkim**: - * `public_key` - (String) dkim public key. - * Constraints: The maximum length is `500` characters. The minimum length is `1` character. The value must match regular expression `/.*/`. - * `selector` - (String) dkim selector. + * `txt_name` - (String) DMIM text name. * Constraints: The maximum length is `255` characters. The minimum length is `1` character. The value must match regular expression `/.*/`. + * `txt_value` - (String) DMIM text value. + * Constraints: The maximum length is `500` characters. The minimum length is `1` character. The value must match regular expression `/.*/`. * `verification` - (String) dkim verification. * Constraints: The maximum length is `255` characters. The minimum length is `1` character. The value must match regular expression `/.*/`. * `en_authorization` - (List) The en_authorization attributes. diff --git a/website/docs/d/project.html.markdown b/website/docs/d/project.html.markdown index 0207381cae..fdcd342250 100644 --- a/website/docs/d/project.html.markdown +++ b/website/docs/d/project.html.markdown @@ -45,6 +45,8 @@ Nested schema for **configs**: * 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\\$\\-_\\.+!\\*'\\(\\),=&?\/]+$/`. * `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`, `applied`, `apply_failed`. + * `state_code` - (String) Computed state code clarifying the prerequisites for validation for the configuration. + * Constraints: Allowable values are: `awaiting_input`, `awaiting_prerequisite`, `awaiting_validation`, `awaiting_member_deployment`, `awaiting_stack_setup`. * `version` - (Integer) The version number 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 to match the date and time format as specified by RFC 3339. * `definition` - (List) The description of a project configuration. @@ -67,6 +69,8 @@ Nested schema for **configs**: * 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\\$\\-_\\.+!\\*'\\(\\),=&?\/]+$/`. * `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`, `applied`, `apply_failed`. + * `state_code` - (String) Computed state code clarifying the prerequisites for validation for the configuration. + * Constraints: Allowable values are: `awaiting_input`, `awaiting_prerequisite`, `awaiting_validation`, `awaiting_member_deployment`, `awaiting_stack_setup`. * `version` - (Integer) The version number of the configuration. * `deployment_model` - (String) The configuration type. * Constraints: Allowable values are: `project_deployed`, `user_deployed`, `stack`. diff --git a/website/docs/d/project_config.html.markdown b/website/docs/d/project_config.html.markdown index b57dc1f9f7..3a6d5320a2 100644 --- a/website/docs/d/project_config.html.markdown +++ b/website/docs/d/project_config.html.markdown @@ -45,6 +45,8 @@ Nested schema for **approved_version**: * 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\\$\\-_\\.+!\\*'\\(\\),=&?\/]+$/`. * `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`, `applied`, `apply_failed`. + * `state_code` - (String) Computed state code clarifying the prerequisites for validation for the configuration. + * Constraints: Allowable values are: `awaiting_input`, `awaiting_prerequisite`, `awaiting_validation`, `awaiting_member_deployment`, `awaiting_stack_setup`. * `version` - (Integer) The version number 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 to match the date and time format as specified by RFC 3339. * `definition` - (List) @@ -56,7 +58,7 @@ Nested schema for **definition**: * `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]+$/`. + * Constraints: The maximum length is `512` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. * `compliance_profile` - (List) The profile that is required for compliance. Nested schema for **compliance_profile**: * `attachment_id` - (String) A unique ID for the attachment to a compliance profile. @@ -100,6 +102,8 @@ Nested schema for **deployed_version**: * 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\\$\\-_\\.+!\\*'\\(\\),=&?\/]+$/`. * `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`, `applied`, `apply_failed`. + * `state_code` - (String) Computed state code clarifying the prerequisites for validation for the configuration. + * Constraints: Allowable values are: `awaiting_input`, `awaiting_prerequisite`, `awaiting_validation`, `awaiting_member_deployment`, `awaiting_stack_setup`. * `version` - (Integer) The version number of the configuration. * `deployment_model` - (String) The configuration type. * Constraints: Allowable values are: `project_deployed`, `user_deployed`, `stack`. @@ -212,7 +216,7 @@ Nested schema for **schematics**: * `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`, `applied`, `apply_failed`. * `state_code` - (String) Computed state code clarifying the prerequisites for validation for the configuration. - * Constraints: Allowable values are: `awaiting_input`, `awaiting_prerequisite`, `awaiting_validation`, `awaiting_member_deployment`. + * Constraints: Allowable values are: `awaiting_input`, `awaiting_prerequisite`, `awaiting_validation`, `awaiting_member_deployment`, `awaiting_stack_setup`. * `template_id` - (String) The stack definition identifier. * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. * `update_available` - (Boolean) The flag that indicates whether a configuration update is available. diff --git a/website/docs/d/project_environment.html.markdown b/website/docs/d/project_environment.html.markdown index e4b7578d83..4d87209872 100644 --- a/website/docs/d/project_environment.html.markdown +++ b/website/docs/d/project_environment.html.markdown @@ -43,7 +43,7 @@ Nested schema for **definition**: * `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]+$/`. + * Constraints: The maximum length is `512` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. * `compliance_profile` - (List) The profile that is required for compliance. Nested schema for **compliance_profile**: * `attachment_id` - (String) A unique ID for the attachment to a compliance profile. diff --git a/website/docs/d/sm_imported_certificate.html.markdown b/website/docs/d/sm_imported_certificate.html.markdown index 4b6e1209fd..09ce6e0768 100644 --- a/website/docs/d/sm_imported_certificate.html.markdown +++ b/website/docs/d/sm_imported_certificate.html.markdown @@ -53,8 +53,6 @@ Review the argument reference that you can specify for your data source. 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 data source. -* `alt_names` - (List) With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate. - * Constraints: The list items must match regular expression `/^(.*?)$/`. The maximum length is `99` items. The minimum length is `0` items. * `certificate` - (String) The PEM-encoded contents of your certificate. * Constraints: The maximum length is `100000` characters. The minimum length is `50` characters. diff --git a/website/docs/d/sm_imported_certificate_metadata.html.markdown b/website/docs/d/sm_imported_certificate_metadata.html.markdown index 35c2ca599a..5f2bb4e510 100644 --- a/website/docs/d/sm_imported_certificate_metadata.html.markdown +++ b/website/docs/d/sm_imported_certificate_metadata.html.markdown @@ -36,8 +36,6 @@ Review the argument reference that you can specify for your data source. 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 data source. -* `alt_names` - (List) With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate. - * Constraints: The list items must match regular expression `/^(.*?)$/`. The maximum length is `99` items. The minimum length is `0` items. * `common_name` - (String) The Common Name (AKA CN) represents the server name protected by the SSL certificate. * Constraints: The maximum length is `64` characters. The minimum length is `4` characters. The value must match regular expression `/^(\\*\\.)?(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9])\\.?$/`. diff --git a/website/docs/r/atracker_route.html.markdown b/website/docs/r/atracker_route.html.markdown index 8a501634f8..4fbbedc4d6 100644 --- a/website/docs/r/atracker_route.html.markdown +++ b/website/docs/r/atracker_route.html.markdown @@ -2,8 +2,8 @@ layout: "ibm" page_title: "IBM : ibm_atracker_route" description: |- - Manages Activity Tracker Route. -subcategory: "Activity Tracker" + Manages Activity Tracker Event Routing Route. +subcategory: "Activity Tracker Event Routing" --- # ibm_atracker_route diff --git a/website/docs/r/atracker_settings.html.markdown b/website/docs/r/atracker_settings.html.markdown index 8340ab54be..3aa85516a4 100644 --- a/website/docs/r/atracker_settings.html.markdown +++ b/website/docs/r/atracker_settings.html.markdown @@ -3,7 +3,7 @@ layout: "ibm" page_title: "IBM : ibm_atracker_settings" description: |- Manages atracker_settings. -subcategory: "Activity Tracker" +subcategory: "Activity Tracker Event Routing" --- # ibm_atracker_settings diff --git a/website/docs/r/atracker_target.html.markdown b/website/docs/r/atracker_target.html.markdown index 96560c67ea..13cbb61cd2 100644 --- a/website/docs/r/atracker_target.html.markdown +++ b/website/docs/r/atracker_target.html.markdown @@ -2,18 +2,18 @@ layout: "ibm" page_title: "IBM : ibm_atracker_target" description: |- - Manages Activity Tracker Target. -subcategory: "Activity Tracker" + Manages Activity Tracker Event Routing Target. +subcategory: "Activity Tracker Event Routing" --- # ibm_atracker_target -Provides a resource for Activity Tracker Target. This allows Activity Tracker Target to be created, updated and deleted. +Provides a resource for Activity Tracker Event Routing Target. This allows Activity Tracker Event Routing Target to be created, updated and deleted. ## Example usage ```terraform -resource "ibm_atracker_target" "atracker_target" { +resource "ibm_atracker_target" "atracker_cos_target" { cos_endpoint { endpoint = "endpoint" target_crn = "target_crn" diff --git a/website/docs/r/billing_report_snapshot.html.markdown b/website/docs/r/billing_report_snapshot.html.markdown index 4151c7748d..ec590296ed 100644 --- a/website/docs/r/billing_report_snapshot.html.markdown +++ b/website/docs/r/billing_report_snapshot.html.markdown @@ -48,15 +48,15 @@ If service-to-service authorization already exists in the specific COS bucket, t You can specify the following arguments for this resource. -* `cos_bucket` - (Required, String) The name of the COS bucket to store the snapshot of the billing reports. -* `cos_location` - (Required, String) Region of the COS instance. -* `cos_reports_folder` - (Optional, String) The billing reports root folder to store the billing reports snapshots. Defaults to "IBMCloud-Billing-Reports". +* `cos_bucket` - (Required, Forces new resource, String) The name of the COS bucket to store the snapshot of the billing reports. +* `cos_location` - (Required, Forces new resource, String) Region of the COS instance. +* `cos_reports_folder` - (Optional, Forces new resource, String) The billing reports root folder to store the billing reports snapshots. Defaults to "IBMCloud-Billing-Reports". * Constraints: The default value is `IBMCloud-Billing-Reports`. -* `interval` - (Required, String) Frequency of taking the snapshot of the billing reports. +* `interval` - (Required, Forces new resource, String) Frequency of taking the snapshot of the billing reports. * Constraints: Allowable values are: `daily`. -* `report_types` - (Optional, List) The type of billing reports to take snapshot of. Possible values are [account_summary, enterprise_summary, account_resource_instance_usage]. +* `report_types` - (Optional, Forces new resource, List) The type of billing reports to take snapshot of. Possible values are [account_summary, enterprise_summary, account_resource_instance_usage]. * Constraints: Allowable list items are: `account_summary`, `enterprise_summary`, `account_resource_instance_usage`. -* `versioning` - (Optional, String) A new version of report is created or the existing report version is overwritten with every update. +* `versioning` - (Optional, Forces new resource, String) A new version of report is created or the existing report version is overwritten with every update. * Constraints: The default value is `new`. Allowable values are: `new`, `overwrite`. ## Attribute Reference @@ -103,9 +103,9 @@ Nested schema for **history**: You can import the `ibm_billing_report_snapshot` resource by using `account_id`. Account ID for which billing report snapshot is configured. # Syntax -``` -$ terraform import ibm_billing_report_snapshot.billing_report_snapshot -``` +
+$ terraform import ibm_billing_report_snapshot.billing_report_snapshot <account_id>
+
# Example ``` diff --git a/website/docs/r/container_vpc_cluster.html.markdown b/website/docs/r/container_vpc_cluster.html.markdown index 35ef1f0916..a5b2832faa 100644 --- a/website/docs/r/container_vpc_cluster.html.markdown +++ b/website/docs/r/container_vpc_cluster.html.markdown @@ -185,6 +185,7 @@ Review the argument references that you can specify for your resource. - `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. + - `wait_for_apply` - (Optional, Bool) Set **true** to make terraform wait until KMS is applied to master and it is ready and deployed. Default value is **false**. - `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, 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). This field only affects cluster creation, to manage the default worker pool, create a dedicated worker pool resource. diff --git a/website/docs/r/cos_bucket.html.markdown b/website/docs/r/cos_bucket.html.markdown index 0b0d7cf069..5a939f866d 100644 --- a/website/docs/r/cos_bucket.html.markdown +++ b/website/docs/r/cos_bucket.html.markdown @@ -251,7 +251,25 @@ resource "ibm_cos_bucket" "objectversioning" { } } +### Give public access to a bucket + +data "ibm_iam_access_group" "public_access_group" { + access_group_name = "Public Access" # public access group name +} + +resource "ibm_iam_access_group_policy" "public-access-policy" { + access_group_id = data.ibm_iam_access_group.public_access_group.groups[0].id + roles = ["Content Reader"] # ["Content Reader", "Object Reader"] + resources { + resource = ibm_cos_bucket.cos_bucket.bucket_name + resource_instance_id = ibm_resource_instance.cos_instance.guid + resource_type = "bucket" + service = "cloud-object-storage" + } +} + ``` +For more information on access group policies, please refer to [this link](https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/resources/iam_access_group_policy) # cos satellite bucket diff --git a/website/docs/r/en_smtp_configuration.html.markdown b/website/docs/r/en_smtp_configuration.html.markdown index dcf279a4a0..9be28bfa79 100644 --- a/website/docs/r/en_smtp_configuration.html.markdown +++ b/website/docs/r/en_smtp_configuration.html.markdown @@ -22,7 +22,9 @@ resource "ibm_en_smtp_configuration" "en_smtp_configuration_instance" { } ``` -**NOTE** `verification_type` is SMTP Configuration update parameter which can be used to verify the status of verfication depending on the type of verification. +**NOTE:** +- To perform the verification for spf, dkim and en_authorization please follow the instructions here: https://cloud.ibm.com/docs/event-notifications?topic=event-notifications-en-smtp-configurations#en-smtp-configurations-verify +- `verification_type` is SMTP Configuration update parameter which can be used to verify the status of verfication depending on the type of verification. ## Argument Reference @@ -47,10 +49,10 @@ After your resource is created, you can read values from the listed arguments an Nested schema for **config**: * `dkim` - (List) The DKIM attributes. Nested schema for **dkim**: - * `public_key` - (String) dkim public key. - * Constraints: The maximum length is `500` characters. The minimum length is `1` character. The value must match regular expression `/.*/`. - * `selector` - (String) dkim selector. + * `txt_name` - (String) DMIM text name. * Constraints: The maximum length is `255` characters. The minimum length is `1` character. The value must match regular expression `/.*/`. + * `txt_value` - (String) DMIM text value. + * Constraints: The maximum length is `500` characters. The minimum length is `1` character. The value must match regular expression `/.*/`. * `verification` - (String) dkim verification. * Constraints: The maximum length is `255` characters. The minimum length is `1` character. The value must match regular expression `/.*/`. * `en_authorization` - (List) The en_authorization attributes. @@ -83,5 +85,5 @@ The `id` property can be formed from `instance_id`, and `en_smtp_configuration_i # Syntax
-$ terraform import ibm_en_smtp_configuration.en_smtp_configuration <instance_id>/<en_smtp_configuration_id>
+$ terraform import ibm_en_smtp_configuration.en_smtp_configuration /
 
diff --git a/website/docs/r/en_smtp_user.html.markdown b/website/docs/r/en_smtp_user.html.markdown index 52135bcfca..da96c90b18 100644 --- a/website/docs/r/en_smtp_user.html.markdown +++ b/website/docs/r/en_smtp_user.html.markdown @@ -44,6 +44,8 @@ After your resource is created, you can read values from the listed arguments an * Constraints: The maximum length is `100` characters. The minimum length is `32` characters. The value must match regular expression `/[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}/`. * `username` - (String) SMTP user name. * Constraints: The maximum length is `250` characters. The minimum length is `3` characters. The value must match regular expression `/.*/`. +* `password` - (String) SMTP user password. + * Constraints: The maximum length is `250` characters. The minimum length is `3` characters. The value must match regular expression `/.*/`. ## Import @@ -59,5 +61,5 @@ The `id` property can be formed from `instance_id`, and `user_id` in the followi # Syntax
-$ terraform import ibm_en_smtp_user.en_smtp_user <instance_id>/<user_id>
+$ terraform import ibm_en_smtp_user.en_smtp_user /
 
diff --git a/website/docs/r/pi_workspace.html.markdown b/website/docs/r/pi_workspace.html.markdown index 2f3ae69fd3..04a92a2c57 100644 --- a/website/docs/r/pi_workspace.html.markdown +++ b/website/docs/r/pi_workspace.html.markdown @@ -22,25 +22,31 @@ 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 +### 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` +## Timeouts + +The `ibm_pi_workspace` provides the following [timeouts](https://developer.hashicorp.com/terraform/language/resources/syntax#operation-timeouts) configuration options: + +- **create** - (Default 30 minutes) Used for creating powervs workspace. +- **delete** - (Default 30 minutes) Used for deleting powervs workspace. + ## 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_name` - (Required, String) A descriptive name used to identify the workspace. +- `pi_plan` - (Optional, String) Plan associated with the offering; Valid values are `public` or `private`. The default value is `public`. - `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 @@ -51,4 +57,4 @@ In addition to all argument reference listed, you can access the following attri Nested schema for `workspace_details`: - `creation_date` - (String) Date of workspace creation. - - `crn` - (String) Workspace crn. \ No newline at end of file + - `crn` - (String) Workspace crn. diff --git a/website/docs/r/project.html.markdown b/website/docs/r/project.html.markdown index f51643a11e..a90fcfec89 100644 --- a/website/docs/r/project.html.markdown +++ b/website/docs/r/project.html.markdown @@ -63,6 +63,8 @@ Nested schema for **configs**: * 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\\$\\-_\\.+!\\*'\\(\\),=&?\/]+$/`. * `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`, `applied`, `apply_failed`. + * `state_code` - (String) Computed state code clarifying the prerequisites for validation for the configuration. + * Constraints: Allowable values are: `awaiting_input`, `awaiting_prerequisite`, `awaiting_validation`, `awaiting_member_deployment`, `awaiting_stack_setup`. * `version` - (Integer) The version number 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 to match the date and time format as specified by RFC 3339. * `definition` - (List) The description of a project configuration. @@ -85,6 +87,8 @@ Nested schema for **configs**: * 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\\$\\-_\\.+!\\*'\\(\\),=&?\/]+$/`. * `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`, `applied`, `apply_failed`. + * `state_code` - (String) Computed state code clarifying the prerequisites for validation for the configuration. + * Constraints: Allowable values are: `awaiting_input`, `awaiting_prerequisite`, `awaiting_validation`, `awaiting_member_deployment`, `awaiting_stack_setup`. * `version` - (Integer) The version number of the configuration. * `deployment_model` - (String) The configuration type. * Constraints: Allowable values are: `project_deployed`, `user_deployed`, `stack`. diff --git a/website/docs/r/project_config.html.markdown b/website/docs/r/project_config.html.markdown index 79507d91b2..59b9dbf483 100644 --- a/website/docs/r/project_config.html.markdown +++ b/website/docs/r/project_config.html.markdown @@ -43,7 +43,7 @@ Nested schema for **definition**: * `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]+$/`. + * Constraints: The maximum length is `512` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. * `compliance_profile` - (Optional, List) The profile that is required for compliance. Nested schema for **compliance_profile**: * `attachment_id` - (Optional, String) A unique ID for the attachment to a compliance profile. @@ -147,6 +147,8 @@ Nested schema for **approved_version**: * 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\\$\\-_\\.+!\\*'\\(\\),=&?\/]+$/`. * `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`, `applied`, `apply_failed`. + * `state_code` - (String) Computed state code clarifying the prerequisites for validation for the configuration. + * Constraints: Allowable values are: `awaiting_input`, `awaiting_prerequisite`, `awaiting_validation`, `awaiting_member_deployment`, `awaiting_stack_setup`. * `version` - (Integer) The version number 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 to match the date and time format as specified by RFC 3339. * `deployed_version` - (List) A summary of a project configuration version. @@ -161,6 +163,8 @@ Nested schema for **deployed_version**: * 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\\$\\-_\\.+!\\*'\\(\\),=&?\/]+$/`. * `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`, `applied`, `apply_failed`. + * `state_code` - (String) Computed state code clarifying the prerequisites for validation for the configuration. + * Constraints: Allowable values are: `awaiting_input`, `awaiting_prerequisite`, `awaiting_validation`, `awaiting_member_deployment`, `awaiting_stack_setup`. * `version` - (Integer) The version number of the configuration. * `deployment_model` - (String) The configuration type. * Constraints: Allowable values are: `project_deployed`, `user_deployed`, `stack`. @@ -223,7 +227,7 @@ Nested schema for **project**: * `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`, `applied`, `apply_failed`. * `state_code` - (String) Computed state code clarifying the prerequisites for validation for the configuration. - * Constraints: Allowable values are: `awaiting_input`, `awaiting_prerequisite`, `awaiting_validation`, `awaiting_member_deployment`. + * Constraints: Allowable values are: `awaiting_input`, `awaiting_prerequisite`, `awaiting_validation`, `awaiting_member_deployment`, `awaiting_stack_setup`. * `template_id` - (String) The stack definition identifier. * Constraints: The maximum length is `128` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. * `update_available` - (Boolean) The flag that indicates whether a configuration update is available. diff --git a/website/docs/r/project_environment.html.markdown b/website/docs/r/project_environment.html.markdown index fb629832e3..c03e9d8304 100644 --- a/website/docs/r/project_environment.html.markdown +++ b/website/docs/r/project_environment.html.markdown @@ -39,7 +39,7 @@ Nested schema for **definition**: * `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]+$/`. + * Constraints: The maximum length is `512` characters. The value must match regular expression `/^[\\.\\-0-9a-zA-Z]+$/`. * `compliance_profile` - (Optional, List) The profile that is required for compliance. Nested schema for **compliance_profile**: * `attachment_id` - (Optional, String) A unique ID for the attachment to a compliance profile. diff --git a/website/docs/r/resource_key.html.markdown b/website/docs/r/resource_key.html.markdown index 60d29e2e66..09c047b696 100644 --- a/website/docs/r/resource_key.html.markdown +++ b/website/docs/r/resource_key.html.markdown @@ -137,7 +137,7 @@ Review the argument references that you can specify for your resource. - `name` - (Required, Forces new resource, String) A descriptive name used to identify a resource key. - `parameters` (Optional, Map) Arbitrary parameters to pass to the resource in JSON format. If you want to create service credentials by using the private service endpoint, include the `service-endpoints = "private"` parameter. -- `role` - (Optional, Forces new resource, String) The name of the user role. Valid roles are `Writer`, `Reader`, `Manager`, `Administrator`, `Operator`, `Viewer`, and `Editor`. This argument is Optional only during creation of service credentials for Cloud Databases and other non-IAM-enabled services and is Required for all other IAM-enabled services. +- `role` - (Optional, Forces new resource, String) The name of the user role. Valid roles are `NONE`,`Writer`, `Reader`, `Manager`, `Administrator`, `Operator`, `Viewer`, and `Editor`. This argument is Optional only during creation of service credentials for Cloud Databases and other non-IAM-enabled services and is Required for all other IAM-enabled services. - `resource_instance_id` - (Optional, Forces new resource, String) The ID of the resource instance associated with the resource key. **Note** Conflicts with `resource_alias_id`. - `resource_alias_id` - (Optional, Forces new resource, String) The ID of the resource alias associated with the resource key. **Note** Conflicts with `resource_instance_id`. - `tags` (Optional, Array of strings) Tags associated with the resource key instance. **Note** Tags are managed locally and not stored on the IBM Cloud Service Endpoint at this moment. diff --git a/website/docs/r/sm_arbitrary_secret.html.markdown b/website/docs/r/sm_arbitrary_secret.html.markdown index aadaef107d..ec60f7d09e 100644 --- a/website/docs/r/sm_arbitrary_secret.html.markdown +++ b/website/docs/r/sm_arbitrary_secret.html.markdown @@ -40,7 +40,7 @@ Review the argument reference that you can specify for your resource. * `labels` - (Optional, List) Labels that you can use to search for secrets in your instance.Up to 30 labels can be created. * Constraints: The list items must match regular expression `/(.*?)/`. The maximum length is `30` items. The minimum length is `0` items. * `name` - (Required, String) The human-readable name of your secret. - * Constraints: The maximum length is `256` characters. The minimum length is `2` characters. The value must match regular expression `^[A-Za-z0-9][A-Za-z0-9]*(?:_*-*\\.*[A-Za-z0-9]+)*$`. + * Constraints: The maximum length is `256` characters. The minimum length is `2` characters. The value must match regular expression `^[A-Za-z0-9_][A-Za-z0-9_]*(?:_*-*\.*[A-Za-z0-9]*)*[A-Za-z0-9]+$`. * `region` - (Optional, Forces new resource, String) The region of the Secrets Manager instance. If not provided defaults to the region defined in the IBM provider configuration. * `payload` - (Required, String) The arbitrary secret's data payload. You can manually rotate the secret by modifying this argument. Modifying the payload creates a new version of the secret. * Constraints: The maximum length is `100000` characters. The minimum length is `0` characters. The value must match regular expression `/(.*?)/`. diff --git a/website/docs/r/sm_iam_credentials_secret.html.markdown b/website/docs/r/sm_iam_credentials_secret.html.markdown index b457b8a40d..07d13ccb19 100644 --- a/website/docs/r/sm_iam_credentials_secret.html.markdown +++ b/website/docs/r/sm_iam_credentials_secret.html.markdown @@ -48,7 +48,7 @@ Review the argument reference that you can specify for your resource. * `labels` - (Optional, List) Labels that you can use to search for secrets in your instance.Up to 30 labels can be created. * Constraints: The list items must match regular expression `/(.*?)/`. The maximum length is `30` items. The minimum length is `0` items. * `name` - (Required, String) The human-readable name of your secret. - * Constraints: The maximum length is `256` characters. The minimum length is `2` characters. The value must match regular expression `^[A-Za-z0-9][A-Za-z0-9]*(?:_*-*\\.*[A-Za-z0-9]+)*$`. + * Constraints: The maximum length is `256` characters. The minimum length is `2` characters. The value must match regular expression `^[A-Za-z0-9_][A-Za-z0-9_]*(?:_*-*\.*[A-Za-z0-9]*)*[A-Za-z0-9]+$`. * `reuse_api_key` - (Optional, Boolean) 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 by Terraform. * `rotation` - (Optional, List) Determines whether Secrets Manager rotates your secrets automatically. Nested scheme for **rotation**: diff --git a/website/docs/r/sm_imported_certificate.html.markdown b/website/docs/r/sm_imported_certificate.html.markdown index 8ae2e0e158..3ba5e12ae6 100644 --- a/website/docs/r/sm_imported_certificate.html.markdown +++ b/website/docs/r/sm_imported_certificate.html.markdown @@ -44,7 +44,7 @@ Review the argument reference that you can specify for your resource. * `labels` - (Optional, List) Labels that you can use to search for secrets in your instance.Up to 30 labels can be created. * Constraints: The list items must match regular expression `/(.*?)/`. The maximum length is `30` items. The minimum length is `0` items. * `name` - (Required, String) The human-readable name of your secret. - * Constraints: The maximum length is `256` characters. The minimum length is `2` characters. The value must match regular expression `^[A-Za-z0-9][A-Za-z0-9]*(?:_*-*\\.*[A-Za-z0-9]+)*$`. + * Constraints: The maximum length is `256` characters. The minimum length is `2` characters. The value must match regular expression `^[A-Za-z0-9_][A-Za-z0-9_]*(?:_*-*\.*[A-Za-z0-9]*)*[A-Za-z0-9]+$`. * `private_key` - (Computed, String) (Optional) The PEM-encoded private key to associate with the certificate. * Constraints: The maximum length is `100000` characters. The minimum length is `50` characters. The value must match regular expression `/^(-{5}BEGIN.+?-{5}[\\s\\S]+-{5}END.+?-{5})$/`. * `secret_group_id` - (Optional, Forces new resource, String) A v4 UUID identifier, or `default` secret group. @@ -55,8 +55,6 @@ Review the argument reference that you can specify for your resource. In addition to all argument references listed, you can access the following attribute references after your resource is created. * `secret_id` - The unique identifier of the ImportedCertificate. -* `alt_names` - (Forces new resource, List) With the Subject Alternative Name field, you can specify additional host names to be protected by a single SSL certificate. - * Constraints: The list items must match regular expression `/^(.*?)$/`. The maximum length is `99` items. The minimum length is `0` items. * `common_name` - (Forces new resource, String) The Common Name (AKA CN) represents the server name protected by the SSL certificate. * Constraints: The maximum length is `64` characters. The minimum length is `4` characters. The value must match regular expression `/^(\\*\\.)?(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9])\\.?$/`. * `created_at` - (String) The date when a resource was created. The date format follows RFC 3339. diff --git a/website/docs/r/sm_kv_secret.html.markdown b/website/docs/r/sm_kv_secret.html.markdown index 955b5dcc7d..6620fcc2d7 100644 --- a/website/docs/r/sm_kv_secret.html.markdown +++ b/website/docs/r/sm_kv_secret.html.markdown @@ -41,7 +41,7 @@ Review the argument reference that you can specify for your resource. * `labels` - (Optional, List) Labels that you can use to search for secrets in your instance.Up to 30 labels can be created. * Constraints: The list items must match regular expression `/(.*?)/`. The maximum length is `30` items. The minimum length is `0` items. * `name` - (Required, String) The human-readable name of your secret. - * Constraints: The maximum length is `256` characters. The minimum length is `2` characters. The value must match regular expression `^[A-Za-z0-9][A-Za-z0-9]*(?:_*-*\\.*[A-Za-z0-9]+)*$`. + * Constraints: The maximum length is `256` characters. The minimum length is `2` characters. The value must match regular expression `^[A-Za-z0-9_][A-Za-z0-9_]*(?:_*-*\.*[A-Za-z0-9]*)*[A-Za-z0-9]+$`. * `secret_group_id` - (Optional, Forces new resource, String) A v4 UUID identifier, or `default` secret group. * Constraints: The maximum length is `36` characters. The minimum length is `7` characters. The value must match regular expression `/^([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|default)$/`. diff --git a/website/docs/r/sm_private_certificate.html.markdown b/website/docs/r/sm_private_certificate.html.markdown index 98c1d2c122..b6746b39d0 100644 --- a/website/docs/r/sm_private_certificate.html.markdown +++ b/website/docs/r/sm_private_certificate.html.markdown @@ -50,7 +50,7 @@ Review the argument reference that you can specify for your resource. * `labels` - (Optional, List) Labels that you can use to search for secrets in your instance.Up to 30 labels can be created. * Constraints: The list items must match regular expression `/(.*?)/`. The maximum length is `30` items. The minimum length is `0` items. * `name` - (Required, String) The human-readable name of your secret. - * Constraints: The maximum length is `256` characters. The minimum length is `2` characters. The value must match regular expression `^[A-Za-z0-9][A-Za-z0-9]*(?:_*-*\\.*[A-Za-z0-9]+)*$`. + * Constraints: The maximum length is `256` characters. The minimum length is `2` characters. The value must match regular expression `^[A-Za-z0-9_][A-Za-z0-9_]*(?:_*-*\.*[A-Za-z0-9]*)*[A-Za-z0-9]+$`. * `rotation` - (Optional, List) Determines whether Secrets Manager rotates your secrets automatically. Nested scheme for **rotation**: * `auto_rotate` - (Optional, Boolean) 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. diff --git a/website/docs/r/sm_public_certificate.html.markdown b/website/docs/r/sm_public_certificate.html.markdown index 44686b2f55..1d6251acbc 100644 --- a/website/docs/r/sm_public_certificate.html.markdown +++ b/website/docs/r/sm_public_certificate.html.markdown @@ -40,7 +40,7 @@ Review the argument reference that you can specify for your resource. * `endpoint_type` - (Optional, String) - The endpoint type. If not provided the endpoint type is determined by the `visibility` argument provided in the provider configuration. * Constraints: Allowable values are: `private`, `public`. * `name` - (Required, String) The human-readable name of your secret. - * Constraints: The maximum length is `256` characters. The minimum length is `2` characters. The value must match regular expression `^[A-Za-z0-9][A-Za-z0-9]*(?:_*-*\\.*[A-Za-z0-9]+)*$`. + * Constraints: The maximum length is `256` characters. The minimum length is `2` characters. The value must match regular expression `^[A-Za-z0-9_][A-Za-z0-9_]*(?:_*-*\.*[A-Za-z0-9]*)*[A-Za-z0-9]+$`. * `ca` - (Required, Forces new resource, String) The name of the certificate authority configuration. * `common_name` - (Required, Forces new resource, String) The Common Name (AKA CN) represents the server name protected by the SSL certificate. * Constraints: The maximum length is `64` characters. The minimum length is `4` characters. The value must match regular expression `/^(\\*\\.)?(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9])\\.?$/`. diff --git a/website/docs/r/sm_service_credentials_secret.html.markdown b/website/docs/r/sm_service_credentials_secret.html.markdown index b15770176b..625b1f9f7d 100644 --- a/website/docs/r/sm_service_credentials_secret.html.markdown +++ b/website/docs/r/sm_service_credentials_secret.html.markdown @@ -104,7 +104,7 @@ Review the argument reference that you can specify for your resource. * `endpoint_type` - (Optional, String) - The endpoint type. If not provided the endpoint type is determined by the `visibility` argument provided in the provider configuration. * Constraints: Allowable values are: `private`, `public`. * `name` - (Required, String) The human-readable name of your secret. - * Constraints: The maximum length is `256` characters. The minimum length is `2` characters. The value must match regular expression `^[A-Za-z0-9][A-Za-z0-9]*(?:_*-*\\.*[A-Za-z0-9]+)*$`. + * Constraints: The maximum length is `256` characters. The minimum length is `2` characters. The value must match regular expression `^[A-Za-z0-9_][A-Za-z0-9_]*(?:_*-*\.*[A-Za-z0-9]*)*[A-Za-z0-9]+$`. * `custom_metadata` - (Optional, Map) The secret metadata that a user can customize. * `description` - (Optional, String) 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. * Constraints: The maximum length is `1024` characters. The minimum length is `0` characters. The value must match regular expression `/(.*?)/`. diff --git a/website/docs/r/sm_username_password_secret.html.markdown b/website/docs/r/sm_username_password_secret.html.markdown index 40a776d161..cc57b228ec 100644 --- a/website/docs/r/sm_username_password_secret.html.markdown +++ b/website/docs/r/sm_username_password_secret.html.markdown @@ -47,7 +47,7 @@ Review the argument reference that you can specify for your resource. * `endpoint_type` - (Optional, String) - The endpoint type. If not provided the endpoint type is determined by the `visibility` argument provided in the provider configuration. * Constraints: Allowable values are: `private`, `public`. * `name` - (String) The human-readable name of your secret. - * Constraints: The maximum length is `256` characters. The minimum length is `2` characters. The value must match regular expression `^[A-Za-z0-9][A-Za-z0-9]*(?:_*-*\\.*[A-Za-z0-9]+)*$`. + * Constraints: The maximum length is `256` characters. The minimum length is `2` characters. The value must match regular expression `^[A-Za-z0-9_][A-Za-z0-9_]*(?:_*-*\.*[A-Za-z0-9]*)*[A-Za-z0-9]+$`. * `custom_metadata` - (Optional, Map) The secret metadata that a user can customize. * `description` - (Optional, String) 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. * Constraints: The maximum length is `1024` characters. The minimum length is `0` characters. The value must match regular expression `/(.*?)/`.