@@ -44,55 +44,55 @@ type CurlResource struct {
4444
4545// CurlResourceModel describes the resource data model.
4646type CurlResourceModel struct {
47- Id types.String `tfsdk:"id"`
48- Name types.String `tfsdk:"name"`
49- Url types.String `tfsdk:"url"`
50- Method types.String `tfsdk:"method"`
51- RequestBody types.String `tfsdk:"request_body"`
52- Headers types.Map `tfsdk:"headers"`
53- Parameters types.Map `tfsdk:"parameters "`
54- RequestUrlString types.String `tfsdk:"request_url_string"`
55- CertFile types.String `tfsdk:"cert_file"`
56- KeyFile types.String `tfsdk:"key_file"`
57- CaCertFile types.String `tfsdk:"ca_cert_file"`
58- CaCertDirectory types.String `tfsdk:"ca_cert_directory"`
59- SkipTlsVerify types.Bool `tfsdk:"skip_tls_verify"`
60- RetryInterval types.Int64 `tfsdk:"retry_interval"`
61- MaxRetry types.Int64 `tfsdk:"max_retry"`
62- Timeout types.Int64 `tfsdk:"timeout"`
63- Response types.String `tfsdk:"response"`
64- ResponseCodes types.List `tfsdk:"response_codes"`
65- StatusCode types.String `tfsdk:"status_code"`
66- SkipDestroy types.Bool `tfsdk:"skip_destroy"`
67- DestroyUrl types.String `tfsdk:"destroy_url"`
68- DestroyMethod types.String `tfsdk:"destroy_method"`
69- DestroyRequestBody types.String `tfsdk:"destroy_request_body"`
70- DestroyHeaders types.Map `tfsdk:"destroy_headers"`
71- DestroyParameters types.Map `tfsdk:"destroy_parameters "`
72- DestroyRequestUrlString types.String `tfsdk:"destroy_request_url_string"`
73- DestroyCertFile types.String `tfsdk:"destroy_cert_file"`
74- DestroyKeyFile types.String `tfsdk:"destroy_key_file"`
75- DestroyCaCertFile types.String `tfsdk:"destroy_ca_cert_file"`
76- DestroyCaCertDirectory types.String `tfsdk:"destroy_ca_cert_directory"`
77- DestroySkipTlsVerify types.Bool `tfsdk:"destroy_skip_tls_verify"`
78- DestroyRetryInterval types.Int64 `tfsdk:"destroy_retry_interval"`
79- DestroyMaxRetry types.Int64 `tfsdk:"destroy_max_retry"`
80- DestroyTimeout types.Int64 `tfsdk:"destroy_timeout"`
81- DestroyResponseCodes types.List `tfsdk:"destroy_response_codes"`
82- SkipRead types.Bool `tfsdk:"skip_read"`
83- ReadUrl types.String `tfsdk:"read_url"`
84- ReadMethod types.String `tfsdk:"read_method"`
85- ReadHeaders types.Map `tfsdk:"read_headers"`
86- ReadParameters types.Map `tfsdk:"read_parameters "`
87- ReadRequestBody types.String `tfsdk:"read_request_body"`
88- ReadCertFile types.String `tfsdk:"read_cert_file"`
89- ReadKeyFile types.String `tfsdk:"read_key_file"`
90- ReadCaCertFile types.String `tfsdk:"read_ca_cert_file"`
91- ReadCaCertDirectory types.String `tfsdk:"read_ca_cert_directory"`
92- ReadSkipTlsVerify types.Bool `tfsdk:"read_skip_tls_verify"`
93- ReadResponseCodes types.List `tfsdk:"read_response_codes"`
94- DriftMarker types.String `tfsdk:"drift_marker"`
95- IgnoreResponseFields types.List `tfsdk:"ignore_response_fields"`
47+ Id types.String `tfsdk:"id"`
48+ Name types.String `tfsdk:"name"`
49+ Url types.String `tfsdk:"url"`
50+ Method types.String `tfsdk:"method"`
51+ RequestBody types.String `tfsdk:"request_body"`
52+ Headers types.Map `tfsdk:"headers"`
53+ RequestParameters types.Map `tfsdk:"request_parameters "`
54+ RequestUrlString types.String `tfsdk:"request_url_string"`
55+ CertFile types.String `tfsdk:"cert_file"`
56+ KeyFile types.String `tfsdk:"key_file"`
57+ CaCertFile types.String `tfsdk:"ca_cert_file"`
58+ CaCertDirectory types.String `tfsdk:"ca_cert_directory"`
59+ SkipTlsVerify types.Bool `tfsdk:"skip_tls_verify"`
60+ RetryInterval types.Int64 `tfsdk:"retry_interval"`
61+ MaxRetry types.Int64 `tfsdk:"max_retry"`
62+ Timeout types.Int64 `tfsdk:"timeout"`
63+ Response types.String `tfsdk:"response"`
64+ ResponseCodes types.List `tfsdk:"response_codes"`
65+ StatusCode types.String `tfsdk:"status_code"`
66+ SkipDestroy types.Bool `tfsdk:"skip_destroy"`
67+ DestroyUrl types.String `tfsdk:"destroy_url"`
68+ DestroyMethod types.String `tfsdk:"destroy_method"`
69+ DestroyRequestBody types.String `tfsdk:"destroy_request_body"`
70+ DestroyHeaders types.Map `tfsdk:"destroy_headers"`
71+ DestroyRequestParameters types.Map `tfsdk:"destroy_request_parameters "`
72+ DestroyRequestUrlString types.String `tfsdk:"destroy_request_url_string"`
73+ DestroyCertFile types.String `tfsdk:"destroy_cert_file"`
74+ DestroyKeyFile types.String `tfsdk:"destroy_key_file"`
75+ DestroyCaCertFile types.String `tfsdk:"destroy_ca_cert_file"`
76+ DestroyCaCertDirectory types.String `tfsdk:"destroy_ca_cert_directory"`
77+ DestroySkipTlsVerify types.Bool `tfsdk:"destroy_skip_tls_verify"`
78+ DestroyRetryInterval types.Int64 `tfsdk:"destroy_retry_interval"`
79+ DestroyMaxRetry types.Int64 `tfsdk:"destroy_max_retry"`
80+ DestroyTimeout types.Int64 `tfsdk:"destroy_timeout"`
81+ DestroyResponseCodes types.List `tfsdk:"destroy_response_codes"`
82+ SkipRead types.Bool `tfsdk:"skip_read"`
83+ ReadUrl types.String `tfsdk:"read_url"`
84+ ReadMethod types.String `tfsdk:"read_method"`
85+ ReadHeaders types.Map `tfsdk:"read_headers"`
86+ ReadRequestParameters types.Map `tfsdk:"read_request_parameters "`
87+ ReadRequestBody types.String `tfsdk:"read_request_body"`
88+ ReadCertFile types.String `tfsdk:"read_cert_file"`
89+ ReadKeyFile types.String `tfsdk:"read_key_file"`
90+ ReadCaCertFile types.String `tfsdk:"read_ca_cert_file"`
91+ ReadCaCertDirectory types.String `tfsdk:"read_ca_cert_directory"`
92+ ReadSkipTlsVerify types.Bool `tfsdk:"read_skip_tls_verify"`
93+ ReadResponseCodes types.List `tfsdk:"read_response_codes"`
94+ DriftMarker types.String `tfsdk:"drift_marker"`
95+ IgnoreResponseFields types.List `tfsdk:"ignore_response_fields"`
9696}
9797
9898func (r * CurlResource ) Metadata (ctx context.Context , req resource.MetadataRequest , resp * resource.MetadataResponse ) {
@@ -145,7 +145,7 @@ func (r *CurlResource) Schema(ctx context.Context, req resource.SchemaRequest, r
145145 mapplanmodifier .RequiresReplace (),
146146 },
147147 },
148- "parameters " : schema.MapAttribute {
148+ "request_parameters " : schema.MapAttribute {
149149 ElementType : types .StringType ,
150150 Optional : true ,
151151 MarkdownDescription : "Map of parameters to attach to the API call" ,
@@ -258,7 +258,7 @@ func (r *CurlResource) Schema(ctx context.Context, req resource.SchemaRequest, r
258258 mapplanmodifier .RequiresReplace (),
259259 },
260260 },
261- "destroy_parameters " : schema.MapAttribute {
261+ "destroy_request_parameters " : schema.MapAttribute {
262262 ElementType : types .StringType ,
263263 Optional : true ,
264264 MarkdownDescription : "Map of parameters to attach to the destroy API call" ,
@@ -353,7 +353,7 @@ func (r *CurlResource) Schema(ctx context.Context, req resource.SchemaRequest, r
353353 MarkdownDescription : "Optional request body to use for the read request." ,
354354 },
355355
356- "read_parameters " : schema.MapAttribute {
356+ "read_request_parameters " : schema.MapAttribute {
357357 Optional : true ,
358358 ElementType : types .StringType ,
359359 MarkdownDescription : "Optional request parameters to add to the URL" ,
@@ -521,9 +521,9 @@ func (r *CurlResource) Create(ctx context.Context, req resource.CreateRequest, r
521521 }
522522
523523 // Add query parameters
524- if ! data .Parameters .IsNull () && ! data .Parameters .IsUnknown () {
524+ if ! data .RequestParameters .IsNull () && ! data .RequestParameters .IsUnknown () {
525525 params := request .URL .Query ()
526- for k , v := range data .Parameters .Elements () {
526+ for k , v := range data .RequestParameters .Elements () {
527527 if strVal , ok := v .(types.String ); ok {
528528 params .Add (k , strVal .ValueString ())
529529 }
@@ -672,10 +672,10 @@ func (r *CurlResource) Read(ctx context.Context, req resource.ReadRequest, resp
672672 }
673673 }
674674
675- // ======= Add Query Parameters =======
676- if ! data .ReadParameters .IsNull () && ! data .ReadParameters .IsUnknown () {
675+ // ======= Add Query RequestParameters =======
676+ if ! data .ReadRequestParameters .IsNull () && ! data .ReadRequestParameters .IsUnknown () {
677677 params := request .URL .Query ()
678- for k , v := range data .ReadParameters .Elements () {
678+ for k , v := range data .ReadRequestParameters .Elements () {
679679 if strVal , ok := v .(types.String ); ok {
680680 params .Add (k , strVal .ValueString ())
681681 }
@@ -828,10 +828,10 @@ func (r *CurlResource) Delete(ctx context.Context, req resource.DeleteRequest, r
828828 }
829829 }
830830
831- // Add Query Parameters
832- if ! data .DestroyParameters .IsNull () && ! data .DestroyParameters .IsUnknown () {
831+ // Add Query RequestParameters
832+ if ! data .DestroyRequestParameters .IsNull () && ! data .DestroyRequestParameters .IsUnknown () {
833833 params := request .URL .Query ()
834- for k , v := range data .DestroyParameters .Elements () {
834+ for k , v := range data .DestroyRequestParameters .Elements () {
835835 if strVal , ok := v .(types.String ); ok {
836836 params .Add (k , strVal .ValueString ())
837837 }
@@ -942,126 +942,25 @@ func (r CurlResource) ConfigValidators(ctx context.Context) []resource.ConfigVal
942942 }
943943}
944944
945- //func (r *CurlResource) UpgradeState(ctx context.Context) map[int64]resource.StateUpgrader {
946- // return map[int64]resource.StateUpgrader{
947- // resourceSchemaV0: {
948- // StateUpgrader: func(ctx context.Context, req resource.UpgradeStateRequest, resp *resource.UpgradeStateResponse) {
949- // tflog.Debug(ctx, "Beginning state upgrade from v0 to v1")
950- //
951- // var oldState CurlResourceModel
952- // diags := req.State.Get(ctx, &oldState)
953- // resp.Diagnostics.Append(diags...)
954- // if resp.Diagnostics.HasError() {
955- // return
956- // }
957- //
958- // // Set skip_read to true and clear read-related fields
959- // oldState.SkipRead = types.BoolValue(true)
960- // oldState.ReadUrl = types.StringNull()
961- // oldState.ReadMethod = types.StringNull()
962- // oldState.ReadHeaders = types.MapNull(types.StringType)
963- // oldState.ReadParameters = types.MapNull(types.StringType)
964- // oldState.ReadRequestBody = types.StringNull()
965- // oldState.ReadCertFile = types.StringNull()
966- // oldState.ReadKeyFile = types.StringNull()
967- // oldState.ReadCaCertFile = types.StringNull()
968- // oldState.ReadCaCertDirectory = types.StringNull()
969- // oldState.ReadSkipTlsVerify = types.BoolNull()
970- // oldState.ReadResponseCodes = types.ListNull(types.StringType)
971- //
972- // // Set the upgraded state
973- // diags = resp.State.Set(ctx, oldState)
974- // resp.Diagnostics.Append(diags...)
975- // tflog.Debug(ctx, "Completed state upgrade from v0 to v1")
976- // },
977- // },
978- // }
979- //}
980-
981945func (r * CurlResource ) UpgradeState (ctx context.Context ) map [int64 ]resource.StateUpgrader {
982946 return map [int64 ]resource.StateUpgrader {
983947 0 : {
984948 StateUpgrader : func (ctx context.Context , req resource.UpgradeStateRequest , resp * resource.UpgradeStateResponse ) {
985- // Check if the state is nil
986- if req .State == nil {
987- resp .Diagnostics .AddError (
988- "Unable to Upgrade Resource State" ,
989- "State is nil, cannot perform upgrade." ,
990- )
991- return
992- }
993-
994- var oldState CurlResourceModel
995- diags := req .State .Get (ctx , & oldState )
949+ var state CurlResourceModel
950+ diags := req .State .Get (ctx , & state )
996951 if diags .HasError () {
997952 resp .Diagnostics .Append (diags ... )
998953 return
999954 }
1000955
1001- // Create new state with the same schema
1002- newState := CurlResourceModel {
1003- // Preserve required and important fields
1004- Id : oldState .Id ,
1005- Name : oldState .Name ,
1006- Url : oldState .Url ,
1007- Method : oldState .Method ,
1008-
1009- // Initialize maps with non-nil values or empty maps
1010- Headers : oldState .Headers ,
1011- Parameters : oldState .Parameters ,
1012- DestroyHeaders : oldState .DestroyHeaders ,
1013-
1014- // Initialize lists with non-nil values or empty lists
1015- ResponseCodes : oldState .ResponseCodes ,
1016- DestroyResponseCodes : oldState .DestroyResponseCodes ,
1017- IgnoreResponseFields : oldState .IgnoreResponseFields ,
1018-
1019- // Preserve or set to null other fields
1020- RequestBody : oldState .RequestBody ,
1021- CertFile : types .StringNull (),
1022- KeyFile : types .StringNull (),
1023- CaCertFile : types .StringNull (),
1024- CaCertDirectory : types .StringNull (),
1025- SkipTlsVerify : types .BoolNull (),
1026- Timeout : types .Int64Null (),
1027- MaxRetry : types .Int64Null (),
1028- RetryInterval : types .Int64Null (),
1029- StatusCode : types .StringNull (),
1030- Response : types .StringNull (),
1031- RequestUrlString : types .StringNull (),
1032- DriftMarker : types .StringNull (),
1033-
1034- // Clear read-related fields
1035- ReadUrl : types .StringNull (),
1036- ReadMethod : types .StringNull (),
1037- ReadHeaders : types .MapValueMust (types .StringType , map [string ]attr.Value {}),
1038- ReadParameters : types .MapValueMust (types .StringType , map [string ]attr.Value {}),
1039- ReadRequestBody : types .StringNull (),
1040- ReadResponseCodes : types .ListValueMust (types .StringType , []attr.Value {}),
1041- ReadCertFile : types .StringNull (),
1042- ReadKeyFile : types .StringNull (),
1043- ReadCaCertFile : types .StringNull (),
1044- ReadCaCertDirectory : types .StringNull (),
1045- ReadSkipTlsVerify : types .BoolNull (),
1046-
1047- // Initialize destroy-related fields
1048- DestroyUrl : oldState .DestroyUrl ,
1049- DestroyMethod : oldState .DestroyMethod ,
1050- DestroyParameters : oldState .DestroyParameters ,
1051- DestroyRequestBody : oldState .DestroyRequestBody ,
1052- DestroyTimeout : types .Int64Null (),
1053- DestroyMaxRetry : types .Int64Null (),
1054- DestroyRetryInterval : types .Int64Null (),
1055- DestroyRequestUrlString : types .StringNull (),
1056- DestroyCertFile : types .StringNull (),
1057- DestroyKeyFile : types .StringNull (),
1058- DestroyCaCertFile : types .StringNull (),
1059- DestroyCaCertDirectory : types .StringNull (),
1060- DestroySkipTlsVerify : types .BoolNull (),
1061- }
956+ // Clear read-related fields as part of the upgrade
957+ state .ReadUrl = types .StringNull ()
958+ state .ReadResponseCodes = types .ListValueMust (
959+ types .StringType ,
960+ []attr.Value {},
961+ )
1062962
1063- // Set the new state
1064- diags = resp .State .Set (ctx , & newState )
963+ diags = resp .State .Set (ctx , & state )
1065964 resp .Diagnostics .Append (diags ... )
1066965 },
1067966 },
0 commit comments