update_segment
Modify network segment configurations in VMware NSX by updating display names or gateway CIDR settings through partial PATCH operations.
Instructions
Update an existing network segment (partial update via PATCH).
Args: segment_id: The segment ID to update. display_name: New display name (optional). subnet: New gateway CIDR (optional). target: Optional NSX Manager target name from config. Uses default if omitted.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| segment_id | Yes | ||
| display_name | No | ||
| subnet | No | ||
| target | No |
Implementation Reference
- vmware_nsx/ops/segment_mgmt.py:89-128 (handler)The core implementation of the update_segment operation which performs the API PATCH request to NSX.
def update_segment(client: NsxClient, segment_id: str, **kwargs: Any) -> dict: """Partial-update an existing segment via PATCH. Supported kwargs: display_name, admin_state, subnets, vlan_ids, connectivity_path, transport_zone_path. Args: client: Authenticated NSX API client. segment_id: Segment identifier to update. **kwargs: Fields to update. Returns: Updated segment dict from NSX API. """ _validate_id(segment_id) allowed_fields = { "display_name", "admin_state", "subnets", "vlan_ids", "connectivity_path", "transport_zone_path", } body: dict[str, Any] = {} for key, value in kwargs.items(): if key not in allowed_fields: raise ValueError( f"Field '{key}' is not updatable. " f"Allowed: {', '.join(sorted(allowed_fields))}" ) body[key] = value if not body: raise ValueError("No update fields provided.") path = f"/policy/api/v1/infra/segments/{segment_id}" result = client.patch(path, body) _log.info("Updated segment %s: %s", segment_id, list(body.keys())) return result - mcp_server/server.py:411-428 (handler)The MCP tool handler function that exposes update_segment, wrapping the call to the operation logic.
def update_segment( segment_id: str, display_name: str | None = None, subnet: str | None = None, target: str | None = None, ) -> dict: """Update an existing network segment (partial update via PATCH). Args: segment_id: The segment ID to update. display_name: New display name (optional). subnet: New gateway CIDR (optional). target: Optional NSX Manager target name from config. Uses default if omitted. """ from vmware_nsx.ops.segment_mgmt import update_segment as _update client = _get_connection(target) return _update(client, segment_id, display_name=display_name, subnet=subnet)