Skip to content

Configuration Version Sources Enum is incomplete #93

@ibm-richard

Description

@ibm-richard

python-tfe version

0.1.2

Description

reading a configuration version fails with a Pydantic Exception because the ConfigurationSource Enum does not include terraform+cloud

Traceback (most recent call last):
  File "/Users/richardboyd/Developer/hcp-200/./gadgets/start_run/scratch.py", line 117, in <module>
    main()
    ~~~~^^
  File "/Users/richardboyd/Developer/hcp-200/./gadgets/start_run/scratch.py", line 103, in main
    cv = tfe_client.configuration_versions.read(run.configuration_version.id)
  File "/Users/richardboyd/Developer/hcp-200/.venv/lib/python3.14/site-packages/pytfe/resources/configuration_version.py", line 105, in read
    return self.read_with_options(cv_id, None)
           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/Users/richardboyd/Developer/hcp-200/.venv/lib/python3.14/site-packages/pytfe/resources/configuration_version.py", line 123, in read_with_options
    return self._parse_configuration_version(response_data["data"])
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/richardboyd/Developer/hcp-200/.venv/lib/python3.14/site-packages/pytfe/resources/configuration_version.py", line 253, in _parse_configuration_version
    return ConfigurationVersion(**cv_data)
  File "/Users/richardboyd/Developer/hcp-200/.venv/lib/python3.14/site-packages/pydantic/main.py", line 250, in __init__
    validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
pydantic_core._pydantic_core.ValidationError: 1 validation error for ConfigurationVersion
source
  Input should be 'tfe-api', 'bitbucket', 'github', 'gitlab', 'ado' or 'terraform' [type=enum, input_value='terraform+cloud', input_type=str]
    For further information visit https://errors.pydantic.dev/2.12/v/enum

Testing plan

HCP Terraform run from a non-VCS backed workspace.

    run = tfe_client.runs.read_with_options("run-TBPZqmNB84cNxCig", options=run_read_opts)
    print(f"configuration version: {run.configuration_version}\n")
    cv = tfe_client.configuration_versions.read(run.configuration_version.id)
    print(f"configuration version read separately: {cv}\n")

Expected Behavior

a valid configuration version object should be returned

Actual Behavior

ValidaitonError from Pydantic

Additional Context

N/A

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions