@@ -4905,6 +4905,60 @@ def delete_version(
4905
4905
4906
4906
_LOGGER .info (f"Deleted version { version } for { self .model_resource_name } " )
4907
4907
4908
+ def update_version (
4909
+ self ,
4910
+ version : str ,
4911
+ version_description : Optional [str ] = None ,
4912
+ labels : Optional [Dict [str , str ]] = None ,
4913
+ ) -> None :
4914
+ """Updates a model version.
4915
+
4916
+ Args:
4917
+ version (str): Required. The version ID to receive the new alias(es).
4918
+ version_description (str):
4919
+ The description of the model version.
4920
+ labels (Dict[str, str]):
4921
+ Optional. The labels with user-defined metadata to
4922
+ organize your Model versions.
4923
+ Label keys and values can be no longer than 64
4924
+ characters (Unicode codepoints), can only
4925
+ contain lowercase letters, numeric characters,
4926
+ underscores and dashes. International characters
4927
+ are allowed.
4928
+ See https://goo.gl/xmQnxf for more information
4929
+ and examples of labels.
4930
+
4931
+ Raises:
4932
+ ValueError: If `labels` is not the correct format.
4933
+ """
4934
+
4935
+ current_model_proto = self .get_model (version ).gca_resource
4936
+ copied_model_proto = current_model_proto .__class__ (current_model_proto )
4937
+
4938
+ update_mask : List [str ] = []
4939
+
4940
+ if version_description :
4941
+ copied_model_proto .version_description = version_description
4942
+ update_mask .append ("version_description" )
4943
+
4944
+ if labels :
4945
+ utils .validate_labels (labels )
4946
+
4947
+ copied_model_proto .labels = labels
4948
+ update_mask .append ("labels" )
4949
+
4950
+ update_mask = field_mask_pb2 .FieldMask (paths = update_mask )
4951
+ versioned_name = self ._get_versioned_name (self .model_resource_name , version )
4952
+
4953
+ _LOGGER .info (f"Updating model { versioned_name } " )
4954
+
4955
+ self .client .update_model (
4956
+ model = copied_model_proto ,
4957
+ update_mask = update_mask ,
4958
+ )
4959
+
4960
+ _LOGGER .info (f"Completed updating model { versioned_name } " )
4961
+
4908
4962
def add_version_aliases (
4909
4963
self ,
4910
4964
new_aliases : List [str ],
0 commit comments