Skip to content

feat: Enhance API requests with additional parameters for cloud integration#3

Merged
ditahkk merged 2 commits into
mainfrom
issues/207-stack-console-03
Apr 9, 2026
Merged

feat: Enhance API requests with additional parameters for cloud integration#3
ditahkk merged 2 commits into
mainfrom
issues/207-stack-console-03

Conversation

@ditahkk
Copy link
Copy Markdown
Contributor

@ditahkk ditahkk commented Apr 9, 2026

  • Added CloudProvider, Region, and Project fields to various request structs including CreateRequest for autoscale, DNS, network, virtual router, VPC, and customer gateway.
  • Updated command-line interface (CLI) commands to require new parameters for creating resources, ensuring proper cloud context is provided.
  • Modified tests to accommodate changes in request structures and validate new parameters.
  • Adjusted volume size type from string to interface{} to allow for more flexible size representation.
  • Refactored ACL creation commands to support creating ACL lists instead of individual rules, streamlining network security management.

Summary by CodeRabbit

  • New Features

    • Roadmap published; updated docs and examples for tiered VPCs and scoped creates.
    • Added required --cloud-provider, --region, --project flags to network, VPC, virtual-router, DNS, autoscale, and VPN create commands.
  • Bug Fixes

    • Corrected VPC creation semantics and payload handling.
    • Fixed ACL creation behavior to create ACL lists.
    • Fixed volume size display/handling from API numeric responses.
  • Changed

    • vpc create flags replaced with --plan, --network-address, --size, --billing-cycle, --storage-category.
    • acl create now accepts --name and --description.

…ration

- Added `CloudProvider`, `Region`, and `Project` fields to various request structs including CreateRequest for autoscale, DNS, network, virtual router, VPC, and customer gateway.
- Updated command-line interface (CLI) commands to require new parameters for creating resources, ensuring proper cloud context is provided.
- Modified tests to accommodate changes in request structures and validate new parameters.
- Adjusted volume size type from string to interface{} to allow for more flexible size representation.
- Refactored ACL creation commands to support creating ACL lists instead of individual rules, streamlining network security management.
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 9, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: d651b197-e298-414f-af58-f293f0aed26a

📥 Commits

Reviewing files that changed from the base of the PR and between 4e13437 and ddf2c6d.

📒 Files selected for processing (8)
  • CHANGELOG.md
  • RELEASE_NOTES.md
  • docs/roadmap.md
  • internal/api/virtualrouter/virtualrouter_test.go
  • internal/api/volume/volume.go
  • internal/api/vpc/vpc_test.go
  • internal/api/vpn/customergateway.go
  • internal/commands/volume.go
✅ Files skipped from review due to trivial changes (3)
  • internal/api/virtualrouter/virtualrouter_test.go
  • docs/roadmap.md
  • CHANGELOG.md
🚧 Files skipped from review as they are similar to previous changes (3)
  • internal/api/vpc/vpc_test.go
  • RELEASE_NOTES.md
  • internal/api/volume/volume.go

📝 Walkthrough

Walkthrough

This PR releases v0.0.8: it adds infrastructure scoping flags (--cloud-provider, --region, --project) across create commands, changes ACL creation from rule-level to ACL-list-level, updates VPC/virtual-router/network/ vpn/dns/autoscale request schemas and CLI flags, and fixes volume size JSON typing and VPN user create signature.

Changes

