Skip to content

Commit a3d1506

Browse files
Afreen1998Afrin Katageri
andauthored
IBM Cloud Shell: re-gen provider for adopting the new error toolchain (IBM-Cloud#5904)
* IBM Cloud Shell: re-gen provider for adopting the new error toolchain * IBM Cloud Shell: re-gen provider for adopting the new error toolchain --------- Co-authored-by: Afrin Katageri <[email protected]>
1 parent d4014e5 commit a3d1506

10 files changed

+545
-432
lines changed

.secrets.baseline

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"files": "go.mod|go.sum|.*.map|^.secrets.baseline$",
44
"lines": null
55
},
6-
"generated_at": "2025-01-06T04:50:55Z",
6+
"generated_at": "2025-01-08T04:55:16Z",
77
"plugins_used": [
88
{
99
"name": "AWSKeyDetector"
@@ -926,15 +926,15 @@
926926
"hashed_secret": "c8b6f5ef11b9223ac35a5663975a466ebe7ebba9",
927927
"is_secret": false,
928928
"is_verified": false,
929-
"line_number": 2352,
929+
"line_number": 2355,
930930
"type": "Secret Keyword",
931931
"verified_result": null
932932
},
933933
{
934934
"hashed_secret": "8abf4899c01104241510ba87685ad4de76b0c437",
935935
"is_secret": false,
936936
"is_verified": false,
937-
"line_number": 2358,
937+
"line_number": 2361,
938938
"type": "Secret Keyword",
939939
"verified_result": null
940940
}

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ require (
3333
github.com/IBM/logs-router-go-sdk v1.0.5
3434
github.com/IBM/mqcloud-go-sdk v0.2.0
3535
github.com/IBM/networking-go-sdk v0.49.0
36-
github.com/IBM/platform-services-go-sdk v0.71.1
36+
github.com/IBM/platform-services-go-sdk v0.72.0
3737
github.com/IBM/project-go-sdk v0.3.5
3838
github.com/IBM/push-notifications-go-sdk v0.0.0-20210310100607-5790b96c47f5
3939
github.com/IBM/sarama v1.41.2

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,8 +156,8 @@ github.com/IBM/mqcloud-go-sdk v0.2.0 h1:QOWk8ZGk0QfIL0MOGTKzNdM3Qe0Hk+ifAFtNSFQo
156156
github.com/IBM/mqcloud-go-sdk v0.2.0/go.mod h1:VZQKMtqmcdXKhmLhLiPuS/UHMs/5yo2tA/nD83cQt9E=
157157
github.com/IBM/networking-go-sdk v0.49.0 h1:lPS34u3C0JVrbxH+Ulua76Nwl6Frv8BEfq6LRkyvOv0=
158158
github.com/IBM/networking-go-sdk v0.49.0/go.mod h1:G9CKbmPE8gSLjN+ABh4hIZ1bMx076enl5Eekvj6zQnA=
159-
github.com/IBM/platform-services-go-sdk v0.71.1 h1:EyqSctlLVqj092yU6K9hyTyx7JIpzhE192n6eG+Daac=
160-
github.com/IBM/platform-services-go-sdk v0.71.1/go.mod h1:ApFkvqw7NaluWJ5Uq+afdM/2jQqo5ILc0SzKSVobYNw=
159+
github.com/IBM/platform-services-go-sdk v0.72.0 h1:AfJe6bgqmTQU4ff/2URu3wkRLZD0XIzojn7SLf2yIns=
160+
github.com/IBM/platform-services-go-sdk v0.72.0/go.mod h1:ApFkvqw7NaluWJ5Uq+afdM/2jQqo5ILc0SzKSVobYNw=
161161
github.com/IBM/project-go-sdk v0.3.5 h1:L+YClFUa14foS0B/hOOY9n7sIdsT5/XQicnXOyJSpyM=
162162
github.com/IBM/project-go-sdk v0.3.5/go.mod h1:FOJM9ihQV3EEAY6YigcWiTNfVCThtdY8bLC/nhQHFvo=
163163
github.com/IBM/push-notifications-go-sdk v0.0.0-20210310100607-5790b96c47f5 h1:NPUhkoOCRuv3OFWt19PmwjXGGTKlvmbuPg9fUrBUNe4=

ibm/provider/provider.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1948,6 +1948,9 @@ func Validator() validate.ValidatorDict {
19481948
"ibm_hpcs_vault": hpcs.ResourceIbmVaultValidator(),
19491949
"ibm_config_aggregator_settings": configurationaggregator.ResourceIbmConfigAggregatorSettingsValidator(),
19501950

1951+
// Cloudshell
1952+
"ibm_cloud_shell_account_settings": cloudshell.ResourceIBMCloudShellAccountSettingsValidator(),
1953+
19511954
// MQ on Cloud
19521955
"ibm_mqcloud_queue_manager": mqcloud.ResourceIbmMqcloudQueueManagerValidator(),
19531956
"ibm_mqcloud_application": mqcloud.ResourceIbmMqcloudApplicationValidator(),
Lines changed: 114 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,23 @@
1-
// Copyright IBM Corp. 2021 All Rights Reserved.
1+
// Copyright IBM Corp. 2024 All Rights Reserved.
22
// Licensed under the Mozilla Public License v2.0
33

4+
/*
5+
* IBM OpenAPI Terraform Generator Version: 3.98.0-8be2046a-20241205-162752
6+
*/
7+
48
package cloudshell
59

610
import (
711
"context"
812
"fmt"
913
"log"
1014

11-
"github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns"
12-
"github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex"
1315
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
1416
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1517

18+
"github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns"
19+
"github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex"
20+
"github.com/IBM/go-sdk-core/v5/core"
1621
"github.com/IBM/platform-services-go-sdk/ibmcloudshellv1"
1722
)
1823

@@ -21,90 +26,90 @@ func DataSourceIBMCloudShellAccountSettings() *schema.Resource {
2126
ReadContext: dataSourceIBMCloudShellAccountSettingsRead,
2227

2328
Schema: map[string]*schema.Schema{
24-
"account_id": {
29+
"account_id": &schema.Schema{
2530
Type: schema.TypeString,
2631
Required: true,
2732
Description: "The account ID in which the account settings belong to.",
2833
},
29-
"rev": {
34+
"rev": &schema.Schema{
3035
Type: schema.TypeString,
3136
Computed: true,
3237
Description: "Unique revision number for the settings object.",
3338
},
34-
"created_at": {
39+
"created_at": &schema.Schema{
3540
Type: schema.TypeInt,
3641
Computed: true,
3742
Description: "Creation timestamp in Unix epoch time.",
3843
},
39-
"created_by": {
44+
"created_by": &schema.Schema{
4045
Type: schema.TypeString,
4146
Computed: true,
4247
Description: "IAM ID of creator.",
4348
},
44-
"default_enable_new_features": {
49+
"default_enable_new_features": &schema.Schema{
4550
Type: schema.TypeBool,
4651
Computed: true,
4752
Description: "You can choose which Cloud Shell features are available in the account and whether any new features are enabled as they become available. The feature settings apply only to the enabled Cloud Shell locations.",
4853
},
49-
"default_enable_new_regions": {
54+
"default_enable_new_regions": &schema.Schema{
5055
Type: schema.TypeBool,
5156
Computed: true,
5257
Description: "Set whether Cloud Shell is enabled in a specific location for the account. The location determines where user and session data are stored. By default, users are routed to the nearest available location.",
5358
},
54-
"enabled": {
59+
"enabled": &schema.Schema{
5560
Type: schema.TypeBool,
5661
Computed: true,
5762
Description: "When enabled, Cloud Shell is available to all users in the account.",
5863
},
59-
"features": {
64+
"features": &schema.Schema{
6065
Type: schema.TypeList,
6166
Computed: true,
6267
Description: "List of Cloud Shell features.",
6368
Elem: &schema.Resource{
6469
Schema: map[string]*schema.Schema{
65-
"enabled": {
70+
"enabled": &schema.Schema{
6671
Type: schema.TypeBool,
6772
Computed: true,
6873
Description: "State of the feature.",
6974
},
70-
"key": {
75+
"key": &schema.Schema{
7176
Type: schema.TypeString,
7277
Computed: true,
7378
Description: "Name of the feature.",
7479
},
7580
},
7681
},
7782
},
78-
"regions": {
83+
"regions": &schema.Schema{
7984
Type: schema.TypeList,
8085
Computed: true,
8186
Description: "List of Cloud Shell region settings.",
8287
Elem: &schema.Resource{
8388
Schema: map[string]*schema.Schema{
84-
"enabled": {
89+
"enabled": &schema.Schema{
8590
Type: schema.TypeBool,
8691
Computed: true,
8792
Description: "State of the region.",
8893
},
89-
"key": {
94+
"key": &schema.Schema{
9095
Type: schema.TypeString,
9196
Computed: true,
9297
Description: "Name of the region.",
9398
},
9499
},
95100
},
96101
},
97-
"type": {
102+
"type": &schema.Schema{
98103
Type: schema.TypeString,
99104
Computed: true,
100105
Description: "Type of api response object.",
101106
},
102-
"updated_at": {
107+
"updated_at": &schema.Schema{
103108
Type: schema.TypeInt,
104109
Computed: true,
105110
Description: "Timestamp of last update in Unix epoch time.",
106111
},
107-
"updated_by": {
112+
"updated_by": &schema.Schema{
108113
Type: schema.TypeString,
109114
Computed: true,
110115
Description: "IAM ID of last updater.",
@@ -116,103 +121,127 @@ func DataSourceIBMCloudShellAccountSettings() *schema.Resource {
116121
func dataSourceIBMCloudShellAccountSettingsRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
117122
ibmCloudShellClient, err := meta.(conns.ClientSession).IBMCloudShellV1()
118123
if err != nil {
119-
return diag.FromErr(err)
124+
tfErr := flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_cloud_shell_account_settings", "read", "initialize-client")
125+
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
126+
return tfErr.GetDiag()
120127
}
121128

122129
getAccountSettingsOptions := &ibmcloudshellv1.GetAccountSettingsOptions{}
123130

124131
getAccountSettingsOptions.SetAccountID(d.Get("account_id").(string))
125132

126-
accountSettings, response, err := ibmCloudShellClient.GetAccountSettingsWithContext(context, getAccountSettingsOptions)
127-
if err != nil || accountSettings == nil {
128-
log.Printf("[DEBUG] GetAccountSettingsWithContext failed %s\n%s", err, response)
129-
return diag.FromErr(fmt.Errorf("GetAccountSettingsWithContext failed %s\n%s", err, response))
133+
accountSettings, _, err := ibmCloudShellClient.GetAccountSettingsWithContext(context, getAccountSettingsOptions)
134+
if err != nil {
135+
tfErr := flex.TerraformErrorf(err, fmt.Sprintf("GetAccountSettingsWithContext failed: %s", err.Error()), "(Data) ibm_cloud_shell_account_settings", "read")
136+
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
137+
return tfErr.GetDiag()
130138
}
131139

132-
d.SetId(*accountSettings.AccountID)
133-
if err = d.Set("rev", accountSettings.Rev); err != nil {
134-
return diag.FromErr(fmt.Errorf("[ERROR] Error setting rev: %s", err))
135-
}
136-
if err = d.Set("created_at", flex.IntValue(accountSettings.CreatedAt)); err != nil {
137-
return diag.FromErr(fmt.Errorf("[ERROR] Error setting created_at: %s", err))
138-
}
139-
if err = d.Set("created_by", accountSettings.CreatedBy); err != nil {
140-
return diag.FromErr(fmt.Errorf("[ERROR] Error setting created_by: %s", err))
141-
}
142-
if err = d.Set("default_enable_new_features", accountSettings.DefaultEnableNewFeatures); err != nil {
143-
return diag.FromErr(fmt.Errorf("[ERROR] Error setting default_enable_new_features: %s", err))
144-
}
145-
if err = d.Set("default_enable_new_regions", accountSettings.DefaultEnableNewRegions); err != nil {
146-
return diag.FromErr(fmt.Errorf("[ERROR] Error setting default_enable_new_regions: %s", err))
147-
}
148-
if err = d.Set("enabled", accountSettings.Enabled); err != nil {
149-
return diag.FromErr(fmt.Errorf("[ERROR] Error setting enabled: %s", err))
150-
}
140+
d.SetId(*getAccountSettingsOptions.AccountID)
151141

152-
if accountSettings.Features != nil {
153-
err = d.Set("features", dataSourceAccountSettingsFlattenFeatures(accountSettings.Features))
154-
if err != nil {
155-
return diag.FromErr(fmt.Errorf("[ERROR] Error setting features %s", err))
142+
if !core.IsNil(accountSettings.Rev) {
143+
if err = d.Set("rev", accountSettings.Rev); err != nil {
144+
return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting rev: %s", err), "(Data) ibm_cloud_shell_account_settings", "read", "set-rev").GetDiag()
156145
}
157146
}
158147

159-
if accountSettings.Regions != nil {
160-
err = d.Set("regions", dataSourceAccountSettingsFlattenRegions(accountSettings.Regions))
161-
if err != nil {
162-
return diag.FromErr(fmt.Errorf("[ERROR] Error setting regions %s", err))
148+
if !core.IsNil(accountSettings.CreatedAt) {
149+
if err = d.Set("created_at", flex.IntValue(accountSettings.CreatedAt)); err != nil {
150+
return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting created_at: %s", err), "(Data) ibm_cloud_shell_account_settings", "read", "set-created_at").GetDiag()
163151
}
164152
}
165-
if err = d.Set("type", accountSettings.Type); err != nil {
166-
return diag.FromErr(fmt.Errorf("[ERROR] Error setting type: %s", err))
153+
154+
if !core.IsNil(accountSettings.CreatedBy) {
155+
if err = d.Set("created_by", accountSettings.CreatedBy); err != nil {
156+
return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting created_by: %s", err), "(Data) ibm_cloud_shell_account_settings", "read", "set-created_by").GetDiag()
157+
}
167158
}
168-
if err = d.Set("updated_at", flex.IntValue(accountSettings.UpdatedAt)); err != nil {
169-
return diag.FromErr(fmt.Errorf("[ERROR] Error setting updated_at: %s", err))
159+
160+
if !core.IsNil(accountSettings.DefaultEnableNewFeatures) {
161+
if err = d.Set("default_enable_new_features", accountSettings.DefaultEnableNewFeatures); err != nil {
162+
return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting default_enable_new_features: %s", err), "(Data) ibm_cloud_shell_account_settings", "read", "set-default_enable_new_features").GetDiag()
163+
}
170164
}
171-
if err = d.Set("updated_by", accountSettings.UpdatedBy); err != nil {
172-
return diag.FromErr(fmt.Errorf("[ERROR] Error setting updated_by: %s", err))
165+
166+
if !core.IsNil(accountSettings.DefaultEnableNewRegions) {
167+
if err = d.Set("default_enable_new_regions", accountSettings.DefaultEnableNewRegions); err != nil {
168+
return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting default_enable_new_regions: %s", err), "(Data) ibm_cloud_shell_account_settings", "read", "set-default_enable_new_regions").GetDiag()
169+
}
173170
}
174171

175-
return nil
176-
}
172+
if !core.IsNil(accountSettings.Enabled) {
173+
if err = d.Set("enabled", accountSettings.Enabled); err != nil {
174+
return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting enabled: %s", err), "(Data) ibm_cloud_shell_account_settings", "read", "set-enabled").GetDiag()
175+
}
176+
}
177177

178-
func dataSourceAccountSettingsFlattenFeatures(result []ibmcloudshellv1.Feature) (features []map[string]interface{}) {
179-
for _, featuresItem := range result {
180-
features = append(features, dataSourceAccountSettingsFeaturesToMap(featuresItem))
178+
if !core.IsNil(accountSettings.Features) {
179+
features := []map[string]interface{}{}
180+
for _, featuresItem := range accountSettings.Features {
181+
featuresItemMap, err := DataSourceIBMCloudShellAccountSettingsFeatureToMap(&featuresItem) // #nosec G601
182+
if err != nil {
183+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_cloud_shell_account_settings", "read", "features-to-map").GetDiag()
184+
}
185+
features = append(features, featuresItemMap)
186+
}
187+
if err = d.Set("features", features); err != nil {
188+
return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting features: %s", err), "(Data) ibm_cloud_shell_account_settings", "read", "set-features").GetDiag()
189+
}
181190
}
182191

183-
return features
184-
}
192+
if !core.IsNil(accountSettings.Regions) {
193+
regions := []map[string]interface{}{}
194+
for _, regionsItem := range accountSettings.Regions {
195+
regionsItemMap, err := DataSourceIBMCloudShellAccountSettingsRegionSettingToMap(&regionsItem) // #nosec G601
196+
if err != nil {
197+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_cloud_shell_account_settings", "read", "regions-to-map").GetDiag()
198+
}
199+
regions = append(regions, regionsItemMap)
200+
}
201+
if err = d.Set("regions", regions); err != nil {
202+
return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting regions: %s", err), "(Data) ibm_cloud_shell_account_settings", "read", "set-regions").GetDiag()
203+
}
204+
}
185205

186-
func dataSourceAccountSettingsFeaturesToMap(featuresItem ibmcloudshellv1.Feature) (featuresMap map[string]interface{}) {
187-
featuresMap = map[string]interface{}{}
206+
if !core.IsNil(accountSettings.Type) {
207+
if err = d.Set("type", accountSettings.Type); err != nil {
208+
return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting type: %s", err), "(Data) ibm_cloud_shell_account_settings", "read", "set-type").GetDiag()
209+
}
210+
}
188211

189-
if featuresItem.Enabled != nil {
190-
featuresMap["enabled"] = featuresItem.Enabled
212+
if !core.IsNil(accountSettings.UpdatedAt) {
213+
if err = d.Set("updated_at", flex.IntValue(accountSettings.UpdatedAt)); err != nil {
214+
return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting updated_at: %s", err), "(Data) ibm_cloud_shell_account_settings", "read", "set-updated_at").GetDiag()
215+
}
191216
}
192-
if featuresItem.Key != nil {
193-
featuresMap["key"] = featuresItem.Key
217+
218+
if !core.IsNil(accountSettings.UpdatedBy) {
219+
if err = d.Set("updated_by", accountSettings.UpdatedBy); err != nil {
220+
return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting updated_by: %s", err), "(Data) ibm_cloud_shell_account_settings", "read", "set-updated_by").GetDiag()
221+
}
194222
}
195223

196-
return featuresMap
224+
return nil
197225
}
198226

199-
func dataSourceAccountSettingsFlattenRegions(result []ibmcloudshellv1.RegionSetting) (regions []map[string]interface{}) {
200-
for _, regionsItem := range result {
201-
regions = append(regions, dataSourceAccountSettingsRegionsToMap(regionsItem))
227+
func DataSourceIBMCloudShellAccountSettingsFeatureToMap(model *ibmcloudshellv1.Feature) (map[string]interface{}, error) {
228+
modelMap := make(map[string]interface{})
229+
if model.Enabled != nil {
230+
modelMap["enabled"] = *model.Enabled
202231
}
203-
204-
return regions
232+
if model.Key != nil {
233+
modelMap["key"] = *model.Key
234+
}
235+
return modelMap, nil
205236
}
206237

207-
func dataSourceAccountSettingsRegionsToMap(regionsItem ibmcloudshellv1.RegionSetting) (regionsMap map[string]interface{}) {
208-
regionsMap = map[string]interface{}{}
209-
210-
if regionsItem.Enabled != nil {
211-
regionsMap["enabled"] = regionsItem.Enabled
238+
func DataSourceIBMCloudShellAccountSettingsRegionSettingToMap(model *ibmcloudshellv1.RegionSetting) (map[string]interface{}, error) {
239+
modelMap := make(map[string]interface{})
240+
if model.Enabled != nil {
241+
modelMap["enabled"] = *model.Enabled
212242
}
213-
if regionsItem.Key != nil {
214-
regionsMap["key"] = regionsItem.Key
243+
if model.Key != nil {
244+
modelMap["key"] = *model.Key
215245
}
216-
217-
return regionsMap
246+
return modelMap, nil
218247
}

0 commit comments

Comments
 (0)