scaleway-sdk-python icon indicating copy to clipboard operation
scaleway-sdk-python copied to clipboard

Breaking change in v2.10.x: User and Server models require new mandatory fields

Open achantavy opened this issue 2 months ago • 0 comments

Community Note

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
  • Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment

Command attempted

from datetime import datetime
from dateutil.tz import tzutc
from scaleway.iam.v1alpha1 import User
from scaleway.instance.v1 import Server

# This fails with: TypeError: User.__init__() missing 4 required positional arguments:
# 'first_name', 'last_name', 'phone_number', and 'locale'
user = User(
    id="998cbe72-913f-4f55-8620-4b0f7655d343",
    email="[email protected]",
    username="[email protected]",
    organization_id="0681c477-fbb9-4820-b8d6-0eef10cfcd6d",
    created_at=datetime(2025, 3, 20, 7, 39, 54, 526837, tzinfo=tzutc()),
    updated_at=datetime(2025, 6, 20, 9, 19, 54, 496281, tzinfo=tzutc()),
    deletable=False,
    type_="owner",
    status="activated",
    mfa=True,
    account_root_user_id="db2c157f-0ae0-4f9c-aa24-bcccba549e52",
    tags=[],
    locked=False,
    last_login_at=datetime(2025, 6, 20, 9, 19, 54, 502555, tzinfo=tzutc()),
    two_factor_enabled=True,
)

# This fails with: TypeError: Server.__init__() missing 2 required positional arguments:
# 'filesystems' and 'end_of_service'
server = Server(
    id="345627e9-18ff-47e0-b73d-3f38fddb4390",
    name="demo-server",
    organization="0681c477-fbb9-4820-b8d6-0eef10cfcd6d",
    project="0681c477-fbb9-4820-b8d6-0eef10cfcd6d",
    # ... other fields omitted for brevity
    zone="fr-par-1",
)

Expected Behavior

The User and Server objects should be instantiable with the fields that were previously sufficient, or the new fields (first_name, last_name, phone_number, locale for User and filesystems, end_of_service for Server) should have default values or be optional parameters.

This code worked in previous SDK versions without these additional required fields.

Actual Behavior

SDK version 2.10.x introduces breaking changes where these models now require additional positional arguments:

  TypeError: User.__init__() missing 4 required positional arguments: 'first_name', 'last_name', 'phone_number', and 
  'locale'

  TypeError: Server.__init__() missing 2 required positional arguments: 'filesystems' and 'end_of_service'

These breaking changes cause existing code that creates these model instances to fail at import time.

More info

SDK-Python version: 2.10.2

Python version: 3.12.8

OS version: macOS Darwin 25.0.0

Additional context:

  • We're calling these objects just for test generation code in https://github.com/cartography-cncf/cartography.
  • https://github.com/cartography-cncf/cartography/issues/2003

We'll update our test code properly but figured I'd file an issue and say hi :D

Thanks for your time!

achantavy avatar Oct 14 '25 23:10 achantavy