google-genai 0.4.0__py3-none-any.whl → 0.6.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
google/genai/models.py CHANGED
@@ -13,6 +13,8 @@
13
13
  # limitations under the License.
14
14
  #
15
15
 
16
+ # Code generated by the Google Gen AI SDK generator DO NOT EDIT.
17
+
16
18
  import logging
17
19
  from typing import AsyncIterator, Iterator, Optional, Union
18
20
  from urllib.parse import urlencode
@@ -20,7 +22,7 @@ from . import _common
20
22
  from . import _extra_utils
21
23
  from . import _transformers as t
22
24
  from . import types
23
- from ._api_client import ApiClient
25
+ from ._api_client import ApiClient, HttpOptionsDict
24
26
  from ._common import get_value_by_path as getv
25
27
  from ._common import set_value_by_path as setv
26
28
  from .pagers import AsyncPager, Pager
@@ -760,6 +762,34 @@ def _SpeechConfig_to_vertex(
760
762
  return to_object
761
763
 
762
764
 
765
+ def _ThinkingConfig_to_mldev(
766
+ api_client: ApiClient,
767
+ from_object: Union[dict, object],
768
+ parent_object: dict = None,
769
+ ) -> dict:
770
+ to_object = {}
771
+ if getv(from_object, ['include_thoughts']) is not None:
772
+ setv(
773
+ to_object, ['includeThoughts'], getv(from_object, ['include_thoughts'])
774
+ )
775
+
776
+ return to_object
777
+
778
+
779
+ def _ThinkingConfig_to_vertex(
780
+ api_client: ApiClient,
781
+ from_object: Union[dict, object],
782
+ parent_object: dict = None,
783
+ ) -> dict:
784
+ to_object = {}
785
+ if getv(from_object, ['include_thoughts']) is not None:
786
+ setv(
787
+ to_object, ['includeThoughts'], getv(from_object, ['include_thoughts'])
788
+ )
789
+
790
+ return to_object
791
+
792
+
763
793
  def _GenerateContentConfig_to_mldev(
764
794
  api_client: ApiClient,
765
795
  from_object: Union[dict, object],
@@ -904,6 +934,18 @@ def _GenerateContentConfig_to_mldev(
904
934
  ),
905
935
  )
906
936
 
937
+ if getv(from_object, ['audio_timestamp']) is not None:
938
+ raise ValueError('audio_timestamp parameter is not supported in Google AI.')
939
+
940
+ if getv(from_object, ['thinking_config']) is not None:
941
+ setv(
942
+ to_object,
943
+ ['thinkingConfig'],
944
+ _ThinkingConfig_to_mldev(
945
+ api_client, getv(from_object, ['thinking_config']), to_object
946
+ ),
947
+ )
948
+
907
949
  return to_object
908
950
 
909
951
 
@@ -1051,6 +1093,18 @@ def _GenerateContentConfig_to_vertex(
1051
1093
  ),
1052
1094
  )
1053
1095
 
1096
+ if getv(from_object, ['audio_timestamp']) is not None:
1097
+ setv(to_object, ['audioTimestamp'], getv(from_object, ['audio_timestamp']))
1098
+
1099
+ if getv(from_object, ['thinking_config']) is not None:
1100
+ setv(
1101
+ to_object,
1102
+ ['thinkingConfig'],
1103
+ _ThinkingConfig_to_vertex(
1104
+ api_client, getv(from_object, ['thinking_config']), to_object
1105
+ ),
1106
+ )
1107
+
1054
1108
  return to_object
1055
1109
 
1056
1110
 
@@ -1545,7 +1599,11 @@ def _Image_to_mldev(
1545
1599
  raise ValueError('gcs_uri parameter is not supported in Google AI.')
1546
1600
 
1547
1601
  if getv(from_object, ['image_bytes']) is not None:
1548
- setv(to_object, ['bytesBase64Encoded'], getv(from_object, ['image_bytes']))
1602
+ setv(
1603
+ to_object,
1604
+ ['bytesBase64Encoded'],
1605
+ t.t_bytes(api_client, getv(from_object, ['image_bytes'])),
1606
+ )
1549
1607
 
1550
1608
  return to_object
1551
1609
 
@@ -1560,7 +1618,11 @@ def _Image_to_vertex(
1560
1618
  setv(to_object, ['gcsUri'], getv(from_object, ['gcs_uri']))
1561
1619
 
1562
1620
  if getv(from_object, ['image_bytes']) is not None:
1563
- setv(to_object, ['bytesBase64Encoded'], getv(from_object, ['image_bytes']))
1621
+ setv(
1622
+ to_object,
1623
+ ['bytesBase64Encoded'],
1624
+ t.t_bytes(api_client, getv(from_object, ['image_bytes'])),
1625
+ )
1564
1626
 
1565
1627
  return to_object
1566
1628
 
@@ -2278,6 +2340,9 @@ def _ListModelsConfig_to_mldev(
2278
2340
  parent_object: dict = None,
2279
2341
  ) -> dict:
2280
2342
  to_object = {}
2343
+ if getv(from_object, ['http_options']) is not None:
2344
+ setv(to_object, ['httpOptions'], getv(from_object, ['http_options']))
2345
+
2281
2346
  if getv(from_object, ['page_size']) is not None:
2282
2347
  setv(
2283
2348
  parent_object, ['_query', 'pageSize'], getv(from_object, ['page_size'])
@@ -2293,6 +2358,13 @@ def _ListModelsConfig_to_mldev(
2293
2358
  if getv(from_object, ['filter']) is not None:
2294
2359
  setv(parent_object, ['_query', 'filter'], getv(from_object, ['filter']))
2295
2360
 
2361
+ if getv(from_object, ['query_base']) is not None:
2362
+ setv(
2363
+ parent_object,
2364
+ ['_url', 'models_url'],
2365
+ t.t_models_url(api_client, getv(from_object, ['query_base'])),
2366
+ )
2367
+
2296
2368
  return to_object
2297
2369
 
2298
2370
 
@@ -2302,6 +2374,9 @@ def _ListModelsConfig_to_vertex(
2302
2374
  parent_object: dict = None,
2303
2375
  ) -> dict:
2304
2376
  to_object = {}
2377
+ if getv(from_object, ['http_options']) is not None:
2378
+ setv(to_object, ['httpOptions'], getv(from_object, ['http_options']))
2379
+
2305
2380
  if getv(from_object, ['page_size']) is not None:
2306
2381
  setv(
2307
2382
  parent_object, ['_query', 'pageSize'], getv(from_object, ['page_size'])
@@ -2317,6 +2392,13 @@ def _ListModelsConfig_to_vertex(
2317
2392
  if getv(from_object, ['filter']) is not None:
2318
2393
  setv(parent_object, ['_query', 'filter'], getv(from_object, ['filter']))
2319
2394
 
2395
+ if getv(from_object, ['query_base']) is not None:
2396
+ setv(
2397
+ parent_object,
2398
+ ['_url', 'models_url'],
2399
+ t.t_models_url(api_client, getv(from_object, ['query_base'])),
2400
+ )
2401
+
2320
2402
  return to_object
2321
2403
 
2322
2404
 
@@ -2517,7 +2599,7 @@ def _CountTokensConfig_to_vertex(
2517
2599
 
2518
2600
  if getv(from_object, ['system_instruction']) is not None:
2519
2601
  setv(
2520
- to_object,
2602
+ parent_object,
2521
2603
  ['systemInstruction'],
2522
2604
  _Content_to_vertex(
2523
2605
  api_client,
@@ -2528,7 +2610,7 @@ def _CountTokensConfig_to_vertex(
2528
2610
 
2529
2611
  if getv(from_object, ['tools']) is not None:
2530
2612
  setv(
2531
- to_object,
2613
+ parent_object,
2532
2614
  ['tools'],
2533
2615
  [
2534
2616
  _Tool_to_vertex(api_client, item, to_object)
@@ -3171,7 +3253,11 @@ def _Image_from_mldev(
3171
3253
  to_object = {}
3172
3254
 
3173
3255
  if getv(from_object, ['bytesBase64Encoded']) is not None:
3174
- setv(to_object, ['image_bytes'], getv(from_object, ['bytesBase64Encoded']))
3256
+ setv(
3257
+ to_object,
3258
+ ['image_bytes'],
3259
+ t.t_bytes(api_client, getv(from_object, ['bytesBase64Encoded'])),
3260
+ )
3175
3261
 
3176
3262
  return to_object
3177
3263
 
@@ -3186,7 +3272,11 @@ def _Image_from_vertex(
3186
3272
  setv(to_object, ['gcs_uri'], getv(from_object, ['gcsUri']))
3187
3273
 
3188
3274
  if getv(from_object, ['bytesBase64Encoded']) is not None:
3189
- setv(to_object, ['image_bytes'], getv(from_object, ['bytesBase64Encoded']))
3275
+ setv(
3276
+ to_object,
3277
+ ['image_bytes'],
3278
+ t.t_bytes(api_client, getv(from_object, ['bytesBase64Encoded'])),
3279
+ )
3190
3280
 
3191
3281
  return to_object
3192
3282
 
@@ -3522,13 +3612,15 @@ def _ListModelsResponse_from_mldev(
3522
3612
  if getv(from_object, ['nextPageToken']) is not None:
3523
3613
  setv(to_object, ['next_page_token'], getv(from_object, ['nextPageToken']))
3524
3614
 
3525
- if getv(from_object, ['tunedModels']) is not None:
3615
+ if getv(from_object, ['_self']) is not None:
3526
3616
  setv(
3527
3617
  to_object,
3528
3618
  ['models'],
3529
3619
  [
3530
3620
  _Model_from_mldev(api_client, item, to_object)
3531
- for item in getv(from_object, ['tunedModels'])
3621
+ for item in t.t_extract_models(
3622
+ api_client, getv(from_object, ['_self'])
3623
+ )
3532
3624
  ],
3533
3625
  )
3534
3626
 
@@ -3544,13 +3636,15 @@ def _ListModelsResponse_from_vertex(
3544
3636
  if getv(from_object, ['nextPageToken']) is not None:
3545
3637
  setv(to_object, ['next_page_token'], getv(from_object, ['nextPageToken']))
3546
3638
 
3547
- if getv(from_object, ['models']) is not None:
3639
+ if getv(from_object, ['_self']) is not None:
3548
3640
  setv(
3549
3641
  to_object,
3550
3642
  ['models'],
3551
3643
  [
3552
3644
  _Model_from_vertex(api_client, item, to_object)
3553
- for item in getv(from_object, ['models'])
3645
+ for item in t.t_extract_models(
3646
+ api_client, getv(from_object, ['_self'])
3647
+ )
3554
3648
  ],
3555
3649
  )
3556
3650
 
@@ -3647,14 +3741,14 @@ class Models(_common.BaseModule):
3647
3741
  config=config,
3648
3742
  )
3649
3743
 
3650
- if self.api_client.vertexai:
3744
+ if self._api_client.vertexai:
3651
3745
  request_dict = _GenerateContentParameters_to_vertex(
3652
- self.api_client, parameter_model
3746
+ self._api_client, parameter_model
3653
3747
  )
3654
3748
  path = '{model}:generateContent'.format_map(request_dict.get('_url'))
3655
3749
  else:
3656
3750
  request_dict = _GenerateContentParameters_to_mldev(
3657
- self.api_client, parameter_model
3751
+ self._api_client, parameter_model
3658
3752
  )
3659
3753
  path = '{model}:generateContent'.format_map(request_dict.get('_url'))
3660
3754
  query_params = request_dict.get('_query')
@@ -3664,25 +3758,25 @@ class Models(_common.BaseModule):
3664
3758
  config = request_dict.pop('config', None)
3665
3759
  http_options = config.pop('httpOptions', None) if config else None
3666
3760
  request_dict = _common.convert_to_dict(request_dict)
3667
- request_dict = _common.apply_base64_encoding(request_dict)
3761
+ request_dict = _common.encode_unserializable_types(request_dict)
3668
3762
 
3669
- response_dict = self.api_client.request(
3763
+ response_dict = self._api_client.request(
3670
3764
  'post', path, request_dict, http_options
3671
3765
  )
3672
3766
 
3673
- if self.api_client.vertexai:
3767
+ if self._api_client.vertexai:
3674
3768
  response_dict = _GenerateContentResponse_from_vertex(
3675
- self.api_client, response_dict
3769
+ self._api_client, response_dict
3676
3770
  )
3677
3771
  else:
3678
3772
  response_dict = _GenerateContentResponse_from_mldev(
3679
- self.api_client, response_dict
3773
+ self._api_client, response_dict
3680
3774
  )
3681
3775
 
3682
3776
  return_value = types.GenerateContentResponse._from_response(
3683
3777
  response_dict, parameter_model
3684
3778
  )
3685
- self.api_client._verify_response(return_value)
3779
+ self._api_client._verify_response(return_value)
3686
3780
  return return_value
3687
3781
 
3688
3782
  def generate_content_stream(
@@ -3698,16 +3792,16 @@ class Models(_common.BaseModule):
3698
3792
  config=config,
3699
3793
  )
3700
3794
 
3701
- if self.api_client.vertexai:
3795
+ if self._api_client.vertexai:
3702
3796
  request_dict = _GenerateContentParameters_to_vertex(
3703
- self.api_client, parameter_model
3797
+ self._api_client, parameter_model
3704
3798
  )
3705
3799
  path = '{model}:streamGenerateContent?alt=sse'.format_map(
3706
3800
  request_dict.get('_url')
3707
3801
  )
3708
3802
  else:
3709
3803
  request_dict = _GenerateContentParameters_to_mldev(
3710
- self.api_client, parameter_model
3804
+ self._api_client, parameter_model
3711
3805
  )
3712
3806
  path = '{model}:streamGenerateContent?alt=sse'.format_map(
3713
3807
  request_dict.get('_url')
@@ -3719,25 +3813,25 @@ class Models(_common.BaseModule):
3719
3813
  config = request_dict.pop('config', None)
3720
3814
  http_options = config.pop('httpOptions', None) if config else None
3721
3815
  request_dict = _common.convert_to_dict(request_dict)
3722
- request_dict = _common.apply_base64_encoding(request_dict)
3816
+ request_dict = _common.encode_unserializable_types(request_dict)
3723
3817
 
3724
- for response_dict in self.api_client.request_streamed(
3818
+ for response_dict in self._api_client.request_streamed(
3725
3819
  'post', path, request_dict, http_options
3726
3820
  ):
3727
3821
 
3728
- if self.api_client.vertexai:
3822
+ if self._api_client.vertexai:
3729
3823
  response_dict = _GenerateContentResponse_from_vertex(
3730
- self.api_client, response_dict
3824
+ self._api_client, response_dict
3731
3825
  )
3732
3826
  else:
3733
3827
  response_dict = _GenerateContentResponse_from_mldev(
3734
- self.api_client, response_dict
3828
+ self._api_client, response_dict
3735
3829
  )
3736
3830
 
3737
3831
  return_value = types.GenerateContentResponse._from_response(
3738
3832
  response_dict, parameter_model
3739
3833
  )
3740
- self.api_client._verify_response(return_value)
3834
+ self._api_client._verify_response(return_value)
3741
3835
  yield return_value
3742
3836
 
3743
3837
  def embed_content(
@@ -3776,14 +3870,14 @@ class Models(_common.BaseModule):
3776
3870
  config=config,
3777
3871
  )
3778
3872
 
3779
- if self.api_client.vertexai:
3873
+ if self._api_client.vertexai:
3780
3874
  request_dict = _EmbedContentParameters_to_vertex(
3781
- self.api_client, parameter_model
3875
+ self._api_client, parameter_model
3782
3876
  )
3783
3877
  path = '{model}:predict'.format_map(request_dict.get('_url'))
3784
3878
  else:
3785
3879
  request_dict = _EmbedContentParameters_to_mldev(
3786
- self.api_client, parameter_model
3880
+ self._api_client, parameter_model
3787
3881
  )
3788
3882
  path = '{model}:batchEmbedContents'.format_map(request_dict.get('_url'))
3789
3883
  query_params = request_dict.get('_query')
@@ -3793,25 +3887,25 @@ class Models(_common.BaseModule):
3793
3887
  config = request_dict.pop('config', None)
3794
3888
  http_options = config.pop('httpOptions', None) if config else None
3795
3889
  request_dict = _common.convert_to_dict(request_dict)
3796
- request_dict = _common.apply_base64_encoding(request_dict)
3890
+ request_dict = _common.encode_unserializable_types(request_dict)
3797
3891
 
3798
- response_dict = self.api_client.request(
3892
+ response_dict = self._api_client.request(
3799
3893
  'post', path, request_dict, http_options
3800
3894
  )
3801
3895
 
3802
- if self.api_client.vertexai:
3896
+ if self._api_client.vertexai:
3803
3897
  response_dict = _EmbedContentResponse_from_vertex(
3804
- self.api_client, response_dict
3898
+ self._api_client, response_dict
3805
3899
  )
3806
3900
  else:
3807
3901
  response_dict = _EmbedContentResponse_from_mldev(
3808
- self.api_client, response_dict
3902
+ self._api_client, response_dict
3809
3903
  )
3810
3904
 
3811
3905
  return_value = types.EmbedContentResponse._from_response(
3812
3906
  response_dict, parameter_model
3813
3907
  )
3814
- self.api_client._verify_response(return_value)
3908
+ self._api_client._verify_response(return_value)
3815
3909
  return return_value
3816
3910
 
3817
3911
  def generate_image(
@@ -3850,14 +3944,14 @@ class Models(_common.BaseModule):
3850
3944
  config=config,
3851
3945
  )
3852
3946
 
3853
- if self.api_client.vertexai:
3947
+ if self._api_client.vertexai:
3854
3948
  request_dict = _GenerateImageParameters_to_vertex(
3855
- self.api_client, parameter_model
3949
+ self._api_client, parameter_model
3856
3950
  )
3857
3951
  path = '{model}:predict'.format_map(request_dict.get('_url'))
3858
3952
  else:
3859
3953
  request_dict = _GenerateImageParameters_to_mldev(
3860
- self.api_client, parameter_model
3954
+ self._api_client, parameter_model
3861
3955
  )
3862
3956
  path = '{model}:predict'.format_map(request_dict.get('_url'))
3863
3957
  query_params = request_dict.get('_query')
@@ -3867,25 +3961,25 @@ class Models(_common.BaseModule):
3867
3961
  config = request_dict.pop('config', None)
3868
3962
  http_options = config.pop('httpOptions', None) if config else None
3869
3963
  request_dict = _common.convert_to_dict(request_dict)
3870
- request_dict = _common.apply_base64_encoding(request_dict)
3964
+ request_dict = _common.encode_unserializable_types(request_dict)
3871
3965
 
3872
- response_dict = self.api_client.request(
3966
+ response_dict = self._api_client.request(
3873
3967
  'post', path, request_dict, http_options
3874
3968
  )
3875
3969
 
3876
- if self.api_client.vertexai:
3970
+ if self._api_client.vertexai:
3877
3971
  response_dict = _GenerateImageResponse_from_vertex(
3878
- self.api_client, response_dict
3972
+ self._api_client, response_dict
3879
3973
  )
3880
3974
  else:
3881
3975
  response_dict = _GenerateImageResponse_from_mldev(
3882
- self.api_client, response_dict
3976
+ self._api_client, response_dict
3883
3977
  )
3884
3978
 
3885
3979
  return_value = types.GenerateImageResponse._from_response(
3886
3980
  response_dict, parameter_model
3887
3981
  )
3888
- self.api_client._verify_response(return_value)
3982
+ self._api_client._verify_response(return_value)
3889
3983
  return return_value
3890
3984
 
3891
3985
  def edit_image(
@@ -3945,11 +4039,11 @@ class Models(_common.BaseModule):
3945
4039
  config=config,
3946
4040
  )
3947
4041
 
3948
- if not self.api_client.vertexai:
4042
+ if not self._api_client.vertexai:
3949
4043
  raise ValueError('This method is only supported in the Vertex AI client.')
3950
4044
  else:
3951
4045
  request_dict = _EditImageParameters_to_vertex(
3952
- self.api_client, parameter_model
4046
+ self._api_client, parameter_model
3953
4047
  )
3954
4048
  path = '{model}:predict'.format_map(request_dict.get('_url'))
3955
4049
 
@@ -3960,25 +4054,25 @@ class Models(_common.BaseModule):
3960
4054
  config = request_dict.pop('config', None)
3961
4055
  http_options = config.pop('httpOptions', None) if config else None
3962
4056
  request_dict = _common.convert_to_dict(request_dict)
3963
- request_dict = _common.apply_base64_encoding(request_dict)
4057
+ request_dict = _common.encode_unserializable_types(request_dict)
3964
4058
 
3965
- response_dict = self.api_client.request(
4059
+ response_dict = self._api_client.request(
3966
4060
  'post', path, request_dict, http_options
3967
4061
  )
3968
4062
 
3969
- if self.api_client.vertexai:
4063
+ if self._api_client.vertexai:
3970
4064
  response_dict = _EditImageResponse_from_vertex(
3971
- self.api_client, response_dict
4065
+ self._api_client, response_dict
3972
4066
  )
3973
4067
  else:
3974
4068
  response_dict = _EditImageResponse_from_mldev(
3975
- self.api_client, response_dict
4069
+ self._api_client, response_dict
3976
4070
  )
3977
4071
 
3978
4072
  return_value = types.EditImageResponse._from_response(
3979
4073
  response_dict, parameter_model
3980
4074
  )
3981
- self.api_client._verify_response(return_value)
4075
+ self._api_client._verify_response(return_value)
3982
4076
  return return_value
3983
4077
 
3984
4078
  def _upscale_image(
@@ -4005,11 +4099,11 @@ class Models(_common.BaseModule):
4005
4099
  config=config,
4006
4100
  )
4007
4101
 
4008
- if not self.api_client.vertexai:
4102
+ if not self._api_client.vertexai:
4009
4103
  raise ValueError('This method is only supported in the Vertex AI client.')
4010
4104
  else:
4011
4105
  request_dict = _UpscaleImageAPIParameters_to_vertex(
4012
- self.api_client, parameter_model
4106
+ self._api_client, parameter_model
4013
4107
  )
4014
4108
  path = '{model}:predict'.format_map(request_dict.get('_url'))
4015
4109
 
@@ -4020,25 +4114,25 @@ class Models(_common.BaseModule):
4020
4114
  config = request_dict.pop('config', None)
4021
4115
  http_options = config.pop('httpOptions', None) if config else None
4022
4116
  request_dict = _common.convert_to_dict(request_dict)
4023
- request_dict = _common.apply_base64_encoding(request_dict)
4117
+ request_dict = _common.encode_unserializable_types(request_dict)
4024
4118
 
4025
- response_dict = self.api_client.request(
4119
+ response_dict = self._api_client.request(
4026
4120
  'post', path, request_dict, http_options
4027
4121
  )
4028
4122
 
4029
- if self.api_client.vertexai:
4123
+ if self._api_client.vertexai:
4030
4124
  response_dict = _UpscaleImageResponse_from_vertex(
4031
- self.api_client, response_dict
4125
+ self._api_client, response_dict
4032
4126
  )
4033
4127
  else:
4034
4128
  response_dict = _UpscaleImageResponse_from_mldev(
4035
- self.api_client, response_dict
4129
+ self._api_client, response_dict
4036
4130
  )
4037
4131
 
4038
4132
  return_value = types.UpscaleImageResponse._from_response(
4039
4133
  response_dict, parameter_model
4040
4134
  )
4041
- self.api_client._verify_response(return_value)
4135
+ self._api_client._verify_response(return_value)
4042
4136
  return return_value
4043
4137
 
4044
4138
  def get(self, *, model: str) -> types.Model:
@@ -4046,14 +4140,14 @@ class Models(_common.BaseModule):
4046
4140
  model=model,
4047
4141
  )
4048
4142
 
4049
- if self.api_client.vertexai:
4143
+ if self._api_client.vertexai:
4050
4144
  request_dict = _GetModelParameters_to_vertex(
4051
- self.api_client, parameter_model
4145
+ self._api_client, parameter_model
4052
4146
  )
4053
4147
  path = '{name}'.format_map(request_dict.get('_url'))
4054
4148
  else:
4055
4149
  request_dict = _GetModelParameters_to_mldev(
4056
- self.api_client, parameter_model
4150
+ self._api_client, parameter_model
4057
4151
  )
4058
4152
  path = '{name}'.format_map(request_dict.get('_url'))
4059
4153
  query_params = request_dict.get('_query')
@@ -4063,19 +4157,19 @@ class Models(_common.BaseModule):
4063
4157
  config = request_dict.pop('config', None)
4064
4158
  http_options = config.pop('httpOptions', None) if config else None
4065
4159
  request_dict = _common.convert_to_dict(request_dict)
4066
- request_dict = _common.apply_base64_encoding(request_dict)
4160
+ request_dict = _common.encode_unserializable_types(request_dict)
4067
4161
 
4068
- response_dict = self.api_client.request(
4162
+ response_dict = self._api_client.request(
4069
4163
  'get', path, request_dict, http_options
4070
4164
  )
4071
4165
 
4072
- if self.api_client.vertexai:
4073
- response_dict = _Model_from_vertex(self.api_client, response_dict)
4166
+ if self._api_client.vertexai:
4167
+ response_dict = _Model_from_vertex(self._api_client, response_dict)
4074
4168
  else:
4075
- response_dict = _Model_from_mldev(self.api_client, response_dict)
4169
+ response_dict = _Model_from_mldev(self._api_client, response_dict)
4076
4170
 
4077
4171
  return_value = types.Model._from_response(response_dict, parameter_model)
4078
- self.api_client._verify_response(return_value)
4172
+ self._api_client._verify_response(return_value)
4079
4173
  return return_value
4080
4174
 
4081
4175
  def _list(
@@ -4085,16 +4179,16 @@ class Models(_common.BaseModule):
4085
4179
  config=config,
4086
4180
  )
4087
4181
 
4088
- if self.api_client.vertexai:
4182
+ if self._api_client.vertexai:
4089
4183
  request_dict = _ListModelsParameters_to_vertex(
4090
- self.api_client, parameter_model
4184
+ self._api_client, parameter_model
4091
4185
  )
4092
- path = 'models'.format_map(request_dict.get('_url'))
4186
+ path = '{models_url}'.format_map(request_dict.get('_url'))
4093
4187
  else:
4094
4188
  request_dict = _ListModelsParameters_to_mldev(
4095
- self.api_client, parameter_model
4189
+ self._api_client, parameter_model
4096
4190
  )
4097
- path = 'tunedModels'.format_map(request_dict.get('_url'))
4191
+ path = '{models_url}'.format_map(request_dict.get('_url'))
4098
4192
  query_params = request_dict.get('_query')
4099
4193
  if query_params:
4100
4194
  path = f'{path}?{urlencode(query_params)}'
@@ -4102,25 +4196,25 @@ class Models(_common.BaseModule):
4102
4196
  config = request_dict.pop('config', None)
4103
4197
  http_options = config.pop('httpOptions', None) if config else None
4104
4198
  request_dict = _common.convert_to_dict(request_dict)
4105
- request_dict = _common.apply_base64_encoding(request_dict)
4199
+ request_dict = _common.encode_unserializable_types(request_dict)
4106
4200
 
4107
- response_dict = self.api_client.request(
4201
+ response_dict = self._api_client.request(
4108
4202
  'get', path, request_dict, http_options
4109
4203
  )
4110
4204
 
4111
- if self.api_client.vertexai:
4205
+ if self._api_client.vertexai:
4112
4206
  response_dict = _ListModelsResponse_from_vertex(
4113
- self.api_client, response_dict
4207
+ self._api_client, response_dict
4114
4208
  )
4115
4209
  else:
4116
4210
  response_dict = _ListModelsResponse_from_mldev(
4117
- self.api_client, response_dict
4211
+ self._api_client, response_dict
4118
4212
  )
4119
4213
 
4120
4214
  return_value = types.ListModelsResponse._from_response(
4121
4215
  response_dict, parameter_model
4122
4216
  )
4123
- self.api_client._verify_response(return_value)
4217
+ self._api_client._verify_response(return_value)
4124
4218
  return return_value
4125
4219
 
4126
4220
  def update(
@@ -4134,14 +4228,14 @@ class Models(_common.BaseModule):
4134
4228
  config=config,
4135
4229
  )
4136
4230
 
4137
- if self.api_client.vertexai:
4231
+ if self._api_client.vertexai:
4138
4232
  request_dict = _UpdateModelParameters_to_vertex(
4139
- self.api_client, parameter_model
4233
+ self._api_client, parameter_model
4140
4234
  )
4141
4235
  path = '{model}'.format_map(request_dict.get('_url'))
4142
4236
  else:
4143
4237
  request_dict = _UpdateModelParameters_to_mldev(
4144
- self.api_client, parameter_model
4238
+ self._api_client, parameter_model
4145
4239
  )
4146
4240
  path = '{name}'.format_map(request_dict.get('_url'))
4147
4241
  query_params = request_dict.get('_query')
@@ -4151,19 +4245,19 @@ class Models(_common.BaseModule):
4151
4245
  config = request_dict.pop('config', None)
4152
4246
  http_options = config.pop('httpOptions', None) if config else None
4153
4247
  request_dict = _common.convert_to_dict(request_dict)
4154
- request_dict = _common.apply_base64_encoding(request_dict)
4248
+ request_dict = _common.encode_unserializable_types(request_dict)
4155
4249
 
4156
- response_dict = self.api_client.request(
4250
+ response_dict = self._api_client.request(
4157
4251
  'patch', path, request_dict, http_options
4158
4252
  )
4159
4253
 
4160
- if self.api_client.vertexai:
4161
- response_dict = _Model_from_vertex(self.api_client, response_dict)
4254
+ if self._api_client.vertexai:
4255
+ response_dict = _Model_from_vertex(self._api_client, response_dict)
4162
4256
  else:
4163
- response_dict = _Model_from_mldev(self.api_client, response_dict)
4257
+ response_dict = _Model_from_mldev(self._api_client, response_dict)
4164
4258
 
4165
4259
  return_value = types.Model._from_response(response_dict, parameter_model)
4166
- self.api_client._verify_response(return_value)
4260
+ self._api_client._verify_response(return_value)
4167
4261
  return return_value
4168
4262
 
4169
4263
  def delete(self, *, model: str) -> types.DeleteModelResponse:
@@ -4171,14 +4265,14 @@ class Models(_common.BaseModule):
4171
4265
  model=model,
4172
4266
  )
4173
4267
 
4174
- if self.api_client.vertexai:
4268
+ if self._api_client.vertexai:
4175
4269
  request_dict = _DeleteModelParameters_to_vertex(
4176
- self.api_client, parameter_model
4270
+ self._api_client, parameter_model
4177
4271
  )
4178
4272
  path = '{name}'.format_map(request_dict.get('_url'))
4179
4273
  else:
4180
4274
  request_dict = _DeleteModelParameters_to_mldev(
4181
- self.api_client, parameter_model
4275
+ self._api_client, parameter_model
4182
4276
  )
4183
4277
  path = '{name}'.format_map(request_dict.get('_url'))
4184
4278
  query_params = request_dict.get('_query')
@@ -4188,25 +4282,25 @@ class Models(_common.BaseModule):
4188
4282
  config = request_dict.pop('config', None)
4189
4283
  http_options = config.pop('httpOptions', None) if config else None
4190
4284
  request_dict = _common.convert_to_dict(request_dict)
4191
- request_dict = _common.apply_base64_encoding(request_dict)
4285
+ request_dict = _common.encode_unserializable_types(request_dict)
4192
4286
 
4193
- response_dict = self.api_client.request(
4287
+ response_dict = self._api_client.request(
4194
4288
  'delete', path, request_dict, http_options
4195
4289
  )
4196
4290
 
4197
- if self.api_client.vertexai:
4291
+ if self._api_client.vertexai:
4198
4292
  response_dict = _DeleteModelResponse_from_vertex(
4199
- self.api_client, response_dict
4293
+ self._api_client, response_dict
4200
4294
  )
4201
4295
  else:
4202
4296
  response_dict = _DeleteModelResponse_from_mldev(
4203
- self.api_client, response_dict
4297
+ self._api_client, response_dict
4204
4298
  )
4205
4299
 
4206
4300
  return_value = types.DeleteModelResponse._from_response(
4207
4301
  response_dict, parameter_model
4208
4302
  )
4209
- self.api_client._verify_response(return_value)
4303
+ self._api_client._verify_response(return_value)
4210
4304
  return return_value
4211
4305
 
4212
4306
  def count_tokens(
@@ -4242,14 +4336,14 @@ class Models(_common.BaseModule):
4242
4336
  config=config,
4243
4337
  )
4244
4338
 
4245
- if self.api_client.vertexai:
4339
+ if self._api_client.vertexai:
4246
4340
  request_dict = _CountTokensParameters_to_vertex(
4247
- self.api_client, parameter_model
4341
+ self._api_client, parameter_model
4248
4342
  )
4249
4343
  path = '{model}:countTokens'.format_map(request_dict.get('_url'))
4250
4344
  else:
4251
4345
  request_dict = _CountTokensParameters_to_mldev(
4252
- self.api_client, parameter_model
4346
+ self._api_client, parameter_model
4253
4347
  )
4254
4348
  path = '{model}:countTokens'.format_map(request_dict.get('_url'))
4255
4349
  query_params = request_dict.get('_query')
@@ -4259,25 +4353,25 @@ class Models(_common.BaseModule):
4259
4353
  config = request_dict.pop('config', None)
4260
4354
  http_options = config.pop('httpOptions', None) if config else None
4261
4355
  request_dict = _common.convert_to_dict(request_dict)
4262
- request_dict = _common.apply_base64_encoding(request_dict)
4356
+ request_dict = _common.encode_unserializable_types(request_dict)
4263
4357
 
4264
- response_dict = self.api_client.request(
4358
+ response_dict = self._api_client.request(
4265
4359
  'post', path, request_dict, http_options
4266
4360
  )
4267
4361
 
4268
- if self.api_client.vertexai:
4362
+ if self._api_client.vertexai:
4269
4363
  response_dict = _CountTokensResponse_from_vertex(
4270
- self.api_client, response_dict
4364
+ self._api_client, response_dict
4271
4365
  )
4272
4366
  else:
4273
4367
  response_dict = _CountTokensResponse_from_mldev(
4274
- self.api_client, response_dict
4368
+ self._api_client, response_dict
4275
4369
  )
4276
4370
 
4277
4371
  return_value = types.CountTokensResponse._from_response(
4278
4372
  response_dict, parameter_model
4279
4373
  )
4280
- self.api_client._verify_response(return_value)
4374
+ self._api_client._verify_response(return_value)
4281
4375
  return return_value
4282
4376
 
4283
4377
  def compute_tokens(
@@ -4315,11 +4409,11 @@ class Models(_common.BaseModule):
4315
4409
  config=config,
4316
4410
  )
4317
4411
 
4318
- if not self.api_client.vertexai:
4412
+ if not self._api_client.vertexai:
4319
4413
  raise ValueError('This method is only supported in the Vertex AI client.')
4320
4414
  else:
4321
4415
  request_dict = _ComputeTokensParameters_to_vertex(
4322
- self.api_client, parameter_model
4416
+ self._api_client, parameter_model
4323
4417
  )
4324
4418
  path = '{model}:computeTokens'.format_map(request_dict.get('_url'))
4325
4419
 
@@ -4330,25 +4424,25 @@ class Models(_common.BaseModule):
4330
4424
  config = request_dict.pop('config', None)
4331
4425
  http_options = config.pop('httpOptions', None) if config else None
4332
4426
  request_dict = _common.convert_to_dict(request_dict)
4333
- request_dict = _common.apply_base64_encoding(request_dict)
4427
+ request_dict = _common.encode_unserializable_types(request_dict)
4334
4428
 
4335
- response_dict = self.api_client.request(
4429
+ response_dict = self._api_client.request(
4336
4430
  'post', path, request_dict, http_options
4337
4431
  )
4338
4432
 
4339
- if self.api_client.vertexai:
4433
+ if self._api_client.vertexai:
4340
4434
  response_dict = _ComputeTokensResponse_from_vertex(
4341
- self.api_client, response_dict
4435
+ self._api_client, response_dict
4342
4436
  )
4343
4437
  else:
4344
4438
  response_dict = _ComputeTokensResponse_from_mldev(
4345
- self.api_client, response_dict
4439
+ self._api_client, response_dict
4346
4440
  )
4347
4441
 
4348
4442
  return_value = types.ComputeTokensResponse._from_response(
4349
4443
  response_dict, parameter_model
4350
4444
  )
4351
- self.api_client._verify_response(return_value)
4445
+ self._api_client._verify_response(return_value)
4352
4446
  return return_value
4353
4447
 
4354
4448
  def generate_content(
@@ -4428,7 +4522,7 @@ class Models(_common.BaseModule):
4428
4522
  )
4429
4523
  if not func_response_parts:
4430
4524
  break
4431
- contents = t.t_contents(self.api_client, contents)
4525
+ contents = t.t_contents(self._api_client, contents)
4432
4526
  contents.append(response.candidates[0].content)
4433
4527
  contents.append(
4434
4528
  types.Content(
@@ -4504,9 +4598,14 @@ class Models(_common.BaseModule):
4504
4598
  *,
4505
4599
  config: Optional[types.ListModelsConfigOrDict] = None,
4506
4600
  ) -> Pager[types.Model]:
4507
- """Makes an API request to list the tuned models available to your project.
4601
+ """Makes an API request to list the available models.
4602
+
4603
+ If `query_base` is set to True in the config, the API will return all
4604
+ available base models. If set to False or not set (default), it will return
4605
+ all tuned models.
4508
4606
 
4509
- This method only lists tuned models for the Vertex AI API.
4607
+ Args:
4608
+ config (ListModelsConfigOrDict): Configuration for retrieving models.
4510
4609
 
4511
4610
  Usage:
4512
4611
 
@@ -4515,23 +4614,34 @@ class Models(_common.BaseModule):
4515
4614
  response=client.models.list(config={'page_size': 5})
4516
4615
  print(response.page)
4517
4616
  # [Model(name='projects/./locations/./models/123', display_name='my_model'
4617
+
4618
+ response=client.models.list(config={'page_size': 5, 'query_base': True})
4619
+ print(response.page)
4620
+ # [Model(name='publishers/google/models/gemini-2.0-flash-exp' ...
4518
4621
  """
4519
4622
 
4520
4623
  config = (
4521
4624
  types._ListModelsParameters(config=config).config
4522
4625
  or types.ListModelsConfig()
4523
4626
  )
4524
-
4525
- if self.api_client.vertexai:
4526
- # Filter for tuning jobs artifacts by labels.
4627
+ if self._api_client.vertexai:
4527
4628
  config = config.copy()
4528
- filter_value = config.filter
4529
- config.filter = (
4530
- filter_value + '&filter=labels.tune-type:*'
4531
- if filter_value
4532
- else 'labels.tune-type:*'
4533
- )
4534
-
4629
+ if config.query_base:
4630
+ http_options = (
4631
+ config.http_options if config.http_options else HttpOptionsDict()
4632
+ )
4633
+ http_options['skip_project_and_location_in_path'] = True
4634
+ config.http_options = http_options
4635
+ else:
4636
+ # Filter for tuning jobs artifacts by labels.
4637
+ filter_value = config.filter
4638
+ config.filter = (
4639
+ filter_value + '&filter=labels.tune-type:*'
4640
+ if filter_value
4641
+ else 'labels.tune-type:*'
4642
+ )
4643
+ if not config.query_base:
4644
+ config.query_base = False
4535
4645
  return Pager(
4536
4646
  'models',
4537
4647
  self._list,
@@ -4555,14 +4665,14 @@ class AsyncModels(_common.BaseModule):
4555
4665
  config=config,
4556
4666
  )
4557
4667
 
4558
- if self.api_client.vertexai:
4668
+ if self._api_client.vertexai:
4559
4669
  request_dict = _GenerateContentParameters_to_vertex(
4560
- self.api_client, parameter_model
4670
+ self._api_client, parameter_model
4561
4671
  )
4562
4672
  path = '{model}:generateContent'.format_map(request_dict.get('_url'))
4563
4673
  else:
4564
4674
  request_dict = _GenerateContentParameters_to_mldev(
4565
- self.api_client, parameter_model
4675
+ self._api_client, parameter_model
4566
4676
  )
4567
4677
  path = '{model}:generateContent'.format_map(request_dict.get('_url'))
4568
4678
  query_params = request_dict.get('_query')
@@ -4572,25 +4682,25 @@ class AsyncModels(_common.BaseModule):
4572
4682
  config = request_dict.pop('config', None)
4573
4683
  http_options = config.pop('httpOptions', None) if config else None
4574
4684
  request_dict = _common.convert_to_dict(request_dict)
4575
- request_dict = _common.apply_base64_encoding(request_dict)
4685
+ request_dict = _common.encode_unserializable_types(request_dict)
4576
4686
 
4577
- response_dict = await self.api_client.async_request(
4687
+ response_dict = await self._api_client.async_request(
4578
4688
  'post', path, request_dict, http_options
4579
4689
  )
4580
4690
 
4581
- if self.api_client.vertexai:
4691
+ if self._api_client.vertexai:
4582
4692
  response_dict = _GenerateContentResponse_from_vertex(
4583
- self.api_client, response_dict
4693
+ self._api_client, response_dict
4584
4694
  )
4585
4695
  else:
4586
4696
  response_dict = _GenerateContentResponse_from_mldev(
4587
- self.api_client, response_dict
4697
+ self._api_client, response_dict
4588
4698
  )
4589
4699
 
4590
4700
  return_value = types.GenerateContentResponse._from_response(
4591
4701
  response_dict, parameter_model
4592
4702
  )
4593
- self.api_client._verify_response(return_value)
4703
+ self._api_client._verify_response(return_value)
4594
4704
  return return_value
4595
4705
 
4596
4706
  async def generate_content_stream(
@@ -4606,16 +4716,16 @@ class AsyncModels(_common.BaseModule):
4606
4716
  config=config,
4607
4717
  )
4608
4718
 
4609
- if self.api_client.vertexai:
4719
+ if self._api_client.vertexai:
4610
4720
  request_dict = _GenerateContentParameters_to_vertex(
4611
- self.api_client, parameter_model
4721
+ self._api_client, parameter_model
4612
4722
  )
4613
4723
  path = '{model}:streamGenerateContent?alt=sse'.format_map(
4614
4724
  request_dict.get('_url')
4615
4725
  )
4616
4726
  else:
4617
4727
  request_dict = _GenerateContentParameters_to_mldev(
4618
- self.api_client, parameter_model
4728
+ self._api_client, parameter_model
4619
4729
  )
4620
4730
  path = '{model}:streamGenerateContent?alt=sse'.format_map(
4621
4731
  request_dict.get('_url')
@@ -4627,25 +4737,25 @@ class AsyncModels(_common.BaseModule):
4627
4737
  config = request_dict.pop('config', None)
4628
4738
  http_options = config.pop('httpOptions', None) if config else None
4629
4739
  request_dict = _common.convert_to_dict(request_dict)
4630
- request_dict = _common.apply_base64_encoding(request_dict)
4740
+ request_dict = _common.encode_unserializable_types(request_dict)
4631
4741
 
4632
- async for response_dict in self.api_client.async_request_streamed(
4742
+ async for response_dict in self._api_client.async_request_streamed(
4633
4743
  'post', path, request_dict, http_options
4634
4744
  ):
4635
4745
 
4636
- if self.api_client.vertexai:
4746
+ if self._api_client.vertexai:
4637
4747
  response_dict = _GenerateContentResponse_from_vertex(
4638
- self.api_client, response_dict
4748
+ self._api_client, response_dict
4639
4749
  )
4640
4750
  else:
4641
4751
  response_dict = _GenerateContentResponse_from_mldev(
4642
- self.api_client, response_dict
4752
+ self._api_client, response_dict
4643
4753
  )
4644
4754
 
4645
4755
  return_value = types.GenerateContentResponse._from_response(
4646
4756
  response_dict, parameter_model
4647
4757
  )
4648
- self.api_client._verify_response(return_value)
4758
+ self._api_client._verify_response(return_value)
4649
4759
  yield return_value
4650
4760
 
4651
4761
  async def embed_content(
@@ -4684,14 +4794,14 @@ class AsyncModels(_common.BaseModule):
4684
4794
  config=config,
4685
4795
  )
4686
4796
 
4687
- if self.api_client.vertexai:
4797
+ if self._api_client.vertexai:
4688
4798
  request_dict = _EmbedContentParameters_to_vertex(
4689
- self.api_client, parameter_model
4799
+ self._api_client, parameter_model
4690
4800
  )
4691
4801
  path = '{model}:predict'.format_map(request_dict.get('_url'))
4692
4802
  else:
4693
4803
  request_dict = _EmbedContentParameters_to_mldev(
4694
- self.api_client, parameter_model
4804
+ self._api_client, parameter_model
4695
4805
  )
4696
4806
  path = '{model}:batchEmbedContents'.format_map(request_dict.get('_url'))
4697
4807
  query_params = request_dict.get('_query')
@@ -4701,25 +4811,25 @@ class AsyncModels(_common.BaseModule):
4701
4811
  config = request_dict.pop('config', None)
4702
4812
  http_options = config.pop('httpOptions', None) if config else None
4703
4813
  request_dict = _common.convert_to_dict(request_dict)
4704
- request_dict = _common.apply_base64_encoding(request_dict)
4814
+ request_dict = _common.encode_unserializable_types(request_dict)
4705
4815
 
4706
- response_dict = await self.api_client.async_request(
4816
+ response_dict = await self._api_client.async_request(
4707
4817
  'post', path, request_dict, http_options
4708
4818
  )
4709
4819
 
4710
- if self.api_client.vertexai:
4820
+ if self._api_client.vertexai:
4711
4821
  response_dict = _EmbedContentResponse_from_vertex(
4712
- self.api_client, response_dict
4822
+ self._api_client, response_dict
4713
4823
  )
4714
4824
  else:
4715
4825
  response_dict = _EmbedContentResponse_from_mldev(
4716
- self.api_client, response_dict
4826
+ self._api_client, response_dict
4717
4827
  )
4718
4828
 
4719
4829
  return_value = types.EmbedContentResponse._from_response(
4720
4830
  response_dict, parameter_model
4721
4831
  )
4722
- self.api_client._verify_response(return_value)
4832
+ self._api_client._verify_response(return_value)
4723
4833
  return return_value
4724
4834
 
4725
4835
  async def generate_image(
@@ -4758,14 +4868,14 @@ class AsyncModels(_common.BaseModule):
4758
4868
  config=config,
4759
4869
  )
4760
4870
 
4761
- if self.api_client.vertexai:
4871
+ if self._api_client.vertexai:
4762
4872
  request_dict = _GenerateImageParameters_to_vertex(
4763
- self.api_client, parameter_model
4873
+ self._api_client, parameter_model
4764
4874
  )
4765
4875
  path = '{model}:predict'.format_map(request_dict.get('_url'))
4766
4876
  else:
4767
4877
  request_dict = _GenerateImageParameters_to_mldev(
4768
- self.api_client, parameter_model
4878
+ self._api_client, parameter_model
4769
4879
  )
4770
4880
  path = '{model}:predict'.format_map(request_dict.get('_url'))
4771
4881
  query_params = request_dict.get('_query')
@@ -4775,25 +4885,25 @@ class AsyncModels(_common.BaseModule):
4775
4885
  config = request_dict.pop('config', None)
4776
4886
  http_options = config.pop('httpOptions', None) if config else None
4777
4887
  request_dict = _common.convert_to_dict(request_dict)
4778
- request_dict = _common.apply_base64_encoding(request_dict)
4888
+ request_dict = _common.encode_unserializable_types(request_dict)
4779
4889
 
4780
- response_dict = await self.api_client.async_request(
4890
+ response_dict = await self._api_client.async_request(
4781
4891
  'post', path, request_dict, http_options
4782
4892
  )
4783
4893
 
4784
- if self.api_client.vertexai:
4894
+ if self._api_client.vertexai:
4785
4895
  response_dict = _GenerateImageResponse_from_vertex(
4786
- self.api_client, response_dict
4896
+ self._api_client, response_dict
4787
4897
  )
4788
4898
  else:
4789
4899
  response_dict = _GenerateImageResponse_from_mldev(
4790
- self.api_client, response_dict
4900
+ self._api_client, response_dict
4791
4901
  )
4792
4902
 
4793
4903
  return_value = types.GenerateImageResponse._from_response(
4794
4904
  response_dict, parameter_model
4795
4905
  )
4796
- self.api_client._verify_response(return_value)
4906
+ self._api_client._verify_response(return_value)
4797
4907
  return return_value
4798
4908
 
4799
4909
  async def edit_image(
@@ -4853,11 +4963,11 @@ class AsyncModels(_common.BaseModule):
4853
4963
  config=config,
4854
4964
  )
4855
4965
 
4856
- if not self.api_client.vertexai:
4966
+ if not self._api_client.vertexai:
4857
4967
  raise ValueError('This method is only supported in the Vertex AI client.')
4858
4968
  else:
4859
4969
  request_dict = _EditImageParameters_to_vertex(
4860
- self.api_client, parameter_model
4970
+ self._api_client, parameter_model
4861
4971
  )
4862
4972
  path = '{model}:predict'.format_map(request_dict.get('_url'))
4863
4973
 
@@ -4868,25 +4978,25 @@ class AsyncModels(_common.BaseModule):
4868
4978
  config = request_dict.pop('config', None)
4869
4979
  http_options = config.pop('httpOptions', None) if config else None
4870
4980
  request_dict = _common.convert_to_dict(request_dict)
4871
- request_dict = _common.apply_base64_encoding(request_dict)
4981
+ request_dict = _common.encode_unserializable_types(request_dict)
4872
4982
 
4873
- response_dict = await self.api_client.async_request(
4983
+ response_dict = await self._api_client.async_request(
4874
4984
  'post', path, request_dict, http_options
4875
4985
  )
4876
4986
 
4877
- if self.api_client.vertexai:
4987
+ if self._api_client.vertexai:
4878
4988
  response_dict = _EditImageResponse_from_vertex(
4879
- self.api_client, response_dict
4989
+ self._api_client, response_dict
4880
4990
  )
4881
4991
  else:
4882
4992
  response_dict = _EditImageResponse_from_mldev(
4883
- self.api_client, response_dict
4993
+ self._api_client, response_dict
4884
4994
  )
4885
4995
 
4886
4996
  return_value = types.EditImageResponse._from_response(
4887
4997
  response_dict, parameter_model
4888
4998
  )
4889
- self.api_client._verify_response(return_value)
4999
+ self._api_client._verify_response(return_value)
4890
5000
  return return_value
4891
5001
 
4892
5002
  async def _upscale_image(
@@ -4913,11 +5023,11 @@ class AsyncModels(_common.BaseModule):
4913
5023
  config=config,
4914
5024
  )
4915
5025
 
4916
- if not self.api_client.vertexai:
5026
+ if not self._api_client.vertexai:
4917
5027
  raise ValueError('This method is only supported in the Vertex AI client.')
4918
5028
  else:
4919
5029
  request_dict = _UpscaleImageAPIParameters_to_vertex(
4920
- self.api_client, parameter_model
5030
+ self._api_client, parameter_model
4921
5031
  )
4922
5032
  path = '{model}:predict'.format_map(request_dict.get('_url'))
4923
5033
 
@@ -4928,25 +5038,25 @@ class AsyncModels(_common.BaseModule):
4928
5038
  config = request_dict.pop('config', None)
4929
5039
  http_options = config.pop('httpOptions', None) if config else None
4930
5040
  request_dict = _common.convert_to_dict(request_dict)
4931
- request_dict = _common.apply_base64_encoding(request_dict)
5041
+ request_dict = _common.encode_unserializable_types(request_dict)
4932
5042
 
4933
- response_dict = await self.api_client.async_request(
5043
+ response_dict = await self._api_client.async_request(
4934
5044
  'post', path, request_dict, http_options
4935
5045
  )
4936
5046
 
4937
- if self.api_client.vertexai:
5047
+ if self._api_client.vertexai:
4938
5048
  response_dict = _UpscaleImageResponse_from_vertex(
4939
- self.api_client, response_dict
5049
+ self._api_client, response_dict
4940
5050
  )
4941
5051
  else:
4942
5052
  response_dict = _UpscaleImageResponse_from_mldev(
4943
- self.api_client, response_dict
5053
+ self._api_client, response_dict
4944
5054
  )
4945
5055
 
4946
5056
  return_value = types.UpscaleImageResponse._from_response(
4947
5057
  response_dict, parameter_model
4948
5058
  )
4949
- self.api_client._verify_response(return_value)
5059
+ self._api_client._verify_response(return_value)
4950
5060
  return return_value
4951
5061
 
4952
5062
  async def get(self, *, model: str) -> types.Model:
@@ -4954,14 +5064,14 @@ class AsyncModels(_common.BaseModule):
4954
5064
  model=model,
4955
5065
  )
4956
5066
 
4957
- if self.api_client.vertexai:
5067
+ if self._api_client.vertexai:
4958
5068
  request_dict = _GetModelParameters_to_vertex(
4959
- self.api_client, parameter_model
5069
+ self._api_client, parameter_model
4960
5070
  )
4961
5071
  path = '{name}'.format_map(request_dict.get('_url'))
4962
5072
  else:
4963
5073
  request_dict = _GetModelParameters_to_mldev(
4964
- self.api_client, parameter_model
5074
+ self._api_client, parameter_model
4965
5075
  )
4966
5076
  path = '{name}'.format_map(request_dict.get('_url'))
4967
5077
  query_params = request_dict.get('_query')
@@ -4971,19 +5081,19 @@ class AsyncModels(_common.BaseModule):
4971
5081
  config = request_dict.pop('config', None)
4972
5082
  http_options = config.pop('httpOptions', None) if config else None
4973
5083
  request_dict = _common.convert_to_dict(request_dict)
4974
- request_dict = _common.apply_base64_encoding(request_dict)
5084
+ request_dict = _common.encode_unserializable_types(request_dict)
4975
5085
 
4976
- response_dict = await self.api_client.async_request(
5086
+ response_dict = await self._api_client.async_request(
4977
5087
  'get', path, request_dict, http_options
4978
5088
  )
4979
5089
 
4980
- if self.api_client.vertexai:
4981
- response_dict = _Model_from_vertex(self.api_client, response_dict)
5090
+ if self._api_client.vertexai:
5091
+ response_dict = _Model_from_vertex(self._api_client, response_dict)
4982
5092
  else:
4983
- response_dict = _Model_from_mldev(self.api_client, response_dict)
5093
+ response_dict = _Model_from_mldev(self._api_client, response_dict)
4984
5094
 
4985
5095
  return_value = types.Model._from_response(response_dict, parameter_model)
4986
- self.api_client._verify_response(return_value)
5096
+ self._api_client._verify_response(return_value)
4987
5097
  return return_value
4988
5098
 
4989
5099
  async def _list(
@@ -4993,16 +5103,16 @@ class AsyncModels(_common.BaseModule):
4993
5103
  config=config,
4994
5104
  )
4995
5105
 
4996
- if self.api_client.vertexai:
5106
+ if self._api_client.vertexai:
4997
5107
  request_dict = _ListModelsParameters_to_vertex(
4998
- self.api_client, parameter_model
5108
+ self._api_client, parameter_model
4999
5109
  )
5000
- path = 'models'.format_map(request_dict.get('_url'))
5110
+ path = '{models_url}'.format_map(request_dict.get('_url'))
5001
5111
  else:
5002
5112
  request_dict = _ListModelsParameters_to_mldev(
5003
- self.api_client, parameter_model
5113
+ self._api_client, parameter_model
5004
5114
  )
5005
- path = 'tunedModels'.format_map(request_dict.get('_url'))
5115
+ path = '{models_url}'.format_map(request_dict.get('_url'))
5006
5116
  query_params = request_dict.get('_query')
5007
5117
  if query_params:
5008
5118
  path = f'{path}?{urlencode(query_params)}'
@@ -5010,25 +5120,25 @@ class AsyncModels(_common.BaseModule):
5010
5120
  config = request_dict.pop('config', None)
5011
5121
  http_options = config.pop('httpOptions', None) if config else None
5012
5122
  request_dict = _common.convert_to_dict(request_dict)
5013
- request_dict = _common.apply_base64_encoding(request_dict)
5123
+ request_dict = _common.encode_unserializable_types(request_dict)
5014
5124
 
5015
- response_dict = await self.api_client.async_request(
5125
+ response_dict = await self._api_client.async_request(
5016
5126
  'get', path, request_dict, http_options
5017
5127
  )
5018
5128
 
5019
- if self.api_client.vertexai:
5129
+ if self._api_client.vertexai:
5020
5130
  response_dict = _ListModelsResponse_from_vertex(
5021
- self.api_client, response_dict
5131
+ self._api_client, response_dict
5022
5132
  )
5023
5133
  else:
5024
5134
  response_dict = _ListModelsResponse_from_mldev(
5025
- self.api_client, response_dict
5135
+ self._api_client, response_dict
5026
5136
  )
5027
5137
 
5028
5138
  return_value = types.ListModelsResponse._from_response(
5029
5139
  response_dict, parameter_model
5030
5140
  )
5031
- self.api_client._verify_response(return_value)
5141
+ self._api_client._verify_response(return_value)
5032
5142
  return return_value
5033
5143
 
5034
5144
  async def update(
@@ -5042,14 +5152,14 @@ class AsyncModels(_common.BaseModule):
5042
5152
  config=config,
5043
5153
  )
5044
5154
 
5045
- if self.api_client.vertexai:
5155
+ if self._api_client.vertexai:
5046
5156
  request_dict = _UpdateModelParameters_to_vertex(
5047
- self.api_client, parameter_model
5157
+ self._api_client, parameter_model
5048
5158
  )
5049
5159
  path = '{model}'.format_map(request_dict.get('_url'))
5050
5160
  else:
5051
5161
  request_dict = _UpdateModelParameters_to_mldev(
5052
- self.api_client, parameter_model
5162
+ self._api_client, parameter_model
5053
5163
  )
5054
5164
  path = '{name}'.format_map(request_dict.get('_url'))
5055
5165
  query_params = request_dict.get('_query')
@@ -5059,19 +5169,19 @@ class AsyncModels(_common.BaseModule):
5059
5169
  config = request_dict.pop('config', None)
5060
5170
  http_options = config.pop('httpOptions', None) if config else None
5061
5171
  request_dict = _common.convert_to_dict(request_dict)
5062
- request_dict = _common.apply_base64_encoding(request_dict)
5172
+ request_dict = _common.encode_unserializable_types(request_dict)
5063
5173
 
5064
- response_dict = await self.api_client.async_request(
5174
+ response_dict = await self._api_client.async_request(
5065
5175
  'patch', path, request_dict, http_options
5066
5176
  )
5067
5177
 
5068
- if self.api_client.vertexai:
5069
- response_dict = _Model_from_vertex(self.api_client, response_dict)
5178
+ if self._api_client.vertexai:
5179
+ response_dict = _Model_from_vertex(self._api_client, response_dict)
5070
5180
  else:
5071
- response_dict = _Model_from_mldev(self.api_client, response_dict)
5181
+ response_dict = _Model_from_mldev(self._api_client, response_dict)
5072
5182
 
5073
5183
  return_value = types.Model._from_response(response_dict, parameter_model)
5074
- self.api_client._verify_response(return_value)
5184
+ self._api_client._verify_response(return_value)
5075
5185
  return return_value
5076
5186
 
5077
5187
  async def delete(self, *, model: str) -> types.DeleteModelResponse:
@@ -5079,14 +5189,14 @@ class AsyncModels(_common.BaseModule):
5079
5189
  model=model,
5080
5190
  )
5081
5191
 
5082
- if self.api_client.vertexai:
5192
+ if self._api_client.vertexai:
5083
5193
  request_dict = _DeleteModelParameters_to_vertex(
5084
- self.api_client, parameter_model
5194
+ self._api_client, parameter_model
5085
5195
  )
5086
5196
  path = '{name}'.format_map(request_dict.get('_url'))
5087
5197
  else:
5088
5198
  request_dict = _DeleteModelParameters_to_mldev(
5089
- self.api_client, parameter_model
5199
+ self._api_client, parameter_model
5090
5200
  )
5091
5201
  path = '{name}'.format_map(request_dict.get('_url'))
5092
5202
  query_params = request_dict.get('_query')
@@ -5096,25 +5206,25 @@ class AsyncModels(_common.BaseModule):
5096
5206
  config = request_dict.pop('config', None)
5097
5207
  http_options = config.pop('httpOptions', None) if config else None
5098
5208
  request_dict = _common.convert_to_dict(request_dict)
5099
- request_dict = _common.apply_base64_encoding(request_dict)
5209
+ request_dict = _common.encode_unserializable_types(request_dict)
5100
5210
 
5101
- response_dict = await self.api_client.async_request(
5211
+ response_dict = await self._api_client.async_request(
5102
5212
  'delete', path, request_dict, http_options
5103
5213
  )
5104
5214
 
5105
- if self.api_client.vertexai:
5215
+ if self._api_client.vertexai:
5106
5216
  response_dict = _DeleteModelResponse_from_vertex(
5107
- self.api_client, response_dict
5217
+ self._api_client, response_dict
5108
5218
  )
5109
5219
  else:
5110
5220
  response_dict = _DeleteModelResponse_from_mldev(
5111
- self.api_client, response_dict
5221
+ self._api_client, response_dict
5112
5222
  )
5113
5223
 
5114
5224
  return_value = types.DeleteModelResponse._from_response(
5115
5225
  response_dict, parameter_model
5116
5226
  )
5117
- self.api_client._verify_response(return_value)
5227
+ self._api_client._verify_response(return_value)
5118
5228
  return return_value
5119
5229
 
5120
5230
  async def count_tokens(
@@ -5150,14 +5260,14 @@ class AsyncModels(_common.BaseModule):
5150
5260
  config=config,
5151
5261
  )
5152
5262
 
5153
- if self.api_client.vertexai:
5263
+ if self._api_client.vertexai:
5154
5264
  request_dict = _CountTokensParameters_to_vertex(
5155
- self.api_client, parameter_model
5265
+ self._api_client, parameter_model
5156
5266
  )
5157
5267
  path = '{model}:countTokens'.format_map(request_dict.get('_url'))
5158
5268
  else:
5159
5269
  request_dict = _CountTokensParameters_to_mldev(
5160
- self.api_client, parameter_model
5270
+ self._api_client, parameter_model
5161
5271
  )
5162
5272
  path = '{model}:countTokens'.format_map(request_dict.get('_url'))
5163
5273
  query_params = request_dict.get('_query')
@@ -5167,25 +5277,25 @@ class AsyncModels(_common.BaseModule):
5167
5277
  config = request_dict.pop('config', None)
5168
5278
  http_options = config.pop('httpOptions', None) if config else None
5169
5279
  request_dict = _common.convert_to_dict(request_dict)
5170
- request_dict = _common.apply_base64_encoding(request_dict)
5280
+ request_dict = _common.encode_unserializable_types(request_dict)
5171
5281
 
5172
- response_dict = await self.api_client.async_request(
5282
+ response_dict = await self._api_client.async_request(
5173
5283
  'post', path, request_dict, http_options
5174
5284
  )
5175
5285
 
5176
- if self.api_client.vertexai:
5286
+ if self._api_client.vertexai:
5177
5287
  response_dict = _CountTokensResponse_from_vertex(
5178
- self.api_client, response_dict
5288
+ self._api_client, response_dict
5179
5289
  )
5180
5290
  else:
5181
5291
  response_dict = _CountTokensResponse_from_mldev(
5182
- self.api_client, response_dict
5292
+ self._api_client, response_dict
5183
5293
  )
5184
5294
 
5185
5295
  return_value = types.CountTokensResponse._from_response(
5186
5296
  response_dict, parameter_model
5187
5297
  )
5188
- self.api_client._verify_response(return_value)
5298
+ self._api_client._verify_response(return_value)
5189
5299
  return return_value
5190
5300
 
5191
5301
  async def compute_tokens(
@@ -5223,11 +5333,11 @@ class AsyncModels(_common.BaseModule):
5223
5333
  config=config,
5224
5334
  )
5225
5335
 
5226
- if not self.api_client.vertexai:
5336
+ if not self._api_client.vertexai:
5227
5337
  raise ValueError('This method is only supported in the Vertex AI client.')
5228
5338
  else:
5229
5339
  request_dict = _ComputeTokensParameters_to_vertex(
5230
- self.api_client, parameter_model
5340
+ self._api_client, parameter_model
5231
5341
  )
5232
5342
  path = '{model}:computeTokens'.format_map(request_dict.get('_url'))
5233
5343
 
@@ -5238,25 +5348,25 @@ class AsyncModels(_common.BaseModule):
5238
5348
  config = request_dict.pop('config', None)
5239
5349
  http_options = config.pop('httpOptions', None) if config else None
5240
5350
  request_dict = _common.convert_to_dict(request_dict)
5241
- request_dict = _common.apply_base64_encoding(request_dict)
5351
+ request_dict = _common.encode_unserializable_types(request_dict)
5242
5352
 
5243
- response_dict = await self.api_client.async_request(
5353
+ response_dict = await self._api_client.async_request(
5244
5354
  'post', path, request_dict, http_options
5245
5355
  )
5246
5356
 
5247
- if self.api_client.vertexai:
5357
+ if self._api_client.vertexai:
5248
5358
  response_dict = _ComputeTokensResponse_from_vertex(
5249
- self.api_client, response_dict
5359
+ self._api_client, response_dict
5250
5360
  )
5251
5361
  else:
5252
5362
  response_dict = _ComputeTokensResponse_from_mldev(
5253
- self.api_client, response_dict
5363
+ self._api_client, response_dict
5254
5364
  )
5255
5365
 
5256
5366
  return_value = types.ComputeTokensResponse._from_response(
5257
5367
  response_dict, parameter_model
5258
5368
  )
5259
- self.api_client._verify_response(return_value)
5369
+ self._api_client._verify_response(return_value)
5260
5370
  return return_value
5261
5371
 
5262
5372
  async def generate_content(
@@ -5326,7 +5436,7 @@ class AsyncModels(_common.BaseModule):
5326
5436
  )
5327
5437
  if not func_response_parts:
5328
5438
  break
5329
- contents = t.t_contents(self.api_client, contents)
5439
+ contents = t.t_contents(self._api_client, contents)
5330
5440
  contents.append(response.candidates[0].content)
5331
5441
  contents.append(
5332
5442
  types.Content(
@@ -5347,9 +5457,14 @@ class AsyncModels(_common.BaseModule):
5347
5457
  *,
5348
5458
  config: Optional[types.ListModelsConfigOrDict] = None,
5349
5459
  ) -> AsyncPager[types.Model]:
5350
- """Makes an API request to list the tuned models available to your project.
5460
+ """Makes an API request to list the available models.
5461
+
5462
+ If `query_base` is set to True in the config, the API will return all
5463
+ available base models. If set to False or not set (default), it will return
5464
+ all tuned models.
5351
5465
 
5352
- This method only lists tuned models for the Vertex AI API.
5466
+ Args:
5467
+ config (ListModelsConfigOrDict): Configuration for retrieving models.
5353
5468
 
5354
5469
  Usage:
5355
5470
 
@@ -5358,22 +5473,36 @@ class AsyncModels(_common.BaseModule):
5358
5473
  response = await client.aio.models.list(config={'page_size': 5})
5359
5474
  print(response.page)
5360
5475
  # [Model(name='projects/./locations/./models/123', display_name='my_model'
5476
+
5477
+ response = await client.aio.models.list(
5478
+ config={'page_size': 5, 'query_base': True}
5479
+ )
5480
+ print(response.page)
5481
+ # [Model(name='publishers/google/models/gemini-2.0-flash-exp' ...
5361
5482
  """
5362
5483
 
5363
5484
  config = (
5364
5485
  types._ListModelsParameters(config=config).config
5365
5486
  or types.ListModelsConfig()
5366
5487
  )
5367
-
5368
- if self.api_client.vertexai:
5369
- # Filter for tuning jobs artifacts by labels.
5488
+ if self._api_client.vertexai:
5370
5489
  config = config.copy()
5371
- filter_value = config.filter
5372
- config.filter = (
5373
- filter_value + '&filter=labels.tune-type:*'
5374
- if filter_value
5375
- else 'labels.tune-type:*'
5376
- )
5490
+ if config.query_base:
5491
+ http_options = (
5492
+ config.http_options if config.http_options else HttpOptionsDict()
5493
+ )
5494
+ http_options['skip_project_and_location_in_path'] = True
5495
+ config.http_options = http_options
5496
+ else:
5497
+ # Filter for tuning jobs artifacts by labels.
5498
+ filter_value = config.filter
5499
+ config.filter = (
5500
+ filter_value + '&filter=labels.tune-type:*'
5501
+ if filter_value
5502
+ else 'labels.tune-type:*'
5503
+ )
5504
+ if not config.query_base:
5505
+ config.query_base = False
5377
5506
  return AsyncPager(
5378
5507
  'models',
5379
5508
  self._list,