)]}'
{
  "log": [
    {
      "commit": "aea59bf71f16f953755a81ed8d359d11c61eecd2",
      "tree": "c504aa4e0705c7084536e87f935d2c5d5d6581a5",
      "parents": [
        "c2457ffd5316ea51643c622326514287221aa712"
      ],
      "author": {
        "name": "Ramgopal Nagaboina",
        "email": "ramgopal.nagaboina.dev@gmail.com",
        "time": "Fri Sep 04 08:28:38 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 04 17:58:38 2026 +0530"
      },
      "message": "fix: make network offering update work (set the id) and read back correctly (#339)\n\nresourceCloudStackNetworkOfferingUpdate was broken in two ways:\n\n1. Each UpdateNetworkOffering call built its params with\n   NewUpdateNetworkOfferingParams() but never set the offering id, so every\n   update (name, display_text, max_connections, domain_id) failed with\n   \"CloudStack API error 530 ... Cannot invoke java.lang.Long.longValue()\n   because id is null\". Set the id on each params struct.\n\n2. After updating, it returned resourceCloudStackInstanceRead, the instance\n   read function, which looks up a VM by the network offering id and corrupts\n   state. Return resourceCloudStackNetworkOfferingRead instead.\n\nAdds an acceptance test that creates a network offering and updates its\ndisplay_text; it fails before this change and passes after. Verified against\na CloudStack advanced zone.\n\nSigned-off-by: Ramgopal Nagaboina \u003cramgopal.nagaboina.dev@gmail.com\u003e"
    },
    {
      "commit": "c2457ffd5316ea51643c622326514287221aa712",
      "tree": "659c13f5c470180a754cc32a5f52acabbbbc57ba",
      "parents": [
        "f52481ef24aff852e090674941c485a28d1c15d6"
      ],
      "author": {
        "name": "bddvlpr",
        "email": "stijn.simons@portofantwerpbruges.com",
        "time": "Fri Sep 04 13:51:31 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 04 17:21:31 2026 +0530"
      },
      "message": "Add datasource for security groups (#328)"
    },
    {
      "commit": "f52481ef24aff852e090674941c485a28d1c15d6",
      "tree": "be089db659f34de0fa9c59499ed808a907fefb58",
      "parents": [
        "969683cf5d4a0dc52a8790aceb2fa91d32f6e54f"
      ],
      "author": {
        "name": "Manoj Kumar",
        "email": "manojkr.itbhu@gmail.com",
        "time": "Thu Sep 03 20:00:07 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 20:00:07 2026 +0530"
      },
      "message": "Fix test findings: storage IP range updates, service offering import, project display_text (#332)\n\n* Mark storage_network_ip_range netmask/start_ip/end_ip as ForceNew\n\n* Document ForceNew-field footgun after cloudstack_service_offering import\n\n* Add snake_case display_text field to cloudstack_project, deprecate displaytext\n\n* Fix cloudstack_project display_text/displaytext import and update bugs\n\n* Narrow storage_network_ip_range ForceNew docs to overlapping edits\n\n* Add ConflictsWith between cloudstack_project displaytext/display_text"
    },
    {
      "commit": "969683cf5d4a0dc52a8790aceb2fa91d32f6e54f",
      "tree": "ad8ef8422a1e616c91df2b50bb92ee4481c14187",
      "parents": [
        "3ded431e5cd0472b45337e6fb80402361e46b3a4"
      ],
      "author": {
        "name": "Manoj Kumar",
        "email": "manojkr.itbhu@gmail.com",
        "time": "Thu Sep 03 19:56:27 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 19:56:27 2026 +0530"
      },
      "message": "Fix cloudstack_ipaddress delete silently succeeding on source-NAT IPs (#331)\n\n* Fix cloudstack_ipaddress delete silently succeeding on source-NAT IPs\n\nresourceCloudStackIPAddressDelete skipped the disassociate call entirely\nwhen is_source_nat was true and returned nil, so Terraform reported the\nresource destroyed while CloudStack left the IP allocated. Always call\nDisassociateIpAddress and propagate whatever CloudStack returns instead\nof swallowing it, matching every other error path in this file.\n\nVerified against a live 4.23.0.0 lab: against an implemented network\nwith a running virtual router, CloudStack now correctly rejects the\ndestroy (error 530, IP still in use for source NAT) instead of Terraform\nfalsely reporting success; against a network that was never implemented,\nthe disassociate genuinely succeeds and is now reported accurately.\n\n* Treat source-NAT disassociate failure as a no-op on delete\n\nCloudStack rejects DisassociateIpAddress for a source NAT IP while its\nowning network/VPC still exists, so the now-unconditional disassociate\ncall added in the previous commit fails terraform destroy on any\nconfig that manages a source NAT IP as its own cloudstack_ipaddress\nresource (e.g. imported directly). Deleting the network/VPC releases\nthe IP as a side effect, so treat that specific CloudStack error as\nsuccess here instead of failing the destroy."
    },
    {
      "commit": "3ded431e5cd0472b45337e6fb80402361e46b3a4",
      "tree": "985efa7c85a8d632dd774e154b30bc96b3acb092",
      "parents": [
        "f07fbd6586dab02d819a6da9bc08d11a35e32f1b"
      ],
      "author": {
        "name": "Ramgopal Nagaboina",
        "email": "ramgopal.nagaboina.dev@gmail.com",
        "time": "Thu Sep 03 10:22:27 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 19:52:27 2026 +0530"
      },
      "message": "fix: AND multiple filters in the pod and cluster data sources (#338)\n\napplyPodFilters and applyClusterFilters returned true as soon as any single\nfilter matched, so a data source with two or more filter blocks selected a\nresource that matched only one of them (for example a pod matching the name\nfilter but not the allocation_state filter). Every other data source in the\nprovider (instance, volume, template, and others) requires all filters to\nmatch. Return false as soon as a filter does not match, and true only after\nall filters have matched. Adds unit tests for both.\n\nSigned-off-by: Ramgopal Nagaboina \u003cramgopal.nagaboina.dev@gmail.com\u003e"
    },
    {
      "commit": "f07fbd6586dab02d819a6da9bc08d11a35e32f1b",
      "tree": "7e7e197db72f189eb11ebd6b7350f1a326a59f1c",
      "parents": [
        "8252603a9b5c5148ac0092aeb960d80ae165c6f9"
      ],
      "author": {
        "name": "Vishesh",
        "email": "8760112+vishesh92@users.noreply.github.com",
        "time": "Wed Sep 02 10:26:09 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 02 10:26:09 2026 +0530"
      },
      "message": "Stop copilot reviews on drafts and push (#334)"
    },
    {
      "commit": "8252603a9b5c5148ac0092aeb960d80ae165c6f9",
      "tree": "e1f15dd844a0e99f0beacbfdf1d851618581552f",
      "parents": [
        "5c9f54df1946662ce4c6dcc83da645f1a76a3a86"
      ],
      "author": {
        "name": "Manoj Kumar",
        "email": "manojkr.itbhu@gmail.com",
        "time": "Wed Sep 02 10:24:43 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 02 10:24:43 2026 +0530"
      },
      "message": "Fix internet_protocol/routing_mode case mismatch causing perpetual replace on cloudstack_vpc_offering (#330)\n\nCloudStack\u0027s API normalizes these ForceNew fields\u0027 casing on write (e.g.\nipv4 -\u003e IPv4, static -\u003e Static), which produced a permanent diff and\nproposed a destroy/recreate on every subsequent plan. Add a\ncase-insensitive DiffSuppressFunc to both fields.\n\nnetwork_mode is unaffected: the API rejects incorrect casing outright\ninstead of silently normalizing it, so no fix is needed there."
    },
    {
      "commit": "5c9f54df1946662ce4c6dcc83da645f1a76a3a86",
      "tree": "b3ad7d2698a94a4d734867687e6d03ebb4c13fb8",
      "parents": [
        "7b2f74b8adbbb2b6f70183a7ee162d4c1b9f2f07"
      ],
      "author": {
        "name": "Manoj Kumar",
        "email": "manojkr.itbhu@gmail.com",
        "time": "Wed Sep 02 10:22:52 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 02 10:22:52 2026 +0530"
      },
      "message": "Fix private gateway ACL update using wrong SDK setter (#329)\n\nresourceCloudStackPrivateGatewayUpdate called SetNetworkid with the\nprivate gateway\u0027s own ID instead of SetGatewayid, so any acl_id update\nwas rejected by the API with \"entity does not exist\". Use\nSetGatewayid, matching ReplaceNetworkACLListParams\u0027 actual parameter\nfor updating a private gateway\u0027s ACL."
    },
    {
      "commit": "7b2f74b8adbbb2b6f70183a7ee162d4c1b9f2f07",
      "tree": "da637c00bd344ac1a92c96f2296f7172a8f1a96c",
      "parents": [
        "cd071af12c7bf9d2651c456683ee4d4a85a71882"
      ],
      "author": {
        "name": "bddvlpr",
        "email": "stijn.simons@portofantwerpbruges.com",
        "time": "Wed Sep 02 06:51:27 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 02 10:21:27 2026 +0530"
      },
      "message": "Add VR address parameter to network (#326)"
    },
    {
      "commit": "cd071af12c7bf9d2651c456683ee4d4a85a71882",
      "tree": "187becfe35567c0bc6f5aff08dea262bc898e227",
      "parents": [
        "ae84c54d1d7ed9b3a78b83ee7bc913cad8a1df3d"
      ],
      "author": {
        "name": "Pearl Dsilva",
        "email": "pearl1594@gmail.com",
        "time": "Wed Aug 19 00:52:25 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 19 10:22:25 2026 +0530"
      },
      "message": "Add support for internal LB (#317)\n\n* Add support for internal LB - keep only the networkid bugfix"
    },
    {
      "commit": "ae84c54d1d7ed9b3a78b83ee7bc913cad8a1df3d",
      "tree": "e3251ae92a0a2b2664111d4fc86dd402eb4887c9",
      "parents": [
        "0c98bcd51ef563a82eb6fbac4f6e8829cb2aaa5a"
      ],
      "author": {
        "name": "Pearl Dsilva",
        "email": "pearl1594@gmail.com",
        "time": "Tue Aug 18 08:03:24 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 18 17:33:24 2026 +0530"
      },
      "message": "Add terraform import support for several cloudstack resources (#305)"
    },
    {
      "commit": "0c98bcd51ef563a82eb6fbac4f6e8829cb2aaa5a",
      "tree": "ff154261cc803567baf0e58094e331c2e2f8ef52",
      "parents": [
        "2e5afa94de9fc8c740ec51f5346bdc23e5e7604f"
      ],
      "author": {
        "name": "Pearl Dsilva",
        "email": "pearl1594@gmail.com",
        "time": "Tue Aug 18 08:02:41 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 18 17:32:41 2026 +0530"
      },
      "message": "Add support for VPC offering resource (#306)"
    },
    {
      "commit": "2e5afa94de9fc8c740ec51f5346bdc23e5e7604f",
      "tree": "61681ff0b7ba9df6bd2d16abd9b4ba7776c63b70",
      "parents": [
        "b166fdf79fbb30e857a487cc00d31a64d0f7a7c6"
      ],
      "author": {
        "name": "Suresh Kumar Anaparti",
        "email": "suresh.anaparti@shapeblue.com",
        "time": "Mon Aug 17 22:16:24 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 22:16:24 2026 +0530"
      },
      "message": "Fix service_offering lookup by filtering with zone parameter (#325)\n\n* Fix service_offering lookup by filtering with zone parameter\n\nThe cloudstack_instance resource was not filtering service_offering lookups by zone,\nwhich could cause failures when multiple service offerings share the same name but\nare restricted to specific zones.\n\nThis change introduces a new retrieveServiceOfferingID function that filters\nservice offerings by both name and zone ID, similar to how templates are looked up.\n\nFixes: #260"
    },
    {
      "commit": "b166fdf79fbb30e857a487cc00d31a64d0f7a7c6",
      "tree": "746e247370e682d088c78a88cb37d98a481bc527",
      "parents": [
        "be007705c6307befc8ef51b6cd56c5dbdccc4fa7"
      ],
      "author": {
        "name": "Suresh Kumar Anaparti",
        "email": "suresh.anaparti@shapeblue.com",
        "time": "Mon Aug 17 22:14:12 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 22:14:12 2026 +0530"
      },
      "message": "Allow admin accounts to import projects by setting listall\u003dtrue in project lookup (#324)\n\nWhen an admin account that is not a member of a project tries to import it,\nthe project lookup fails because listall is not set. The CloudStack API\ndefaults to listall\u003dfalse which only returns projects the account owns or is\na member of, regardless of the caller\u0027s role.\n\nSetting listall\u003dtrue in the getProjectByID helper allows admins (Root Admin\nor Domain Admin) to see and import projects they have authority over, even\nif they are not members. This does not widen privileges as the management\nserver still enforces role and domain-subtree entitlements.\n\nFixes: #303"
    },
    {
      "commit": "be007705c6307befc8ef51b6cd56c5dbdccc4fa7",
      "tree": "a0db9563e898d0d4f68c0f5d8e52e1334887cc0b",
      "parents": [
        "f8e0ca89d5398eff60963a0c5e63cdadd07d1a14",
        "98bb7aa11ec90da4e4dbefd30c5df597d95a5087"
      ],
      "author": {
        "name": "Manoj Kumar",
        "email": "manojkr.itbhu@gmail.com",
        "time": "Mon Aug 17 21:54:25 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 21:54:25 2026 +0530"
      },
      "message": "Merge pull request #166 from Longsight/feature_vlan_bypass_check\n\nadd bypass_vlan_check to network and private_gateway"
    },
    {
      "commit": "f8e0ca89d5398eff60963a0c5e63cdadd07d1a14",
      "tree": "6c76a1c806059f618b00cf116994c01db7908470",
      "parents": [
        "edf76e19d9bd09f8a3515e5e60a9122101dae70e",
        "cbdabbb4e258af1694e38042e89fe24905e2a387"
      ],
      "author": {
        "name": "Manoj Kumar",
        "email": "manojkr.itbhu@gmail.com",
        "time": "Mon Aug 17 17:26:16 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 17:26:16 2026 +0530"
      },
      "message": "Merge pull request #268 from Curverneur/feature/add-resource-protection-support\n\nadd support for enabling delete protection"
    },
    {
      "commit": "98bb7aa11ec90da4e4dbefd30c5df597d95a5087",
      "tree": "d504af91e9ef306a94afe559bc69920ed4911526",
      "parents": [
        "416353d38873c752502afda47b00ec3a954cad06"
      ],
      "author": {
        "name": "Manoj Kumar",
        "email": "manojkr.itbhu@gmail.com",
        "time": "Mon Aug 17 17:12:49 2026 +0530"
      },
      "committer": {
        "name": "Manoj Kumar",
        "email": "manojkr.itbhu@gmail.com",
        "time": "Mon Aug 17 17:12:49 2026 +0530"
      },
      "message": "Rename network\u0027s bypass_vlan_check to bypass_vlan_overlap_check\n\nIssue #160 asked for the actual CloudStack API attribute\n(bypassvlanoverlapcheck), and the private gateway resource already\nexposes it under that name. The network resource introduced a\ndifferently-named field for the same underlying parameter; align the\nname and only send it to the API when explicitly set, matching the\nprivate gateway resource\u0027s pattern.\n"
    },
    {
      "commit": "416353d38873c752502afda47b00ec3a954cad06",
      "tree": "fc05784b2ebedf429d3f0e903e06d17496455cb8",
      "parents": [
        "1e0099b0bbbebe71e4d5888d647e91e4bcacb4fb"
      ],
      "author": {
        "name": "Manoj Kumar",
        "email": "manojkr.itbhu@gmail.com",
        "time": "Mon Aug 17 17:01:30 2026 +0530"
      },
      "committer": {
        "name": "Manoj Kumar",
        "email": "manojkr.itbhu@gmail.com",
        "time": "Mon Aug 17 17:01:30 2026 +0530"
      },
      "message": "Remove duplicate bypass_vlan_check from private gateway, fix network import test\n\nThe merge with main pulled in bypass_vlan_overlap_check (added separately in\n#283), which duplicates this branch\u0027s own bypass_vlan_check field on\ncloudstack_private_gateway. Drop the stale duplicate and the overlapping\ntest resource that relied on it, and ignore bypass_vlan_check on network\nimport since CloudStack\u0027s network API never returns it.\n"
    },
    {
      "commit": "edf76e19d9bd09f8a3515e5e60a9122101dae70e",
      "tree": "7fbf4cafe5d1e4884964a6aa59747f71edaeaca7",
      "parents": [
        "235ee8a53b826aadd3f4f9dba22ad96830d6180e"
      ],
      "author": {
        "name": "Elias Flötzinger",
        "email": "eliasfloetzinger@gmx.de",
        "time": "Mon Aug 17 13:12:32 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 16:42:32 2026 +0530"
      },
      "message": "Feature: Add dest_cidr_list support to egress firewall (#298)\n\n* chore: add .worktrees to .gitignore\n\n* feat: add dest_cidr_list support to cloudstack_egress_firewall\n\nAdds the destcidrlist parameter to egress firewall rules, allowing\nusers to restrict the destination of egress traffic. The field is\noptional and maps to the CloudStack API\u0027s destcidrlist parameter.\n\nFixes #296\n\n* refactor: simplify egress firewall read with cidrSetFromList helper\n\nRestructure resourceCloudStackEgressFirewallRead to use a switch on the\nprotocol and extract the repeated CIDR set-building into a single\ncidrSetFromList helper.\n\nThe helper returns an empty set for an empty list, restoring the guard\nagainst empty Destcidrlist consistently across all branches.\n\nVerified with the egress firewall acceptance tests against the\ncloudstack simulator.\n\n* docs: add dest_cidr_list example and \u0027all\u0027 protocol to egress firewall"
    },
    {
      "commit": "235ee8a53b826aadd3f4f9dba22ad96830d6180e",
      "tree": "c10fc48074d6497ca0268163d43e79a96794fa94",
      "parents": [
        "847cfe516457d0034fb3747c254b0f0387379919"
      ],
      "author": {
        "name": "Manoj Kumar",
        "email": "manojkr.itbhu@gmail.com",
        "time": "Mon Aug 17 16:40:45 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 16:40:45 2026 +0530"
      },
      "message": "Fix cloudstack_instance data source ignoring project scope (#319)\n\nInstances created inside a project were never returned by\nListVirtualMachines because the data source never passed a\nprojectid, so filters had nothing to match and failed with a\nmisleading regex error. Added a project argument and wired it\ninto the list call, same as the VPC data source already does.\n\nFixes #266"
    },
    {
      "commit": "847cfe516457d0034fb3747c254b0f0387379919",
      "tree": "4e972fa491b6f20cf8c298222e408aeed0fec1df",
      "parents": [
        "bd26c4950244b3d940cd7f4cd0cbc354c93dead1"
      ],
      "author": {
        "name": "bddvlpr",
        "email": "luna@bddvlpr.com",
        "time": "Mon Aug 17 12:59:44 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 16:29:44 2026 +0530"
      },
      "message": "Fix userdata details being improperly serialized (#295)"
    },
    {
      "commit": "1e0099b0bbbebe71e4d5888d647e91e4bcacb4fb",
      "tree": "5474618cecacd7ea279187bd2a7cfeef71ace989",
      "parents": [
        "275d8b0ffe5853729154276d9ccad324f9610fa7",
        "bd26c4950244b3d940cd7f4cd0cbc354c93dead1"
      ],
      "author": {
        "name": "Suresh Kumar Anaparti",
        "email": "sureshkumar.anaparti@gmail.com",
        "time": "Mon Aug 17 14:59:44 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 14:59:44 2026 +0530"
      },
      "message": "Merge branch \u0027main\u0027 into feature_vlan_bypass_check"
    },
    {
      "commit": "bd26c4950244b3d940cd7f4cd0cbc354c93dead1",
      "tree": "edefa7662485547a04f703436a04ee00355ddcd4",
      "parents": [
        "b17357bb1a230658bf055d0608dff11f82303e3f",
        "03a16be03b5470a98135158d1a97f2f35dafc693"
      ],
      "author": {
        "name": "Manoj Kumar",
        "email": "manojkr.itbhu@gmail.com",
        "time": "Mon Aug 17 14:57:49 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 14:57:49 2026 +0530"
      },
      "message": "Merge pull request #283 from bhouse-nexthop/feature/private-gateway-bypass-vlan-overlap-check\n\nAdd bypass_vlan_overlap_check parameter to cloudstack_private_gateway "
    },
    {
      "commit": "b17357bb1a230658bf055d0608dff11f82303e3f",
      "tree": "d4af2cbff133322c9bb848d3342d19fe39fa3019",
      "parents": [
        "9154a4809a19db521592f481598a47bbe51f564f"
      ],
      "author": {
        "name": "Brad House - Nexthop",
        "email": "bhouse@nexthop.ai",
        "time": "Mon Aug 17 05:23:36 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 14:53:36 2026 +0530"
      },
      "message": "Add IPv6 support to cloudstack_network resource (#282)\n\n* Add IPv6 support to cloudstack_network resource\n\nThis commit adds comprehensive IPv6 support to the cloudstack_network resource,\nallowing users to configure IPv6 CIDR blocks, gateways, and IP ranges for\nCloudStack networks.\n\n## New Features\n\n### Schema Fields\n- ip6cidr: IPv6 CIDR block for the network (e.g., \"2001:db8::/64\")\n- ip6gateway: IPv6 gateway address (optional, defaults to network address + 1)\n- startipv6: Starting IPv6 address for the IP range (optional)\n- endipv6: Ending IPv6 address for the IP range (optional)\n\n### Implementation Details\n\n#### Network Creation (resourceCloudStackNetworkCreate)\n- Added IPv6 CIDR parsing and validation using parseCIDRv6() helper\n- Automatically calculates IPv6 gateway (defaults to network address + 1, e.g., 2001:db8::1)\n- Automatically generates IPv6 IP range when specifyiprange is enabled\n- Properly sets IPv6 parameters on CloudStack API calls\n\n#### Network Read (resourceCloudStackNetworkRead)\n- Reads IPv6 CIDR and gateway from CloudStack API\n- Only sets IPv6 fields in state when they have non-empty values\n- Prevents unwanted plan diffs when IPv6 is not configured\n\n#### Helper Function: parseCIDRv6\n- Parses IPv6 CIDR notation using Go\u0027s net.ParseCIDR\n- Calculates default gateway (network address + 1, e.g., prefix::1)\n- Generates start IP (network address + 2)\n- Generates end IP (last address in CIDR range using bitwise operations)\n- Supports custom gateway and IP range specification\n\n## Test Coverage\n\n### Acceptance Tests (3 new tests)\n- TestAccCloudStackNetwork_ipv6: Basic IPv6 network with ip6cidr\n- TestAccCloudStackNetwork_ipv6_vpc: IPv6 network within a VPC\n- TestAccCloudStackNetwork_ipv6_custom_gateway: IPv6 with custom gateway\n\nNote: These tests skip gracefully on CloudStack simulator (error 4350) because\nthe simulator only supports IPv6 with advanced shared network offerings. Tests\nwill work correctly on real CloudStack environments with proper IPv6 support.\n\n### Unit Tests (5 new tests in resource_cloudstack_network_unit_test.go)\n- TestParseCIDRv6_DefaultGateway: Verifies default gateway calculation (network + 1)\n- TestParseCIDRv6_CustomGateway: Tests custom gateway specification\n- TestParseCIDRv6_WithIPRange: Tests automatic IP range generation\n- TestParseCIDRv6_CustomIPRange: Tests custom start/end IP specification\n- TestParseCIDRv6_SmallerPrefix: Tests different prefix lengths (/48, /64)\n\nAll unit tests pass and validate the IPv6 CIDR parsing logic independently\nof the CloudStack API.\n\n## Documentation\n\n### Updated website/docs/r/network.html.markdown\n- Added IPv6 usage example showing ip6cidr configuration\n- Added ip6gateway to exported attributes reference with clear default behavior\n- Added gateway to exported attributes reference for completeness\n\n### Test Documentation\n- Added comments explaining IPv6 test limitations with simulator\n- Referenced unit tests for developers wanting to verify IPv6 logic\n\n## Usage Example\n\n```hcl\nresource \"cloudstack_network\" \"ipv6\" {\n  name             \u003d \"test-network-ipv6\"\n  cidr             \u003d \"10.0.0.0/16\"\n  ip6cidr          \u003d \"2001:db8::/64\"\n  network_offering \u003d \"Default Network\"\n  zone             \u003d \"zone-1\"\n}\n```\n\nThe above example will create a network with:\n- IPv4: 10.0.0.0/16\n- IPv6: 2001:db8::/64\n- IPv6 Gateway: 2001:db8::1 (automatically calculated)\n\n## Verification\n\n- Build: Clean (no compilation errors)\n- Vet: Clean (no warnings)\n- Unit Tests: 5/5 passing\n- Acceptance Tests: 6/6 passing (existing), 3/3 skipping appropriately (IPv6)\n- All existing network tests continue to pass without regression\n\n* Remove unnecessary \u0027none\u0027 check from ip6cidr validation\n\nThe ip6cidr field does not have a default value of \u0027none\u0027 (unlike aclid),\nso checking for !\u003d none is unnecessary and could cause confusion if a user\nactually tries to set ip6cidr \u003d \"none\". The GetOk() check is sufficient\nto determine if the field has been set.\n\n* Add IPv6 validation to parseCIDRv6 to prevent IPv4 CIDR panics\n\nThe parseCIDRv6 function now explicitly validates that the provided CIDR\nis IPv6, not IPv4. Previously, net.ParseCIDR() would accept IPv4 CIDRs,\nand To16() would return a non-nil value (IPv4-mapped IPv6), but the mask\nwould only be 4 bytes. This caused a panic when the code tried to index\nipnet.Mask[i] assuming a 16-byte mask.\n\nThe fix adds two validation checks:\n1. ip.To4() \u003d\u003d nil (ensures it\u0027s not IPv4)\n2. len(ipnet.Mask) \u003d\u003d net.IPv6len (ensures 16-byte mask)\n\nAdded unit test TestParseCIDRv6_RejectsIPv4 to verify the validation.\n\n* Add prefix length validation for IPv6 gateway and IP range defaults\n\nThe code previously assumed it could always use network+1 for gateway and\nnetwork+2 for start IP, but this fails for very small prefixes:\n- /128 (1 address): Cannot accommodate gateway\n- /127 (2 addresses): Can accommodate gateway but not start/end IP range\n\nAdded validation to ensure:\n- When specifyiprange is false: minimum /127 (2 addresses for gateway)\n- When specifyiprange is true: minimum /126 (4 addresses for gateway + range)\n\nAdded comprehensive unit tests for edge cases:\n- TestParseCIDRv6_Prefix128_NoIPRange: Rejects /128 (too small)\n- TestParseCIDRv6_Prefix127_NoIPRange: Accepts /127 without IP range\n- TestParseCIDRv6_Prefix127_WithIPRange: Rejects /127 with IP range\n- TestParseCIDRv6_Prefix126_WithIPRange: Accepts /126 with IP range\n\n* Make IPv6 acceptance tests conditionally skip based on environment\n\nIPv6 acceptance tests are now conditionally skipped instead of being\nunconditionally skipped. The tests will:\n\n1. Skip on localhost/127.0.0.1 (assumed to be simulator) by default\n2. Run on other API URLs (assumed to be real CloudStack)\n3. Can be force-enabled via CLOUDSTACK_ENABLE_IPV6_TESTS\u003dtrue env var\n\nThis allows the tests to run on real CloudStack environments with IPv6\nsupport while still skipping on the simulator where IPv6 is not supported\nfor isolated networks.\n\nAdded testAccPreCheckIPv6Support() helper function that checks:\n- Standard testAccPreCheck() requirements\n- CLOUDSTACK_ENABLE_IPV6_TESTS environment variable for override\n- API URL to detect simulator (localhost/127.0.0.1)\n\n* Always set IPv6 fields in Read to properly detect drift\n\n* Fix unsafe error string comparison in unit tests\n\n* normalize ipv6 address\n\n* Fix undefined \u0027no\u0027 variable in IPv6 network creation\n\nCo-authored-by: Suresh Kumar Anaparti \u003csureshkumar.anaparti@gmail.com\u003e\nCo-authored-by: Manoj Kumar \u003cmanojkr.itbhu@gmail.com\u003e"
    },
    {
      "commit": "9154a4809a19db521592f481598a47bbe51f564f",
      "tree": "b1edd23e11837810b55ab07503c341587758f003",
      "parents": [
        "ca078cc21ec27b1290b3eed1691ac929f67a5843"
      ],
      "author": {
        "name": "bddvlpr",
        "email": "luna@bddvlpr.com",
        "time": "Mon Aug 17 11:21:31 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 14:51:31 2026 +0530"
      },
      "message": "Allow \u0027all\u0027 on security group rule protocol (#294)"
    },
    {
      "commit": "ca078cc21ec27b1290b3eed1691ac929f67a5843",
      "tree": "1c4f137e54458b3df4060f565e328980b9da6b75",
      "parents": [
        "140aaf2210a8d0dd63396ada8942d53581b8bce8"
      ],
      "author": {
        "name": "bddvlpr",
        "email": "luna@bddvlpr.com",
        "time": "Mon Aug 17 11:20:29 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 14:50:29 2026 +0530"
      },
      "message": "Declarative storage network IP range (#299)"
    },
    {
      "commit": "140aaf2210a8d0dd63396ada8942d53581b8bce8",
      "tree": "28685644bec7ef159863c0f525613c67b2c45a41",
      "parents": [
        "9b70d141dc555f6d8d34b6a17e22c1fa753df636"
      ],
      "author": {
        "name": "Manoj Kumar",
        "email": "manojkr.itbhu@gmail.com",
        "time": "Mon Aug 17 14:49:52 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 14:49:52 2026 +0530"
      },
      "message": "Support requesting a specific IP address in cloudstack_ipaddress (#311)"
    },
    {
      "commit": "9b70d141dc555f6d8d34b6a17e22c1fa753df636",
      "tree": "3a61cee96c9b8772ac19dda64d2bc9805a69a9b4",
      "parents": [
        "1d703a91aa7bca0a9c3495f39192d3aa21fd1988"
      ],
      "author": {
        "name": "Manoj Kumar",
        "email": "manojkr.itbhu@gmail.com",
        "time": "Mon Aug 17 14:45:05 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 14:45:05 2026 +0530"
      },
      "message": "Add cloudstack_kubernetes_cluster_config data source (#312)\n\n* Add cloudstack_kubernetes_cluster_config data source\n\nCloudStack\u0027s CKS clusters expose their kubeconfig only through the\ngetKubernetesClusterConfig API, with no Terraform-native way to feed it\ninto the kubernetes/helm providers. This adds a data source that fetches\nit and parses out endpoint, cluster_ca_certificate, client_certificate,\nand client_key as separate attributes named to match those providers\u0027\nown arguments, alongside the raw config_data for anything else.\n\nContext resolution deliberately refuses to guess: if a kubeconfig\u0027s\ncurrent-context names a cluster or user absent from a list of more than\none entry, parsing errors instead of silently falling back, since a\nwrong guess there would silently serve one cluster\u0027s endpoint paired\nwith a different cluster\u0027s credentials.\n\nCloses #276."
    },
    {
      "commit": "1d703a91aa7bca0a9c3495f39192d3aa21fd1988",
      "tree": "698c095194a4965db51a4533492541c129b413b6",
      "parents": [
        "4c5ee32093596f7b1d7d32c52de63663acb969ad"
      ],
      "author": {
        "name": "bddvlpr",
        "email": "luna@bddvlpr.com",
        "time": "Mon Aug 17 11:14:17 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 14:44:17 2026 +0530"
      },
      "message": "Fix userdata not being found when added to a project (#293)"
    },
    {
      "commit": "cbdabbb4e258af1694e38042e89fe24905e2a387",
      "tree": "40187def4d5b9af871a7f711ece5d6905acd2038",
      "parents": [
        "1d23c72aa849a6818d55151c5f1056bb9d3a52b4",
        "4c5ee32093596f7b1d7d32c52de63663acb969ad"
      ],
      "author": {
        "name": "Manoj Kumar",
        "email": "manojkr.itbhu@gmail.com",
        "time": "Mon Aug 17 12:48:52 2026 +0530"
      },
      "committer": {
        "name": "Manoj Kumar",
        "email": "manojkr.itbhu@gmail.com",
        "time": "Mon Aug 17 12:48:52 2026 +0530"
      },
      "message": "Merge remote-tracking branch \u0027origin/main\u0027 into HEAD\n\n# Conflicts:\n#\tcloudstack/resource_cloudstack_instance_test.go\n"
    },
    {
      "commit": "4c5ee32093596f7b1d7d32c52de63663acb969ad",
      "tree": "4836c9b183f7b414ac0daf8f4fe4e1ac377df8f3",
      "parents": [
        "32d4beb0722bf9502342fbcb8c0d3f6d76eda5cf"
      ],
      "author": {
        "name": "Brad House - Nexthop",
        "email": "bhouse@nexthop.ai",
        "time": "Mon Aug 17 03:05:07 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 12:35:07 2026 +0530"
      },
      "message": "Unnecessary requirement for `project` in resources (#280)\n\n* feat: Project parameter for cloudstack_port_forward with should inherit from ip address\n\nSupport both explicit project specification and automatic inheritance from IP address:\n- Port forward inherits project from ip_address_id when no explicit project is set\n- Uses projectid\u003d-1 for universal IP address lookup across projects\n- Updates state with inherited or explicit project during read operations\n- Schema updated to mark project as Optional and Computed\n- Maintains backward compatibility with existing implementations\n\nChanges:\n- Added Computed: true to project field\n- Modified resourceCloudStackPortForwardCreate to fetch IP address and inherit project\n- Modified resourceCloudStackPortForwardRead to handle universal project search\n- Added TestAccCloudStackPortForward_projectInheritance test case\n- Updated documentation with inheritance behavior and example\n\nAll 4 port forward acceptance tests passing.\n\n* feat: Add automatic project inheritance from VPC for cloudstack_network\nWhen creating a network in a VPC, if no explicit project is specified,\nthe network will now automatically inherit the project from the VPC.\n\nThis simplifies configuration by eliminating the need to specify the\nproject parameter when creating networks in VPCs that belong to projects.\n\n* feat: Add automatic project inheritance for cloudstack_instance from network\n\n* feat: Add automatic project inheritance for cloudstack_ipaddress from VPC or network\n\n* feat: Add automatic project inheritance for cloudstack_network_acl from VPC\n\n* fix: Remove early project d.Set that breaks preserve ID vs name behavior\n\n* Fix IP address with inherited project being cleared from state\n\n* Fix project-scoped read fallback in network_acl and port_forward"
    },
    {
      "commit": "32d4beb0722bf9502342fbcb8c0d3f6d76eda5cf",
      "tree": "fdecf27debb4d3d2c8957048567a34ef29cc1a39",
      "parents": [
        "add8c3a4ab26f2aad2b037719e6bc752f9c81007"
      ],
      "author": {
        "name": "poddm",
        "email": "8801231+poddm@users.noreply.github.com",
        "time": "Sun Aug 16 23:50:52 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 12:20:52 2026 +0530"
      },
      "message": "deprecate cloudstack_service_offering (#258)"
    },
    {
      "commit": "1d23c72aa849a6818d55151c5f1056bb9d3a52b4",
      "tree": "a5bf84261c5ef38aa5f28c0b92ad5e60232ba090",
      "parents": [
        "67d670ee4845a621867b6f08871b94bf99d3bd64"
      ],
      "author": {
        "name": "Manoj Kumar",
        "email": "manojkr.itbhu@gmail.com",
        "time": "Mon Aug 17 12:14:28 2026 +0530"
      },
      "committer": {
        "name": "Manoj Kumar",
        "email": "manojkr.itbhu@gmail.com",
        "time": "Mon Aug 17 12:14:28 2026 +0530"
      },
      "message": "Address latest review comments on delete protection\n\n- Read delete_protection back from the API in resourceCloudStackInstanceRead\n  and resourceCloudStackDiskRead so the Computed attribute reflects import\n  and out-of-band changes instead of always going stale.\n- Fix TestAccCloudStackInstance_deleteProtection using the disk CheckDestroy\n  helper instead of the instance one.\n- Escape the trailing \".\" in the ExpectError regexes so they match a literal\n  period instead of any character.\n- Standardize the update error message wording to \"delete protection\" and\n  fix a \"disabledd\" typo in test comments.\n"
    },
    {
      "commit": "add8c3a4ab26f2aad2b037719e6bc752f9c81007",
      "tree": "8ea5f87fb59d2d30dfbb8873eb27d08e40ff80f2",
      "parents": [
        "34a24b701d317a016e87fff7de91d74d2a728e74"
      ],
      "author": {
        "name": "bddvlpr",
        "email": "luna@bddvlpr.com",
        "time": "Mon Aug 17 08:39:51 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 12:09:51 2026 +0530"
      },
      "message": "Add cloudstack_role_permission resource (#300)\n\n* Add cloudstack_role_permission resource\n\n* Fix ordering of permissions by using a list with (optionally) authoritative management"
    },
    {
      "commit": "34a24b701d317a016e87fff7de91d74d2a728e74",
      "tree": "a413df2187f860fb036685cbd8529e6145c1408a",
      "parents": [
        "179c1ade3bb192f8abcf57a5a96632754df07c86"
      ],
      "author": {
        "name": "Curverneur",
        "email": "curverneur@curvania.de",
        "time": "Mon Aug 17 08:06:22 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 11:36:22 2026 +0530"
      },
      "message": "add support for vpc internal lb (#264)\n\n* added resource_cloudstack_loadbalancer and corresponding doc page\n\n* changed from type list to type set due to the need to re-create after order of virtualmachineids changed"
    },
    {
      "commit": "179c1ade3bb192f8abcf57a5a96632754df07c86",
      "tree": "952edf653eae3b2f3909335c4c0a8467b868513b",
      "parents": [
        "9bd95a467df160d2183e5b6cbdbe4ca6aa0717e1"
      ],
      "author": {
        "name": "Ian",
        "email": "ian.crouch@telus.com",
        "time": "Sun Aug 16 23:04:10 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 11:34:10 2026 +0530"
      },
      "message": "Fix infinite update loop for optional zone fields (#272)\n\nAdd Computed: true to optional zone fields that are set by the Read function.\nThis prevents Terraform from detecting false drift when these fields are not\nexplicitly set in the configuration but have values returned by the CloudStack API.\n\nFields fixed:\n- guest_cidr_address\n- dns2\n- internal_dns2\n- ip6_dns1\n- ip6_dns2\n\nThe issue occurred because these fields were Optional but not Computed. When a user\nremoved a previously set value from their config, Terraform would:\n1. Expect the field to be null (not in config)\n2. Read a non-null value from the API\n3. Detect drift and plan to remove it\n4. Send an update with the field omitted\n5. CloudStack would retain the old value (no explicit clear)\n6. Loop back to step 2\n\nWith Optional + Computed, Terraform accepts API-provided values even when not\nexplicitly set in the configuration, breaking the update loop."
    },
    {
      "commit": "03a16be03b5470a98135158d1a97f2f35dafc693",
      "tree": "1ad9bdd25814bb39cc0ce8f9cf7f939b2749fb5c",
      "parents": [
        "46a69f6ea88f88d1339a5e56d69f8fe5fc3fa2fd",
        "9bd95a467df160d2183e5b6cbdbe4ca6aa0717e1"
      ],
      "author": {
        "name": "Manoj Kumar",
        "email": "manojkr.itbhu@gmail.com",
        "time": "Fri Aug 14 18:09:37 2026 +0530"
      },
      "committer": {
        "name": "Manoj Kumar",
        "email": "manojkr.itbhu@gmail.com",
        "time": "Fri Aug 14 18:09:37 2026 +0530"
      },
      "message": "Merge remote-tracking branch \u0027origin/main\u0027 into feature/private-gateway-bypass-vlan-overlap-check\n\n# Conflicts:\n#\twebsite/docs/r/private_gateway.html.markdown\n"
    },
    {
      "commit": "9bd95a467df160d2183e5b6cbdbe4ca6aa0717e1",
      "tree": "82c4c2e832a27e139d3ec9e902aefabd2dc5f1aa",
      "parents": [
        "cd41438a76d8d9e4ec8c1c9fa448a7b21c56e54f"
      ],
      "author": {
        "name": "kiranchavala",
        "email": "kiranchavala@gmail.com",
        "time": "Fri Aug 14 14:10:55 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 14 14:10:55 2026 +0530"
      },
      "message": "added bypass_vlan_check to network and private_gateway resources (#216)"
    },
    {
      "commit": "cd41438a76d8d9e4ec8c1c9fa448a7b21c56e54f",
      "tree": "8d22e0b0dd4bdfaa40c240a922b222d4401032bd",
      "parents": [
        "3d1959c649b419130ad124e631b16a305b2c3134"
      ],
      "author": {
        "name": "Brad House - Nexthop",
        "email": "bhouse@nexthop.ai",
        "time": "Fri Aug 14 04:30:33 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 14 14:00:33 2026 +0530"
      },
      "message": "Add nexthop parameter to cloudstack_static_route resource (#284)\n\n* Add nexthop parameter to cloudstack_static_route resource\n\nThis change adds support for the nexthop parameter in static routes,\nwhich allows VPC-based routing without requiring a private gateway.\n\nResource Changes:\n- Add nexthop and vpc_id optional parameters to schema\n- nexthop is mutually exclusive with gateway_id\n- When using nexthop, vpc_id is required\n- When using gateway_id, nexthop and vpc_id are not allowed\n- Update resource creation logic to support both routing methods:\n  - Private Gateway routing (gateway_id)\n  - VPC direct routing (nexthop + vpc_id)\n- Update Read function to maintain plan stability for both modes\n\nTest Coverage:\n- Add comprehensive test coverage for both routing methods\n- Add testAccPreCheckStaticRouteNexthop helper to check CloudStack version\n- Automatically skip nexthop tests on CloudStack versions \u003c 4.22.0\n- Version check uses CloudStack capabilities API\n- Tests are skipped (not failed) on older versions for backward compatibility\n- All acceptance tests passing (2/2)\n\nDocumentation:\n- Update documentation with examples for both routing methods\n- Document mutual exclusivity requirements\n- Note CloudStack 4.22+ requirement for nexthop support\n\nCI/CD:\n- Add CloudStack 4.22.0.0 to acceptance test matrix\n- Ensures tests run on both old and new CloudStack versions\n\n* Extract version parsing into reusable helper functions\n\n- Add parseCloudStackVersion() to parse version strings into numeric values\n- Add getCloudStackVersion() to retrieve version from API\n- Add requireMinimumCloudStackVersion() for easy version checking in tests\n- Refactor testAccPreCheckStaticRouteNexthop() to use new helpers\n- These helpers can now be reused by other tests that need version checks\n\n* Add CloudStack version requirement to nexthop documentation\n\nDocument that the nexthop parameter requires CloudStack 4.22.0+\n\n* Add vpc_id assertion to nexthop acceptance test\n\nAdd TestCheckResourceAttrPair to verify that vpc_id is properly persisted\nin state and matches the created VPC resource\n\n* Add parameter verification to static route Create function\n\nAdd verifyStaticRouteParams() to validate that either gateway_id or\n(nexthop + vpc_id) is provided before calling the API. This provides\nclearer error messages at the Terraform level rather than letting\ninvalid configurations fail at the CloudStack API level.\n\n* Fix testAccPreCheckStaticRouteNexthop to create CloudStack client\n\nThe provider Meta() is not available during PreCheck, so we need to\ncreate a CloudStack client directly using the environment variables.\n\n* Add validation test cases for static route parameter verification\n\nAdd test cases to verify that the parameter validation logic works correctly:\n- Test missing both gateway_id and nexthop\n- Test nexthop without vpc_id\n- Test vpc_id without nexthop\n\nThese tests verify that the schema-level RequiredWith validation and\nthe custom verifyStaticRouteParams function work as expected.\n\n* Deduplicate getCloudStackVersion after merge from main\n\nThe merge from main introduced newTestClient and getCloudStackVersion(t)\nwhich conflicted with our branch\u0027s getCloudStackVersion(cs). Refactor to\nuse main\u0027s versions: remove our duplicate, simplify\nrequireMinimumCloudStackVersion to no longer require a client parameter,\nand simplify testAccPreCheckStaticRouteNexthop to drop inline client\ncreation."
    },
    {
      "commit": "3d1959c649b419130ad124e631b16a305b2c3134",
      "tree": "39034d4748270d98e5cab602805befbd08f76cb8",
      "parents": [
        "24737fbbbba4d4a721b577f1c4782966f557b68e"
      ],
      "author": {
        "name": "Brad House - Nexthop",
        "email": "bhouse@nexthop.ai",
        "time": "Fri Aug 14 04:10:40 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 14 13:40:40 2026 +0530"
      },
      "message": "Network ACL Rules modifications cause churn due to being a TypeList (#281)\n\n* Add \u0027ruleset\u0027 attribute to cloudstack_network_acl_rule resource\n\nThis commit adds a new \u0027ruleset\u0027 attribute as an alternative to the legacy\n\u0027rule\u0027 attribute, providing better support for managing multiple ACL rules\nwith explicit ordering and in-place updates.\n\nKey Features:\n\n1. New \u0027ruleset\u0027 attribute (TypeSet):\n   - Uses TypeSet instead of TypeList to prevent spurious diffs when rules\n     are inserted or reordered\n   - Requires explicit rule_number for each rule (no auto-numbering)\n   - Identifies rules by rule_number (acts as primary key)\n   - Includes \u0027uuid\u0027 computed field to track CloudStack rule IDs\n   - Uses TypeSet for cidr_list (consistent with other CloudStack resources)\n   - Supports in-place UPDATE operations (vs DELETE+CREATE in legacy)\n\n2. Legacy \u0027rule\u0027 attribute enhancements:\n   - Added auto-numbering for rules without explicit rule_number\n   - Full support for deprecated \u0027ports\u0027 field with multi-port expansion\n   - Validation to prevent conflicts between auto-numbering and explicit numbers\n   - Deterministic port ordering for stable rule number assignment\n\n3. Unified update logic:\n   - Both \u0027rule\u0027 and \u0027ruleset\u0027 use reconciliation-based updates\n   - UPDATE changed rules, DELETE removed rules, CREATE new rules\n   - Preserves UUIDs across updates (no unnecessary DELETE+CREATE)\n   - Ghost entry filtering in CustomizeDiff to handle SDK edge cases\n\n4. Managed mode support:\n   - Both \u0027rule\u0027 and \u0027ruleset\u0027 support managed\u003dtrue/false\n   - Out-of-band rules tracked via placeholder entries in state\n   - Automatic deletion of out-of-band rules when managed\u003dtrue\n   - Preservation of out-of-band rules when managed\u003dfalse\n\n5. Comprehensive test coverage:\n   - 15 acceptance tests covering all scenarios\n   - Tests for basic CRUD, updates, insertions, managed modes\n   - Tests for deprecated \u0027ports\u0027 field backward compatibility\n   - Plan checks to verify no spurious diffs\n\nBenefits:\n- TypeSet eliminates spurious diffs when inserting rules mid-list\n- UPDATE API support reduces API calls and preserves UUIDs\n- Full backward compatibility with existing \u0027rule\u0027 configurations\n- Consistent behavior with other CloudStack firewall resources\n- Clear migration path from \u0027rule\u0027 to \u0027ruleset\u0027\n\nThe legacy \u0027rule\u0027 attribute remains fully supported for backward\ncompatibility and will not be removed.\n\n* Add cloudstack_network_acl_ruleset resource with comprehensive ACL management\n\nThis commit introduces a new resource for managing network ACL rules with several\nimprovements over the legacy cloudstack_network_acl_rule resource.\n\nKey Features:\n- Declarative ruleset management with efficient in-place updates\n- Rules identified by rule_number (natural key) instead of list position\n- Eliminates spurious diffs when modifying individual rules\n- Optional managed mode to delete out-of-band rules\n- Concurrent rule operations with proper synchronization\n- Support for protocol transitions (e.g., TCP to ICMP)\n\nTechnical Implementation:\n- Uses TypeSet with Optional+Computed pattern for rules\n- CustomizeDiff function to suppress spurious diffs by comparing rules via rule_number\n- Three-phase update strategy: delete, update, create (preserves UUIDs)\n- Managed mode uses dummy rules to track out-of-band changes\n- Helper function buildRuleFromAPI() to eliminate code duplication\n- Safe type assertions to prevent runtime panics\n- Proper validation placement in verifyACLRuleParams\n\nLegacy Resource Updates:\n- Deprecated cloudstack_network_acl_rule with migration guidance\n- Added deprecation notice to documentation\n- Maintains backward compatibility\n\nTesting:\n- 12 comprehensive acceptance tests covering all scenarios\n- Tests for basic CRUD, managed mode, protocol transitions, field changes\n- Import functionality testing\n- Spurious diff prevention verification\n- All tests passing\n\nDocumentation:\n- Complete user guide with multiple examples\n- Clear migration path from legacy resource\n- Accurate field descriptions (no unsupported features mentioned)"
    },
    {
      "commit": "24737fbbbba4d4a721b577f1c4782966f557b68e",
      "tree": "d45da0a199d44ca25369e1fb5e282a3d0e762369",
      "parents": [
        "fef3030c5f90e1819902e223a45352982cc93f30"
      ],
      "author": {
        "name": "Manoj Kumar",
        "email": "manojkr.itbhu@gmail.com",
        "time": "Fri Aug 14 12:57:44 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 14 12:57:44 2026 +0530"
      },
      "message": "Update cloudstack-go to v2.19.1 (#316)\n\nBumps the SDK dependency from v2.18.1 to v2.19.1, picking up ACS 4.22\nAPI support plus several response-parsing and param-serialization\nfixes (list-response JSON tags, UUID param panics, datadisksdetails,\nLB stickiness policy params).\n\nVerified: go build, go vet, go test, and golangci-lint all pass with\nno new issues versus main."
    },
    {
      "commit": "fef3030c5f90e1819902e223a45352982cc93f30",
      "tree": "18d5c7934da3cd4c43e66a7a990a0954da9ab339",
      "parents": [
        "eb1b5026a51961b9991205716540ee5ed6665faf"
      ],
      "author": {
        "name": "Daman Arora",
        "email": "61474540+Damans227@users.noreply.github.com",
        "time": "Fri Aug 14 03:12:18 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 14 12:42:18 2026 +0530"
      },
      "message": "fix: make cidr optional for L2 network creation (#289)\n\n* Make cidr optional for L2 network creation\n\n* Make CIDR field computed and optional for L2 network resource\n\n* Add acceptance test for L2 network without CIDR\n\n* Add required_with validation for gateway, startip, and endip fields in L2 network resource"
    },
    {
      "commit": "eb1b5026a51961b9991205716540ee5ed6665faf",
      "tree": "b7b8d11e9de285491110998dccbc2d6ea839b9a3",
      "parents": [
        "b6c427d1a8b6833ce5b85de700023e4093102ffc",
        "6bcd59c40163b4d279e82dabe9085814218bd3dd"
      ],
      "author": {
        "name": "Manoj Kumar",
        "email": "manojkr.itbhu@gmail.com",
        "time": "Thu Aug 13 09:38:03 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 09:38:03 2026 +0530"
      },
      "message": "Merge pull request #307 from apache/DaanHoogland-patch-2\n\nAdd Damans227 to collaborators list"
    },
    {
      "commit": "b6c427d1a8b6833ce5b85de700023e4093102ffc",
      "tree": "08d3d7927bbba2fbd640189edad350dc3501205b",
      "parents": [
        "f2c71137802d1f216ba245023a1cf52f3ac3e1c3",
        "32bc5c61e6dcb547628913d106a502d55a45a61f"
      ],
      "author": {
        "name": "Manoj Kumar",
        "email": "manojkr.itbhu@gmail.com",
        "time": "Mon Aug 10 17:13:02 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 10 17:13:02 2026 +0530"
      },
      "message": "Merge pull request #310 from shapeblue/fix-acceptance-tests\n\nFix acceptance test failures"
    },
    {
      "commit": "32bc5c61e6dcb547628913d106a502d55a45a61f",
      "tree": "08d3d7927bbba2fbd640189edad350dc3501205b",
      "parents": [
        "f2c71137802d1f216ba245023a1cf52f3ac3e1c3"
      ],
      "author": {
        "name": "vishesh92",
        "email": "vishesh92@gmail.com",
        "time": "Mon Aug 10 15:10:54 2026 +0530"
      },
      "committer": {
        "name": "vishesh92",
        "email": "vishesh92@gmail.com",
        "time": "Mon Aug 10 15:10:54 2026 +0530"
      },
      "message": "Fix acceptance test failures\n"
    },
    {
      "commit": "6bcd59c40163b4d279e82dabe9085814218bd3dd",
      "tree": "f00a8a33ad3767f33c757df91c90a4549c57c0a3",
      "parents": [
        "f2c71137802d1f216ba245023a1cf52f3ac3e1c3"
      ],
      "author": {
        "name": "dahn",
        "email": "daan.hoogland@shapeblue.com",
        "time": "Thu Jul 30 15:26:30 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 30 15:26:30 2026 +0200"
      },
      "message": "Add Damans227 to collaborators list"
    },
    {
      "commit": "f2c71137802d1f216ba245023a1cf52f3ac3e1c3",
      "tree": "79b384d110545384dbd5ea9ecf27e3bcf30b0734",
      "parents": [
        "f1fc6d95a83b1f86478f1dcf5f227595631e9b10"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Mon Jul 13 15:56:10 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 19:26:10 2026 +0530"
      },
      "message": "Add security-model discoverability pointer to the project-wide CloudStack threat model (#292)\n\n* Add draft project security threat-model document\n\nAdds a draft project-level security threat-model document\n(draft-THREAT-MODEL.md) at repo root, improving discoverability\nfor automated security scanners running against this repository.\nThe file follows the rubric format used by several other ASF\nprojects piloting security-model discoverability.\n\nThe \"draft-\" prefix signals this is a proposal for the PMC to\nreview, correct, or reject — not a finalised maintainer-blessed\nmodel. Every claim carries a provenance tag (documented /\ninferred / maintainer) so reviewers can see where each claim\noriginates; §14 collects open questions for the maintainers.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n\n* Point to the project-wide CloudStack threat model instead of a per-repo copy\n\nDrop the standalone draft-THREAT-MODEL.md and wire the discoverability chain\nAGENTS.md -\u003e SECURITY.md -\u003e the project-wide model in apache/cloudstack\n(apache/cloudstack#13293), so scanners find one canonical model and this repo\ninherits it rather than duplicating it.\n\nGenerated-by: Claude Code\n\n* Apply suggestions from code review\n\nCo-authored-by: Copilot Autofix powered by AI \u003c175728472+Copilot@users.noreply.github.com\u003e\n\n---------\n\nCo-authored-by: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\nCo-authored-by: dahn \u003cdaan.hoogland@gmail.com\u003e\nCo-authored-by: Copilot Autofix powered by AI \u003c175728472+Copilot@users.noreply.github.com\u003e"
    },
    {
      "commit": "f1fc6d95a83b1f86478f1dcf5f227595631e9b10",
      "tree": "c1a609522024fd7547b44c7cb66a8cc55f2aac55",
      "parents": [
        "f19bffc4369c63729e66d0f5bb140ae7045a84d2"
      ],
      "author": {
        "name": "Vishesh",
        "email": "8760112+vishesh92@users.noreply.github.com",
        "time": "Mon Jul 13 16:58:05 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 16:58:05 2026 +0530"
      },
      "message": "Enable copilot code review \u0026 fix setup-opentofu version to fix the acceptance test GitHub Action (#302)\n\n* Enable copilot code review\n\n* Fix setup-opentofu version\n\n* Fix opentofu failures"
    },
    {
      "commit": "46a69f6ea88f88d1339a5e56d69f8fe5fc3fa2fd",
      "tree": "0559e8ee45719348856ed1e12b3c08ce332dd80e",
      "parents": [
        "2ae48f052b9ef87e4db7414f74275ab4fed19465"
      ],
      "author": {
        "name": "Brad House",
        "email": "bhouse@nexthop.ai",
        "time": "Mon Jul 13 10:56:32 2026 +0000"
      },
      "committer": {
        "name": "Brad House",
        "email": "bhouse@nexthop.ai",
        "time": "Mon Jul 13 10:56:32 2026 +0000"
      },
      "message": "Fix panic on private gateway update\n\nresourceCloudStackPrivateGatewayUpdate called resourceCloudStackNetworkRead\ninstead of resourceCloudStackPrivateGatewayRead. The network read does\nd.Get(\"project\").(string), but the private gateway resource has no\n\"project\" attribute, so the type assertion panicked (interface {} is nil,\nnot string) on any update (e.g. changing acl_id or bypass_vlan_overlap_check).\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "2ae48f052b9ef87e4db7414f74275ab4fed19465",
      "tree": "fa309e286b9b3d09989b56d6a61323b22e5721c3",
      "parents": [
        "f96ba5bbfaeed3315b9bd80b9603c94708d829ec"
      ],
      "author": {
        "name": "Brad House - Nexthop",
        "email": "bhouse@nexthop.ai",
        "time": "Wed Mar 11 11:30:21 2026 +0000"
      },
      "committer": {
        "name": "Brad House",
        "email": "bhouse@nexthop.ai",
        "time": "Wed Apr 15 13:42:21 2026 +0000"
      },
      "message": "bypass_vlan_overlap_check is not forcenew\n"
    },
    {
      "commit": "f96ba5bbfaeed3315b9bd80b9603c94708d829ec",
      "tree": "6bdea086e00e881a044be9090cc8ab36b3f80db2",
      "parents": [
        "957a03ce5af8110a7d977bcb2220a3d3a0440255"
      ],
      "author": {
        "name": "Brad House - Nexthop",
        "email": "bhouse@nexthop.ai",
        "time": "Tue Mar 10 15:21:39 2026 +0000"
      },
      "committer": {
        "name": "Brad House",
        "email": "bhouse@nexthop.ai",
        "time": "Wed Apr 15 13:42:21 2026 +0000"
      },
      "message": "Change bypassvlanoverlapcheck to bypass_vlan_overlap_check for naming consistency\n\nThe parameter name has been changed from camelCase (bypassvlanoverlapcheck)\nto snake_case (bypass_vlan_overlap_check) to maintain consistency with other\nresource arguments like ip_address, physical_network_id, and acl_id.\n\nThis change affects:\n- Resource schema definition\n- Resource creation logic\n- Test cases and assertions\n- Documentation examples\n\nThe parameter is now also marked as ForceNew since it can only be set during\ngateway creation and cannot be modified afterwards.\n"
    },
    {
      "commit": "957a03ce5af8110a7d977bcb2220a3d3a0440255",
      "tree": "eb0df308b767791e4b81fcceed42115bdb2ebb5d",
      "parents": [
        "f19bffc4369c63729e66d0f5bb140ae7045a84d2"
      ],
      "author": {
        "name": "Brad House - Nexthop",
        "email": "bhouse@nexthop.ai",
        "time": "Fri Mar 06 18:51:15 2026 +0000"
      },
      "committer": {
        "name": "Brad House",
        "email": "bhouse@nexthop.ai",
        "time": "Wed Apr 15 13:42:21 2026 +0000"
      },
      "message": "Add bypassvlanoverlapcheck parameter to cloudstack_private_gateway resource\n\n- Add bypassvlanoverlapcheck optional parameter (defaults to false)\n- Parameter allows bypassing VLAN overlap checks during gateway creation\n- Update resource creation logic to pass parameter to CloudStack API\n- Add comprehensive test coverage:\n  - Test with bypass enabled\n  - Test default value (false)\n  - Update import test to ignore field (not returned by API)\n- Update documentation with examples and parameter description\n- All acceptance tests passing (4/4)\n"
    },
    {
      "commit": "f19bffc4369c63729e66d0f5bb140ae7045a84d2",
      "tree": "0f6ea64ad0878d8a4cad9df9267e8212b9ce6d1e",
      "parents": [
        "db69a0c8e9a188b7fa7f88d1e7ca1305b4f7ccb6"
      ],
      "author": {
        "name": "dahn",
        "email": "daan@onecht.net",
        "time": "Thu Apr 09 11:39:30 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 09 11:39:30 2026 +0200"
      },
      "message": "Upgrade Apache RAT from 0.17 to 0.18 (#290)\n\nCo-authored-by: Daan Hoogland \u003cdahn@apache.org\u003e"
    },
    {
      "commit": "db69a0c8e9a188b7fa7f88d1e7ca1305b4f7ccb6",
      "tree": "8a1f2bf28871307aed54fb6c3a0b77212d926933",
      "parents": [
        "47439a1465fb39335eaf1f376b9d61a6d2bfbee3"
      ],
      "author": {
        "name": "Brad House - Nexthop",
        "email": "bhouse@nexthop.ai",
        "time": "Wed Apr 08 10:17:05 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 08 16:17:05 2026 +0200"
      },
      "message": "Don\u0027t build and test EOL versions (#287)"
    },
    {
      "commit": "67d670ee4845a621867b6f08871b94bf99d3bd64",
      "tree": "258da3039032c05c1ecbfc5569287607b78eb138",
      "parents": [
        "845d6e364c1c4724c511f00ee176d4ef52f774f3"
      ],
      "author": {
        "name": "Curverneur",
        "email": "curverneur@curvania.de",
        "time": "Tue Mar 17 16:38:47 2026 +0100"
      },
      "committer": {
        "name": "Curverneur",
        "email": "curverneur@curvania.de",
        "time": "Tue Mar 17 16:38:47 2026 +0100"
      },
      "message": "renamed delete_protection terraform key, added tests for delete_protection in instance and disk resource\n"
    },
    {
      "commit": "47439a1465fb39335eaf1f376b9d61a6d2bfbee3",
      "tree": "9d0810284e5d3c916df7d532a4491dbeb5a2492d",
      "parents": [
        "16915b6926557720c001264cecdbe1c9caedd85c"
      ],
      "author": {
        "name": "dahn",
        "email": "daan@onecht.net",
        "time": "Tue Mar 10 08:58:08 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 10 13:28:08 2026 +0530"
      },
      "message": "Update collaborators in .asf.yaml (#286)"
    },
    {
      "commit": "845d6e364c1c4724c511f00ee176d4ef52f774f3",
      "tree": "da4112cb0167220285159b3a4bd3ab36316217f2",
      "parents": [
        "b17f0158e03c42f4f47f02dd113c31a5e226e043"
      ],
      "author": {
        "name": "Curverneur",
        "email": "curverneur@curvania.de",
        "time": "Thu Dec 18 10:02:53 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Dec 18 10:02:53 2025 +0100"
      },
      "message": "set computed to true\n\nCo-authored-by: Copilot \u003c175728472+Copilot@users.noreply.github.com\u003e"
    },
    {
      "commit": "b17f0158e03c42f4f47f02dd113c31a5e226e043",
      "tree": "5accd4194b41846567d47f6998d9fe3ded31c094",
      "parents": [
        "255ded21024b0c2dae30f0933ce95cb3fee7a3eb"
      ],
      "author": {
        "name": "Curverneur",
        "email": "curverneur@curvania.de",
        "time": "Thu Dec 18 10:02:37 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Dec 18 10:02:37 2025 +0100"
      },
      "message": "set computed to true\n\nCo-authored-by: Copilot \u003c175728472+Copilot@users.noreply.github.com\u003e"
    },
    {
      "commit": "255ded21024b0c2dae30f0933ce95cb3fee7a3eb",
      "tree": "ab91748f964578e651914f365fee0349eec1d878",
      "parents": [
        "d51a6cf4ec8c4da2af03aafb7a3f208cddfe3049"
      ],
      "author": {
        "name": "Curverneur",
        "email": "curverneur@curvania.de",
        "time": "Thu Dec 18 09:49:46 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Dec 18 09:49:46 2025 +0100"
      },
      "message": "fix typo\n\nCo-authored-by: Copilot \u003c175728472+Copilot@users.noreply.github.com\u003e"
    },
    {
      "commit": "d51a6cf4ec8c4da2af03aafb7a3f208cddfe3049",
      "tree": "27b9e1a1641443b9886a2854f7d40b8366602d0a",
      "parents": [
        "2cd02a6753057ee33fc654864360d02a41dfdbc0"
      ],
      "author": {
        "name": "Curverneur",
        "email": "curverneur@curvania.de",
        "time": "Tue Dec 16 14:20:16 2025 +0100"
      },
      "committer": {
        "name": "Curverneur",
        "email": "curverneur@curvania.de",
        "time": "Tue Dec 16 14:20:16 2025 +0100"
      },
      "message": "removed commented code\n"
    },
    {
      "commit": "2cd02a6753057ee33fc654864360d02a41dfdbc0",
      "tree": "48a63e15762ee7ad26107e4fb8e2afd9d73dd004",
      "parents": [
        "16915b6926557720c001264cecdbe1c9caedd85c"
      ],
      "author": {
        "name": "Curverneur",
        "email": "curverneur@curvania.de",
        "time": "Wed Dec 03 14:02:13 2025 +0100"
      },
      "committer": {
        "name": "Curverneur",
        "email": "curverneur@curvania.de",
        "time": "Wed Dec 03 14:02:13 2025 +0100"
      },
      "message": "added deleteprotection option for instances and disks\n"
    },
    {
      "commit": "16915b6926557720c001264cecdbe1c9caedd85c",
      "tree": "8ff3a0140c54b32c161c232326e084fa213b6b3b",
      "parents": [
        "6421746c7e8a732412f28e2378490a4d910516ac"
      ],
      "author": {
        "name": "Vishesh",
        "email": "8760112+vishesh92@users.noreply.github.com",
        "time": "Fri Oct 24 09:54:42 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 24 09:54:42 2025 +0530"
      },
      "message": "Fix docs structure (#259)\n\n"
    },
    {
      "commit": "6421746c7e8a732412f28e2378490a4d910516ac",
      "tree": "bcfdd7f59f5499e99f6659a00eb50eaf4eb93241",
      "parents": [
        "7267192476ac3bea4ce72cf3c472f99b2ee645ed"
      ],
      "author": {
        "name": "Pearl Dsilva",
        "email": "pearl1594@gmail.com",
        "time": "Wed Oct 22 09:12:56 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 22 18:42:56 2025 +0530"
      },
      "message": "Add support for userdata and linking to templates (#256)\n\n* Add support for userdata and linking to templates\n\n* add userdata resource and datasource\n\n* Update userdata to user_data and other comments"
    },
    {
      "commit": "7267192476ac3bea4ce72cf3c472f99b2ee645ed",
      "tree": "0c90a36407d127397f269e3621e1ed578e43a092",
      "parents": [
        "47b2bbfb0bc4751f981dccfae0bb2739b1aae25a"
      ],
      "author": {
        "name": "kiranchavala",
        "email": "kiranchavala@gmail.com",
        "time": "Tue Oct 21 19:18:49 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 21 19:18:49 2025 +0530"
      },
      "message": "updated autoscaleprofile doc (#255)\n\n"
    },
    {
      "commit": "47b2bbfb0bc4751f981dccfae0bb2739b1aae25a",
      "tree": "0880fab5b42c75c9a44349a3ff88f890bbe5467d",
      "parents": [
        "86fb0e4c15edbd32467756a0a5f45d50bd6b1dd3"
      ],
      "author": {
        "name": "Pearl Dsilva",
        "email": "pearl1594@gmail.com",
        "time": "Tue Oct 21 07:34:42 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 21 17:04:42 2025 +0530"
      },
      "message": "Add boot mode for instance (#251)\n\n* Add support boot mode when UEFI true\n\n* case insensitive check\n\n* add description \u0026 update doc"
    },
    {
      "commit": "86fb0e4c15edbd32467756a0a5f45d50bd6b1dd3",
      "tree": "df38b1bf7415e9ebfea482072aa41bd5c14321a0",
      "parents": [
        "01840be12b9d0a74e8eb4c84aeeea22a7f81f449"
      ],
      "author": {
        "name": "dahn",
        "email": "daan@onecht.net",
        "time": "Tue Oct 21 10:39:58 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 21 14:09:58 2025 +0530"
      },
      "message": "Upgrade Apache RAT to version 0.17 (#254)\n\n* Upgrade Apache RAT to version 0.17\n\n* Update RAT version in workflow configuration\n\n* update excludes file\n\n* proper regular expression\n\n---------\n\nCo-authored-by: Daan Hoogland \u003cdahn@apache.org\u003e"
    },
    {
      "commit": "01840be12b9d0a74e8eb4c84aeeea22a7f81f449",
      "tree": "7b7a5b3493d645ee590a4bd4b0aae995e640c986",
      "parents": [
        "f0615b8238b28b275e0e7022da10a8465f6e4bcc"
      ],
      "author": {
        "name": "Pearl Dsilva",
        "email": "pearl1594@gmail.com",
        "time": "Tue Oct 21 00:58:38 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 21 10:28:38 2025 +0530"
      },
      "message": "Add rule number to the terraform state (#245)\n\n* Add rule number to the terraform state\n\n* handle force replacement of existing acl rules in case of migration from ports to port\n\n* fix order of rules\n\n* Fix state values set for cks cluster to prevent unnecessary cluster replacement"
    },
    {
      "commit": "f0615b8238b28b275e0e7022da10a8465f6e4bcc",
      "tree": "557dca9e99c12c0398c82a1acca83bffba656c49",
      "parents": [
        "c50eed8d14dd33a70d522bcce88bc8d78e9607ca"
      ],
      "author": {
        "name": "Jtolelo",
        "email": "jeanvetorello@gmail.com",
        "time": "Fri Oct 17 10:12:45 2025 -0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 17 18:42:45 2025 +0530"
      },
      "message": "feat: Add service_offering_details support for GPU configuration (#247)\n\n* feat: Add service_offering_details support for GPU configuration\n\n- Add service_offering_details attribute to cloudstack_service_offering resource\n- Support for GPU configuration with pciDevice and vgpuType parameters\n- Include comprehensive test coverage and documentation\n- Add practical examples for GPU service offerings\n- Addresses issue #246\n\n* docs: Add documentation for service_offering_details feature\n\n- Update service offering documentation with GPU examples\n- Add service_offering_details parameter documentation\n- Update CHANGELOG with new feature entry\n- Include practical examples for GPU configuration\n\n* fix: Apply gofmt formatting to resource_cloudstack_service_offering.go\n\n- Fix code formatting to comply with Go standards\n- Align map fields and remove trailing whitespace\n- Required for CI/CD pipeline to pass\n\n* Add missing cpu_speed to GPU service offering test\n\nadd missing cpu_speed\n\n---------\n\nCo-authored-by: jean \u003cjean@jeans-MacBook-Pro.local\u003e"
    },
    {
      "commit": "c50eed8d14dd33a70d522bcce88bc8d78e9607ca",
      "tree": "a831967d6da9149bf85006ac506983c776488d2a",
      "parents": [
        "e53f30cccd94e06a771f131a27e1f50de4ed8753"
      ],
      "author": {
        "name": "Jtolelo",
        "email": "jeanvetorello@gmail.com",
        "time": "Fri Oct 17 10:12:24 2025 -0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 17 18:42:24 2025 +0530"
      },
      "message": "feature: add Quota plugin (#248)\n\n* feature: add Quota plugin\n\n* chore: add Apache License header to quota-related files\n\n* fix: update PreCheck functions to use quota support checks in quota-related tests\n\n---------\n\nCo-authored-by: jean \u003cjean@jeans-MacBook-Pro.local\u003e"
    },
    {
      "commit": "e53f30cccd94e06a771f131a27e1f50de4ed8753",
      "tree": "12bfd341a3f659576df4c37783ec302f9f913fa7",
      "parents": [
        "002668eb36bf3eadf28a576ecdd783e8e79903f2"
      ],
      "author": {
        "name": "Pearl Dsilva",
        "email": "pearl1594@gmail.com",
        "time": "Fri Oct 10 00:13:47 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 10 09:43:47 2025 +0530"
      },
      "message": "Deprecate usage of ports (port list) and add support to use updateNetworkAclItems API instead of recreating rules when modified (#242)\n\n* Deprecate usage of ports\n\n* add support to call updateNetworkAclItem when a rule is modified rather than re-creating\n\n* allow modifying rule number\n\n* update doc with examples and deprecation notice\n\n* address comment - modularize method"
    },
    {
      "commit": "002668eb36bf3eadf28a576ecdd783e8e79903f2",
      "tree": "29771b46c9eecd745783a55753cf8643e3a8ef0b",
      "parents": [
        "919a358fcc951724c2364ee363a9a055258b1fc3",
        "50979f0f45da0dcff9410311266e51e5ca52dda0"
      ],
      "author": {
        "name": "CodeBleu",
        "email": "400979+CodeBleu@users.noreply.github.com",
        "time": "Wed Oct 08 10:00:01 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 08 10:00:01 2025 -0400"
      },
      "message": "Merge pull request #240 from American-Cloud/network_acl_rule_fix\n\nfix: Enhance network ACL rule creation \u0026 reading"
    },
    {
      "commit": "50979f0f45da0dcff9410311266e51e5ca52dda0",
      "tree": "29771b46c9eecd745783a55753cf8643e3a8ef0b",
      "parents": [
        "919a358fcc951724c2364ee363a9a055258b1fc3"
      ],
      "author": {
        "name": "Jason Hollis",
        "email": "400979+CodeBleu@users.noreply.github.com",
        "time": "Tue Oct 07 13:37:52 2025 -0400"
      },
      "committer": {
        "name": "Jason Hollis",
        "email": "400979+CodeBleu@users.noreply.github.com",
        "time": "Tue Oct 07 13:37:52 2025 -0400"
      },
      "message": "fix: Enhance network ACL rule creation \u0026 reading\n\n    This commit addresses multiple issues in the `cloudstack_network_acl_rule` resource to improve reliability and compatibility with configurations lacking port specifications:\n\n    1. **Fix `aclid` usage in `createNetworkACLRule`**:\n       - Replaced `p.SetAclid(d.Id())` with `p.SetAclid(d.Get(\"acl_id\").(string))` to use the configured `acl_id` instead of the unset resource ID during creation. This resolves CloudStack API error 431 (CSExceptionErrorCode: 9999) caused by an empty `aclid` value.\n\n    2. **Support TCP/UDP rules without ports**:\n       - Modified `createNetworkACLRule` to create rules for TCP/UDP protocols when no ports are specified, using a default \"all ports\" rule with a UUID stored as `all_ports`. This ensures compatibility with configs omitting the optional `ports` attribute.\n       - Updated `resourceCloudStackNetworkACLRuleRead` to handle TCP/UDP rules with no ports, adding them to the state even if the `ports` set is empty.\n\n    3. **Add retry logic for API consistency**:\n       - Introduced retry logic in `resourceCloudStackNetworkACLRuleRead` using `retry.RetryContext` to handle eventual consistency in CloudStack\u0027s `ListNetworkACLs` API, retrying for up to 30 seconds if the API call fails or returns no rules.\n\n    4. **Improve validation in `verifyNetworkACLRuleParams`**:\n       - Relaxed validation to allow empty `ports` for TCP/UDP protocols, aligning with the schema where `ports` is optional. This prevents validation errors for configs without ports.\n\n    5. **Enhance logging for debugging**:\n       - Added detailed `[DEBUG]` and `[ERROR]` logs across `resourceCloudStackNetworkACLRuleCreate`, `createNetworkACLRules`, `createNetworkACLRule`, `resourceCloudStackNetworkACLRuleRead`, and `verifyNetworkACLRuleParams` to trace rule creation, validation, and API interactions.\n       - Included rule indices and detailed error messages in `createNetworkACLRules` for better error reporting.\n\n    6. **Defer `d.SetId` in `Create`**:\n       - Moved `d.SetId(d.Get(\"acl_id\").(string))` in `resourceCloudStackNetworkACLRuleCreate` to after successful rule creation to avoid premature state updates.\n\n    These changes resolve the \"Provider produced inconsistent result after apply: Root object was present, but now absent\" error by ensuring rules are created correctly and consistently read from CloudStack. The fixes also improve robustness for multi-rule configurations and eventual consistency scenarios.\n"
    },
    {
      "commit": "919a358fcc951724c2364ee363a9a055258b1fc3",
      "tree": "2d41848ac9c495c76d3c0f9d10fe67e1ff1085b9",
      "parents": [
        "e4ecc98ee38ca5f93d43fc529a5d2fb917d0f5f4"
      ],
      "author": {
        "name": "kiranchavala",
        "email": "kiranchavala@gmail.com",
        "time": "Tue Sep 30 13:34:53 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 30 13:34:53 2025 +0530"
      },
      "message": "updated goreleaser (#231)\n\n"
    },
    {
      "commit": "e4ecc98ee38ca5f93d43fc529a5d2fb917d0f5f4",
      "tree": "85925ed73bb5506740199b802d957c7480b6ad5b",
      "parents": [
        "c4602b53e9847d11340f65007ba8f246903b55d8"
      ],
      "author": {
        "name": "Pearl Dsilva",
        "email": "pearl1594@gmail.com",
        "time": "Mon Sep 29 08:35:35 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 29 14:35:35 2025 +0200"
      },
      "message": "Add support for the new parameters added to CKS cluster deployement (#230)\n\nCo-authored-by: vishesh92 \u003cvishesh92@gmail.com\u003e"
    },
    {
      "commit": "c4602b53e9847d11340f65007ba8f246903b55d8",
      "tree": "487deb345ce327ff790b71753f65d6fc0a223734",
      "parents": [
        "86dc4282d2ef604ec0492d3ebd9b9455b88ac777"
      ],
      "author": {
        "name": "Ian",
        "email": "ian.crouch@telus.com",
        "time": "Fri Sep 26 01:50:37 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 26 14:20:37 2025 +0530"
      },
      "message": "(docs): Fix formatting and links in README.md for clarity and consistency (#228)\n\n* Fix formatting and links in README.md for clarity and consistency\n\n* re-add License block for RAT"
    },
    {
      "commit": "86dc4282d2ef604ec0492d3ebd9b9455b88ac777",
      "tree": "9c36d650be962a42c0bdf9c2e5dcf08b7657ec10",
      "parents": [
        "f79a66ba6b982d38d5b84f16c0b92f47404e79c5"
      ],
      "author": {
        "name": "Pearl Dsilva",
        "email": "pearl1594@gmail.com",
        "time": "Thu Sep 25 03:33:05 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 25 13:03:05 2025 +0530"
      },
      "message": "Add support for autoscale VM groups (#213)\n\n* Add support for Autoscale VM groups\n\n* register resources\n\n* Add support for datasources for all autoscale resources\n\n* add support to delete asg with cleanup. Support to enable and disable asg\n\n* fix conflict\n\n* add documentation\n\n* update\n\n* update go sdk version\n\n* wait for asg to move to disabled state before making modifications to lb rule associated to an asg or autoscale vm profile\n\n---------\n\nCo-authored-by: dahn \u003cdaan@onecht.net\u003e"
    },
    {
      "commit": "f79a66ba6b982d38d5b84f16c0b92f47404e79c5",
      "tree": "b4ec466caad02b2a85fa1be93d3d6fdafb965e73",
      "parents": [
        "3bebccd85436172678c04ecaf6b1486c635eaa91"
      ],
      "author": {
        "name": "kiranchavala",
        "email": "kiranchavala@gmail.com",
        "time": "Tue Sep 23 18:30:16 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 23 18:30:16 2025 +0530"
      },
      "message": "added doc to cks and acl rule (#229)\n\n"
    },
    {
      "commit": "3bebccd85436172678c04ecaf6b1486c635eaa91",
      "tree": "369a1fa63a96db5ce5c9ef2b0ec5c0452f83a7c7",
      "parents": [
        "5105978d386edd76a89a53e74c291ba664490953"
      ],
      "author": {
        "name": "Pearl Dsilva",
        "email": "pearl1594@gmail.com",
        "time": "Tue Sep 23 01:46:19 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 23 11:16:19 2025 +0530"
      },
      "message": "Add support to import ACL rules by ACL id (#224)\n\n* Add support to import ACL rules by ACL id\n\n* remove id being set to aclid\n\n* remove id being set to aclid"
    },
    {
      "commit": "5105978d386edd76a89a53e74c291ba664490953",
      "tree": "e79295511f77218e3224e05bc767f893b577bb12",
      "parents": [
        "96f287ac61122f05e385fb3df6a426965be18dae"
      ],
      "author": {
        "name": "Pearl Dsilva",
        "email": "pearl1594@gmail.com",
        "time": "Mon Sep 22 13:28:45 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 22 22:58:45 2025 +0530"
      },
      "message": "Add support for snapshot policies (#223)\n\n* Add support for snapshot policies\n\n* fix test\n\n* update doc\n\n* fix test\n\n* fix test\n\n* update test\n\n* update test to use cardinals as opposed to frequency of interval type\n\n* add forceNew if the policy is modified to recreate the resource + fix test\n\n* update test\n\n* update test\n\n* test\n\n* handle tags"
    },
    {
      "commit": "96f287ac61122f05e385fb3df6a426965be18dae",
      "tree": "730be75f88292354a6754e5b98e7d8bc955b5d3c",
      "parents": [
        "afa7a18188519a08fee753432a82f1c50844d2c4"
      ],
      "author": {
        "name": "Ian",
        "email": "ian.crouch@telus.com",
        "time": "Thu Sep 18 05:08:04 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 18 14:08:04 2025 +0200"
      },
      "message": "Add `cloudstack_limits` data source and resource  (#197)\n\n"
    },
    {
      "commit": "afa7a18188519a08fee753432a82f1c50844d2c4",
      "tree": "10d3a60908a09bb2dd74a3ac68a753e287d3bd5e",
      "parents": [
        "5191290128f0b785eb43bd78bd3010d01c6ae284"
      ],
      "author": {
        "name": "Ian",
        "email": "ian.crouch@telus.com",
        "time": "Tue Sep 16 06:41:16 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 16 19:11:16 2025 +0530"
      },
      "message": "Add `cloudstack_project` resource (#167)\n\n* Add CloudStack project resource\n\n* Add test for empty display_text defaulting to name value\n\n* Uncomment and implement tests for accountid and userid in project resource\n\n* Minor README Fix\n\n* Update display_text to required for API compatibility and adjust documentation\n\n* Clean up tests for 4.20.1.0\n\n* fix: include domain ID when looking up projects by ID\n\nFix issue where getProjectByID() would always return \"id not found\" while\ngetProjectByName() could find the same project. CloudStack projects are only\nunique within a domain context, so we now include domain ID in lookups.\n\n- Modified getProjectByID() to accept optional domain parameter\n- Updated all calls to include domain when available\n- Updated test functions accordingly\n- Updated documentation to clarify domain requirement for project imports\n\n* feat: add cloudstack_project data source and corresponding tests\n\n* remove rogue testing script\n\n* Update cloudstack/resource_cloudstack_project.go\n\nCo-authored-by: Copilot \u003c175728472+Copilot@users.noreply.github.com\u003e\n\n* adding domain validation to ensure projects are only reused within the intended scope\n\nCo-authored-by: Copilot \u003c175728472+Copilot@users.noreply.github.com\u003e\n\n* Updated cloudstack go sdk to v2.17.1 (#193)\n\n* Fix creation of firewall \u0026 Egress firewall rules when created in a project\n\n* chore(deps): bump github.com/cloudflare/circl from 1.3.7 to 1.6.1\n\nBumps [github.com/cloudflare/circl](https://github.com/cloudflare/circl) from 1.3.7 to 1.6.1.\n- [Release notes](https://github.com/cloudflare/circl/releases)\n- [Commits](https://github.com/cloudflare/circl/compare/v1.3.7...v1.6.1)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/cloudflare/circl\n  dependency-version: 1.6.1\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* resolve retrieveError issue\n\n* Update cloudstack/resource_cloudstack_project.go\n\nCo-authored-by: Copilot \u003c175728472+Copilot@users.noreply.github.com\u003e\n\n* Update cloudstack/resource_cloudstack_project.go\n\nCo-authored-by: Copilot \u003c175728472+Copilot@users.noreply.github.com\u003e\n\n* Change display_text field from required to optional in resourceCloudStackProject\n\n* Pin github actions version for opentofu\n\n* rat + excludes and add licenses to other files (#200)\n\n* readme: add specific test instruction in readme (#211)\n\nAdd instructions for specific test execution\n\n* data: get vpc in project by project name (#209)\n\n* Support additional parameters for cloudstack_nic resource (#210)\n\n* serviceoffering: add params for custom offering, storage tags, encryptroot (#212)\n\n* Support desc and ruleId in create_network_acl_rule\n\n* fix review comment\n\n* change rule_id -\u003e rule_number and add doc\n\n* add params in unit tests\n\n* verify description and rule_number in unit test\n\n* use fields defined in schema\n\n* fix test verification sequence\n\n* handle review comments\n\n* Add support for additional optional parameters for creating network offerings (#205)\n\n* Add disk_offering \u0026 override_disk_offering to instance resource\n\n* Update website/docs/r/instance.html.markdown\n\nCo-authored-by: Copilot \u003c175728472+Copilot@users.noreply.github.com\u003e\n\n* Allow specifying private end port \u0026 public end port for port forward rules\n\n* Update tests\n\n* Add `cloudstack_physicalnetwork` and some underlying additional resources (#201)\n\n* feat: add cidrlist parameter to loadbalancer rule (#147)\n\n* feat: add cloudstack_project resource to provider\n\n* fix: update display_text to displaytext in project resource and tests.\nfix: update lookup to use getAccountNameByID helper function\n\n* fix: rename display_text to displaytext in project resource and tests\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: Copilot \u003c175728472+Copilot@users.noreply.github.com\u003e\nCo-authored-by: Suresh Kumar Anaparti \u003csureshkumar.anaparti@gmail.com\u003e\nCo-authored-by: Pearl Dsilva \u003cpearl1594@gmail.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: vishesh92 \u003cvishesh92@gmail.com\u003e\nCo-authored-by: dahn \u003cdaan@onecht.net\u003e\nCo-authored-by: Manoj Kumar \u003cmanojkr.itbhu@gmail.com\u003e\nCo-authored-by: Wei Zhou \u003cweizhou@apache.org\u003e\nCo-authored-by: Abhishek Kumar \u003cabhishek.mrt22@gmail.com\u003e\nCo-authored-by: ABW \u003c49398549+chrxmvtik@users.noreply.github.com\u003e"
    },
    {
      "commit": "5191290128f0b785eb43bd78bd3010d01c6ae284",
      "tree": "a95ddf663eecd456efb13420acab6a7969a98203",
      "parents": [
        "63f866bc0f694d8239f69336bd8fb264dd9d683b"
      ],
      "author": {
        "name": "Ian",
        "email": "ian.crouch@telus.com",
        "time": "Tue Sep 16 05:47:22 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 16 14:47:22 2025 +0200"
      },
      "message": "add cloudstack_cluster data source and documentation (#222)\n\n"
    },
    {
      "commit": "63f866bc0f694d8239f69336bd8fb264dd9d683b",
      "tree": "31c31c2ea7b60a7b8f8012e4e25d993a6682ba57",
      "parents": [
        "3021ce2e1a3e735e1ff058d70171dc781ed50c6f"
      ],
      "author": {
        "name": "poddm",
        "email": "8801231+poddm@users.noreply.github.com",
        "time": "Mon Sep 15 23:45:23 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 16 12:15:23 2025 +0530"
      },
      "message": "service offering.  sdk framework rewrite (#138)\n\n* sdk framework rewrite\n\n* adding description to schema fields\n\n* fixing domainids value error\n\n* Adding better cpu_speed description for vmware, xen and kvm\n\n* cleaned up comments\n\n* Adding service offering details\n\n* Adding license header to files.  Fixed an issue with setting zone ids to null, moved storage_tags field to nested block disk_offering\n\n* add missing set blocks\n\n* Update cloudstack/service_offering_schema.go\n\n* add documentation\n\n---------\n\nCo-authored-by: CodeBleu \u003c400979+CodeBleu@users.noreply.github.com\u003e"
    },
    {
      "commit": "3021ce2e1a3e735e1ff058d70171dc781ed50c6f",
      "tree": "319ddd76e276766c9eeade8b7a81f89b1c142706",
      "parents": [
        "d49703e3539f7af2f538ec45a3af29345bf4c3a2",
        "e7c2b945c672ba5e58a304a0b5313901c82154b1"
      ],
      "author": {
        "name": "kiranchavala",
        "email": "kiranchavala@gmail.com",
        "time": "Mon Sep 15 18:42:15 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 15 18:42:15 2025 +0530"
      },
      "message": "Merge pull request #154 from JSpon/cks-upgrades\n\nCKS registry and state updates"
    },
    {
      "commit": "d49703e3539f7af2f538ec45a3af29345bf4c3a2",
      "tree": "f8b56a6e7b7aab22f9584f030a52c50bcaa2b3f5",
      "parents": [
        "460bfefcf82e5d743d18d011c3c910ef13ddf4f2"
      ],
      "author": {
        "name": "Bernardo De Marco Gonçalves",
        "email": "bernardomg2004@gmail.com",
        "time": "Mon Sep 15 03:53:34 2025 -0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 15 08:53:34 2025 +0200"
      },
      "message": "add acl_id missing required parameter for the example usage of private gateways (#180)\n\n"
    },
    {
      "commit": "460bfefcf82e5d743d18d011c3c910ef13ddf4f2",
      "tree": "6f66335e534c6ee2eb83864f1c729cf7284552d9",
      "parents": [
        "6fbf6ff25807d766624c1f0a4d0152f65bdc50f2",
        "ae52fee441dd9746b2a139ba02acf62c41642dc9"
      ],
      "author": {
        "name": "kiranchavala",
        "email": "kiranchavala@gmail.com",
        "time": "Mon Sep 15 10:30:15 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 15 10:30:15 2025 +0530"
      },
      "message": "Merge pull request #67 from poddm/zonewizard\n\nZonewizard"
    },
    {
      "commit": "ae52fee441dd9746b2a139ba02acf62c41642dc9",
      "tree": "6f66335e534c6ee2eb83864f1c729cf7284552d9",
      "parents": [
        "07a83b5ebd2ed9ccdd57297cae5aaa3d10b8a9af"
      ],
      "author": {
        "name": "poddm",
        "email": "8801231+poddm@users.noreply.github.com",
        "time": "Wed Sep 10 19:30:58 2025 -0700"
      },
      "committer": {
        "name": "poddm",
        "email": "8801231+poddm@users.noreply.github.com",
        "time": "Wed Sep 10 19:30:58 2025 -0700"
      },
      "message": "updates\n"
    },
    {
      "commit": "07a83b5ebd2ed9ccdd57297cae5aaa3d10b8a9af",
      "tree": "d137a3e16d95a15c46ccfc42bbfbfa705c42465f",
      "parents": [
        "522a08a2b5ebe00f010a6496d098f4e24c6bf2c8"
      ],
      "author": {
        "name": "poddm",
        "email": "8801231+poddm@users.noreply.github.com",
        "time": "Wed Sep 10 18:42:53 2025 -0700"
      },
      "committer": {
        "name": "poddm",
        "email": "8801231+poddm@users.noreply.github.com",
        "time": "Wed Sep 10 18:42:53 2025 -0700"
      },
      "message": "updates\n"
    },
    {
      "commit": "522a08a2b5ebe00f010a6496d098f4e24c6bf2c8",
      "tree": "b3a6b5af619c7e4ac169bbc12402bef08ec20f47",
      "parents": [
        "da04d93e36083363ba8944950f8f0757c0181a9f"
      ],
      "author": {
        "name": "poddm",
        "email": "8801231+poddm@users.noreply.github.com",
        "time": "Wed Sep 10 16:42:38 2025 -0700"
      },
      "committer": {
        "name": "poddm",
        "email": "8801231+poddm@users.noreply.github.com",
        "time": "Wed Sep 10 16:42:38 2025 -0700"
      },
      "message": "updates\n"
    },
    {
      "commit": "da04d93e36083363ba8944950f8f0757c0181a9f",
      "tree": "fab0063464dbeaffa4f32a125941bec3ee4c7d01",
      "parents": [
        "573b89ac97d4e63c8d864cdbade416da6f03926b"
      ],
      "author": {
        "name": "poddm",
        "email": "8801231+poddm@users.noreply.github.com",
        "time": "Wed Sep 10 16:10:12 2025 -0700"
      },
      "committer": {
        "name": "poddm",
        "email": "8801231+poddm@users.noreply.github.com",
        "time": "Wed Sep 10 16:10:12 2025 -0700"
      },
      "message": "updates\n"
    },
    {
      "commit": "573b89ac97d4e63c8d864cdbade416da6f03926b",
      "tree": "d2848641e7b4585c3d2ba7955a2102ea0c7f042d",
      "parents": [
        "2003ec4c7d0a772eb400661e094fe87b2f243eee"
      ],
      "author": {
        "name": "poddm",
        "email": "8801231+poddm@users.noreply.github.com",
        "time": "Wed Sep 10 14:55:48 2025 -0700"
      },
      "committer": {
        "name": "poddm",
        "email": "8801231+poddm@users.noreply.github.com",
        "time": "Wed Sep 10 14:55:48 2025 -0700"
      },
      "message": "updates\n"
    },
    {
      "commit": "2003ec4c7d0a772eb400661e094fe87b2f243eee",
      "tree": "fb40239a72eabe385287e2ca92ef4c466762b2a9",
      "parents": [
        "3e877e2757f5abd2132d196c349896297f05d2ee"
      ],
      "author": {
        "name": "poddm",
        "email": "8801231+poddm@users.noreply.github.com",
        "time": "Wed Sep 10 14:48:09 2025 -0700"
      },
      "committer": {
        "name": "poddm",
        "email": "8801231+poddm@users.noreply.github.com",
        "time": "Wed Sep 10 14:48:09 2025 -0700"
      },
      "message": "updates\n"
    },
    {
      "commit": "3e877e2757f5abd2132d196c349896297f05d2ee",
      "tree": "24eafa8b7ef551ae09e7c3a1eb2692d98682aaff",
      "parents": [
        "7e688e6057cdf892f52f382b61d1d15c791876da"
      ],
      "author": {
        "name": "poddm",
        "email": "8801231+poddm@users.noreply.github.com",
        "time": "Wed Sep 10 13:29:59 2025 -0700"
      },
      "committer": {
        "name": "poddm",
        "email": "8801231+poddm@users.noreply.github.com",
        "time": "Wed Sep 10 13:29:59 2025 -0700"
      },
      "message": "update tests\n"
    },
    {
      "commit": "7e688e6057cdf892f52f382b61d1d15c791876da",
      "tree": "84e2737c4fa3a1894391de89597b6906292c106c",
      "parents": [
        "ff6d28fb3b79f8f0882b088d58e2c50de38ac397"
      ],
      "author": {
        "name": "poddm",
        "email": "8801231+poddm@users.noreply.github.com",
        "time": "Wed Sep 10 13:22:36 2025 -0700"
      },
      "committer": {
        "name": "poddm",
        "email": "8801231+poddm@users.noreply.github.com",
        "time": "Wed Sep 10 13:22:36 2025 -0700"
      },
      "message": "traffic type conflicts\n"
    },
    {
      "commit": "ff6d28fb3b79f8f0882b088d58e2c50de38ac397",
      "tree": "718a640e5659d30bccb5f5c01331ece123c01b37",
      "parents": [
        "4e3240370f471212251c4aa8aeb02d6e6af2dfda"
      ],
      "author": {
        "name": "poddm",
        "email": "8801231+poddm@users.noreply.github.com",
        "time": "Wed Sep 10 13:14:57 2025 -0700"
      },
      "committer": {
        "name": "poddm",
        "email": "8801231+poddm@users.noreply.github.com",
        "time": "Wed Sep 10 13:14:57 2025 -0700"
      },
      "message": "physical network conflicts\n"
    },
    {
      "commit": "4e3240370f471212251c4aa8aeb02d6e6af2dfda",
      "tree": "28b3260642d209136b3a683a5fe2fcc39f8d52a3",
      "parents": [
        "b70cce47ada9c3d2b2ae03459b97226afd464e7f"
      ],
      "author": {
        "name": "poddm",
        "email": "8801231+poddm@users.noreply.github.com",
        "time": "Wed Sep 10 13:00:26 2025 -0700"
      },
      "committer": {
        "name": "poddm",
        "email": "8801231+poddm@users.noreply.github.com",
        "time": "Wed Sep 10 13:00:26 2025 -0700"
      },
      "message": "fix formatting\n"
    },
    {
      "commit": "b70cce47ada9c3d2b2ae03459b97226afd464e7f",
      "tree": "864e81205b9b0e06b1911607556a729e052b8564",
      "parents": [
        "1c47c38c9e06e105c6eedb81fbcfab6627b484b5"
      ],
      "author": {
        "name": "poddm",
        "email": "8801231+poddm@users.noreply.github.com",
        "time": "Wed Sep 10 12:47:08 2025 -0700"
      },
      "committer": {
        "name": "poddm",
        "email": "8801231+poddm@users.noreply.github.com",
        "time": "Wed Sep 10 12:47:08 2025 -0700"
      },
      "message": "rebase\n"
    },
    {
      "commit": "1c47c38c9e06e105c6eedb81fbcfab6627b484b5",
      "tree": "afb96332db9c523a54bfce3b2acd3c2a374ef72c",
      "parents": [
        "2cc91b9d86d7faf03f9f5671858aeeee75f5fdb4"
      ],
      "author": {
        "name": "Poddo, Michael (mp940m)",
        "email": "8801231+poddm@users.noreply.github.com",
        "time": "Tue Oct 29 11:33:04 2024 -0700"
      },
      "committer": {
        "name": "poddo, michael",
        "email": "mp940m@att.com",
        "time": "Wed Sep 10 07:17:33 2025 -0700"
      },
      "message": "Adding schema descriptions\n"
    },
    {
      "commit": "2cc91b9d86d7faf03f9f5671858aeeee75f5fdb4",
      "tree": "0492558faff44493dba0681fc8e950aba6192630",
      "parents": [
        "9190fa61c93f9e41a3525bece0fe05dafb090051"
      ],
      "author": {
        "name": "Poddo, Michael (mp940m)",
        "email": "8801231+poddm@users.noreply.github.com",
        "time": "Tue Oct 29 10:09:49 2024 -0700"
      },
      "committer": {
        "name": "poddo, michael",
        "email": "mp940m@att.com",
        "time": "Wed Sep 10 07:17:33 2025 -0700"
      },
      "message": "updating pod fields from string to slice\n"
    },
    {
      "commit": "9190fa61c93f9e41a3525bece0fe05dafb090051",
      "tree": "04b9f6ab0836ded2d880829f69a0021730371f56",
      "parents": [
        "f24347b8e0694067efcad00d9f2dc261dd8daf20"
      ],
      "author": {
        "name": "Poddo, Michael (mp940m)",
        "email": "8801231+poddm@users.noreply.github.com",
        "time": "Mon Oct 28 16:03:02 2024 -0700"
      },
      "committer": {
        "name": "poddo, michael",
        "email": "mp940m@att.com",
        "time": "Wed Sep 10 07:17:18 2025 -0700"
      },
      "message": "updating conflicting start_ip in ACC\n"
    }
  ],
  "next": "f24347b8e0694067efcad00d9f2dc261dd8daf20"
}
