Skip to content

[aiplatform] Allow explicit project_id parameter when initializing api_client #5759

@GuglielmoCerri

Description

@GuglielmoCerri

Hi,

I noticed an issue when initializing the API client in aiplatform.
In base.py#L568, the api_client is initialized with only the credentials object, but without an explicit project_id:

self.api_client = self._instantiate_client(
            location=self.location,
            credentials=self.credentials,
            appended_user_agent=appended_user_agent,
        )

The problem is that the credentials object only carries the quota project ID (see the google.auth.credentials reference), not the actual project ID.

This makes it impossible to specify a different project ID for API requests other than the one used for quota billing.

Expected behavior

It should be possible to initialize the api_client with an explicit project_id, separate from the quota_project_id in the credentials.

Why this matters

Some users may want to:

  • Use credentials tied to one project for billing/quota purposes
  • Target a different project for Vertex AI resources

Currently, this scenario is not supported because the project_id cannot be overridden.

Possible solution

Support a project argument when creating the client and pass it explicitly:

self.api_client = self._instantiate_client(
            location=self.location,
            credentials=self.credentials,
            appended_user_agent=appended_user_agent,
            project=project_id,  # <-- new
)

This would align with other Google Cloud client libraries that allow explicit project configuration.

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    api: vertex-aiIssues related to the googleapis/python-aiplatform API.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions