Skip to content

TPT-3388: Separated GET and POST/PUT options structs where needed#969

Merged
ezilber-akamai merged 11 commits into
linode:proj/linodego_v2from
ezilber-akamai:TPT-3388-separate-structs
May 19, 2026
Merged

TPT-3388: Separated GET and POST/PUT options structs where needed#969
ezilber-akamai merged 11 commits into
linode:proj/linodego_v2from
ezilber-akamai:TPT-3388-separate-structs

Conversation

@ezilber-akamai
Copy link
Copy Markdown
Contributor

@ezilber-akamai ezilber-akamai commented May 14, 2026

📝 Description

Created separate structs where they were previously being reused for both GET and POST/PUT endpoint methods.

Note: I was only able to find one instance of this across the repo but its possible I missed something.

✔️ How to Test

make test-unit
make test-int

@ezilber-akamai ezilber-akamai requested review from a team as code owners May 14, 2026 19:34
@ezilber-akamai ezilber-akamai added the breaking-change for breaking changes in the changelog. label May 14, 2026
@ezilber-akamai ezilber-akamai requested review from jbilskiAkam, mawilk90 and zliang-akamai and removed request for a team May 14, 2026 19:34
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR separates several request option types from response types for interface and firewall rule APIs in linodego.

Changes:

  • Adds create/update-specific option structs for Linode interfaces and instance config interface IPv4/default route fields.
  • Adds FirewallRuleSetUpdateOptions and updates firewall rules update callers/tests.
  • Updates unit and integration tests to use the new option types.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
interfaces.go Adds create/update-specific nested option structs for Linode interfaces.
instance_config_interfaces.go Adds create/update-specific VPC IPv4 option structs and conversion usage.
firewall_rules.go Adds firewall rules update options and changes update signature.
test/unit/interface_test.go Updates interface update tests to use new default route update options.
test/unit/instance_config_interfaces_test.go Updates instance config interface tests to use new IPv4 option types.
test/unit/firewall_rules_test.go Updates firewall rules update test to use the new update options type.
test/integration/nodebalancer_configs_test.go Updates VPC interface creation setup to use new IPv4 create options.
test/integration/instance_config_test.go Updates integration setup/update flows to use new IPv4 create/update options.
test/integration/firewall_rules_test.go Updates firewall rules integration update test to use new update options.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread interfaces.go
Comment thread instance_config_interfaces.go
Comment thread instance_config_interfaces.go
Comment thread firewall_rules.go Outdated
Comment thread firewall_rules.go
Version int `json:"version,omitzero"`
Fingerprint string `json:"fingerprint,omitzero"`
}

Comment thread interfaces.go
Comment thread test/integration/object_storage_keys_test.go
Comment thread test/integration/firewall_rules_test.go Outdated
Comment thread firewall_rules.go Outdated
Comment thread firewalls.go Outdated
Comment thread firewall_rulesets.go Outdated
Comment thread firewall_rulesets.go Outdated
Comment thread firewalls.go Outdated
@ezilber-akamai ezilber-akamai merged commit 3a3dded into linode:proj/linodego_v2 May 19, 2026
10 checks passed
zliang-akamai added a commit that referenced this pull request May 27, 2026
* TPT-4423: Drop resty as a dependency (#938)

* Ported resty removal changes to new branch from up-to-date main and made additional changes to monitor client

* Fixed lint

* Updated log formatting to more closely resemble Resty's

* Fixed lint

* redact request header log

* Fixes

* Fixed CoPilot suggestions

* Sanitize log output

* Addressed CoPilot comments

---------

Co-authored-by: Zhiwei Liang <zliang@akamai.com>

* TPT-4421: Remove deprecated fields and methods (#946)

* Removed deprecated fields and methods and updated tests

* Fix lint

* Addressed copilot suggestion

* Fixed lint

* Removed V2 suffix from various fields and methods

* Addressed CoPilot suggestions

* Added separate struct for Instance IP Address update options

* Address PR suggestions

* TPT-4414: Refactor JSON tags to use "omitzero" for optional fields across multiple files (#947)

* Refactor JSON struct tags to use "omitzero" for optional fields

* Remove url tags in pagination structs

* TPT-4414: Change slice pointer types with `omitzero` to be slice (#954)

* Refactor: Change pointer slices to slices for various fields with omitzero

* Refresh fixtures

* Update TestLKECluster_Update to remove pinned lke versions in test

* TPT-4434: Added custom type for Region Capabilities and updated tests (#953)

* Added custom type for Region Capabilities and updated tests

* Fix formatting

* Added disctinction between Object Storage Bucket Access POST/PUT endpoints (#951)

* TPT-3454: Refactor wait functions to use context for timeouts and polling (#964)

* Refactor wait functions to use context for timeouts and polling

* fix context cancelled in cleanup

* nolint generic return type

* Fix grammar

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Make preTask a private function; cleanup unnecessary previousEvents allocation

* Fix error msg format

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* TPT-4422: Added options structs for POST/PUT endpoints that were missing them (#968)

* Added options structs for POST/PUT endpoints that were missing them

* Address PR comments

* Address PR comments

* TPT-3483: Update NewClient method to return an error rather than just logging errors (#967)

* refactor: update NewClient and related functions to handle errors properly

* refactor: update SetRootCertificate to return errors and enhance logging

* update NewClient instantiation to handle errors

* Export PaginatedResponse type in request_helpers (#970)

* TPT-3388: Separated GET and POST/PUT options structs where needed (#969)

* Separated GET and POST/PUT options structs where needed

* Separated additional structs that were reused for options and response

* More struct fixes

* Fix lint

* Rename FirewallRule structs

* integration test fixes

* Addressed PR comments

* FirewallRuleSetRule options; test updates; fixture refreshed

* Address more PR comments

---------

Co-authored-by: Zhiwei Liang <zliang@akamai.com>

* TPT-4464: Update FirewallDeviceEntity Label field to be a pointer (#971)

* Update FirewallDeviceEntity Label field to be a pointer and adjust tests accordingly

* Fix unit tests

* fmt

* Fix another unit test

* Change `[]*T` to `[]T` in all structs (#972)

* Remove LKE cluster dashboard function, tests, and related fixture (#975)

* Simplify client.go (#976)

Signed-off-by: Zhiwei Liang <zhiwei.liang@zliang.me>

* Apply suggestion from @zliang-akamai

* Update region capability in TestImageSharing_Suite to use Linodes

---------

Signed-off-by: Zhiwei Liang <zhiwei.liang@zliang.me>
Co-authored-by: Erik Zilber <ezilber@akamai.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Zhiwei Liang <zhiwei.liang@zliang.me>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking-change for breaking changes in the changelog.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants