Skip to content

v0.75.0

Choose a tag to compare

@uibm uibm released this 10 Nov 04:51
· 28 commits to master since this release
d98bdde

Highlights

  • API version bumped to 2025-11-04

  • New region: in-che (India, Chennai) added to service URL map.

  • VPN Gateway: Advertised CIDRs (route mode) :

    • ListVPNGatewayAdvertisedCIDRs
    • AddVPNGatewayAdvertisedCIDR
    • CheckVPNGatewayAdvertisedCIDR
    • RemoveVPNGatewayAdvertisedCIDR
  • VPN Gateway: Service Connections

    • ListVPNGatewayServiceConnections
    • GetVPNGatewayServiceConnection
  • Dynamic Route Mode (BGP) plumbing added across models, patches, and prototypes.

  • Optimistic concurrency for VPN gateway connections via optional If-Match on DELETE and PATCH.

  • Multiple fields tightened from optional → required (potentially breaking).

New Features

VPN Gateway: Advertised CIDRs (Route Mode)

  • Endpoints surfaced with options and models to manage static prefixes advertised by routing protocols:

    • Methods: ListVPNGatewayAdvertisedCIDRs, AddVPNGatewayAdvertisedCIDR, CheckVPNGatewayAdvertisedCIDR, RemoveVPNGatewayAdvertisedCIDR

    • Models/Options:

      • VPNGatewayAdvertisedCIDRCollection
      • ListVPNGatewayAdvertisedCIDRsOptions, AddVPNGatewayAdvertisedCIDROptions, CheckVPNGatewayAdvertisedCIDROptions, RemoveVPNGatewayAdvertisedCIDROptions

VPN Gateway: Service Connections

  • Methods: ListVPNGatewayServiceConnections, GetVPNGatewayServiceConnection
  • Pagination supported on list (start, limit).
  • Options/Models: ListVPNGatewayServiceConnectionsOptions, GetVPNGatewayServiceConnectionOptions, VPNGatewayServiceConnectionCollection, VPNGatewayServiceConnection

Dynamic Route Mode & BGP

  • New structures to represent dynamic route mode configuration and state:

    • Local identity: VPNGatewayConnectionDynamicRouteModeLocal, ...LocalPrototype
    • Peer side: VPNGatewayConnectionDynamicRouteModePeer (+ address/fqdn variants) and ...PeerPrototype
    • Tunnel state & prototypes: VPNGatewayConnectionDynamicRouteModeTunnel, VPNGatewayConnectionTunnel, VPNGatewayConnectionTunnelPrototype
  • VPNGatewayConnectionPatch gains:

    • routing_protocol ("none" | "bgp")
    • tunnels (array of VPNGatewayConnectionTunnel)
  • VPNGatewayConnectionPrototype gains tunnels (array of VPNGatewayConnectionTunnelPrototype)

  • VPNGatewayConnectionPeerPatch gains asn (with restricted-ASN guard in docs)

VPN Gateway Model Extensions

  • VPNGateway now includes:

    • advertised_cidrs (static prefixes to advertise)
    • local_asn (gateway/local ASN)

New Region

  • GetServiceURLForRegion now maps in-che -> https://in-che.iaas.cloud.ibm.com/v1

Enhancements

Concurrency Control on VPN Connections

  • DeleteVPNGatewayConnectionOptions and UpdateVPNGatewayConnectionOptions gain optional IfMatch.

    • SDK sets If-Match header when provided; delete/update will fail on ETag mismatch.

Documentation/Comment Clarifications

  • Primary IP comments for CreateInstanceNetworkInterfaceOptions and NetworkInterfacePrototype reflowed for clarity (no semantic change).
  • InstanceProfileCollection.profiles description clarified (“The virtual server instance profiles.”).

Guide

  1. Use ETags for safer updates

    • For delete/patch on VPN gateway connections, supply the last-seen ETag via IfMatch to avoid lost updates:
    _, err := vpc.UpdateVPNGatewayConnection(
      &vpcv1.UpdateVPNGatewayConnectionOptions{
        VPNGatewayID: core.StringPtr(gwID),
        ID:           core.StringPtr(connID),
        IfMatch:      core.StringPtr(etag),
        VPNGatewayConnectionPatch: map[string]interface{}{
          "routing_protocol": "bgp",
        },
      },
    )
  2. Manage advertised CIDRs

    • List/add/check/remove static CIDRs on route-mode gateways:
    // Add a prefix
    _, err := vpc.AddVPNGatewayAdvertisedCIDR(
      vpc.NewAddVPNGatewayAdvertisedCIDROptions(gwID, "10.10.0.0/16"),
    )
    // Verify presence
    _, err = vpc.CheckVPNGatewayAdvertisedCIDR(
      vpc.NewCheckVPNGatewayAdvertisedCIDROptions(gwID, "10.10.0.0/16"),
    )
    // List all
    col, _, _ := vpc.ListVPNGatewayAdvertisedCIDRs(
      vpc.NewListVPNGatewayAdvertisedCIDRsOptions(gwID),
    )
  3. Enable dynamic route mode (BGP) tunnels

    • When creating or patching route-mode connections using BGP, supply tunnel IPs and, if needed, peer ASN/IKE identity:
    tunnel := &vpcv1.VPNGatewayConnectionTunnelPrototype{
      NeighborIP:        &vpcv1.IP{Address: core.StringPtr("169.254.0.2")},
      TunnelInterfaceIP: &vpcv1.IP{Address: core.StringPtr("169.254.0.1")},
    }
    proto := &vpcv1.VPNGatewayConnectionPrototype{
      Mode:            core.StringPtr("route"),
      RoutingProtocol: core.StringPtr("bgp"),
      Tunnels:         []vpcv1.VPNGatewayConnectionTunnelPrototype{*tunnel},
    }

SDK Summary (Additions)

  • Methods:
    ListVPNGatewayAdvertisedCIDRs, AddVPNGatewayAdvertisedCIDR, CheckVPNGatewayAdvertisedCIDR, RemoveVPNGatewayAdvertisedCIDR, ListVPNGatewayServiceConnections, GetVPNGatewayServiceConnection
  • Options:
    ListVPNGatewayAdvertisedCIDRsOptions, AddVPNGatewayAdvertisedCIDROptions, CheckVPNGatewayAdvertisedCIDROptions, RemoveVPNGatewayAdvertisedCIDROptions, ListVPNGatewayServiceConnectionsOptions, GetVPNGatewayServiceConnectionOptions
  • Models / Patches / Prototypes:
    VPNGatewayAdvertisedCIDRCollection, dynamic-route models listed above, VPNGateway.advertised_cidrs, VPNGateway.local_asn, VPNGatewayConnectionPatch.routing_protocol, VPNGatewayConnectionPatch.tunnels, VPNGatewayConnectionPeerPatch.asn, VPNGatewayConnectionTunnel(Prototype)