def METHOD_NAME(self) -> google.Client:
    gcs_client: Union[google.Client, None] = self._gcs_client
    if not gcs_client:
        # Validate that "google" libararies were successfully imported and attempt to create "gcs_client" handle.
        if google.service_account and google.storage:
            try:
                credentials: Union[
                    google.Client, None
                ] = None  # If configured with gcloud CLI / env vars
                _check_config_substitutions_needed(
                    self,
                    self.gcs_options,
                    raise_warning_if_provider_not_present=True,
                )
                # pull in needed config substitutions using the `_config_provider`
                # The `FluentBaseModel.dict()` call will do the config substitution on the serialized dict if a `config_provider` is passed
                gcs_options: dict = self.dict(
                    config_provider=self._config_provider
                ).get("gcs_options", {})
                if "filename" in gcs_options:
                    filename: str = gcs_options.pop("filename")
                    credentials = google.service_account.Credentials.from_service_account_file(
                        filename=filename
                    )
                elif "info" in gcs_options:
                    info: Any = gcs_options.pop("info")
                    credentials = google.service_account.Credentials.from_service_account_info(
                        info=info
                    )
                gcs_client = google.storage.Client(
                    credentials=credentials, **gcs_options
                )
            except Exception as e:
                # Failure to create "gcs_client" is most likely due invalid "gcs_options" dictionary.
                raise SparkGoogleCloudStorageDatasourceError(
                    f'Due to exception: "{e!r}", "gcs_client" could not be created.'
                ) from e
        else:
            raise SparkGoogleCloudStorageDatasourceError(
                'Unable to create "SparkGoogleCloudStorageDatasource" due to missing google dependency.'
            )
        self._gcs_client = gcs_client
    return gcs_client