Cohort / File(s) Summary
Documentation & Release
CHANGELOG.md, README.md, RELEASE_NOTES.md, docs/command-taxonomy.md, docs/roadmap.md
Add v0.0.8 entries and roadmap; update README/usage examples to include --cloud-provider, --region, --project and new VPC tier/subnet flows; replace acl-create-rule docs with acl-create.
ACL API & Tests & CLI
internal/api/acl/acl.go, internal/api/acl/acl_test.go, internal/commands/acl.go
Replace ACL rule model with ACL list: add ACLListCreateRequest / ACLCreateRequest (Name, Description, VPC), change service from CreateRule(...) (*ACLRule, error)Create(...) error, update tests and CLI to accept --name/--description and print a single success message.
VPC API, Tests & CLI
internal/api/vpc/vpc.go, internal/api/vpc/vpc_test.go, internal/commands/vpc.go
Redefine VPC CreateRequest: remove zone/offering/network-domain/LB fields; add required cloud_provider, region, project, type, billing_cycle, size, plan, storage_category (optional coupon); update tests and CLI flags/validation to match new payload and to set type: "Vpc".
Virtual Router API & CLI
internal/api/virtualrouter/virtualrouter.go, internal/api/virtualrouter/virtualrouter_test.go, internal/commands/virtualrouter.go
Change virtual router payload: namevr_name, plan_slugplan, remove zone_slug; add required cloud_provider, region, project; update tests and CLI to collect/validate new flags and remove --zone.
Network / Autoscale / DNS
internal/api/network/network.go, internal/commands/network.go, internal/api/autoscale/autoscale.go, internal/commands/autoscale.go, internal/api/dns/dns.go, internal/commands/dns.go
Add cloud_provider, region, project fields to CreateRequest structs and require corresponding CLI flags; extend RunE validation to enforce non-empty flags and pass them into API requests.
VPN API, Tests & CLI
internal/api/vpn/customergateway.go, internal/api/vpn/user.go, internal/api/vpn/vpn_test.go, internal/commands/vpn.go
Add cloud_provider, region, project to customer-gateway and VPN user requests. Change UserService.Create signature from (username, password string)(req UserCreateRequest) and adapt tests and CLI to build/pass the struct; CLI adds and validates the new flags.
Volume API & CLI formatting
internal/api/volume/volume.go, internal/commands/volume.go
Change Offering.Size and Volume.Size types from stringjson.Number to match numeric API responses; add formatSize(json.Number) helper and update table rendering to format sizes safely.
Misc CLI adjustments
internal/commands/*.go (acl, vpc, network, virtualrouter, vpn, autoscale, dns, volume)
Multiple CLI commands updated: new required flags, example texts, validations, and request mappings to align with updated API request structs.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

Poem

A rabbit hops through fields of code,
Flags in paw and tiny node,
Providers, regions, projects bloom,
ACLs are lists now—out goes the rule room! 🐰🌿

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 14.81% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title accurately describes the main focus of the changeset: adding cloud integration parameters (CloudProvider, Region, Project) across multiple API request structs and CLI commands.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch issues/207-stack-console-03

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 10

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
docs/command-taxonomy.md (1)

108-126: ⚠️ Potential issue | 🟡 Minor

Update the top-level ACL taxonomy entry too.

Line 116 renames the VPC-side command to acl-create, but the top-level acl section in this same document still advertises create-rule. That leaves the taxonomy inconsistent with internal/commands/acl.go, which now exposes acl create.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/command-taxonomy.md` around lines 108 - 126, The docs are inconsistent:
the VPC section uses the new command name `acl-create` while the top-level ACL
taxonomy still lists `create-rule`; update the top-level ACL entry to match the
actual command exposed by internal/commands/acl.go by renaming `create-rule` to
`create` (or otherwise match `acl create`), ensuring the `acl` section's action
names (`list`, `create`, `replace`) align with the implemented CLI commands.
internal/api/vpn/vpn_test.go (1)

214-249: ⚠️ Potential issue | 🟡 Minor

Assert the new cloud-scoping fields in TestVPNUserCreate.

Now that Create takes vpn.UserCreateRequest, this test should include and verify cloud_provider, region, and project too. Right now a marshalling regression on any of those new required fields would still pass.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/api/vpn/vpn_test.go` around lines 214 - 249, TestVPNUserCreate
currently posts a vpn.UserCreateRequest but doesn't assert the new cloud-scoping
fields; update the test to send explicit cloud_provider, region, and project
values in the vpn.UserCreateRequest passed to svc.Create and add assertions
against gotBody["cloud_provider"], gotBody["region"], and gotBody["project"] to
verify they were marshalled correctly. Locate the test function
TestVPNUserCreate and the Create call on svc (vpn.UserCreateRequest) and add the
new fields to the request payload and corresponding assertions after the
existing username/password checks to fail if any of those required fields are
omitted or mis-marshalled.
internal/commands/acl.go (1)

90-105: ⚠️ Potential issue | 🟡 Minor

Send the success message through the printer, not stderr.

acl create now writes its success path to cmd.ErrOrStderr(). That makes a normal success look like diagnostic output and bypasses the same printer/output path used by the other commands here.

Suggested fix
 func runACLCreate(cmd *cobra.Command, vpcSlug string, req acl.ACLCreateRequest) error {
-	_, client, _, err := buildClientAndPrinter(cmd)
+	_, client, printer, err := buildClientAndPrinter(cmd)
 	if err != nil {
 		return err
 	}
@@
 	if err := svc.Create(ctx, vpcSlug, req); err != nil {
 		return fmt.Errorf("acl create: %w", err)
 	}
 
-	fmt.Fprintf(cmd.ErrOrStderr(), "ACL %q created in VPC %q.\n", req.Name, vpcSlug)
+	printer.Fprintf("ACL %q created in VPC %q.\n", req.Name, vpcSlug)
 	return nil
 }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/commands/acl.go` around lines 90 - 105, The success message in
runACLCreate is written to cmd.ErrOrStderr(), bypassing the shared printer;
change the buildClientAndPrinter call to capture the printer (instead of
discarding the third return), then send the success output through that printer
(use the printer's appropriate print/printf method) rather than
cmd.ErrOrStderr(), keeping the rest of the function and error handling
(svc.Create, req.Name, vpcSlug) unchanged.
🧹 Nitpick comments (3)
internal/api/vpc/vpc.go (1)

54-59: Intentional duplication with acl package noted.

ACLListCreateRequest and CreateACL mirror acl.ACLCreateRequest and acl.Create. This provides both VPC-scoped (vpc.CreateACL) and standalone (acl.Create) entry points. If this is intentional for API ergonomics, consider adding a code comment to prevent future accidental divergence.

Also applies to: 195-202

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/api/vpc/vpc.go` around lines 54 - 59, ACLListCreateRequest and the
CreateACL method intentionally duplicate acl.ACLCreateRequest and acl.Create to
offer both VPC-scoped and standalone entrypoints; add a short code comment above
the type and above the CreateACL function stating this is deliberate (reference
acl.ACLCreateRequest and acl.Create) and that any changes must be kept in sync
to avoid accidental divergence, and optionally point to the canonical source
(acl package) as the one to update first.
internal/commands/vpc.go (1)

395-416: Function name doesn't match command name.

newVPCACLCreateRuleCmd creates a command with Use: "acl-create", not acl-create-rule. Consider renaming the function to newVPCACLCreateCmd for clarity.

♻️ Suggested rename
-func newVPCACLCreateRuleCmd() *cobra.Command {
+func newVPCACLCreateCmd() *cobra.Command {

Also update line 28:

-	cmd.AddCommand(newVPCACLCreateRuleCmd())
+	cmd.AddCommand(newVPCACLCreateCmd())
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/commands/vpc.go` around lines 395 - 416, The factory function name
newVPCACLCreateRuleCmd does not match the command Use value "acl-create"; rename
the function to newVPCACLCreateCmd (and update any callers) to restore
consistency and clarity. Locate the function definition newVPCACLCreateRuleCmd
and change its identifier to newVPCACLCreateCmd, then update any
references/imports/usages that invoke newVPCACLCreateRuleCmd to use
newVPCACLCreateCmd so the symbol matches the command it constructs.
internal/api/acl/acl.go (1)

87-94: Confirmed: Duplicate ACL creation types and methods.

acl.ACLCreateRequest and vpc.ACLListCreateRequest are structurally identical (both with Name, Description, VPC fields), and both acl.Create() and vpc.CreateACL() have identical implementations that POST to /vpcs/{vpcSlug}/network-acl-list with the same error handling. Consolidate to a single type and method to avoid future divergence during maintenance.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/api/acl/acl.go` around lines 87 - 94, Duplicate ACL creation types
and methods exist: acl.ACLCreateRequest and vpc.ACLListCreateRequest are
identical and acl.Create() and vpc.CreateACL() duplicate the same POST logic;
consolidate by choosing one canonical type (e.g., acl.ACLCreateRequest) and one
canonical method (e.g., acl.Create) to handle POSTing to
"/vpcs/{vpcSlug}/network-acl-list", replace all usages of the duplicate
type/method (vpc.ACLListCreateRequest and vpc.CreateACL) to reference the
canonical ones, remove the redundant type and method declarations, and
run/update any imports and tests to reflect the refactor so there are no
remaining references to the removed symbols.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@CHANGELOG.md`:
- Around line 24-28: Update the CHANGELOG entry to use the correct CLI command
name used in code: replace the incorrect "zcp vpc acl-create-rule" with "zcp vpc
acl-create" (the actual command implemented in internal/commands/vpc.go as
acl-create) so the changelog matches the command defined in
internal/commands/vpc.go; ensure any other references in CHANGELOG.md or
RELEASE_NOTES.md use the same "acl-create" spelling.

In `@docs/roadmap.md`:
- Around line 19-28: Update the "## Coming in v0.0.8" heading and list items to
remove ambiguity: either change the heading to indicate these are pending items
for a future patch (e.g., "Planned for v0.0.8.x") or mark completed checklist
entries as done if this PR implements them; specifically update the header "##
Coming in v0.0.8" and the checklist lines for `network create` (both flag
additions and `--acl` resolution), `portforward create`, `instance
change-hostname`, `region` command `use` subcommand, and the defaulting of
`--cloud-provider`, `--region`, `--project` so the roadmap matches
CHANGELOG/RELEASE_NOTES.

In `@internal/api/acl/acl_test.go`:
- Around line 51-68: The test TestACLCreate's server handler must also decode
and assert the POST body to ensure the ACL payload is correct: inside the
httptest.NewServer handler (the anonymous function used by httptest.NewServer
that currently checks r.Method and r.URL.Path), read and json-decode the request
body into acl.ACLCreateRequest (or a local struct) and assert that Name ==
"web-acl" and VPC == "my-vpc" before writing the success response; this ensures
the call from svc := acl.NewService(newClient(srv.URL)) and err :=
svc.Create(context.Background(), "my-vpc", acl.ACLCreateRequest{...}) is
actually sending the expected JSON.

In `@internal/api/virtualrouter/virtualrouter_test.go`:
- Around line 108-109: The test's assertion message references the wrong payload
key: update the t.Errorf call that reports the mismatch for gotBody["vr_name"]
so its message references "body[vr_name]" (or "vr_name") instead of
"body[name]"; locate the failing assertion in virtualrouter_test.go where
gotBody["vr_name"] is checked and change the formatted message passed to
t.Errorf to match the checked key.

In `@internal/api/volume/volume.go`:
- Line 48: Change the Size fields from interface{} to json.Number to preserve
numeric precision: add "encoding/json" to imports and update Offering.Size and
Volume.Size to use json.Number instead of interface{} (the existing
fmt.Sprintf("%v", v.Size) usage will continue to work). Locate the Offering and
Volume structs in internal/api/volume/volume.go and replace the type for the
Size fields, ensuring the package imports include encoding/json.

In `@internal/api/vpc/vpc_test.go`:
- Around line 138-148: TestVPCCreate builds a richer vpc.CreateRequest but only
asserts cloud_provider, cidr, and size; update the test (TestVPCCreate) to
assert that the request/created VPC also contains Region, Project, Type,
BillingCycle, Plan, and StorageCategory (i.e., assert Region == "noida", Project
== "default-124", Type == "Vpc", BillingCycle == "hourly", Plan == "vpc-1",
StorageCategory == "nvme"), and repeat the same additional assertions for the
second assertion block referenced (lines ~161-169) so all newly added create
fields are covered.

In `@internal/api/vpn/customergateway.go`:
- Around line 46-48: The CustomerGatewayRequest struct's CloudProvider, Region,
and Project fields currently serialize empty strings during updates; update
their JSON tags in CustomerGatewayRequest to include ",omitempty" (e.g., change
`json:"cloud_provider"` to `json:"cloud_provider,omitempty"`) so these fields
are omitted when empty and won't be sent in update requests like
newVPNCGUpdateCmd.

In `@internal/commands/volume.go`:
- Line 59: Replace the ad-hoc fmt.Sprintf("%v", v.Size) usages with a single
helper formatSize(size interface{}) string that normalizes nil to "-" and
coerces numeric JSON types (float64, int, json.Number, string) into a consistent
numeric string (e.g., no trailing .0 for whole numbers, fixed formatting for
floats) so table columns render stably; add formatSize in the same package and
call it wherever v.Size is used in volume output (the existing spots using
fmt.Sprintf("%v", v.Size) such as the volume table builders referenced by
v.Size) to centralize formatting and avoid "<nil>" or inconsistent
representations.

In `@RELEASE_NOTES.md`:
- Around line 24-31: The release notes show the wrong CLI command name; update
the example to match the actual command defined in internal/commands/vpc.go (the
command whose Use field is "acl-create") by replacing any occurrences of
"acl-create-rule" with "acl-create" in the RELEASE_NOTES.md example so the
documented invocation matches the implemented command (and leave the second
example `zcp acl create` unchanged).
- Around line 9-20: The example in RELEASE_NOTES.md uses the wrong flag name —
replace the `--cidr 10.1.0.1` entry with `--network-address 10.1.0.1` so the
docs match the CLI flag defined in internal/commands/vpc.go (the flag registered
as `--network-address`); update that line in the RELEASE_NOTES.md snippet to use
`--network-address` and keep the rest of the example unchanged.

---

Outside diff comments:
In `@docs/command-taxonomy.md`:
- Around line 108-126: The docs are inconsistent: the VPC section uses the new
command name `acl-create` while the top-level ACL taxonomy still lists
`create-rule`; update the top-level ACL entry to match the actual command
exposed by internal/commands/acl.go by renaming `create-rule` to `create` (or
otherwise match `acl create`), ensuring the `acl` section's action names
(`list`, `create`, `replace`) align with the implemented CLI commands.

In `@internal/api/vpn/vpn_test.go`:
- Around line 214-249: TestVPNUserCreate currently posts a vpn.UserCreateRequest
but doesn't assert the new cloud-scoping fields; update the test to send
explicit cloud_provider, region, and project values in the vpn.UserCreateRequest
passed to svc.Create and add assertions against gotBody["cloud_provider"],
gotBody["region"], and gotBody["project"] to verify they were marshalled
correctly. Locate the test function TestVPNUserCreate and the Create call on svc
(vpn.UserCreateRequest) and add the new fields to the request payload and
corresponding assertions after the existing username/password checks to fail if
any of those required fields are omitted or mis-marshalled.

In `@internal/commands/acl.go`:
- Around line 90-105: The success message in runACLCreate is written to
cmd.ErrOrStderr(), bypassing the shared printer; change the
buildClientAndPrinter call to capture the printer (instead of discarding the
third return), then send the success output through that printer (use the
printer's appropriate print/printf method) rather than cmd.ErrOrStderr(),
keeping the rest of the function and error handling (svc.Create, req.Name,
vpcSlug) unchanged.

---

Nitpick comments:
In `@internal/api/acl/acl.go`:
- Around line 87-94: Duplicate ACL creation types and methods exist:
acl.ACLCreateRequest and vpc.ACLListCreateRequest are identical and acl.Create()
and vpc.CreateACL() duplicate the same POST logic; consolidate by choosing one
canonical type (e.g., acl.ACLCreateRequest) and one canonical method (e.g.,
acl.Create) to handle POSTing to "/vpcs/{vpcSlug}/network-acl-list", replace all
usages of the duplicate type/method (vpc.ACLListCreateRequest and vpc.CreateACL)
to reference the canonical ones, remove the redundant type and method
declarations, and run/update any imports and tests to reflect the refactor so
there are no remaining references to the removed symbols.

In `@internal/api/vpc/vpc.go`:
- Around line 54-59: ACLListCreateRequest and the CreateACL method intentionally
duplicate acl.ACLCreateRequest and acl.Create to offer both VPC-scoped and
standalone entrypoints; add a short code comment above the type and above the
CreateACL function stating this is deliberate (reference acl.ACLCreateRequest
and acl.Create) and that any changes must be kept in sync to avoid accidental
divergence, and optionally point to the canonical source (acl package) as the
one to update first.

In `@internal/commands/vpc.go`:
- Around line 395-416: The factory function name newVPCACLCreateRuleCmd does not
match the command Use value "acl-create"; rename the function to
newVPCACLCreateCmd (and update any callers) to restore consistency and clarity.
Locate the function definition newVPCACLCreateRuleCmd and change its identifier
to newVPCACLCreateCmd, then update any references/imports/usages that invoke
newVPCACLCreateRuleCmd to use newVPCACLCreateCmd so the symbol matches the
command it constructs.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: ef2553d0-22ca-4cc1-aa72-493d6e3b9630

📥 Commits

Reviewing files that changed from the base of the PR and between e8f04c6 and 4e13437.

📒 Files selected for processing (26)
  • CHANGELOG.md
  • README.md
  • RELEASE_NOTES.md
  • docs/command-taxonomy.md
  • docs/roadmap.md
  • internal/api/acl/acl.go
  • internal/api/acl/acl_test.go
  • internal/api/autoscale/autoscale.go
  • internal/api/dns/dns.go
  • internal/api/network/network.go
  • internal/api/virtualrouter/virtualrouter.go
  • internal/api/virtualrouter/virtualrouter_test.go
  • internal/api/volume/volume.go
  • internal/api/vpc/vpc.go
  • internal/api/vpc/vpc_test.go
  • internal/api/vpn/customergateway.go
  • internal/api/vpn/user.go
  • internal/api/vpn/vpn_test.go
  • internal/commands/acl.go
  • internal/commands/autoscale.go
  • internal/commands/dns.go
  • internal/commands/network.go
  • internal/commands/virtualrouter.go
  • internal/commands/volume.go
  • internal/commands/vpc.go
  • internal/commands/vpn.go

Comment thread CHANGELOG.md
Comment thread docs/roadmap.md Outdated
Comment thread internal/api/acl/acl_test.go
Comment thread internal/api/virtualrouter/virtualrouter_test.go Outdated
Comment thread internal/api/volume/volume.go Outdated
Comment thread internal/api/vpc/vpc_test.go
Comment thread internal/api/vpn/customergateway.go Outdated
Comment thread internal/commands/volume.go Outdated
Comment thread RELEASE_NOTES.md
Comment thread RELEASE_NOTES.md
…nd VPC creation fixes

refactor: Improve volume size formatting in commands and update CustomerGatewayRequest fields
test: Enhance VPC and virtual router tests with additional assertions
@ditahkk ditahkk merged commit e365769 into main Apr 9, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant