Skip to main content

unitycatalog_common/models/_gen/
unitycatalog.model_versions.v1.rs

1// @generated by buffa-codegen. DO NOT EDIT.
2
3/// The status of a model version, reflecting the lifecycle of its artifacts in
4/// external storage.
5#[derive(Clone, Copy, PartialEq, Eq, Hash, Debug)]
6#[repr(i32)]
7pub enum ModelVersionStatus {
8    /// The status is not specified.
9    MODEL_VERSION_STATUS_UNSPECIFIED = 0i32,
10    /// The client has not yet completely written all model artifacts to external
11    /// storage. This is the initial status assigned on creation.
12    PENDING_REGISTRATION = 1i32,
13    /// The client failed to write all model artifacts to external storage.
14    FAILED_REGISTRATION = 2i32,
15    /// The client successfully wrote all model artifacts to external storage and
16    /// the version has been finalized.
17    READY = 3i32,
18}
19impl ModelVersionStatus {
20    ///Idiomatic alias for [`Self::MODEL_VERSION_STATUS_UNSPECIFIED`]; `Debug` prints the variant name.
21    #[allow(non_upper_case_globals)]
22    pub const ModelVersionStatusUnspecified: Self = Self::MODEL_VERSION_STATUS_UNSPECIFIED;
23    ///Idiomatic alias for [`Self::PENDING_REGISTRATION`]; `Debug` prints the variant name.
24    #[allow(non_upper_case_globals)]
25    pub const PendingRegistration: Self = Self::PENDING_REGISTRATION;
26    ///Idiomatic alias for [`Self::FAILED_REGISTRATION`]; `Debug` prints the variant name.
27    #[allow(non_upper_case_globals)]
28    pub const FailedRegistration: Self = Self::FAILED_REGISTRATION;
29    ///Idiomatic alias for [`Self::READY`]; `Debug` prints the variant name.
30    #[allow(non_upper_case_globals)]
31    pub const Ready: Self = Self::READY;
32}
33impl ::core::default::Default for ModelVersionStatus {
34    fn default() -> Self {
35        Self::MODEL_VERSION_STATUS_UNSPECIFIED
36    }
37}
38impl ::serde::Serialize for ModelVersionStatus {
39    fn serialize<S: ::serde::Serializer>(
40        &self,
41        s: S,
42    ) -> ::core::result::Result<S::Ok, S::Error> {
43        s.serialize_str(::buffa::Enumeration::proto_name(self))
44    }
45}
46impl<'de> ::serde::Deserialize<'de> for ModelVersionStatus {
47    fn deserialize<D: ::serde::Deserializer<'de>>(
48        d: D,
49    ) -> ::core::result::Result<Self, D::Error> {
50        struct _V;
51        impl ::serde::de::Visitor<'_> for _V {
52            type Value = ModelVersionStatus;
53            fn expecting(
54                &self,
55                f: &mut ::core::fmt::Formatter<'_>,
56            ) -> ::core::fmt::Result {
57                f.write_str(
58                    concat!(
59                        "a string, integer, or null for ", stringify!(ModelVersionStatus)
60                    ),
61                )
62            }
63            fn visit_str<E: ::serde::de::Error>(
64                self,
65                v: &str,
66            ) -> ::core::result::Result<ModelVersionStatus, E> {
67                <ModelVersionStatus as ::buffa::Enumeration>::from_proto_name(v)
68                    .ok_or_else(|| { ::serde::de::Error::unknown_variant(v, &[]) })
69            }
70            fn visit_i64<E: ::serde::de::Error>(
71                self,
72                v: i64,
73            ) -> ::core::result::Result<ModelVersionStatus, E> {
74                let v32 = i32::try_from(v)
75                    .map_err(|_| {
76                        ::serde::de::Error::custom(
77                            ::buffa::alloc::format!("enum value {v} out of i32 range"),
78                        )
79                    })?;
80                <ModelVersionStatus as ::buffa::Enumeration>::from_i32(v32)
81                    .ok_or_else(|| {
82                        ::serde::de::Error::custom(
83                            ::buffa::alloc::format!("unknown enum value {v32}"),
84                        )
85                    })
86            }
87            fn visit_u64<E: ::serde::de::Error>(
88                self,
89                v: u64,
90            ) -> ::core::result::Result<ModelVersionStatus, E> {
91                let v32 = i32::try_from(v)
92                    .map_err(|_| {
93                        ::serde::de::Error::custom(
94                            ::buffa::alloc::format!("enum value {v} out of i32 range"),
95                        )
96                    })?;
97                <ModelVersionStatus as ::buffa::Enumeration>::from_i32(v32)
98                    .ok_or_else(|| {
99                        ::serde::de::Error::custom(
100                            ::buffa::alloc::format!("unknown enum value {v32}"),
101                        )
102                    })
103            }
104            fn visit_unit<E: ::serde::de::Error>(
105                self,
106            ) -> ::core::result::Result<ModelVersionStatus, E> {
107                ::core::result::Result::Ok(::core::default::Default::default())
108            }
109        }
110        d.deserialize_any(_V)
111    }
112}
113impl ::buffa::json_helpers::ProtoElemJson for ModelVersionStatus {
114    fn serialize_proto_json<S: ::serde::Serializer>(
115        v: &Self,
116        s: S,
117    ) -> ::core::result::Result<S::Ok, S::Error> {
118        ::serde::Serialize::serialize(v, s)
119    }
120    fn deserialize_proto_json<'de, D: ::serde::Deserializer<'de>>(
121        d: D,
122    ) -> ::core::result::Result<Self, D::Error> {
123        <Self as ::serde::Deserialize>::deserialize(d)
124    }
125}
126impl ::buffa::Enumeration for ModelVersionStatus {
127    fn from_i32(value: i32) -> ::core::option::Option<Self> {
128        match value {
129            0i32 => ::core::option::Option::Some(Self::MODEL_VERSION_STATUS_UNSPECIFIED),
130            1i32 => ::core::option::Option::Some(Self::PENDING_REGISTRATION),
131            2i32 => ::core::option::Option::Some(Self::FAILED_REGISTRATION),
132            3i32 => ::core::option::Option::Some(Self::READY),
133            _ => ::core::option::Option::None,
134        }
135    }
136    fn to_i32(&self) -> i32 {
137        *self as i32
138    }
139    fn proto_name(&self) -> &'static str {
140        match self {
141            Self::MODEL_VERSION_STATUS_UNSPECIFIED => "MODEL_VERSION_STATUS_UNSPECIFIED",
142            Self::PENDING_REGISTRATION => "PENDING_REGISTRATION",
143            Self::FAILED_REGISTRATION => "FAILED_REGISTRATION",
144            Self::READY => "READY",
145        }
146    }
147    fn from_proto_name(name: &str) -> ::core::option::Option<Self> {
148        match name {
149            "MODEL_VERSION_STATUS_UNSPECIFIED" => {
150                ::core::option::Option::Some(Self::MODEL_VERSION_STATUS_UNSPECIFIED)
151            }
152            "PENDING_REGISTRATION" => {
153                ::core::option::Option::Some(Self::PENDING_REGISTRATION)
154            }
155            "FAILED_REGISTRATION" => {
156                ::core::option::Option::Some(Self::FAILED_REGISTRATION)
157            }
158            "READY" => ::core::option::Option::Some(Self::READY),
159            _ => ::core::option::Option::None,
160        }
161    }
162    fn values() -> &'static [Self] {
163        &[
164            Self::MODEL_VERSION_STATUS_UNSPECIFIED,
165            Self::PENDING_REGISTRATION,
166            Self::FAILED_REGISTRATION,
167            Self::READY,
168        ]
169    }
170}
171/// A model version under a registered model.
172///
173/// A version is identified by its parent model's three-level name plus an
174/// integer `version` number assigned by the server. It carries its own artifact
175/// storage location and moves through the PENDING_REGISTRATION -\> READY lifecycle
176/// via the finalize operation.
177#[derive(Clone, PartialEq, Default)]
178#[derive(::serde::Serialize, ::serde::Deserialize)]
179#[serde(default)]
180pub struct ModelVersion {
181    /// Name of the parent registered model, relative to parent schema.
182    ///
183    /// Field 1: `model_name`
184    #[serde(
185        rename = "model_name",
186        alias = "modelName",
187        with = "::buffa::json_helpers::proto_string",
188        skip_serializing_if = "::buffa::json_helpers::skip_if::is_empty_str"
189    )]
190    pub model_name: ::buffa::alloc::string::String,
191    /// Name of parent catalog.
192    ///
193    /// Field 2: `catalog_name`
194    #[serde(
195        rename = "catalog_name",
196        alias = "catalogName",
197        with = "::buffa::json_helpers::proto_string",
198        skip_serializing_if = "::buffa::json_helpers::skip_if::is_empty_str"
199    )]
200    pub catalog_name: ::buffa::alloc::string::String,
201    /// Name of parent schema.
202    ///
203    /// Field 3: `schema_name`
204    #[serde(
205        rename = "schema_name",
206        alias = "schemaName",
207        with = "::buffa::json_helpers::proto_string",
208        skip_serializing_if = "::buffa::json_helpers::skip_if::is_empty_str"
209    )]
210    pub schema_name: ::buffa::alloc::string::String,
211    /// Integer model version number, used to reference the model version in API
212    /// requests. Assigned by the server, monotonically increasing per model.
213    ///
214    /// Field 4: `version`
215    #[serde(
216        rename = "version",
217        with = "::buffa::json_helpers::int64",
218        skip_serializing_if = "::buffa::json_helpers::skip_if::is_zero_i64"
219    )]
220    pub version: i64,
221    /// URI indicating the location of the source artifacts used to create the model
222    /// version.
223    ///
224    /// Field 5: `source`
225    #[serde(
226        rename = "source",
227        with = "::buffa::json_helpers::proto_string",
228        skip_serializing_if = "::buffa::json_helpers::skip_if::is_empty_str"
229    )]
230    pub source: ::buffa::alloc::string::String,
231    /// The run id used by the ML package that generated this model.
232    ///
233    /// Field 6: `run_id`
234    #[serde(
235        rename = "run_id",
236        alias = "runId",
237        skip_serializing_if = "::core::option::Option::is_none"
238    )]
239    pub run_id: ::core::option::Option<::buffa::alloc::string::String>,
240    /// Current status of the model version.
241    ///
242    /// Field 7: `status`
243    #[serde(
244        rename = "status",
245        with = "::buffa::json_helpers::proto_enum",
246        skip_serializing_if = "::buffa::json_helpers::skip_if::is_default_enum_value"
247    )]
248    pub status: ::buffa::EnumValue<ModelVersionStatus>,
249    /// The storage location under which the model version's artifacts are stored.
250    ///
251    /// Field 8: `storage_location`
252    #[serde(
253        rename = "storage_location",
254        alias = "storageLocation",
255        skip_serializing_if = "::core::option::Option::is_none"
256    )]
257    pub storage_location: ::core::option::Option<::buffa::alloc::string::String>,
258    /// User-provided free-form text description.
259    ///
260    /// Field 9: `comment`
261    #[serde(rename = "comment", skip_serializing_if = "::core::option::Option::is_none")]
262    pub comment: ::core::option::Option<::buffa::alloc::string::String>,
263    /// Unique identifier for the model version.
264    ///
265    /// Field 10: `id`
266    #[serde(rename = "id", skip_serializing_if = "::core::option::Option::is_none")]
267    pub id: ::core::option::Option<::buffa::alloc::string::String>,
268    /// Time at which this model version was created, in epoch milliseconds.
269    ///
270    /// Field 1000: `created_at`
271    #[serde(
272        rename = "created_at",
273        alias = "createdAt",
274        with = "::buffa::json_helpers::opt_int64",
275        skip_serializing_if = "::core::option::Option::is_none"
276    )]
277    pub created_at: ::core::option::Option<i64>,
278    /// Username of model version creator.
279    ///
280    /// Field 1001: `created_by`
281    #[serde(
282        rename = "created_by",
283        alias = "createdBy",
284        skip_serializing_if = "::core::option::Option::is_none"
285    )]
286    pub created_by: ::core::option::Option<::buffa::alloc::string::String>,
287    /// Time at which this model version was last updated, in epoch milliseconds.
288    ///
289    /// Field 1002: `updated_at`
290    #[serde(
291        rename = "updated_at",
292        alias = "updatedAt",
293        with = "::buffa::json_helpers::opt_int64",
294        skip_serializing_if = "::core::option::Option::is_none"
295    )]
296    pub updated_at: ::core::option::Option<i64>,
297    /// Username of user who last modified the model version.
298    ///
299    /// Field 1003: `updated_by`
300    #[serde(
301        rename = "updated_by",
302        alias = "updatedBy",
303        skip_serializing_if = "::core::option::Option::is_none"
304    )]
305    pub updated_by: ::core::option::Option<::buffa::alloc::string::String>,
306    /// The unique identifier of the metastore.
307    ///
308    /// Field 1004: `metastore_id`
309    #[serde(
310        rename = "metastore_id",
311        alias = "metastoreId",
312        skip_serializing_if = "::core::option::Option::is_none"
313    )]
314    pub metastore_id: ::core::option::Option<::buffa::alloc::string::String>,
315    /// Indicates whether the principal is limited to retrieving metadata for the
316    /// associated object through the BROWSE privilege when include_browse is
317    /// enabled in the request.
318    ///
319    /// Field 1005: `browse_only`
320    #[serde(
321        rename = "browse_only",
322        alias = "browseOnly",
323        skip_serializing_if = "::core::option::Option::is_none"
324    )]
325    pub browse_only: ::core::option::Option<bool>,
326    #[serde(skip)]
327    #[doc(hidden)]
328    pub __buffa_unknown_fields: ::buffa::UnknownFields,
329}
330impl ::core::fmt::Debug for ModelVersion {
331    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
332        f.debug_struct("ModelVersion")
333            .field("model_name", &self.model_name)
334            .field("catalog_name", &self.catalog_name)
335            .field("schema_name", &self.schema_name)
336            .field("version", &self.version)
337            .field("source", &self.source)
338            .field("run_id", &self.run_id)
339            .field("status", &self.status)
340            .field("storage_location", &self.storage_location)
341            .field("comment", &self.comment)
342            .field("id", &self.id)
343            .field("created_at", &self.created_at)
344            .field("created_by", &self.created_by)
345            .field("updated_at", &self.updated_at)
346            .field("updated_by", &self.updated_by)
347            .field("metastore_id", &self.metastore_id)
348            .field("browse_only", &self.browse_only)
349            .finish()
350    }
351}
352impl ModelVersion {
353    /// Protobuf type URL for this message, for use with `Any::pack` and
354    /// `Any::unpack_if`.
355    ///
356    /// Format: `type.googleapis.com/<fully.qualified.TypeName>`
357    pub const TYPE_URL: &'static str = "type.googleapis.com/unitycatalog.model_versions.v1.ModelVersion";
358}
359impl ModelVersion {
360    #[must_use = "with_* setters return `self` by value; assign or chain the result"]
361    #[inline]
362    ///Sets [`Self::run_id`] to `Some(value)`, consuming and returning `self`.
363    pub fn with_run_id(
364        mut self,
365        value: impl Into<::buffa::alloc::string::String>,
366    ) -> Self {
367        self.run_id = Some(value.into());
368        self
369    }
370    #[must_use = "with_* setters return `self` by value; assign or chain the result"]
371    #[inline]
372    ///Sets [`Self::storage_location`] to `Some(value)`, consuming and returning `self`.
373    pub fn with_storage_location(
374        mut self,
375        value: impl Into<::buffa::alloc::string::String>,
376    ) -> Self {
377        self.storage_location = Some(value.into());
378        self
379    }
380    #[must_use = "with_* setters return `self` by value; assign or chain the result"]
381    #[inline]
382    ///Sets [`Self::comment`] to `Some(value)`, consuming and returning `self`.
383    pub fn with_comment(
384        mut self,
385        value: impl Into<::buffa::alloc::string::String>,
386    ) -> Self {
387        self.comment = Some(value.into());
388        self
389    }
390    #[must_use = "with_* setters return `self` by value; assign or chain the result"]
391    #[inline]
392    ///Sets [`Self::id`] to `Some(value)`, consuming and returning `self`.
393    pub fn with_id(mut self, value: impl Into<::buffa::alloc::string::String>) -> Self {
394        self.id = Some(value.into());
395        self
396    }
397    #[must_use = "with_* setters return `self` by value; assign or chain the result"]
398    #[inline]
399    ///Sets [`Self::created_at`] to `Some(value)`, consuming and returning `self`.
400    pub fn with_created_at(mut self, value: i64) -> Self {
401        self.created_at = Some(value);
402        self
403    }
404    #[must_use = "with_* setters return `self` by value; assign or chain the result"]
405    #[inline]
406    ///Sets [`Self::created_by`] to `Some(value)`, consuming and returning `self`.
407    pub fn with_created_by(
408        mut self,
409        value: impl Into<::buffa::alloc::string::String>,
410    ) -> Self {
411        self.created_by = Some(value.into());
412        self
413    }
414    #[must_use = "with_* setters return `self` by value; assign or chain the result"]
415    #[inline]
416    ///Sets [`Self::updated_at`] to `Some(value)`, consuming and returning `self`.
417    pub fn with_updated_at(mut self, value: i64) -> Self {
418        self.updated_at = Some(value);
419        self
420    }
421    #[must_use = "with_* setters return `self` by value; assign or chain the result"]
422    #[inline]
423    ///Sets [`Self::updated_by`] to `Some(value)`, consuming and returning `self`.
424    pub fn with_updated_by(
425        mut self,
426        value: impl Into<::buffa::alloc::string::String>,
427    ) -> Self {
428        self.updated_by = Some(value.into());
429        self
430    }
431    #[must_use = "with_* setters return `self` by value; assign or chain the result"]
432    #[inline]
433    ///Sets [`Self::metastore_id`] to `Some(value)`, consuming and returning `self`.
434    pub fn with_metastore_id(
435        mut self,
436        value: impl Into<::buffa::alloc::string::String>,
437    ) -> Self {
438        self.metastore_id = Some(value.into());
439        self
440    }
441    #[must_use = "with_* setters return `self` by value; assign or chain the result"]
442    #[inline]
443    ///Sets [`Self::browse_only`] to `Some(value)`, consuming and returning `self`.
444    pub fn with_browse_only(mut self, value: bool) -> Self {
445        self.browse_only = Some(value);
446        self
447    }
448}
449impl ::buffa::DefaultInstance for ModelVersion {
450    fn default_instance() -> &'static Self {
451        static VALUE: ::buffa::__private::OnceBox<ModelVersion> = ::buffa::__private::OnceBox::new();
452        VALUE.get_or_init(|| ::buffa::alloc::boxed::Box::new(Self::default()))
453    }
454}
455impl ::buffa::MessageName for ModelVersion {
456    const PACKAGE: &'static str = "unitycatalog.model_versions.v1";
457    const NAME: &'static str = "ModelVersion";
458    const FULL_NAME: &'static str = "unitycatalog.model_versions.v1.ModelVersion";
459    const TYPE_URL: &'static str = "type.googleapis.com/unitycatalog.model_versions.v1.ModelVersion";
460}
461impl ::buffa::Message for ModelVersion {
462    /// Returns the total encoded size in bytes.
463    ///
464    /// The result is a `u32`; the protobuf specification requires all
465    /// messages to fit within 2 GiB (2,147,483,647 bytes), so a
466    /// compliant message will never overflow this type.
467    #[allow(clippy::let_and_return)]
468    fn compute_size(&self, _cache: &mut ::buffa::SizeCache) -> u32 {
469        #[allow(unused_imports)]
470        use ::buffa::Enumeration as _;
471        let mut size = 0u32;
472        if !self.model_name.is_empty() {
473            size += 1u32 + ::buffa::types::string_encoded_len(&self.model_name) as u32;
474        }
475        if !self.catalog_name.is_empty() {
476            size += 1u32 + ::buffa::types::string_encoded_len(&self.catalog_name) as u32;
477        }
478        if !self.schema_name.is_empty() {
479            size += 1u32 + ::buffa::types::string_encoded_len(&self.schema_name) as u32;
480        }
481        if self.version != 0i64 {
482            size += 1u32 + ::buffa::types::int64_encoded_len(self.version) as u32;
483        }
484        if !self.source.is_empty() {
485            size += 1u32 + ::buffa::types::string_encoded_len(&self.source) as u32;
486        }
487        if let Some(ref v) = self.run_id {
488            size += 1u32 + ::buffa::types::string_encoded_len(v) as u32;
489        }
490        {
491            let val = self.status.to_i32();
492            if val != 0 {
493                size += 1u32 + ::buffa::types::int32_encoded_len(val) as u32;
494            }
495        }
496        if let Some(ref v) = self.storage_location {
497            size += 1u32 + ::buffa::types::string_encoded_len(v) as u32;
498        }
499        if let Some(ref v) = self.comment {
500            size += 1u32 + ::buffa::types::string_encoded_len(v) as u32;
501        }
502        if let Some(ref v) = self.id {
503            size += 1u32 + ::buffa::types::string_encoded_len(v) as u32;
504        }
505        if let Some(v) = self.created_at {
506            size += 2u32 + ::buffa::types::int64_encoded_len(v) as u32;
507        }
508        if let Some(ref v) = self.created_by {
509            size += 2u32 + ::buffa::types::string_encoded_len(v) as u32;
510        }
511        if let Some(v) = self.updated_at {
512            size += 2u32 + ::buffa::types::int64_encoded_len(v) as u32;
513        }
514        if let Some(ref v) = self.updated_by {
515            size += 2u32 + ::buffa::types::string_encoded_len(v) as u32;
516        }
517        if let Some(ref v) = self.metastore_id {
518            size += 2u32 + ::buffa::types::string_encoded_len(v) as u32;
519        }
520        if self.browse_only.is_some() {
521            size += 2u32 + ::buffa::types::BOOL_ENCODED_LEN as u32;
522        }
523        size += self.__buffa_unknown_fields.encoded_len() as u32;
524        size
525    }
526    fn write_to(
527        &self,
528        _cache: &mut ::buffa::SizeCache,
529        buf: &mut impl ::buffa::bytes::BufMut,
530    ) {
531        #[allow(unused_imports)]
532        use ::buffa::Enumeration as _;
533        if !self.model_name.is_empty() {
534            ::buffa::encoding::Tag::new(
535                    1u32,
536                    ::buffa::encoding::WireType::LengthDelimited,
537                )
538                .encode(buf);
539            ::buffa::types::encode_string(&self.model_name, buf);
540        }
541        if !self.catalog_name.is_empty() {
542            ::buffa::encoding::Tag::new(
543                    2u32,
544                    ::buffa::encoding::WireType::LengthDelimited,
545                )
546                .encode(buf);
547            ::buffa::types::encode_string(&self.catalog_name, buf);
548        }
549        if !self.schema_name.is_empty() {
550            ::buffa::encoding::Tag::new(
551                    3u32,
552                    ::buffa::encoding::WireType::LengthDelimited,
553                )
554                .encode(buf);
555            ::buffa::types::encode_string(&self.schema_name, buf);
556        }
557        if self.version != 0i64 {
558            ::buffa::encoding::Tag::new(4u32, ::buffa::encoding::WireType::Varint)
559                .encode(buf);
560            ::buffa::types::encode_int64(self.version, buf);
561        }
562        if !self.source.is_empty() {
563            ::buffa::encoding::Tag::new(
564                    5u32,
565                    ::buffa::encoding::WireType::LengthDelimited,
566                )
567                .encode(buf);
568            ::buffa::types::encode_string(&self.source, buf);
569        }
570        if let Some(ref v) = self.run_id {
571            ::buffa::encoding::Tag::new(
572                    6u32,
573                    ::buffa::encoding::WireType::LengthDelimited,
574                )
575                .encode(buf);
576            ::buffa::types::encode_string(v, buf);
577        }
578        {
579            let val = self.status.to_i32();
580            if val != 0 {
581                ::buffa::encoding::Tag::new(7u32, ::buffa::encoding::WireType::Varint)
582                    .encode(buf);
583                ::buffa::types::encode_int32(val, buf);
584            }
585        }
586        if let Some(ref v) = self.storage_location {
587            ::buffa::encoding::Tag::new(
588                    8u32,
589                    ::buffa::encoding::WireType::LengthDelimited,
590                )
591                .encode(buf);
592            ::buffa::types::encode_string(v, buf);
593        }
594        if let Some(ref v) = self.comment {
595            ::buffa::encoding::Tag::new(
596                    9u32,
597                    ::buffa::encoding::WireType::LengthDelimited,
598                )
599                .encode(buf);
600            ::buffa::types::encode_string(v, buf);
601        }
602        if let Some(ref v) = self.id {
603            ::buffa::encoding::Tag::new(
604                    10u32,
605                    ::buffa::encoding::WireType::LengthDelimited,
606                )
607                .encode(buf);
608            ::buffa::types::encode_string(v, buf);
609        }
610        if let Some(v) = self.created_at {
611            ::buffa::encoding::Tag::new(1000u32, ::buffa::encoding::WireType::Varint)
612                .encode(buf);
613            ::buffa::types::encode_int64(v, buf);
614        }
615        if let Some(ref v) = self.created_by {
616            ::buffa::encoding::Tag::new(
617                    1001u32,
618                    ::buffa::encoding::WireType::LengthDelimited,
619                )
620                .encode(buf);
621            ::buffa::types::encode_string(v, buf);
622        }
623        if let Some(v) = self.updated_at {
624            ::buffa::encoding::Tag::new(1002u32, ::buffa::encoding::WireType::Varint)
625                .encode(buf);
626            ::buffa::types::encode_int64(v, buf);
627        }
628        if let Some(ref v) = self.updated_by {
629            ::buffa::encoding::Tag::new(
630                    1003u32,
631                    ::buffa::encoding::WireType::LengthDelimited,
632                )
633                .encode(buf);
634            ::buffa::types::encode_string(v, buf);
635        }
636        if let Some(ref v) = self.metastore_id {
637            ::buffa::encoding::Tag::new(
638                    1004u32,
639                    ::buffa::encoding::WireType::LengthDelimited,
640                )
641                .encode(buf);
642            ::buffa::types::encode_string(v, buf);
643        }
644        if let Some(v) = self.browse_only {
645            ::buffa::encoding::Tag::new(1005u32, ::buffa::encoding::WireType::Varint)
646                .encode(buf);
647            ::buffa::types::encode_bool(v, buf);
648        }
649        self.__buffa_unknown_fields.write_to(buf);
650    }
651    fn merge_field(
652        &mut self,
653        tag: ::buffa::encoding::Tag,
654        buf: &mut impl ::buffa::bytes::Buf,
655        depth: u32,
656    ) -> ::core::result::Result<(), ::buffa::DecodeError> {
657        #[allow(unused_imports)]
658        use ::buffa::bytes::Buf as _;
659        #[allow(unused_imports)]
660        use ::buffa::Enumeration as _;
661        match tag.field_number() {
662            1u32 => {
663                if tag.wire_type() != ::buffa::encoding::WireType::LengthDelimited {
664                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
665                        field_number: 1u32,
666                        expected: 2u8,
667                        actual: tag.wire_type() as u8,
668                    });
669                }
670                ::buffa::types::merge_string(&mut self.model_name, buf)?;
671            }
672            2u32 => {
673                if tag.wire_type() != ::buffa::encoding::WireType::LengthDelimited {
674                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
675                        field_number: 2u32,
676                        expected: 2u8,
677                        actual: tag.wire_type() as u8,
678                    });
679                }
680                ::buffa::types::merge_string(&mut self.catalog_name, buf)?;
681            }
682            3u32 => {
683                if tag.wire_type() != ::buffa::encoding::WireType::LengthDelimited {
684                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
685                        field_number: 3u32,
686                        expected: 2u8,
687                        actual: tag.wire_type() as u8,
688                    });
689                }
690                ::buffa::types::merge_string(&mut self.schema_name, buf)?;
691            }
692            4u32 => {
693                if tag.wire_type() != ::buffa::encoding::WireType::Varint {
694                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
695                        field_number: 4u32,
696                        expected: 0u8,
697                        actual: tag.wire_type() as u8,
698                    });
699                }
700                self.version = ::buffa::types::decode_int64(buf)?;
701            }
702            5u32 => {
703                if tag.wire_type() != ::buffa::encoding::WireType::LengthDelimited {
704                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
705                        field_number: 5u32,
706                        expected: 2u8,
707                        actual: tag.wire_type() as u8,
708                    });
709                }
710                ::buffa::types::merge_string(&mut self.source, buf)?;
711            }
712            6u32 => {
713                if tag.wire_type() != ::buffa::encoding::WireType::LengthDelimited {
714                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
715                        field_number: 6u32,
716                        expected: 2u8,
717                        actual: tag.wire_type() as u8,
718                    });
719                }
720                ::buffa::types::merge_string(
721                    self.run_id.get_or_insert_with(::buffa::alloc::string::String::new),
722                    buf,
723                )?;
724            }
725            7u32 => {
726                if tag.wire_type() != ::buffa::encoding::WireType::Varint {
727                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
728                        field_number: 7u32,
729                        expected: 0u8,
730                        actual: tag.wire_type() as u8,
731                    });
732                }
733                self.status = ::buffa::EnumValue::from(
734                    ::buffa::types::decode_int32(buf)?,
735                );
736            }
737            8u32 => {
738                if tag.wire_type() != ::buffa::encoding::WireType::LengthDelimited {
739                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
740                        field_number: 8u32,
741                        expected: 2u8,
742                        actual: tag.wire_type() as u8,
743                    });
744                }
745                ::buffa::types::merge_string(
746                    self
747                        .storage_location
748                        .get_or_insert_with(::buffa::alloc::string::String::new),
749                    buf,
750                )?;
751            }
752            9u32 => {
753                if tag.wire_type() != ::buffa::encoding::WireType::LengthDelimited {
754                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
755                        field_number: 9u32,
756                        expected: 2u8,
757                        actual: tag.wire_type() as u8,
758                    });
759                }
760                ::buffa::types::merge_string(
761                    self.comment.get_or_insert_with(::buffa::alloc::string::String::new),
762                    buf,
763                )?;
764            }
765            10u32 => {
766                if tag.wire_type() != ::buffa::encoding::WireType::LengthDelimited {
767                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
768                        field_number: 10u32,
769                        expected: 2u8,
770                        actual: tag.wire_type() as u8,
771                    });
772                }
773                ::buffa::types::merge_string(
774                    self.id.get_or_insert_with(::buffa::alloc::string::String::new),
775                    buf,
776                )?;
777            }
778            1000u32 => {
779                if tag.wire_type() != ::buffa::encoding::WireType::Varint {
780                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
781                        field_number: 1000u32,
782                        expected: 0u8,
783                        actual: tag.wire_type() as u8,
784                    });
785                }
786                self.created_at = ::core::option::Option::Some(
787                    ::buffa::types::decode_int64(buf)?,
788                );
789            }
790            1001u32 => {
791                if tag.wire_type() != ::buffa::encoding::WireType::LengthDelimited {
792                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
793                        field_number: 1001u32,
794                        expected: 2u8,
795                        actual: tag.wire_type() as u8,
796                    });
797                }
798                ::buffa::types::merge_string(
799                    self
800                        .created_by
801                        .get_or_insert_with(::buffa::alloc::string::String::new),
802                    buf,
803                )?;
804            }
805            1002u32 => {
806                if tag.wire_type() != ::buffa::encoding::WireType::Varint {
807                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
808                        field_number: 1002u32,
809                        expected: 0u8,
810                        actual: tag.wire_type() as u8,
811                    });
812                }
813                self.updated_at = ::core::option::Option::Some(
814                    ::buffa::types::decode_int64(buf)?,
815                );
816            }
817            1003u32 => {
818                if tag.wire_type() != ::buffa::encoding::WireType::LengthDelimited {
819                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
820                        field_number: 1003u32,
821                        expected: 2u8,
822                        actual: tag.wire_type() as u8,
823                    });
824                }
825                ::buffa::types::merge_string(
826                    self
827                        .updated_by
828                        .get_or_insert_with(::buffa::alloc::string::String::new),
829                    buf,
830                )?;
831            }
832            1004u32 => {
833                if tag.wire_type() != ::buffa::encoding::WireType::LengthDelimited {
834                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
835                        field_number: 1004u32,
836                        expected: 2u8,
837                        actual: tag.wire_type() as u8,
838                    });
839                }
840                ::buffa::types::merge_string(
841                    self
842                        .metastore_id
843                        .get_or_insert_with(::buffa::alloc::string::String::new),
844                    buf,
845                )?;
846            }
847            1005u32 => {
848                if tag.wire_type() != ::buffa::encoding::WireType::Varint {
849                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
850                        field_number: 1005u32,
851                        expected: 0u8,
852                        actual: tag.wire_type() as u8,
853                    });
854                }
855                self.browse_only = ::core::option::Option::Some(
856                    ::buffa::types::decode_bool(buf)?,
857                );
858            }
859            _ => {
860                self.__buffa_unknown_fields
861                    .push(::buffa::encoding::decode_unknown_field(tag, buf, depth)?);
862            }
863        }
864        ::core::result::Result::Ok(())
865    }
866    fn clear(&mut self) {
867        self.model_name.clear();
868        self.catalog_name.clear();
869        self.schema_name.clear();
870        self.version = 0i64;
871        self.source.clear();
872        self.run_id = ::core::option::Option::None;
873        self.status = ::buffa::EnumValue::from(0);
874        self.storage_location = ::core::option::Option::None;
875        self.comment = ::core::option::Option::None;
876        self.id = ::core::option::Option::None;
877        self.created_at = ::core::option::Option::None;
878        self.created_by = ::core::option::Option::None;
879        self.updated_at = ::core::option::Option::None;
880        self.updated_by = ::core::option::Option::None;
881        self.metastore_id = ::core::option::Option::None;
882        self.browse_only = ::core::option::Option::None;
883        self.__buffa_unknown_fields.clear();
884    }
885}
886impl ::buffa::ExtensionSet for ModelVersion {
887    const PROTO_FQN: &'static str = "unitycatalog.model_versions.v1.ModelVersion";
888    fn unknown_fields(&self) -> &::buffa::UnknownFields {
889        &self.__buffa_unknown_fields
890    }
891    fn unknown_fields_mut(&mut self) -> &mut ::buffa::UnknownFields {
892        &mut self.__buffa_unknown_fields
893    }
894}
895impl ::buffa::json_helpers::ProtoElemJson for ModelVersion {
896    fn serialize_proto_json<S: ::serde::Serializer>(
897        v: &Self,
898        s: S,
899    ) -> ::core::result::Result<S::Ok, S::Error> {
900        ::serde::Serialize::serialize(v, s)
901    }
902    fn deserialize_proto_json<'de, D: ::serde::Deserializer<'de>>(
903        d: D,
904    ) -> ::core::result::Result<Self, D::Error> {
905        <Self as ::serde::Deserialize>::deserialize(d)
906    }
907}
908#[doc(hidden)]
909pub const __MODEL_VERSION_JSON_ANY: ::buffa::type_registry::JsonAnyEntry = ::buffa::type_registry::JsonAnyEntry {
910    type_url: "type.googleapis.com/unitycatalog.model_versions.v1.ModelVersion",
911    to_json: ::buffa::type_registry::any_to_json::<ModelVersion>,
912    from_json: ::buffa::type_registry::any_from_json::<ModelVersion>,
913    is_wkt: false,
914};
915/// List model versions of a registered model.
916#[derive(Clone, PartialEq, Default)]
917#[derive(::serde::Serialize, ::serde::Deserialize)]
918#[serde(default)]
919pub struct ListModelVersionsRequest {
920    /// The full three-level name of the registered model (catalog.schema.model)
921    /// whose versions are being listed.
922    ///
923    /// Field 1: `full_name`
924    #[serde(
925        rename = "full_name",
926        alias = "fullName",
927        with = "::buffa::json_helpers::proto_string",
928        skip_serializing_if = "::buffa::json_helpers::skip_if::is_empty_str"
929    )]
930    pub full_name: ::buffa::alloc::string::String,
931    /// The maximum number of results per page that should be returned.
932    ///
933    /// Field 2: `max_results`
934    #[serde(
935        rename = "max_results",
936        alias = "maxResults",
937        with = "::buffa::json_helpers::opt_int32",
938        skip_serializing_if = "::core::option::Option::is_none"
939    )]
940    pub max_results: ::core::option::Option<i32>,
941    /// Opaque pagination token to go to next page based on previous query.
942    ///
943    /// Field 3: `page_token`
944    #[serde(
945        rename = "page_token",
946        alias = "pageToken",
947        skip_serializing_if = "::core::option::Option::is_none"
948    )]
949    pub page_token: ::core::option::Option<::buffa::alloc::string::String>,
950    /// Whether to include model versions in the response for which the principal can
951    /// only access selective metadata for.
952    ///
953    /// Field 4: `include_browse`
954    #[serde(
955        rename = "include_browse",
956        alias = "includeBrowse",
957        skip_serializing_if = "::core::option::Option::is_none"
958    )]
959    pub include_browse: ::core::option::Option<bool>,
960    #[serde(skip)]
961    #[doc(hidden)]
962    pub __buffa_unknown_fields: ::buffa::UnknownFields,
963}
964impl ::core::fmt::Debug for ListModelVersionsRequest {
965    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
966        f.debug_struct("ListModelVersionsRequest")
967            .field("full_name", &self.full_name)
968            .field("max_results", &self.max_results)
969            .field("page_token", &self.page_token)
970            .field("include_browse", &self.include_browse)
971            .finish()
972    }
973}
974impl ListModelVersionsRequest {
975    /// Protobuf type URL for this message, for use with `Any::pack` and
976    /// `Any::unpack_if`.
977    ///
978    /// Format: `type.googleapis.com/<fully.qualified.TypeName>`
979    pub const TYPE_URL: &'static str = "type.googleapis.com/unitycatalog.model_versions.v1.ListModelVersionsRequest";
980}
981impl ListModelVersionsRequest {
982    #[must_use = "with_* setters return `self` by value; assign or chain the result"]
983    #[inline]
984    ///Sets [`Self::max_results`] to `Some(value)`, consuming and returning `self`.
985    pub fn with_max_results(mut self, value: i32) -> Self {
986        self.max_results = Some(value);
987        self
988    }
989    #[must_use = "with_* setters return `self` by value; assign or chain the result"]
990    #[inline]
991    ///Sets [`Self::page_token`] to `Some(value)`, consuming and returning `self`.
992    pub fn with_page_token(
993        mut self,
994        value: impl Into<::buffa::alloc::string::String>,
995    ) -> Self {
996        self.page_token = Some(value.into());
997        self
998    }
999    #[must_use = "with_* setters return `self` by value; assign or chain the result"]
1000    #[inline]
1001    ///Sets [`Self::include_browse`] to `Some(value)`, consuming and returning `self`.
1002    pub fn with_include_browse(mut self, value: bool) -> Self {
1003        self.include_browse = Some(value);
1004        self
1005    }
1006}
1007impl ::buffa::DefaultInstance for ListModelVersionsRequest {
1008    fn default_instance() -> &'static Self {
1009        static VALUE: ::buffa::__private::OnceBox<ListModelVersionsRequest> = ::buffa::__private::OnceBox::new();
1010        VALUE.get_or_init(|| ::buffa::alloc::boxed::Box::new(Self::default()))
1011    }
1012}
1013impl ::buffa::MessageName for ListModelVersionsRequest {
1014    const PACKAGE: &'static str = "unitycatalog.model_versions.v1";
1015    const NAME: &'static str = "ListModelVersionsRequest";
1016    const FULL_NAME: &'static str = "unitycatalog.model_versions.v1.ListModelVersionsRequest";
1017    const TYPE_URL: &'static str = "type.googleapis.com/unitycatalog.model_versions.v1.ListModelVersionsRequest";
1018}
1019impl ::buffa::Message for ListModelVersionsRequest {
1020    /// Returns the total encoded size in bytes.
1021    ///
1022    /// The result is a `u32`; the protobuf specification requires all
1023    /// messages to fit within 2 GiB (2,147,483,647 bytes), so a
1024    /// compliant message will never overflow this type.
1025    #[allow(clippy::let_and_return)]
1026    fn compute_size(&self, _cache: &mut ::buffa::SizeCache) -> u32 {
1027        #[allow(unused_imports)]
1028        use ::buffa::Enumeration as _;
1029        let mut size = 0u32;
1030        if !self.full_name.is_empty() {
1031            size += 1u32 + ::buffa::types::string_encoded_len(&self.full_name) as u32;
1032        }
1033        if let Some(v) = self.max_results {
1034            size += 1u32 + ::buffa::types::int32_encoded_len(v) as u32;
1035        }
1036        if let Some(ref v) = self.page_token {
1037            size += 1u32 + ::buffa::types::string_encoded_len(v) as u32;
1038        }
1039        if self.include_browse.is_some() {
1040            size += 1u32 + ::buffa::types::BOOL_ENCODED_LEN as u32;
1041        }
1042        size += self.__buffa_unknown_fields.encoded_len() as u32;
1043        size
1044    }
1045    fn write_to(
1046        &self,
1047        _cache: &mut ::buffa::SizeCache,
1048        buf: &mut impl ::buffa::bytes::BufMut,
1049    ) {
1050        #[allow(unused_imports)]
1051        use ::buffa::Enumeration as _;
1052        if !self.full_name.is_empty() {
1053            ::buffa::encoding::Tag::new(
1054                    1u32,
1055                    ::buffa::encoding::WireType::LengthDelimited,
1056                )
1057                .encode(buf);
1058            ::buffa::types::encode_string(&self.full_name, buf);
1059        }
1060        if let Some(v) = self.max_results {
1061            ::buffa::encoding::Tag::new(2u32, ::buffa::encoding::WireType::Varint)
1062                .encode(buf);
1063            ::buffa::types::encode_int32(v, buf);
1064        }
1065        if let Some(ref v) = self.page_token {
1066            ::buffa::encoding::Tag::new(
1067                    3u32,
1068                    ::buffa::encoding::WireType::LengthDelimited,
1069                )
1070                .encode(buf);
1071            ::buffa::types::encode_string(v, buf);
1072        }
1073        if let Some(v) = self.include_browse {
1074            ::buffa::encoding::Tag::new(4u32, ::buffa::encoding::WireType::Varint)
1075                .encode(buf);
1076            ::buffa::types::encode_bool(v, buf);
1077        }
1078        self.__buffa_unknown_fields.write_to(buf);
1079    }
1080    fn merge_field(
1081        &mut self,
1082        tag: ::buffa::encoding::Tag,
1083        buf: &mut impl ::buffa::bytes::Buf,
1084        depth: u32,
1085    ) -> ::core::result::Result<(), ::buffa::DecodeError> {
1086        #[allow(unused_imports)]
1087        use ::buffa::bytes::Buf as _;
1088        #[allow(unused_imports)]
1089        use ::buffa::Enumeration as _;
1090        match tag.field_number() {
1091            1u32 => {
1092                if tag.wire_type() != ::buffa::encoding::WireType::LengthDelimited {
1093                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
1094                        field_number: 1u32,
1095                        expected: 2u8,
1096                        actual: tag.wire_type() as u8,
1097                    });
1098                }
1099                ::buffa::types::merge_string(&mut self.full_name, buf)?;
1100            }
1101            2u32 => {
1102                if tag.wire_type() != ::buffa::encoding::WireType::Varint {
1103                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
1104                        field_number: 2u32,
1105                        expected: 0u8,
1106                        actual: tag.wire_type() as u8,
1107                    });
1108                }
1109                self.max_results = ::core::option::Option::Some(
1110                    ::buffa::types::decode_int32(buf)?,
1111                );
1112            }
1113            3u32 => {
1114                if tag.wire_type() != ::buffa::encoding::WireType::LengthDelimited {
1115                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
1116                        field_number: 3u32,
1117                        expected: 2u8,
1118                        actual: tag.wire_type() as u8,
1119                    });
1120                }
1121                ::buffa::types::merge_string(
1122                    self
1123                        .page_token
1124                        .get_or_insert_with(::buffa::alloc::string::String::new),
1125                    buf,
1126                )?;
1127            }
1128            4u32 => {
1129                if tag.wire_type() != ::buffa::encoding::WireType::Varint {
1130                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
1131                        field_number: 4u32,
1132                        expected: 0u8,
1133                        actual: tag.wire_type() as u8,
1134                    });
1135                }
1136                self.include_browse = ::core::option::Option::Some(
1137                    ::buffa::types::decode_bool(buf)?,
1138                );
1139            }
1140            _ => {
1141                self.__buffa_unknown_fields
1142                    .push(::buffa::encoding::decode_unknown_field(tag, buf, depth)?);
1143            }
1144        }
1145        ::core::result::Result::Ok(())
1146    }
1147    fn clear(&mut self) {
1148        self.full_name.clear();
1149        self.max_results = ::core::option::Option::None;
1150        self.page_token = ::core::option::Option::None;
1151        self.include_browse = ::core::option::Option::None;
1152        self.__buffa_unknown_fields.clear();
1153    }
1154}
1155impl ::buffa::ExtensionSet for ListModelVersionsRequest {
1156    const PROTO_FQN: &'static str = "unitycatalog.model_versions.v1.ListModelVersionsRequest";
1157    fn unknown_fields(&self) -> &::buffa::UnknownFields {
1158        &self.__buffa_unknown_fields
1159    }
1160    fn unknown_fields_mut(&mut self) -> &mut ::buffa::UnknownFields {
1161        &mut self.__buffa_unknown_fields
1162    }
1163}
1164impl ::buffa::json_helpers::ProtoElemJson for ListModelVersionsRequest {
1165    fn serialize_proto_json<S: ::serde::Serializer>(
1166        v: &Self,
1167        s: S,
1168    ) -> ::core::result::Result<S::Ok, S::Error> {
1169        ::serde::Serialize::serialize(v, s)
1170    }
1171    fn deserialize_proto_json<'de, D: ::serde::Deserializer<'de>>(
1172        d: D,
1173    ) -> ::core::result::Result<Self, D::Error> {
1174        <Self as ::serde::Deserialize>::deserialize(d)
1175    }
1176}
1177#[doc(hidden)]
1178pub const __LIST_MODEL_VERSIONS_REQUEST_JSON_ANY: ::buffa::type_registry::JsonAnyEntry = ::buffa::type_registry::JsonAnyEntry {
1179    type_url: "type.googleapis.com/unitycatalog.model_versions.v1.ListModelVersionsRequest",
1180    to_json: ::buffa::type_registry::any_to_json::<ListModelVersionsRequest>,
1181    from_json: ::buffa::type_registry::any_from_json::<ListModelVersionsRequest>,
1182    is_wkt: false,
1183};
1184/// List model versions response.
1185#[derive(Clone, PartialEq, Default)]
1186#[derive(::serde::Serialize, ::serde::Deserialize)]
1187#[serde(default)]
1188pub struct ListModelVersionsResponse {
1189    /// The model versions returned.
1190    ///
1191    /// Field 1: `model_versions`
1192    #[serde(
1193        rename = "model_versions",
1194        alias = "modelVersions",
1195        skip_serializing_if = "::buffa::json_helpers::skip_if::is_empty_vec",
1196        deserialize_with = "::buffa::json_helpers::null_as_default"
1197    )]
1198    pub model_versions: ::buffa::alloc::vec::Vec<ModelVersion>,
1199    /// The next_page_token value to include in the next List request.
1200    ///
1201    /// Field 2: `next_page_token`
1202    #[serde(
1203        rename = "next_page_token",
1204        alias = "nextPageToken",
1205        skip_serializing_if = "::core::option::Option::is_none"
1206    )]
1207    pub next_page_token: ::core::option::Option<::buffa::alloc::string::String>,
1208    #[serde(skip)]
1209    #[doc(hidden)]
1210    pub __buffa_unknown_fields: ::buffa::UnknownFields,
1211}
1212impl ::core::fmt::Debug for ListModelVersionsResponse {
1213    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1214        f.debug_struct("ListModelVersionsResponse")
1215            .field("model_versions", &self.model_versions)
1216            .field("next_page_token", &self.next_page_token)
1217            .finish()
1218    }
1219}
1220impl ListModelVersionsResponse {
1221    /// Protobuf type URL for this message, for use with `Any::pack` and
1222    /// `Any::unpack_if`.
1223    ///
1224    /// Format: `type.googleapis.com/<fully.qualified.TypeName>`
1225    pub const TYPE_URL: &'static str = "type.googleapis.com/unitycatalog.model_versions.v1.ListModelVersionsResponse";
1226}
1227impl ListModelVersionsResponse {
1228    #[must_use = "with_* setters return `self` by value; assign or chain the result"]
1229    #[inline]
1230    ///Sets [`Self::next_page_token`] to `Some(value)`, consuming and returning `self`.
1231    pub fn with_next_page_token(
1232        mut self,
1233        value: impl Into<::buffa::alloc::string::String>,
1234    ) -> Self {
1235        self.next_page_token = Some(value.into());
1236        self
1237    }
1238}
1239impl ::buffa::DefaultInstance for ListModelVersionsResponse {
1240    fn default_instance() -> &'static Self {
1241        static VALUE: ::buffa::__private::OnceBox<ListModelVersionsResponse> = ::buffa::__private::OnceBox::new();
1242        VALUE.get_or_init(|| ::buffa::alloc::boxed::Box::new(Self::default()))
1243    }
1244}
1245impl ::buffa::MessageName for ListModelVersionsResponse {
1246    const PACKAGE: &'static str = "unitycatalog.model_versions.v1";
1247    const NAME: &'static str = "ListModelVersionsResponse";
1248    const FULL_NAME: &'static str = "unitycatalog.model_versions.v1.ListModelVersionsResponse";
1249    const TYPE_URL: &'static str = "type.googleapis.com/unitycatalog.model_versions.v1.ListModelVersionsResponse";
1250}
1251impl ::buffa::Message for ListModelVersionsResponse {
1252    /// Returns the total encoded size in bytes.
1253    ///
1254    /// The result is a `u32`; the protobuf specification requires all
1255    /// messages to fit within 2 GiB (2,147,483,647 bytes), so a
1256    /// compliant message will never overflow this type.
1257    #[allow(clippy::let_and_return)]
1258    fn compute_size(&self, __cache: &mut ::buffa::SizeCache) -> u32 {
1259        #[allow(unused_imports)]
1260        use ::buffa::Enumeration as _;
1261        let mut size = 0u32;
1262        for v in &self.model_versions {
1263            let __slot = __cache.reserve();
1264            let inner_size = v.compute_size(__cache);
1265            __cache.set(__slot, inner_size);
1266            size
1267                += 1u32 + ::buffa::encoding::varint_len(inner_size as u64) as u32
1268                    + inner_size;
1269        }
1270        if let Some(ref v) = self.next_page_token {
1271            size += 1u32 + ::buffa::types::string_encoded_len(v) as u32;
1272        }
1273        size += self.__buffa_unknown_fields.encoded_len() as u32;
1274        size
1275    }
1276    fn write_to(
1277        &self,
1278        __cache: &mut ::buffa::SizeCache,
1279        buf: &mut impl ::buffa::bytes::BufMut,
1280    ) {
1281        #[allow(unused_imports)]
1282        use ::buffa::Enumeration as _;
1283        for v in &self.model_versions {
1284            ::buffa::encoding::Tag::new(
1285                    1u32,
1286                    ::buffa::encoding::WireType::LengthDelimited,
1287                )
1288                .encode(buf);
1289            ::buffa::encoding::encode_varint(__cache.consume_next() as u64, buf);
1290            v.write_to(__cache, buf);
1291        }
1292        if let Some(ref v) = self.next_page_token {
1293            ::buffa::encoding::Tag::new(
1294                    2u32,
1295                    ::buffa::encoding::WireType::LengthDelimited,
1296                )
1297                .encode(buf);
1298            ::buffa::types::encode_string(v, buf);
1299        }
1300        self.__buffa_unknown_fields.write_to(buf);
1301    }
1302    fn merge_field(
1303        &mut self,
1304        tag: ::buffa::encoding::Tag,
1305        buf: &mut impl ::buffa::bytes::Buf,
1306        depth: u32,
1307    ) -> ::core::result::Result<(), ::buffa::DecodeError> {
1308        #[allow(unused_imports)]
1309        use ::buffa::bytes::Buf as _;
1310        #[allow(unused_imports)]
1311        use ::buffa::Enumeration as _;
1312        match tag.field_number() {
1313            1u32 => {
1314                if tag.wire_type() != ::buffa::encoding::WireType::LengthDelimited {
1315                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
1316                        field_number: 1u32,
1317                        expected: 2u8,
1318                        actual: tag.wire_type() as u8,
1319                    });
1320                }
1321                let mut elem = ::core::default::Default::default();
1322                ::buffa::Message::merge_length_delimited(&mut elem, buf, depth)?;
1323                self.model_versions.push(elem);
1324            }
1325            2u32 => {
1326                if tag.wire_type() != ::buffa::encoding::WireType::LengthDelimited {
1327                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
1328                        field_number: 2u32,
1329                        expected: 2u8,
1330                        actual: tag.wire_type() as u8,
1331                    });
1332                }
1333                ::buffa::types::merge_string(
1334                    self
1335                        .next_page_token
1336                        .get_or_insert_with(::buffa::alloc::string::String::new),
1337                    buf,
1338                )?;
1339            }
1340            _ => {
1341                self.__buffa_unknown_fields
1342                    .push(::buffa::encoding::decode_unknown_field(tag, buf, depth)?);
1343            }
1344        }
1345        ::core::result::Result::Ok(())
1346    }
1347    fn clear(&mut self) {
1348        self.model_versions.clear();
1349        self.next_page_token = ::core::option::Option::None;
1350        self.__buffa_unknown_fields.clear();
1351    }
1352}
1353impl ::buffa::ExtensionSet for ListModelVersionsResponse {
1354    const PROTO_FQN: &'static str = "unitycatalog.model_versions.v1.ListModelVersionsResponse";
1355    fn unknown_fields(&self) -> &::buffa::UnknownFields {
1356        &self.__buffa_unknown_fields
1357    }
1358    fn unknown_fields_mut(&mut self) -> &mut ::buffa::UnknownFields {
1359        &mut self.__buffa_unknown_fields
1360    }
1361}
1362impl ::buffa::json_helpers::ProtoElemJson for ListModelVersionsResponse {
1363    fn serialize_proto_json<S: ::serde::Serializer>(
1364        v: &Self,
1365        s: S,
1366    ) -> ::core::result::Result<S::Ok, S::Error> {
1367        ::serde::Serialize::serialize(v, s)
1368    }
1369    fn deserialize_proto_json<'de, D: ::serde::Deserializer<'de>>(
1370        d: D,
1371    ) -> ::core::result::Result<Self, D::Error> {
1372        <Self as ::serde::Deserialize>::deserialize(d)
1373    }
1374}
1375#[doc(hidden)]
1376pub const __LIST_MODEL_VERSIONS_RESPONSE_JSON_ANY: ::buffa::type_registry::JsonAnyEntry = ::buffa::type_registry::JsonAnyEntry {
1377    type_url: "type.googleapis.com/unitycatalog.model_versions.v1.ListModelVersionsResponse",
1378    to_json: ::buffa::type_registry::any_to_json::<ListModelVersionsResponse>,
1379    from_json: ::buffa::type_registry::any_from_json::<ListModelVersionsResponse>,
1380    is_wkt: false,
1381};
1382/// Create a new model version.
1383#[derive(Clone, PartialEq, Default)]
1384#[derive(::serde::Serialize, ::serde::Deserialize)]
1385#[serde(default)]
1386pub struct CreateModelVersionRequest {
1387    /// Name of the parent registered model, relative to parent schema.
1388    ///
1389    /// Field 1: `model_name`
1390    #[serde(
1391        rename = "model_name",
1392        alias = "modelName",
1393        with = "::buffa::json_helpers::proto_string",
1394        skip_serializing_if = "::buffa::json_helpers::skip_if::is_empty_str"
1395    )]
1396    pub model_name: ::buffa::alloc::string::String,
1397    /// Name of parent catalog.
1398    ///
1399    /// Field 2: `catalog_name`
1400    #[serde(
1401        rename = "catalog_name",
1402        alias = "catalogName",
1403        with = "::buffa::json_helpers::proto_string",
1404        skip_serializing_if = "::buffa::json_helpers::skip_if::is_empty_str"
1405    )]
1406    pub catalog_name: ::buffa::alloc::string::String,
1407    /// Name of parent schema.
1408    ///
1409    /// Field 3: `schema_name`
1410    #[serde(
1411        rename = "schema_name",
1412        alias = "schemaName",
1413        with = "::buffa::json_helpers::proto_string",
1414        skip_serializing_if = "::buffa::json_helpers::skip_if::is_empty_str"
1415    )]
1416    pub schema_name: ::buffa::alloc::string::String,
1417    /// URI indicating the location of the source artifacts (e.g. an MLflow run
1418    /// artifact path) used to create the model version.
1419    ///
1420    /// Field 4: `source`
1421    #[serde(
1422        rename = "source",
1423        with = "::buffa::json_helpers::proto_string",
1424        skip_serializing_if = "::buffa::json_helpers::skip_if::is_empty_str"
1425    )]
1426    pub source: ::buffa::alloc::string::String,
1427    /// The run id used by the ML package that generated this model.
1428    ///
1429    /// Field 5: `run_id`
1430    #[serde(
1431        rename = "run_id",
1432        alias = "runId",
1433        skip_serializing_if = "::core::option::Option::is_none"
1434    )]
1435    pub run_id: ::core::option::Option<::buffa::alloc::string::String>,
1436    /// User-provided free-form text description.
1437    ///
1438    /// Field 6: `comment`
1439    #[serde(rename = "comment", skip_serializing_if = "::core::option::Option::is_none")]
1440    pub comment: ::core::option::Option<::buffa::alloc::string::String>,
1441    #[serde(skip)]
1442    #[doc(hidden)]
1443    pub __buffa_unknown_fields: ::buffa::UnknownFields,
1444}
1445impl ::core::fmt::Debug for CreateModelVersionRequest {
1446    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1447        f.debug_struct("CreateModelVersionRequest")
1448            .field("model_name", &self.model_name)
1449            .field("catalog_name", &self.catalog_name)
1450            .field("schema_name", &self.schema_name)
1451            .field("source", &self.source)
1452            .field("run_id", &self.run_id)
1453            .field("comment", &self.comment)
1454            .finish()
1455    }
1456}
1457impl CreateModelVersionRequest {
1458    /// Protobuf type URL for this message, for use with `Any::pack` and
1459    /// `Any::unpack_if`.
1460    ///
1461    /// Format: `type.googleapis.com/<fully.qualified.TypeName>`
1462    pub const TYPE_URL: &'static str = "type.googleapis.com/unitycatalog.model_versions.v1.CreateModelVersionRequest";
1463}
1464impl CreateModelVersionRequest {
1465    #[must_use = "with_* setters return `self` by value; assign or chain the result"]
1466    #[inline]
1467    ///Sets [`Self::run_id`] to `Some(value)`, consuming and returning `self`.
1468    pub fn with_run_id(
1469        mut self,
1470        value: impl Into<::buffa::alloc::string::String>,
1471    ) -> Self {
1472        self.run_id = Some(value.into());
1473        self
1474    }
1475    #[must_use = "with_* setters return `self` by value; assign or chain the result"]
1476    #[inline]
1477    ///Sets [`Self::comment`] to `Some(value)`, consuming and returning `self`.
1478    pub fn with_comment(
1479        mut self,
1480        value: impl Into<::buffa::alloc::string::String>,
1481    ) -> Self {
1482        self.comment = Some(value.into());
1483        self
1484    }
1485}
1486impl ::buffa::DefaultInstance for CreateModelVersionRequest {
1487    fn default_instance() -> &'static Self {
1488        static VALUE: ::buffa::__private::OnceBox<CreateModelVersionRequest> = ::buffa::__private::OnceBox::new();
1489        VALUE.get_or_init(|| ::buffa::alloc::boxed::Box::new(Self::default()))
1490    }
1491}
1492impl ::buffa::MessageName for CreateModelVersionRequest {
1493    const PACKAGE: &'static str = "unitycatalog.model_versions.v1";
1494    const NAME: &'static str = "CreateModelVersionRequest";
1495    const FULL_NAME: &'static str = "unitycatalog.model_versions.v1.CreateModelVersionRequest";
1496    const TYPE_URL: &'static str = "type.googleapis.com/unitycatalog.model_versions.v1.CreateModelVersionRequest";
1497}
1498impl ::buffa::Message for CreateModelVersionRequest {
1499    /// Returns the total encoded size in bytes.
1500    ///
1501    /// The result is a `u32`; the protobuf specification requires all
1502    /// messages to fit within 2 GiB (2,147,483,647 bytes), so a
1503    /// compliant message will never overflow this type.
1504    #[allow(clippy::let_and_return)]
1505    fn compute_size(&self, _cache: &mut ::buffa::SizeCache) -> u32 {
1506        #[allow(unused_imports)]
1507        use ::buffa::Enumeration as _;
1508        let mut size = 0u32;
1509        if !self.model_name.is_empty() {
1510            size += 1u32 + ::buffa::types::string_encoded_len(&self.model_name) as u32;
1511        }
1512        if !self.catalog_name.is_empty() {
1513            size += 1u32 + ::buffa::types::string_encoded_len(&self.catalog_name) as u32;
1514        }
1515        if !self.schema_name.is_empty() {
1516            size += 1u32 + ::buffa::types::string_encoded_len(&self.schema_name) as u32;
1517        }
1518        if !self.source.is_empty() {
1519            size += 1u32 + ::buffa::types::string_encoded_len(&self.source) as u32;
1520        }
1521        if let Some(ref v) = self.run_id {
1522            size += 1u32 + ::buffa::types::string_encoded_len(v) as u32;
1523        }
1524        if let Some(ref v) = self.comment {
1525            size += 1u32 + ::buffa::types::string_encoded_len(v) as u32;
1526        }
1527        size += self.__buffa_unknown_fields.encoded_len() as u32;
1528        size
1529    }
1530    fn write_to(
1531        &self,
1532        _cache: &mut ::buffa::SizeCache,
1533        buf: &mut impl ::buffa::bytes::BufMut,
1534    ) {
1535        #[allow(unused_imports)]
1536        use ::buffa::Enumeration as _;
1537        if !self.model_name.is_empty() {
1538            ::buffa::encoding::Tag::new(
1539                    1u32,
1540                    ::buffa::encoding::WireType::LengthDelimited,
1541                )
1542                .encode(buf);
1543            ::buffa::types::encode_string(&self.model_name, buf);
1544        }
1545        if !self.catalog_name.is_empty() {
1546            ::buffa::encoding::Tag::new(
1547                    2u32,
1548                    ::buffa::encoding::WireType::LengthDelimited,
1549                )
1550                .encode(buf);
1551            ::buffa::types::encode_string(&self.catalog_name, buf);
1552        }
1553        if !self.schema_name.is_empty() {
1554            ::buffa::encoding::Tag::new(
1555                    3u32,
1556                    ::buffa::encoding::WireType::LengthDelimited,
1557                )
1558                .encode(buf);
1559            ::buffa::types::encode_string(&self.schema_name, buf);
1560        }
1561        if !self.source.is_empty() {
1562            ::buffa::encoding::Tag::new(
1563                    4u32,
1564                    ::buffa::encoding::WireType::LengthDelimited,
1565                )
1566                .encode(buf);
1567            ::buffa::types::encode_string(&self.source, buf);
1568        }
1569        if let Some(ref v) = self.run_id {
1570            ::buffa::encoding::Tag::new(
1571                    5u32,
1572                    ::buffa::encoding::WireType::LengthDelimited,
1573                )
1574                .encode(buf);
1575            ::buffa::types::encode_string(v, buf);
1576        }
1577        if let Some(ref v) = self.comment {
1578            ::buffa::encoding::Tag::new(
1579                    6u32,
1580                    ::buffa::encoding::WireType::LengthDelimited,
1581                )
1582                .encode(buf);
1583            ::buffa::types::encode_string(v, buf);
1584        }
1585        self.__buffa_unknown_fields.write_to(buf);
1586    }
1587    fn merge_field(
1588        &mut self,
1589        tag: ::buffa::encoding::Tag,
1590        buf: &mut impl ::buffa::bytes::Buf,
1591        depth: u32,
1592    ) -> ::core::result::Result<(), ::buffa::DecodeError> {
1593        #[allow(unused_imports)]
1594        use ::buffa::bytes::Buf as _;
1595        #[allow(unused_imports)]
1596        use ::buffa::Enumeration as _;
1597        match tag.field_number() {
1598            1u32 => {
1599                if tag.wire_type() != ::buffa::encoding::WireType::LengthDelimited {
1600                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
1601                        field_number: 1u32,
1602                        expected: 2u8,
1603                        actual: tag.wire_type() as u8,
1604                    });
1605                }
1606                ::buffa::types::merge_string(&mut self.model_name, buf)?;
1607            }
1608            2u32 => {
1609                if tag.wire_type() != ::buffa::encoding::WireType::LengthDelimited {
1610                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
1611                        field_number: 2u32,
1612                        expected: 2u8,
1613                        actual: tag.wire_type() as u8,
1614                    });
1615                }
1616                ::buffa::types::merge_string(&mut self.catalog_name, buf)?;
1617            }
1618            3u32 => {
1619                if tag.wire_type() != ::buffa::encoding::WireType::LengthDelimited {
1620                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
1621                        field_number: 3u32,
1622                        expected: 2u8,
1623                        actual: tag.wire_type() as u8,
1624                    });
1625                }
1626                ::buffa::types::merge_string(&mut self.schema_name, buf)?;
1627            }
1628            4u32 => {
1629                if tag.wire_type() != ::buffa::encoding::WireType::LengthDelimited {
1630                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
1631                        field_number: 4u32,
1632                        expected: 2u8,
1633                        actual: tag.wire_type() as u8,
1634                    });
1635                }
1636                ::buffa::types::merge_string(&mut self.source, buf)?;
1637            }
1638            5u32 => {
1639                if tag.wire_type() != ::buffa::encoding::WireType::LengthDelimited {
1640                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
1641                        field_number: 5u32,
1642                        expected: 2u8,
1643                        actual: tag.wire_type() as u8,
1644                    });
1645                }
1646                ::buffa::types::merge_string(
1647                    self.run_id.get_or_insert_with(::buffa::alloc::string::String::new),
1648                    buf,
1649                )?;
1650            }
1651            6u32 => {
1652                if tag.wire_type() != ::buffa::encoding::WireType::LengthDelimited {
1653                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
1654                        field_number: 6u32,
1655                        expected: 2u8,
1656                        actual: tag.wire_type() as u8,
1657                    });
1658                }
1659                ::buffa::types::merge_string(
1660                    self.comment.get_or_insert_with(::buffa::alloc::string::String::new),
1661                    buf,
1662                )?;
1663            }
1664            _ => {
1665                self.__buffa_unknown_fields
1666                    .push(::buffa::encoding::decode_unknown_field(tag, buf, depth)?);
1667            }
1668        }
1669        ::core::result::Result::Ok(())
1670    }
1671    fn clear(&mut self) {
1672        self.model_name.clear();
1673        self.catalog_name.clear();
1674        self.schema_name.clear();
1675        self.source.clear();
1676        self.run_id = ::core::option::Option::None;
1677        self.comment = ::core::option::Option::None;
1678        self.__buffa_unknown_fields.clear();
1679    }
1680}
1681impl ::buffa::ExtensionSet for CreateModelVersionRequest {
1682    const PROTO_FQN: &'static str = "unitycatalog.model_versions.v1.CreateModelVersionRequest";
1683    fn unknown_fields(&self) -> &::buffa::UnknownFields {
1684        &self.__buffa_unknown_fields
1685    }
1686    fn unknown_fields_mut(&mut self) -> &mut ::buffa::UnknownFields {
1687        &mut self.__buffa_unknown_fields
1688    }
1689}
1690impl ::buffa::json_helpers::ProtoElemJson for CreateModelVersionRequest {
1691    fn serialize_proto_json<S: ::serde::Serializer>(
1692        v: &Self,
1693        s: S,
1694    ) -> ::core::result::Result<S::Ok, S::Error> {
1695        ::serde::Serialize::serialize(v, s)
1696    }
1697    fn deserialize_proto_json<'de, D: ::serde::Deserializer<'de>>(
1698        d: D,
1699    ) -> ::core::result::Result<Self, D::Error> {
1700        <Self as ::serde::Deserialize>::deserialize(d)
1701    }
1702}
1703#[doc(hidden)]
1704pub const __CREATE_MODEL_VERSION_REQUEST_JSON_ANY: ::buffa::type_registry::JsonAnyEntry = ::buffa::type_registry::JsonAnyEntry {
1705    type_url: "type.googleapis.com/unitycatalog.model_versions.v1.CreateModelVersionRequest",
1706    to_json: ::buffa::type_registry::any_to_json::<CreateModelVersionRequest>,
1707    from_json: ::buffa::type_registry::any_from_json::<CreateModelVersionRequest>,
1708    is_wkt: false,
1709};
1710/// Get a model version.
1711#[derive(Clone, PartialEq, Default)]
1712#[derive(::serde::Serialize, ::serde::Deserialize)]
1713#[serde(default)]
1714pub struct GetModelVersionRequest {
1715    /// The full three-level name of the parent registered model
1716    /// (catalog.schema.model).
1717    ///
1718    /// Field 1: `full_name`
1719    #[serde(
1720        rename = "full_name",
1721        alias = "fullName",
1722        with = "::buffa::json_helpers::proto_string",
1723        skip_serializing_if = "::buffa::json_helpers::skip_if::is_empty_str"
1724    )]
1725    pub full_name: ::buffa::alloc::string::String,
1726    /// The integer version number of the model version.
1727    ///
1728    /// Field 2: `version`
1729    #[serde(
1730        rename = "version",
1731        with = "::buffa::json_helpers::int64",
1732        skip_serializing_if = "::buffa::json_helpers::skip_if::is_zero_i64"
1733    )]
1734    pub version: i64,
1735    /// Whether to include model versions in the response for which the principal can
1736    /// only access selective metadata for.
1737    ///
1738    /// Field 3: `include_browse`
1739    #[serde(
1740        rename = "include_browse",
1741        alias = "includeBrowse",
1742        skip_serializing_if = "::core::option::Option::is_none"
1743    )]
1744    pub include_browse: ::core::option::Option<bool>,
1745    #[serde(skip)]
1746    #[doc(hidden)]
1747    pub __buffa_unknown_fields: ::buffa::UnknownFields,
1748}
1749impl ::core::fmt::Debug for GetModelVersionRequest {
1750    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1751        f.debug_struct("GetModelVersionRequest")
1752            .field("full_name", &self.full_name)
1753            .field("version", &self.version)
1754            .field("include_browse", &self.include_browse)
1755            .finish()
1756    }
1757}
1758impl GetModelVersionRequest {
1759    /// Protobuf type URL for this message, for use with `Any::pack` and
1760    /// `Any::unpack_if`.
1761    ///
1762    /// Format: `type.googleapis.com/<fully.qualified.TypeName>`
1763    pub const TYPE_URL: &'static str = "type.googleapis.com/unitycatalog.model_versions.v1.GetModelVersionRequest";
1764}
1765impl GetModelVersionRequest {
1766    #[must_use = "with_* setters return `self` by value; assign or chain the result"]
1767    #[inline]
1768    ///Sets [`Self::include_browse`] to `Some(value)`, consuming and returning `self`.
1769    pub fn with_include_browse(mut self, value: bool) -> Self {
1770        self.include_browse = Some(value);
1771        self
1772    }
1773}
1774impl ::buffa::DefaultInstance for GetModelVersionRequest {
1775    fn default_instance() -> &'static Self {
1776        static VALUE: ::buffa::__private::OnceBox<GetModelVersionRequest> = ::buffa::__private::OnceBox::new();
1777        VALUE.get_or_init(|| ::buffa::alloc::boxed::Box::new(Self::default()))
1778    }
1779}
1780impl ::buffa::MessageName for GetModelVersionRequest {
1781    const PACKAGE: &'static str = "unitycatalog.model_versions.v1";
1782    const NAME: &'static str = "GetModelVersionRequest";
1783    const FULL_NAME: &'static str = "unitycatalog.model_versions.v1.GetModelVersionRequest";
1784    const TYPE_URL: &'static str = "type.googleapis.com/unitycatalog.model_versions.v1.GetModelVersionRequest";
1785}
1786impl ::buffa::Message for GetModelVersionRequest {
1787    /// Returns the total encoded size in bytes.
1788    ///
1789    /// The result is a `u32`; the protobuf specification requires all
1790    /// messages to fit within 2 GiB (2,147,483,647 bytes), so a
1791    /// compliant message will never overflow this type.
1792    #[allow(clippy::let_and_return)]
1793    fn compute_size(&self, _cache: &mut ::buffa::SizeCache) -> u32 {
1794        #[allow(unused_imports)]
1795        use ::buffa::Enumeration as _;
1796        let mut size = 0u32;
1797        if !self.full_name.is_empty() {
1798            size += 1u32 + ::buffa::types::string_encoded_len(&self.full_name) as u32;
1799        }
1800        if self.version != 0i64 {
1801            size += 1u32 + ::buffa::types::int64_encoded_len(self.version) as u32;
1802        }
1803        if self.include_browse.is_some() {
1804            size += 1u32 + ::buffa::types::BOOL_ENCODED_LEN as u32;
1805        }
1806        size += self.__buffa_unknown_fields.encoded_len() as u32;
1807        size
1808    }
1809    fn write_to(
1810        &self,
1811        _cache: &mut ::buffa::SizeCache,
1812        buf: &mut impl ::buffa::bytes::BufMut,
1813    ) {
1814        #[allow(unused_imports)]
1815        use ::buffa::Enumeration as _;
1816        if !self.full_name.is_empty() {
1817            ::buffa::encoding::Tag::new(
1818                    1u32,
1819                    ::buffa::encoding::WireType::LengthDelimited,
1820                )
1821                .encode(buf);
1822            ::buffa::types::encode_string(&self.full_name, buf);
1823        }
1824        if self.version != 0i64 {
1825            ::buffa::encoding::Tag::new(2u32, ::buffa::encoding::WireType::Varint)
1826                .encode(buf);
1827            ::buffa::types::encode_int64(self.version, buf);
1828        }
1829        if let Some(v) = self.include_browse {
1830            ::buffa::encoding::Tag::new(3u32, ::buffa::encoding::WireType::Varint)
1831                .encode(buf);
1832            ::buffa::types::encode_bool(v, buf);
1833        }
1834        self.__buffa_unknown_fields.write_to(buf);
1835    }
1836    fn merge_field(
1837        &mut self,
1838        tag: ::buffa::encoding::Tag,
1839        buf: &mut impl ::buffa::bytes::Buf,
1840        depth: u32,
1841    ) -> ::core::result::Result<(), ::buffa::DecodeError> {
1842        #[allow(unused_imports)]
1843        use ::buffa::bytes::Buf as _;
1844        #[allow(unused_imports)]
1845        use ::buffa::Enumeration as _;
1846        match tag.field_number() {
1847            1u32 => {
1848                if tag.wire_type() != ::buffa::encoding::WireType::LengthDelimited {
1849                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
1850                        field_number: 1u32,
1851                        expected: 2u8,
1852                        actual: tag.wire_type() as u8,
1853                    });
1854                }
1855                ::buffa::types::merge_string(&mut self.full_name, buf)?;
1856            }
1857            2u32 => {
1858                if tag.wire_type() != ::buffa::encoding::WireType::Varint {
1859                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
1860                        field_number: 2u32,
1861                        expected: 0u8,
1862                        actual: tag.wire_type() as u8,
1863                    });
1864                }
1865                self.version = ::buffa::types::decode_int64(buf)?;
1866            }
1867            3u32 => {
1868                if tag.wire_type() != ::buffa::encoding::WireType::Varint {
1869                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
1870                        field_number: 3u32,
1871                        expected: 0u8,
1872                        actual: tag.wire_type() as u8,
1873                    });
1874                }
1875                self.include_browse = ::core::option::Option::Some(
1876                    ::buffa::types::decode_bool(buf)?,
1877                );
1878            }
1879            _ => {
1880                self.__buffa_unknown_fields
1881                    .push(::buffa::encoding::decode_unknown_field(tag, buf, depth)?);
1882            }
1883        }
1884        ::core::result::Result::Ok(())
1885    }
1886    fn clear(&mut self) {
1887        self.full_name.clear();
1888        self.version = 0i64;
1889        self.include_browse = ::core::option::Option::None;
1890        self.__buffa_unknown_fields.clear();
1891    }
1892}
1893impl ::buffa::ExtensionSet for GetModelVersionRequest {
1894    const PROTO_FQN: &'static str = "unitycatalog.model_versions.v1.GetModelVersionRequest";
1895    fn unknown_fields(&self) -> &::buffa::UnknownFields {
1896        &self.__buffa_unknown_fields
1897    }
1898    fn unknown_fields_mut(&mut self) -> &mut ::buffa::UnknownFields {
1899        &mut self.__buffa_unknown_fields
1900    }
1901}
1902impl ::buffa::json_helpers::ProtoElemJson for GetModelVersionRequest {
1903    fn serialize_proto_json<S: ::serde::Serializer>(
1904        v: &Self,
1905        s: S,
1906    ) -> ::core::result::Result<S::Ok, S::Error> {
1907        ::serde::Serialize::serialize(v, s)
1908    }
1909    fn deserialize_proto_json<'de, D: ::serde::Deserializer<'de>>(
1910        d: D,
1911    ) -> ::core::result::Result<Self, D::Error> {
1912        <Self as ::serde::Deserialize>::deserialize(d)
1913    }
1914}
1915#[doc(hidden)]
1916pub const __GET_MODEL_VERSION_REQUEST_JSON_ANY: ::buffa::type_registry::JsonAnyEntry = ::buffa::type_registry::JsonAnyEntry {
1917    type_url: "type.googleapis.com/unitycatalog.model_versions.v1.GetModelVersionRequest",
1918    to_json: ::buffa::type_registry::any_to_json::<GetModelVersionRequest>,
1919    from_json: ::buffa::type_registry::any_from_json::<GetModelVersionRequest>,
1920    is_wkt: false,
1921};
1922/// Update a model version.
1923#[derive(Clone, PartialEq, Default)]
1924#[derive(::serde::Serialize, ::serde::Deserialize)]
1925#[serde(default)]
1926pub struct UpdateModelVersionRequest {
1927    /// The full three-level name of the parent registered model
1928    /// (catalog.schema.model).
1929    ///
1930    /// Field 1: `full_name`
1931    #[serde(
1932        rename = "full_name",
1933        alias = "fullName",
1934        with = "::buffa::json_helpers::proto_string",
1935        skip_serializing_if = "::buffa::json_helpers::skip_if::is_empty_str"
1936    )]
1937    pub full_name: ::buffa::alloc::string::String,
1938    /// The integer version number of the model version.
1939    ///
1940    /// Field 2: `version`
1941    #[serde(
1942        rename = "version",
1943        with = "::buffa::json_helpers::int64",
1944        skip_serializing_if = "::buffa::json_helpers::skip_if::is_zero_i64"
1945    )]
1946    pub version: i64,
1947    /// User-provided free-form text description.
1948    ///
1949    /// Field 3: `comment`
1950    #[serde(rename = "comment", skip_serializing_if = "::core::option::Option::is_none")]
1951    pub comment: ::core::option::Option<::buffa::alloc::string::String>,
1952    #[serde(skip)]
1953    #[doc(hidden)]
1954    pub __buffa_unknown_fields: ::buffa::UnknownFields,
1955}
1956impl ::core::fmt::Debug for UpdateModelVersionRequest {
1957    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1958        f.debug_struct("UpdateModelVersionRequest")
1959            .field("full_name", &self.full_name)
1960            .field("version", &self.version)
1961            .field("comment", &self.comment)
1962            .finish()
1963    }
1964}
1965impl UpdateModelVersionRequest {
1966    /// Protobuf type URL for this message, for use with `Any::pack` and
1967    /// `Any::unpack_if`.
1968    ///
1969    /// Format: `type.googleapis.com/<fully.qualified.TypeName>`
1970    pub const TYPE_URL: &'static str = "type.googleapis.com/unitycatalog.model_versions.v1.UpdateModelVersionRequest";
1971}
1972impl UpdateModelVersionRequest {
1973    #[must_use = "with_* setters return `self` by value; assign or chain the result"]
1974    #[inline]
1975    ///Sets [`Self::comment`] to `Some(value)`, consuming and returning `self`.
1976    pub fn with_comment(
1977        mut self,
1978        value: impl Into<::buffa::alloc::string::String>,
1979    ) -> Self {
1980        self.comment = Some(value.into());
1981        self
1982    }
1983}
1984impl ::buffa::DefaultInstance for UpdateModelVersionRequest {
1985    fn default_instance() -> &'static Self {
1986        static VALUE: ::buffa::__private::OnceBox<UpdateModelVersionRequest> = ::buffa::__private::OnceBox::new();
1987        VALUE.get_or_init(|| ::buffa::alloc::boxed::Box::new(Self::default()))
1988    }
1989}
1990impl ::buffa::MessageName for UpdateModelVersionRequest {
1991    const PACKAGE: &'static str = "unitycatalog.model_versions.v1";
1992    const NAME: &'static str = "UpdateModelVersionRequest";
1993    const FULL_NAME: &'static str = "unitycatalog.model_versions.v1.UpdateModelVersionRequest";
1994    const TYPE_URL: &'static str = "type.googleapis.com/unitycatalog.model_versions.v1.UpdateModelVersionRequest";
1995}
1996impl ::buffa::Message for UpdateModelVersionRequest {
1997    /// Returns the total encoded size in bytes.
1998    ///
1999    /// The result is a `u32`; the protobuf specification requires all
2000    /// messages to fit within 2 GiB (2,147,483,647 bytes), so a
2001    /// compliant message will never overflow this type.
2002    #[allow(clippy::let_and_return)]
2003    fn compute_size(&self, _cache: &mut ::buffa::SizeCache) -> u32 {
2004        #[allow(unused_imports)]
2005        use ::buffa::Enumeration as _;
2006        let mut size = 0u32;
2007        if !self.full_name.is_empty() {
2008            size += 1u32 + ::buffa::types::string_encoded_len(&self.full_name) as u32;
2009        }
2010        if self.version != 0i64 {
2011            size += 1u32 + ::buffa::types::int64_encoded_len(self.version) as u32;
2012        }
2013        if let Some(ref v) = self.comment {
2014            size += 1u32 + ::buffa::types::string_encoded_len(v) as u32;
2015        }
2016        size += self.__buffa_unknown_fields.encoded_len() as u32;
2017        size
2018    }
2019    fn write_to(
2020        &self,
2021        _cache: &mut ::buffa::SizeCache,
2022        buf: &mut impl ::buffa::bytes::BufMut,
2023    ) {
2024        #[allow(unused_imports)]
2025        use ::buffa::Enumeration as _;
2026        if !self.full_name.is_empty() {
2027            ::buffa::encoding::Tag::new(
2028                    1u32,
2029                    ::buffa::encoding::WireType::LengthDelimited,
2030                )
2031                .encode(buf);
2032            ::buffa::types::encode_string(&self.full_name, buf);
2033        }
2034        if self.version != 0i64 {
2035            ::buffa::encoding::Tag::new(2u32, ::buffa::encoding::WireType::Varint)
2036                .encode(buf);
2037            ::buffa::types::encode_int64(self.version, buf);
2038        }
2039        if let Some(ref v) = self.comment {
2040            ::buffa::encoding::Tag::new(
2041                    3u32,
2042                    ::buffa::encoding::WireType::LengthDelimited,
2043                )
2044                .encode(buf);
2045            ::buffa::types::encode_string(v, buf);
2046        }
2047        self.__buffa_unknown_fields.write_to(buf);
2048    }
2049    fn merge_field(
2050        &mut self,
2051        tag: ::buffa::encoding::Tag,
2052        buf: &mut impl ::buffa::bytes::Buf,
2053        depth: u32,
2054    ) -> ::core::result::Result<(), ::buffa::DecodeError> {
2055        #[allow(unused_imports)]
2056        use ::buffa::bytes::Buf as _;
2057        #[allow(unused_imports)]
2058        use ::buffa::Enumeration as _;
2059        match tag.field_number() {
2060            1u32 => {
2061                if tag.wire_type() != ::buffa::encoding::WireType::LengthDelimited {
2062                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
2063                        field_number: 1u32,
2064                        expected: 2u8,
2065                        actual: tag.wire_type() as u8,
2066                    });
2067                }
2068                ::buffa::types::merge_string(&mut self.full_name, buf)?;
2069            }
2070            2u32 => {
2071                if tag.wire_type() != ::buffa::encoding::WireType::Varint {
2072                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
2073                        field_number: 2u32,
2074                        expected: 0u8,
2075                        actual: tag.wire_type() as u8,
2076                    });
2077                }
2078                self.version = ::buffa::types::decode_int64(buf)?;
2079            }
2080            3u32 => {
2081                if tag.wire_type() != ::buffa::encoding::WireType::LengthDelimited {
2082                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
2083                        field_number: 3u32,
2084                        expected: 2u8,
2085                        actual: tag.wire_type() as u8,
2086                    });
2087                }
2088                ::buffa::types::merge_string(
2089                    self.comment.get_or_insert_with(::buffa::alloc::string::String::new),
2090                    buf,
2091                )?;
2092            }
2093            _ => {
2094                self.__buffa_unknown_fields
2095                    .push(::buffa::encoding::decode_unknown_field(tag, buf, depth)?);
2096            }
2097        }
2098        ::core::result::Result::Ok(())
2099    }
2100    fn clear(&mut self) {
2101        self.full_name.clear();
2102        self.version = 0i64;
2103        self.comment = ::core::option::Option::None;
2104        self.__buffa_unknown_fields.clear();
2105    }
2106}
2107impl ::buffa::ExtensionSet for UpdateModelVersionRequest {
2108    const PROTO_FQN: &'static str = "unitycatalog.model_versions.v1.UpdateModelVersionRequest";
2109    fn unknown_fields(&self) -> &::buffa::UnknownFields {
2110        &self.__buffa_unknown_fields
2111    }
2112    fn unknown_fields_mut(&mut self) -> &mut ::buffa::UnknownFields {
2113        &mut self.__buffa_unknown_fields
2114    }
2115}
2116impl ::buffa::json_helpers::ProtoElemJson for UpdateModelVersionRequest {
2117    fn serialize_proto_json<S: ::serde::Serializer>(
2118        v: &Self,
2119        s: S,
2120    ) -> ::core::result::Result<S::Ok, S::Error> {
2121        ::serde::Serialize::serialize(v, s)
2122    }
2123    fn deserialize_proto_json<'de, D: ::serde::Deserializer<'de>>(
2124        d: D,
2125    ) -> ::core::result::Result<Self, D::Error> {
2126        <Self as ::serde::Deserialize>::deserialize(d)
2127    }
2128}
2129#[doc(hidden)]
2130pub const __UPDATE_MODEL_VERSION_REQUEST_JSON_ANY: ::buffa::type_registry::JsonAnyEntry = ::buffa::type_registry::JsonAnyEntry {
2131    type_url: "type.googleapis.com/unitycatalog.model_versions.v1.UpdateModelVersionRequest",
2132    to_json: ::buffa::type_registry::any_to_json::<UpdateModelVersionRequest>,
2133    from_json: ::buffa::type_registry::any_from_json::<UpdateModelVersionRequest>,
2134    is_wkt: false,
2135};
2136/// Delete a model version.
2137#[derive(Clone, PartialEq, Default)]
2138#[derive(::serde::Serialize, ::serde::Deserialize)]
2139#[serde(default)]
2140pub struct DeleteModelVersionRequest {
2141    /// The full three-level name of the parent registered model
2142    /// (catalog.schema.model).
2143    ///
2144    /// Field 1: `full_name`
2145    #[serde(
2146        rename = "full_name",
2147        alias = "fullName",
2148        with = "::buffa::json_helpers::proto_string",
2149        skip_serializing_if = "::buffa::json_helpers::skip_if::is_empty_str"
2150    )]
2151    pub full_name: ::buffa::alloc::string::String,
2152    /// The integer version number of the model version.
2153    ///
2154    /// Field 2: `version`
2155    #[serde(
2156        rename = "version",
2157        with = "::buffa::json_helpers::int64",
2158        skip_serializing_if = "::buffa::json_helpers::skip_if::is_zero_i64"
2159    )]
2160    pub version: i64,
2161    #[serde(skip)]
2162    #[doc(hidden)]
2163    pub __buffa_unknown_fields: ::buffa::UnknownFields,
2164}
2165impl ::core::fmt::Debug for DeleteModelVersionRequest {
2166    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2167        f.debug_struct("DeleteModelVersionRequest")
2168            .field("full_name", &self.full_name)
2169            .field("version", &self.version)
2170            .finish()
2171    }
2172}
2173impl DeleteModelVersionRequest {
2174    /// Protobuf type URL for this message, for use with `Any::pack` and
2175    /// `Any::unpack_if`.
2176    ///
2177    /// Format: `type.googleapis.com/<fully.qualified.TypeName>`
2178    pub const TYPE_URL: &'static str = "type.googleapis.com/unitycatalog.model_versions.v1.DeleteModelVersionRequest";
2179}
2180impl ::buffa::DefaultInstance for DeleteModelVersionRequest {
2181    fn default_instance() -> &'static Self {
2182        static VALUE: ::buffa::__private::OnceBox<DeleteModelVersionRequest> = ::buffa::__private::OnceBox::new();
2183        VALUE.get_or_init(|| ::buffa::alloc::boxed::Box::new(Self::default()))
2184    }
2185}
2186impl ::buffa::MessageName for DeleteModelVersionRequest {
2187    const PACKAGE: &'static str = "unitycatalog.model_versions.v1";
2188    const NAME: &'static str = "DeleteModelVersionRequest";
2189    const FULL_NAME: &'static str = "unitycatalog.model_versions.v1.DeleteModelVersionRequest";
2190    const TYPE_URL: &'static str = "type.googleapis.com/unitycatalog.model_versions.v1.DeleteModelVersionRequest";
2191}
2192impl ::buffa::Message for DeleteModelVersionRequest {
2193    /// Returns the total encoded size in bytes.
2194    ///
2195    /// The result is a `u32`; the protobuf specification requires all
2196    /// messages to fit within 2 GiB (2,147,483,647 bytes), so a
2197    /// compliant message will never overflow this type.
2198    #[allow(clippy::let_and_return)]
2199    fn compute_size(&self, _cache: &mut ::buffa::SizeCache) -> u32 {
2200        #[allow(unused_imports)]
2201        use ::buffa::Enumeration as _;
2202        let mut size = 0u32;
2203        if !self.full_name.is_empty() {
2204            size += 1u32 + ::buffa::types::string_encoded_len(&self.full_name) as u32;
2205        }
2206        if self.version != 0i64 {
2207            size += 1u32 + ::buffa::types::int64_encoded_len(self.version) as u32;
2208        }
2209        size += self.__buffa_unknown_fields.encoded_len() as u32;
2210        size
2211    }
2212    fn write_to(
2213        &self,
2214        _cache: &mut ::buffa::SizeCache,
2215        buf: &mut impl ::buffa::bytes::BufMut,
2216    ) {
2217        #[allow(unused_imports)]
2218        use ::buffa::Enumeration as _;
2219        if !self.full_name.is_empty() {
2220            ::buffa::encoding::Tag::new(
2221                    1u32,
2222                    ::buffa::encoding::WireType::LengthDelimited,
2223                )
2224                .encode(buf);
2225            ::buffa::types::encode_string(&self.full_name, buf);
2226        }
2227        if self.version != 0i64 {
2228            ::buffa::encoding::Tag::new(2u32, ::buffa::encoding::WireType::Varint)
2229                .encode(buf);
2230            ::buffa::types::encode_int64(self.version, buf);
2231        }
2232        self.__buffa_unknown_fields.write_to(buf);
2233    }
2234    fn merge_field(
2235        &mut self,
2236        tag: ::buffa::encoding::Tag,
2237        buf: &mut impl ::buffa::bytes::Buf,
2238        depth: u32,
2239    ) -> ::core::result::Result<(), ::buffa::DecodeError> {
2240        #[allow(unused_imports)]
2241        use ::buffa::bytes::Buf as _;
2242        #[allow(unused_imports)]
2243        use ::buffa::Enumeration as _;
2244        match tag.field_number() {
2245            1u32 => {
2246                if tag.wire_type() != ::buffa::encoding::WireType::LengthDelimited {
2247                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
2248                        field_number: 1u32,
2249                        expected: 2u8,
2250                        actual: tag.wire_type() as u8,
2251                    });
2252                }
2253                ::buffa::types::merge_string(&mut self.full_name, buf)?;
2254            }
2255            2u32 => {
2256                if tag.wire_type() != ::buffa::encoding::WireType::Varint {
2257                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
2258                        field_number: 2u32,
2259                        expected: 0u8,
2260                        actual: tag.wire_type() as u8,
2261                    });
2262                }
2263                self.version = ::buffa::types::decode_int64(buf)?;
2264            }
2265            _ => {
2266                self.__buffa_unknown_fields
2267                    .push(::buffa::encoding::decode_unknown_field(tag, buf, depth)?);
2268            }
2269        }
2270        ::core::result::Result::Ok(())
2271    }
2272    fn clear(&mut self) {
2273        self.full_name.clear();
2274        self.version = 0i64;
2275        self.__buffa_unknown_fields.clear();
2276    }
2277}
2278impl ::buffa::ExtensionSet for DeleteModelVersionRequest {
2279    const PROTO_FQN: &'static str = "unitycatalog.model_versions.v1.DeleteModelVersionRequest";
2280    fn unknown_fields(&self) -> &::buffa::UnknownFields {
2281        &self.__buffa_unknown_fields
2282    }
2283    fn unknown_fields_mut(&mut self) -> &mut ::buffa::UnknownFields {
2284        &mut self.__buffa_unknown_fields
2285    }
2286}
2287impl ::buffa::json_helpers::ProtoElemJson for DeleteModelVersionRequest {
2288    fn serialize_proto_json<S: ::serde::Serializer>(
2289        v: &Self,
2290        s: S,
2291    ) -> ::core::result::Result<S::Ok, S::Error> {
2292        ::serde::Serialize::serialize(v, s)
2293    }
2294    fn deserialize_proto_json<'de, D: ::serde::Deserializer<'de>>(
2295        d: D,
2296    ) -> ::core::result::Result<Self, D::Error> {
2297        <Self as ::serde::Deserialize>::deserialize(d)
2298    }
2299}
2300#[doc(hidden)]
2301pub const __DELETE_MODEL_VERSION_REQUEST_JSON_ANY: ::buffa::type_registry::JsonAnyEntry = ::buffa::type_registry::JsonAnyEntry {
2302    type_url: "type.googleapis.com/unitycatalog.model_versions.v1.DeleteModelVersionRequest",
2303    to_json: ::buffa::type_registry::any_to_json::<DeleteModelVersionRequest>,
2304    from_json: ::buffa::type_registry::any_from_json::<DeleteModelVersionRequest>,
2305    is_wkt: false,
2306};
2307/// Finalize a model version.
2308///
2309/// Transitions a model version from PENDING_REGISTRATION to READY once the client
2310/// has finished writing all artifacts to the version's storage location.
2311#[derive(Clone, PartialEq, Default)]
2312#[derive(::serde::Serialize, ::serde::Deserialize)]
2313#[serde(default)]
2314pub struct FinalizeModelVersionRequest {
2315    /// The full three-level name of the parent registered model
2316    /// (catalog.schema.model).
2317    ///
2318    /// Field 1: `full_name`
2319    #[serde(
2320        rename = "full_name",
2321        alias = "fullName",
2322        with = "::buffa::json_helpers::proto_string",
2323        skip_serializing_if = "::buffa::json_helpers::skip_if::is_empty_str"
2324    )]
2325    pub full_name: ::buffa::alloc::string::String,
2326    /// The integer version number of the model version to finalize.
2327    ///
2328    /// Field 2: `version`
2329    #[serde(
2330        rename = "version",
2331        with = "::buffa::json_helpers::int64",
2332        skip_serializing_if = "::buffa::json_helpers::skip_if::is_zero_i64"
2333    )]
2334    pub version: i64,
2335    #[serde(skip)]
2336    #[doc(hidden)]
2337    pub __buffa_unknown_fields: ::buffa::UnknownFields,
2338}
2339impl ::core::fmt::Debug for FinalizeModelVersionRequest {
2340    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2341        f.debug_struct("FinalizeModelVersionRequest")
2342            .field("full_name", &self.full_name)
2343            .field("version", &self.version)
2344            .finish()
2345    }
2346}
2347impl FinalizeModelVersionRequest {
2348    /// Protobuf type URL for this message, for use with `Any::pack` and
2349    /// `Any::unpack_if`.
2350    ///
2351    /// Format: `type.googleapis.com/<fully.qualified.TypeName>`
2352    pub const TYPE_URL: &'static str = "type.googleapis.com/unitycatalog.model_versions.v1.FinalizeModelVersionRequest";
2353}
2354impl ::buffa::DefaultInstance for FinalizeModelVersionRequest {
2355    fn default_instance() -> &'static Self {
2356        static VALUE: ::buffa::__private::OnceBox<FinalizeModelVersionRequest> = ::buffa::__private::OnceBox::new();
2357        VALUE.get_or_init(|| ::buffa::alloc::boxed::Box::new(Self::default()))
2358    }
2359}
2360impl ::buffa::MessageName for FinalizeModelVersionRequest {
2361    const PACKAGE: &'static str = "unitycatalog.model_versions.v1";
2362    const NAME: &'static str = "FinalizeModelVersionRequest";
2363    const FULL_NAME: &'static str = "unitycatalog.model_versions.v1.FinalizeModelVersionRequest";
2364    const TYPE_URL: &'static str = "type.googleapis.com/unitycatalog.model_versions.v1.FinalizeModelVersionRequest";
2365}
2366impl ::buffa::Message for FinalizeModelVersionRequest {
2367    /// Returns the total encoded size in bytes.
2368    ///
2369    /// The result is a `u32`; the protobuf specification requires all
2370    /// messages to fit within 2 GiB (2,147,483,647 bytes), so a
2371    /// compliant message will never overflow this type.
2372    #[allow(clippy::let_and_return)]
2373    fn compute_size(&self, _cache: &mut ::buffa::SizeCache) -> u32 {
2374        #[allow(unused_imports)]
2375        use ::buffa::Enumeration as _;
2376        let mut size = 0u32;
2377        if !self.full_name.is_empty() {
2378            size += 1u32 + ::buffa::types::string_encoded_len(&self.full_name) as u32;
2379        }
2380        if self.version != 0i64 {
2381            size += 1u32 + ::buffa::types::int64_encoded_len(self.version) as u32;
2382        }
2383        size += self.__buffa_unknown_fields.encoded_len() as u32;
2384        size
2385    }
2386    fn write_to(
2387        &self,
2388        _cache: &mut ::buffa::SizeCache,
2389        buf: &mut impl ::buffa::bytes::BufMut,
2390    ) {
2391        #[allow(unused_imports)]
2392        use ::buffa::Enumeration as _;
2393        if !self.full_name.is_empty() {
2394            ::buffa::encoding::Tag::new(
2395                    1u32,
2396                    ::buffa::encoding::WireType::LengthDelimited,
2397                )
2398                .encode(buf);
2399            ::buffa::types::encode_string(&self.full_name, buf);
2400        }
2401        if self.version != 0i64 {
2402            ::buffa::encoding::Tag::new(2u32, ::buffa::encoding::WireType::Varint)
2403                .encode(buf);
2404            ::buffa::types::encode_int64(self.version, buf);
2405        }
2406        self.__buffa_unknown_fields.write_to(buf);
2407    }
2408    fn merge_field(
2409        &mut self,
2410        tag: ::buffa::encoding::Tag,
2411        buf: &mut impl ::buffa::bytes::Buf,
2412        depth: u32,
2413    ) -> ::core::result::Result<(), ::buffa::DecodeError> {
2414        #[allow(unused_imports)]
2415        use ::buffa::bytes::Buf as _;
2416        #[allow(unused_imports)]
2417        use ::buffa::Enumeration as _;
2418        match tag.field_number() {
2419            1u32 => {
2420                if tag.wire_type() != ::buffa::encoding::WireType::LengthDelimited {
2421                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
2422                        field_number: 1u32,
2423                        expected: 2u8,
2424                        actual: tag.wire_type() as u8,
2425                    });
2426                }
2427                ::buffa::types::merge_string(&mut self.full_name, buf)?;
2428            }
2429            2u32 => {
2430                if tag.wire_type() != ::buffa::encoding::WireType::Varint {
2431                    return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
2432                        field_number: 2u32,
2433                        expected: 0u8,
2434                        actual: tag.wire_type() as u8,
2435                    });
2436                }
2437                self.version = ::buffa::types::decode_int64(buf)?;
2438            }
2439            _ => {
2440                self.__buffa_unknown_fields
2441                    .push(::buffa::encoding::decode_unknown_field(tag, buf, depth)?);
2442            }
2443        }
2444        ::core::result::Result::Ok(())
2445    }
2446    fn clear(&mut self) {
2447        self.full_name.clear();
2448        self.version = 0i64;
2449        self.__buffa_unknown_fields.clear();
2450    }
2451}
2452impl ::buffa::ExtensionSet for FinalizeModelVersionRequest {
2453    const PROTO_FQN: &'static str = "unitycatalog.model_versions.v1.FinalizeModelVersionRequest";
2454    fn unknown_fields(&self) -> &::buffa::UnknownFields {
2455        &self.__buffa_unknown_fields
2456    }
2457    fn unknown_fields_mut(&mut self) -> &mut ::buffa::UnknownFields {
2458        &mut self.__buffa_unknown_fields
2459    }
2460}
2461impl ::buffa::json_helpers::ProtoElemJson for FinalizeModelVersionRequest {
2462    fn serialize_proto_json<S: ::serde::Serializer>(
2463        v: &Self,
2464        s: S,
2465    ) -> ::core::result::Result<S::Ok, S::Error> {
2466        ::serde::Serialize::serialize(v, s)
2467    }
2468    fn deserialize_proto_json<'de, D: ::serde::Deserializer<'de>>(
2469        d: D,
2470    ) -> ::core::result::Result<Self, D::Error> {
2471        <Self as ::serde::Deserialize>::deserialize(d)
2472    }
2473}
2474#[doc(hidden)]
2475pub const __FINALIZE_MODEL_VERSION_REQUEST_JSON_ANY: ::buffa::type_registry::JsonAnyEntry = ::buffa::type_registry::JsonAnyEntry {
2476    type_url: "type.googleapis.com/unitycatalog.model_versions.v1.FinalizeModelVersionRequest",
2477    to_json: ::buffa::type_registry::any_to_json::<FinalizeModelVersionRequest>,
2478    from_json: ::buffa::type_registry::any_from_json::<FinalizeModelVersionRequest>,
2479    is_wkt: false,
2480};
2481#[allow(
2482    non_camel_case_types,
2483    dead_code,
2484    unused_imports,
2485    unused_qualifications,
2486    clippy::derivable_impls,
2487    clippy::match_single_binding,
2488    clippy::uninlined_format_args,
2489    clippy::doc_lazy_continuation,
2490    clippy::module_inception
2491)]
2492pub mod __buffa {
2493    #[allow(unused_imports)]
2494    use super::*;
2495    pub mod view {
2496        #[allow(unused_imports)]
2497        use super::*;
2498        /// A model version under a registered model.
2499        ///
2500        /// A version is identified by its parent model's three-level name plus an
2501        /// integer `version` number assigned by the server. It carries its own artifact
2502        /// storage location and moves through the PENDING_REGISTRATION -\> READY lifecycle
2503        /// via the finalize operation.
2504        #[derive(Clone, Debug, Default)]
2505        pub struct ModelVersionView<'a> {
2506            /// Name of the parent registered model, relative to parent schema.
2507            ///
2508            /// Field 1: `model_name`
2509            pub model_name: &'a str,
2510            /// Name of parent catalog.
2511            ///
2512            /// Field 2: `catalog_name`
2513            pub catalog_name: &'a str,
2514            /// Name of parent schema.
2515            ///
2516            /// Field 3: `schema_name`
2517            pub schema_name: &'a str,
2518            /// Integer model version number, used to reference the model version in API
2519            /// requests. Assigned by the server, monotonically increasing per model.
2520            ///
2521            /// Field 4: `version`
2522            pub version: i64,
2523            /// URI indicating the location of the source artifacts used to create the model
2524            /// version.
2525            ///
2526            /// Field 5: `source`
2527            pub source: &'a str,
2528            /// The run id used by the ML package that generated this model.
2529            ///
2530            /// Field 6: `run_id`
2531            pub run_id: ::core::option::Option<&'a str>,
2532            /// Current status of the model version.
2533            ///
2534            /// Field 7: `status`
2535            pub status: ::buffa::EnumValue<super::super::ModelVersionStatus>,
2536            /// The storage location under which the model version's artifacts are stored.
2537            ///
2538            /// Field 8: `storage_location`
2539            pub storage_location: ::core::option::Option<&'a str>,
2540            /// User-provided free-form text description.
2541            ///
2542            /// Field 9: `comment`
2543            pub comment: ::core::option::Option<&'a str>,
2544            /// Unique identifier for the model version.
2545            ///
2546            /// Field 10: `id`
2547            pub id: ::core::option::Option<&'a str>,
2548            /// Time at which this model version was created, in epoch milliseconds.
2549            ///
2550            /// Field 1000: `created_at`
2551            pub created_at: ::core::option::Option<i64>,
2552            /// Username of model version creator.
2553            ///
2554            /// Field 1001: `created_by`
2555            pub created_by: ::core::option::Option<&'a str>,
2556            /// Time at which this model version was last updated, in epoch milliseconds.
2557            ///
2558            /// Field 1002: `updated_at`
2559            pub updated_at: ::core::option::Option<i64>,
2560            /// Username of user who last modified the model version.
2561            ///
2562            /// Field 1003: `updated_by`
2563            pub updated_by: ::core::option::Option<&'a str>,
2564            /// The unique identifier of the metastore.
2565            ///
2566            /// Field 1004: `metastore_id`
2567            pub metastore_id: ::core::option::Option<&'a str>,
2568            /// Indicates whether the principal is limited to retrieving metadata for the
2569            /// associated object through the BROWSE privilege when include_browse is
2570            /// enabled in the request.
2571            ///
2572            /// Field 1005: `browse_only`
2573            pub browse_only: ::core::option::Option<bool>,
2574            pub __buffa_unknown_fields: ::buffa::UnknownFieldsView<'a>,
2575        }
2576        impl<'a> ModelVersionView<'a> {
2577            /// Decode from `buf`, enforcing a recursion depth limit for nested messages.
2578            ///
2579            /// Called by [`::buffa::MessageView::decode_view`] with [`::buffa::RECURSION_LIMIT`]
2580            /// and by generated sub-message decode arms with `depth - 1`.
2581            ///
2582            /// **Not part of the public API.** Named with a leading underscore to
2583            /// signal that it is for generated-code use only.
2584            #[doc(hidden)]
2585            pub fn _decode_depth(
2586                buf: &'a [u8],
2587                depth: u32,
2588            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
2589                let mut view = Self::default();
2590                view._merge_into_view(buf, depth)?;
2591                ::core::result::Result::Ok(view)
2592            }
2593            /// Merge fields from `buf` into this view (proto merge semantics).
2594            ///
2595            /// Repeated fields append; singular fields last-wins; singular
2596            /// MESSAGE fields merge recursively. Used by sub-message decode
2597            /// arms when the same field appears multiple times on the wire.
2598            ///
2599            /// **Not part of the public API.**
2600            #[doc(hidden)]
2601            pub fn _merge_into_view(
2602                &mut self,
2603                buf: &'a [u8],
2604                depth: u32,
2605            ) -> ::core::result::Result<(), ::buffa::DecodeError> {
2606                let _ = depth;
2607                #[allow(unused_variables)]
2608                let view = self;
2609                let mut cur: &'a [u8] = buf;
2610                while !cur.is_empty() {
2611                    let before_tag = cur;
2612                    let tag = ::buffa::encoding::Tag::decode(&mut cur)?;
2613                    match tag.field_number() {
2614                        1u32 => {
2615                            if tag.wire_type()
2616                                != ::buffa::encoding::WireType::LengthDelimited
2617                            {
2618                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
2619                                    field_number: 1u32,
2620                                    expected: 2u8,
2621                                    actual: tag.wire_type() as u8,
2622                                });
2623                            }
2624                            view.model_name = ::buffa::types::borrow_str(&mut cur)?;
2625                        }
2626                        2u32 => {
2627                            if tag.wire_type()
2628                                != ::buffa::encoding::WireType::LengthDelimited
2629                            {
2630                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
2631                                    field_number: 2u32,
2632                                    expected: 2u8,
2633                                    actual: tag.wire_type() as u8,
2634                                });
2635                            }
2636                            view.catalog_name = ::buffa::types::borrow_str(&mut cur)?;
2637                        }
2638                        3u32 => {
2639                            if tag.wire_type()
2640                                != ::buffa::encoding::WireType::LengthDelimited
2641                            {
2642                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
2643                                    field_number: 3u32,
2644                                    expected: 2u8,
2645                                    actual: tag.wire_type() as u8,
2646                                });
2647                            }
2648                            view.schema_name = ::buffa::types::borrow_str(&mut cur)?;
2649                        }
2650                        4u32 => {
2651                            if tag.wire_type() != ::buffa::encoding::WireType::Varint {
2652                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
2653                                    field_number: 4u32,
2654                                    expected: 0u8,
2655                                    actual: tag.wire_type() as u8,
2656                                });
2657                            }
2658                            view.version = ::buffa::types::decode_int64(&mut cur)?;
2659                        }
2660                        5u32 => {
2661                            if tag.wire_type()
2662                                != ::buffa::encoding::WireType::LengthDelimited
2663                            {
2664                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
2665                                    field_number: 5u32,
2666                                    expected: 2u8,
2667                                    actual: tag.wire_type() as u8,
2668                                });
2669                            }
2670                            view.source = ::buffa::types::borrow_str(&mut cur)?;
2671                        }
2672                        6u32 => {
2673                            if tag.wire_type()
2674                                != ::buffa::encoding::WireType::LengthDelimited
2675                            {
2676                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
2677                                    field_number: 6u32,
2678                                    expected: 2u8,
2679                                    actual: tag.wire_type() as u8,
2680                                });
2681                            }
2682                            view.run_id = Some(::buffa::types::borrow_str(&mut cur)?);
2683                        }
2684                        7u32 => {
2685                            if tag.wire_type() != ::buffa::encoding::WireType::Varint {
2686                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
2687                                    field_number: 7u32,
2688                                    expected: 0u8,
2689                                    actual: tag.wire_type() as u8,
2690                                });
2691                            }
2692                            view.status = ::buffa::EnumValue::from(
2693                                ::buffa::types::decode_int32(&mut cur)?,
2694                            );
2695                        }
2696                        8u32 => {
2697                            if tag.wire_type()
2698                                != ::buffa::encoding::WireType::LengthDelimited
2699                            {
2700                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
2701                                    field_number: 8u32,
2702                                    expected: 2u8,
2703                                    actual: tag.wire_type() as u8,
2704                                });
2705                            }
2706                            view.storage_location = Some(
2707                                ::buffa::types::borrow_str(&mut cur)?,
2708                            );
2709                        }
2710                        9u32 => {
2711                            if tag.wire_type()
2712                                != ::buffa::encoding::WireType::LengthDelimited
2713                            {
2714                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
2715                                    field_number: 9u32,
2716                                    expected: 2u8,
2717                                    actual: tag.wire_type() as u8,
2718                                });
2719                            }
2720                            view.comment = Some(::buffa::types::borrow_str(&mut cur)?);
2721                        }
2722                        10u32 => {
2723                            if tag.wire_type()
2724                                != ::buffa::encoding::WireType::LengthDelimited
2725                            {
2726                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
2727                                    field_number: 10u32,
2728                                    expected: 2u8,
2729                                    actual: tag.wire_type() as u8,
2730                                });
2731                            }
2732                            view.id = Some(::buffa::types::borrow_str(&mut cur)?);
2733                        }
2734                        1000u32 => {
2735                            if tag.wire_type() != ::buffa::encoding::WireType::Varint {
2736                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
2737                                    field_number: 1000u32,
2738                                    expected: 0u8,
2739                                    actual: tag.wire_type() as u8,
2740                                });
2741                            }
2742                            view.created_at = Some(
2743                                ::buffa::types::decode_int64(&mut cur)?,
2744                            );
2745                        }
2746                        1001u32 => {
2747                            if tag.wire_type()
2748                                != ::buffa::encoding::WireType::LengthDelimited
2749                            {
2750                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
2751                                    field_number: 1001u32,
2752                                    expected: 2u8,
2753                                    actual: tag.wire_type() as u8,
2754                                });
2755                            }
2756                            view.created_by = Some(
2757                                ::buffa::types::borrow_str(&mut cur)?,
2758                            );
2759                        }
2760                        1002u32 => {
2761                            if tag.wire_type() != ::buffa::encoding::WireType::Varint {
2762                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
2763                                    field_number: 1002u32,
2764                                    expected: 0u8,
2765                                    actual: tag.wire_type() as u8,
2766                                });
2767                            }
2768                            view.updated_at = Some(
2769                                ::buffa::types::decode_int64(&mut cur)?,
2770                            );
2771                        }
2772                        1003u32 => {
2773                            if tag.wire_type()
2774                                != ::buffa::encoding::WireType::LengthDelimited
2775                            {
2776                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
2777                                    field_number: 1003u32,
2778                                    expected: 2u8,
2779                                    actual: tag.wire_type() as u8,
2780                                });
2781                            }
2782                            view.updated_by = Some(
2783                                ::buffa::types::borrow_str(&mut cur)?,
2784                            );
2785                        }
2786                        1004u32 => {
2787                            if tag.wire_type()
2788                                != ::buffa::encoding::WireType::LengthDelimited
2789                            {
2790                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
2791                                    field_number: 1004u32,
2792                                    expected: 2u8,
2793                                    actual: tag.wire_type() as u8,
2794                                });
2795                            }
2796                            view.metastore_id = Some(
2797                                ::buffa::types::borrow_str(&mut cur)?,
2798                            );
2799                        }
2800                        1005u32 => {
2801                            if tag.wire_type() != ::buffa::encoding::WireType::Varint {
2802                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
2803                                    field_number: 1005u32,
2804                                    expected: 0u8,
2805                                    actual: tag.wire_type() as u8,
2806                                });
2807                            }
2808                            view.browse_only = Some(
2809                                ::buffa::types::decode_bool(&mut cur)?,
2810                            );
2811                        }
2812                        _ => {
2813                            ::buffa::encoding::skip_field_depth(tag, &mut cur, depth)?;
2814                            let span_len = before_tag.len() - cur.len();
2815                            view.__buffa_unknown_fields
2816                                .push_raw(&before_tag[..span_len]);
2817                        }
2818                    }
2819                }
2820                ::core::result::Result::Ok(())
2821            }
2822        }
2823        impl<'a> ::buffa::MessageView<'a> for ModelVersionView<'a> {
2824            type Owned = super::super::ModelVersion;
2825            fn decode_view(
2826                buf: &'a [u8],
2827            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
2828                Self::_decode_depth(buf, ::buffa::RECURSION_LIMIT)
2829            }
2830            fn decode_view_with_limit(
2831                buf: &'a [u8],
2832                depth: u32,
2833            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
2834                Self::_decode_depth(buf, depth)
2835            }
2836            fn to_owned_message(&self) -> super::super::ModelVersion {
2837                self.to_owned_from_source(None)
2838            }
2839            #[allow(clippy::useless_conversion, clippy::needless_update)]
2840            fn to_owned_from_source(
2841                &self,
2842                __buffa_src: ::core::option::Option<&::buffa::bytes::Bytes>,
2843            ) -> super::super::ModelVersion {
2844                #[allow(unused_imports)]
2845                use ::buffa::alloc::string::ToString as _;
2846                let _ = __buffa_src;
2847                super::super::ModelVersion {
2848                    model_name: self.model_name.to_string(),
2849                    catalog_name: self.catalog_name.to_string(),
2850                    schema_name: self.schema_name.to_string(),
2851                    version: self.version,
2852                    source: self.source.to_string(),
2853                    run_id: self.run_id.map(|s| s.to_string()),
2854                    status: self.status,
2855                    storage_location: self.storage_location.map(|s| s.to_string()),
2856                    comment: self.comment.map(|s| s.to_string()),
2857                    id: self.id.map(|s| s.to_string()),
2858                    created_at: self.created_at,
2859                    created_by: self.created_by.map(|s| s.to_string()),
2860                    updated_at: self.updated_at,
2861                    updated_by: self.updated_by.map(|s| s.to_string()),
2862                    metastore_id: self.metastore_id.map(|s| s.to_string()),
2863                    browse_only: self.browse_only,
2864                    __buffa_unknown_fields: self
2865                        .__buffa_unknown_fields
2866                        .to_owned()
2867                        .unwrap_or_default()
2868                        .into(),
2869                    ..::core::default::Default::default()
2870                }
2871            }
2872        }
2873        impl<'a> ::buffa::ViewEncode<'a> for ModelVersionView<'a> {
2874            #[allow(clippy::needless_borrow, clippy::let_and_return)]
2875            fn compute_size(&self, _cache: &mut ::buffa::SizeCache) -> u32 {
2876                #[allow(unused_imports)]
2877                use ::buffa::Enumeration as _;
2878                let mut size = 0u32;
2879                if !self.model_name.is_empty() {
2880                    size
2881                        += 1u32
2882                            + ::buffa::types::string_encoded_len(&self.model_name)
2883                                as u32;
2884                }
2885                if !self.catalog_name.is_empty() {
2886                    size
2887                        += 1u32
2888                            + ::buffa::types::string_encoded_len(&self.catalog_name)
2889                                as u32;
2890                }
2891                if !self.schema_name.is_empty() {
2892                    size
2893                        += 1u32
2894                            + ::buffa::types::string_encoded_len(&self.schema_name)
2895                                as u32;
2896                }
2897                if self.version != 0i64 {
2898                    size
2899                        += 1u32 + ::buffa::types::int64_encoded_len(self.version) as u32;
2900                }
2901                if !self.source.is_empty() {
2902                    size
2903                        += 1u32
2904                            + ::buffa::types::string_encoded_len(&self.source) as u32;
2905                }
2906                if let Some(ref v) = self.run_id {
2907                    size += 1u32 + ::buffa::types::string_encoded_len(v) as u32;
2908                }
2909                {
2910                    let val = self.status.to_i32();
2911                    if val != 0 {
2912                        size += 1u32 + ::buffa::types::int32_encoded_len(val) as u32;
2913                    }
2914                }
2915                if let Some(ref v) = self.storage_location {
2916                    size += 1u32 + ::buffa::types::string_encoded_len(v) as u32;
2917                }
2918                if let Some(ref v) = self.comment {
2919                    size += 1u32 + ::buffa::types::string_encoded_len(v) as u32;
2920                }
2921                if let Some(ref v) = self.id {
2922                    size += 1u32 + ::buffa::types::string_encoded_len(v) as u32;
2923                }
2924                if let Some(v) = self.created_at {
2925                    size += 2u32 + ::buffa::types::int64_encoded_len(v) as u32;
2926                }
2927                if let Some(ref v) = self.created_by {
2928                    size += 2u32 + ::buffa::types::string_encoded_len(v) as u32;
2929                }
2930                if let Some(v) = self.updated_at {
2931                    size += 2u32 + ::buffa::types::int64_encoded_len(v) as u32;
2932                }
2933                if let Some(ref v) = self.updated_by {
2934                    size += 2u32 + ::buffa::types::string_encoded_len(v) as u32;
2935                }
2936                if let Some(ref v) = self.metastore_id {
2937                    size += 2u32 + ::buffa::types::string_encoded_len(v) as u32;
2938                }
2939                if self.browse_only.is_some() {
2940                    size += 2u32 + ::buffa::types::BOOL_ENCODED_LEN as u32;
2941                }
2942                size += self.__buffa_unknown_fields.encoded_len() as u32;
2943                size
2944            }
2945            #[allow(clippy::needless_borrow)]
2946            fn write_to(
2947                &self,
2948                _cache: &mut ::buffa::SizeCache,
2949                buf: &mut impl ::buffa::bytes::BufMut,
2950            ) {
2951                #[allow(unused_imports)]
2952                use ::buffa::Enumeration as _;
2953                if !self.model_name.is_empty() {
2954                    ::buffa::encoding::Tag::new(
2955                            1u32,
2956                            ::buffa::encoding::WireType::LengthDelimited,
2957                        )
2958                        .encode(buf);
2959                    ::buffa::types::encode_string(&self.model_name, buf);
2960                }
2961                if !self.catalog_name.is_empty() {
2962                    ::buffa::encoding::Tag::new(
2963                            2u32,
2964                            ::buffa::encoding::WireType::LengthDelimited,
2965                        )
2966                        .encode(buf);
2967                    ::buffa::types::encode_string(&self.catalog_name, buf);
2968                }
2969                if !self.schema_name.is_empty() {
2970                    ::buffa::encoding::Tag::new(
2971                            3u32,
2972                            ::buffa::encoding::WireType::LengthDelimited,
2973                        )
2974                        .encode(buf);
2975                    ::buffa::types::encode_string(&self.schema_name, buf);
2976                }
2977                if self.version != 0i64 {
2978                    ::buffa::encoding::Tag::new(
2979                            4u32,
2980                            ::buffa::encoding::WireType::Varint,
2981                        )
2982                        .encode(buf);
2983                    ::buffa::types::encode_int64(self.version, buf);
2984                }
2985                if !self.source.is_empty() {
2986                    ::buffa::encoding::Tag::new(
2987                            5u32,
2988                            ::buffa::encoding::WireType::LengthDelimited,
2989                        )
2990                        .encode(buf);
2991                    ::buffa::types::encode_string(&self.source, buf);
2992                }
2993                if let Some(ref v) = self.run_id {
2994                    ::buffa::encoding::Tag::new(
2995                            6u32,
2996                            ::buffa::encoding::WireType::LengthDelimited,
2997                        )
2998                        .encode(buf);
2999                    ::buffa::types::encode_string(v, buf);
3000                }
3001                {
3002                    let val = self.status.to_i32();
3003                    if val != 0 {
3004                        ::buffa::encoding::Tag::new(
3005                                7u32,
3006                                ::buffa::encoding::WireType::Varint,
3007                            )
3008                            .encode(buf);
3009                        ::buffa::types::encode_int32(val, buf);
3010                    }
3011                }
3012                if let Some(ref v) = self.storage_location {
3013                    ::buffa::encoding::Tag::new(
3014                            8u32,
3015                            ::buffa::encoding::WireType::LengthDelimited,
3016                        )
3017                        .encode(buf);
3018                    ::buffa::types::encode_string(v, buf);
3019                }
3020                if let Some(ref v) = self.comment {
3021                    ::buffa::encoding::Tag::new(
3022                            9u32,
3023                            ::buffa::encoding::WireType::LengthDelimited,
3024                        )
3025                        .encode(buf);
3026                    ::buffa::types::encode_string(v, buf);
3027                }
3028                if let Some(ref v) = self.id {
3029                    ::buffa::encoding::Tag::new(
3030                            10u32,
3031                            ::buffa::encoding::WireType::LengthDelimited,
3032                        )
3033                        .encode(buf);
3034                    ::buffa::types::encode_string(v, buf);
3035                }
3036                if let Some(v) = self.created_at {
3037                    ::buffa::encoding::Tag::new(
3038                            1000u32,
3039                            ::buffa::encoding::WireType::Varint,
3040                        )
3041                        .encode(buf);
3042                    ::buffa::types::encode_int64(v, buf);
3043                }
3044                if let Some(ref v) = self.created_by {
3045                    ::buffa::encoding::Tag::new(
3046                            1001u32,
3047                            ::buffa::encoding::WireType::LengthDelimited,
3048                        )
3049                        .encode(buf);
3050                    ::buffa::types::encode_string(v, buf);
3051                }
3052                if let Some(v) = self.updated_at {
3053                    ::buffa::encoding::Tag::new(
3054                            1002u32,
3055                            ::buffa::encoding::WireType::Varint,
3056                        )
3057                        .encode(buf);
3058                    ::buffa::types::encode_int64(v, buf);
3059                }
3060                if let Some(ref v) = self.updated_by {
3061                    ::buffa::encoding::Tag::new(
3062                            1003u32,
3063                            ::buffa::encoding::WireType::LengthDelimited,
3064                        )
3065                        .encode(buf);
3066                    ::buffa::types::encode_string(v, buf);
3067                }
3068                if let Some(ref v) = self.metastore_id {
3069                    ::buffa::encoding::Tag::new(
3070                            1004u32,
3071                            ::buffa::encoding::WireType::LengthDelimited,
3072                        )
3073                        .encode(buf);
3074                    ::buffa::types::encode_string(v, buf);
3075                }
3076                if let Some(v) = self.browse_only {
3077                    ::buffa::encoding::Tag::new(
3078                            1005u32,
3079                            ::buffa::encoding::WireType::Varint,
3080                        )
3081                        .encode(buf);
3082                    ::buffa::types::encode_bool(v, buf);
3083                }
3084                self.__buffa_unknown_fields.write_to(buf);
3085            }
3086        }
3087        /// Serializes this view as protobuf JSON.
3088        ///
3089        /// Implicit-presence fields with default values are omitted, `required`
3090        /// fields are always emitted, explicit-presence (`optional`) fields are
3091        /// emitted only when set, bytes fields are base64-encoded, and enum
3092        /// values are their proto name strings.
3093        ///
3094        /// This impl uses `serialize_map(None)` because the number of emitted
3095        /// fields depends on default-omission rules; serializers that require
3096        /// known map lengths (e.g. `bincode`) will return a runtime error.
3097        /// Use the owned message type for those formats.
3098        impl<'__a> ::serde::Serialize for ModelVersionView<'__a> {
3099            fn serialize<__S: ::serde::Serializer>(
3100                &self,
3101                __s: __S,
3102            ) -> ::core::result::Result<__S::Ok, __S::Error> {
3103                use ::serde::ser::SerializeMap as _;
3104                let mut __map = __s.serialize_map(::core::option::Option::None)?;
3105                if !::buffa::json_helpers::skip_if::is_empty_str(self.model_name) {
3106                    __map.serialize_entry("model_name", self.model_name)?;
3107                }
3108                if !::buffa::json_helpers::skip_if::is_empty_str(self.catalog_name) {
3109                    __map.serialize_entry("catalog_name", self.catalog_name)?;
3110                }
3111                if !::buffa::json_helpers::skip_if::is_empty_str(self.schema_name) {
3112                    __map.serialize_entry("schema_name", self.schema_name)?;
3113                }
3114                if !::buffa::json_helpers::skip_if::is_zero_i64(&self.version) {
3115                    struct _W(i64);
3116                    impl ::serde::Serialize for _W {
3117                        fn serialize<__S: ::serde::Serializer>(
3118                            &self,
3119                            __s: __S,
3120                        ) -> ::core::result::Result<__S::Ok, __S::Error> {
3121                            ::buffa::json_helpers::int64::serialize(&self.0, __s)
3122                        }
3123                    }
3124                    __map.serialize_entry("version", &_W(self.version))?;
3125                }
3126                if !::buffa::json_helpers::skip_if::is_empty_str(self.source) {
3127                    __map.serialize_entry("source", self.source)?;
3128                }
3129                if let ::core::option::Option::Some(__v) = self.run_id {
3130                    __map.serialize_entry("run_id", __v)?;
3131                }
3132                if !::buffa::json_helpers::skip_if::is_default_enum_value(&self.status) {
3133                    __map.serialize_entry("status", &self.status)?;
3134                }
3135                if let ::core::option::Option::Some(__v) = self.storage_location {
3136                    __map.serialize_entry("storage_location", __v)?;
3137                }
3138                if let ::core::option::Option::Some(__v) = self.comment {
3139                    __map.serialize_entry("comment", __v)?;
3140                }
3141                if let ::core::option::Option::Some(__v) = self.id {
3142                    __map.serialize_entry("id", __v)?;
3143                }
3144                if let ::core::option::Option::Some(__v) = self.created_at {
3145                    struct _W(i64);
3146                    impl ::serde::Serialize for _W {
3147                        fn serialize<__S: ::serde::Serializer>(
3148                            &self,
3149                            __s: __S,
3150                        ) -> ::core::result::Result<__S::Ok, __S::Error> {
3151                            ::buffa::json_helpers::int64::serialize(&self.0, __s)
3152                        }
3153                    }
3154                    __map.serialize_entry("created_at", &_W(__v))?;
3155                }
3156                if let ::core::option::Option::Some(__v) = self.created_by {
3157                    __map.serialize_entry("created_by", __v)?;
3158                }
3159                if let ::core::option::Option::Some(__v) = self.updated_at {
3160                    struct _W(i64);
3161                    impl ::serde::Serialize for _W {
3162                        fn serialize<__S: ::serde::Serializer>(
3163                            &self,
3164                            __s: __S,
3165                        ) -> ::core::result::Result<__S::Ok, __S::Error> {
3166                            ::buffa::json_helpers::int64::serialize(&self.0, __s)
3167                        }
3168                    }
3169                    __map.serialize_entry("updated_at", &_W(__v))?;
3170                }
3171                if let ::core::option::Option::Some(__v) = self.updated_by {
3172                    __map.serialize_entry("updated_by", __v)?;
3173                }
3174                if let ::core::option::Option::Some(__v) = self.metastore_id {
3175                    __map.serialize_entry("metastore_id", __v)?;
3176                }
3177                if let ::core::option::Option::Some(__v) = self.browse_only {
3178                    __map.serialize_entry("browse_only", &__v)?;
3179                }
3180                __map.end()
3181            }
3182        }
3183        impl<'a> ::buffa::MessageName for ModelVersionView<'a> {
3184            const PACKAGE: &'static str = "unitycatalog.model_versions.v1";
3185            const NAME: &'static str = "ModelVersion";
3186            const FULL_NAME: &'static str = "unitycatalog.model_versions.v1.ModelVersion";
3187            const TYPE_URL: &'static str = "type.googleapis.com/unitycatalog.model_versions.v1.ModelVersion";
3188        }
3189        impl<'v> ::buffa::DefaultViewInstance for ModelVersionView<'v> {
3190            fn default_view_instance<'a>() -> &'a Self
3191            where
3192                Self: 'a,
3193            {
3194                static VALUE: ::buffa::__private::OnceBox<ModelVersionView<'static>> = ::buffa::__private::OnceBox::new();
3195                VALUE
3196                    .get_or_init(|| ::buffa::alloc::boxed::Box::new(
3197                        <ModelVersionView<'static>>::default(),
3198                    ))
3199            }
3200        }
3201        impl ::buffa::ViewReborrow for ModelVersionView<'static> {
3202            type Reborrowed<'b> = ModelVersionView<'b>;
3203            fn reborrow<'b>(this: &'b Self) -> &'b Self::Reborrowed<'b> {
3204                this
3205            }
3206        }
3207        /** Self-contained, `'static` owned view of a `ModelVersion` message.
3208
3209 Wraps [`::buffa::OwnedView`]`<`[`ModelVersionView`]`<'static>>`: the decoded view and the [`::buffa::bytes::Bytes`] buffer it borrows from travel together, so the handle is `'static` and `Send + Sync` — suitable for async handlers, spawned tasks, and anywhere a `'static` bound is required.
3210
3211 Field accessors return borrows tied to `&self`. Use [`Self::view`] to get the full [`ModelVersionView`] when you need struct patterns, iteration helpers, or to pass the view to lifetime-parameterised code.*/
3212        #[derive(Clone, Debug)]
3213        pub struct ModelVersionOwnedView(::buffa::OwnedView<ModelVersionView<'static>>);
3214        impl ModelVersionOwnedView {
3215            /// Decode an owned view from a [`::buffa::bytes::Bytes`] buffer.
3216            ///
3217            /// The view borrows directly from the buffer's data; the buffer is
3218            /// retained inside the returned handle.
3219            ///
3220            /// # Errors
3221            ///
3222            /// Returns [`::buffa::DecodeError`] if the buffer contains invalid
3223            /// protobuf data.
3224            pub fn decode(
3225                bytes: ::buffa::bytes::Bytes,
3226            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
3227                ::core::result::Result::Ok(
3228                    ModelVersionOwnedView(::buffa::OwnedView::decode(bytes)?),
3229                )
3230            }
3231            /// Decode with custom [`::buffa::DecodeOptions`] (recursion limit,
3232            /// max message size).
3233            ///
3234            /// # Errors
3235            ///
3236            /// Returns [`::buffa::DecodeError`] if the buffer is invalid or
3237            /// exceeds the configured limits.
3238            pub fn decode_with_options(
3239                bytes: ::buffa::bytes::Bytes,
3240                opts: &::buffa::DecodeOptions,
3241            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
3242                ::core::result::Result::Ok(
3243                    ModelVersionOwnedView(
3244                        ::buffa::OwnedView::decode_with_options(bytes, opts)?,
3245                    ),
3246                )
3247            }
3248            /// Build from an owned message via an encode → decode round-trip.
3249            ///
3250            /// # Errors
3251            ///
3252            /// Returns [`::buffa::DecodeError`] if the re-encoded bytes are
3253            /// somehow invalid (should not happen for well-formed messages).
3254            pub fn from_owned(
3255                msg: &super::super::ModelVersion,
3256            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
3257                ::core::result::Result::Ok(
3258                    ModelVersionOwnedView(::buffa::OwnedView::from_owned(msg)?),
3259                )
3260            }
3261            /// Borrow the full [`ModelVersionView`] with its lifetime tied to `&self`.
3262            #[must_use]
3263            pub fn view(&self) -> &ModelVersionView<'_> {
3264                self.0.reborrow()
3265            }
3266            /// Convert to the owned message type.
3267            #[must_use]
3268            pub fn to_owned_message(&self) -> super::super::ModelVersion {
3269                self.0.to_owned_message()
3270            }
3271            /// The underlying bytes buffer.
3272            #[must_use]
3273            pub fn bytes(&self) -> &::buffa::bytes::Bytes {
3274                self.0.bytes()
3275            }
3276            /// Consume the handle, returning the underlying bytes buffer.
3277            #[must_use]
3278            pub fn into_bytes(self) -> ::buffa::bytes::Bytes {
3279                self.0.into_bytes()
3280            }
3281            /// Name of the parent registered model, relative to parent schema.
3282            ///
3283            /// Field 1: `model_name`
3284            #[must_use]
3285            pub fn model_name(&self) -> &'_ str {
3286                self.0.reborrow().model_name
3287            }
3288            /// Name of parent catalog.
3289            ///
3290            /// Field 2: `catalog_name`
3291            #[must_use]
3292            pub fn catalog_name(&self) -> &'_ str {
3293                self.0.reborrow().catalog_name
3294            }
3295            /// Name of parent schema.
3296            ///
3297            /// Field 3: `schema_name`
3298            #[must_use]
3299            pub fn schema_name(&self) -> &'_ str {
3300                self.0.reborrow().schema_name
3301            }
3302            /// Integer model version number, used to reference the model version in API
3303            /// requests. Assigned by the server, monotonically increasing per model.
3304            ///
3305            /// Field 4: `version`
3306            #[must_use]
3307            pub fn version(&self) -> i64 {
3308                self.0.reborrow().version
3309            }
3310            /// URI indicating the location of the source artifacts used to create the model
3311            /// version.
3312            ///
3313            /// Field 5: `source`
3314            #[must_use]
3315            pub fn source(&self) -> &'_ str {
3316                self.0.reborrow().source
3317            }
3318            /// The run id used by the ML package that generated this model.
3319            ///
3320            /// Field 6: `run_id`
3321            #[must_use]
3322            pub fn run_id(&self) -> ::core::option::Option<&'_ str> {
3323                self.0.reborrow().run_id
3324            }
3325            /// Current status of the model version.
3326            ///
3327            /// Field 7: `status`
3328            #[must_use]
3329            pub fn status(
3330                &self,
3331            ) -> ::buffa::EnumValue<super::super::ModelVersionStatus> {
3332                self.0.reborrow().status
3333            }
3334            /// The storage location under which the model version's artifacts are stored.
3335            ///
3336            /// Field 8: `storage_location`
3337            #[must_use]
3338            pub fn storage_location(&self) -> ::core::option::Option<&'_ str> {
3339                self.0.reborrow().storage_location
3340            }
3341            /// User-provided free-form text description.
3342            ///
3343            /// Field 9: `comment`
3344            #[must_use]
3345            pub fn comment(&self) -> ::core::option::Option<&'_ str> {
3346                self.0.reborrow().comment
3347            }
3348            /// Unique identifier for the model version.
3349            ///
3350            /// Field 10: `id`
3351            #[must_use]
3352            pub fn id(&self) -> ::core::option::Option<&'_ str> {
3353                self.0.reborrow().id
3354            }
3355            /// Time at which this model version was created, in epoch milliseconds.
3356            ///
3357            /// Field 1000: `created_at`
3358            #[must_use]
3359            pub fn created_at(&self) -> ::core::option::Option<i64> {
3360                self.0.reborrow().created_at
3361            }
3362            /// Username of model version creator.
3363            ///
3364            /// Field 1001: `created_by`
3365            #[must_use]
3366            pub fn created_by(&self) -> ::core::option::Option<&'_ str> {
3367                self.0.reborrow().created_by
3368            }
3369            /// Time at which this model version was last updated, in epoch milliseconds.
3370            ///
3371            /// Field 1002: `updated_at`
3372            #[must_use]
3373            pub fn updated_at(&self) -> ::core::option::Option<i64> {
3374                self.0.reborrow().updated_at
3375            }
3376            /// Username of user who last modified the model version.
3377            ///
3378            /// Field 1003: `updated_by`
3379            #[must_use]
3380            pub fn updated_by(&self) -> ::core::option::Option<&'_ str> {
3381                self.0.reborrow().updated_by
3382            }
3383            /// The unique identifier of the metastore.
3384            ///
3385            /// Field 1004: `metastore_id`
3386            #[must_use]
3387            pub fn metastore_id(&self) -> ::core::option::Option<&'_ str> {
3388                self.0.reborrow().metastore_id
3389            }
3390            /// Indicates whether the principal is limited to retrieving metadata for the
3391            /// associated object through the BROWSE privilege when include_browse is
3392            /// enabled in the request.
3393            ///
3394            /// Field 1005: `browse_only`
3395            #[must_use]
3396            pub fn browse_only(&self) -> ::core::option::Option<bool> {
3397                self.0.reborrow().browse_only
3398            }
3399        }
3400        impl ::core::convert::From<::buffa::OwnedView<ModelVersionView<'static>>>
3401        for ModelVersionOwnedView {
3402            fn from(inner: ::buffa::OwnedView<ModelVersionView<'static>>) -> Self {
3403                ModelVersionOwnedView(inner)
3404            }
3405        }
3406        impl ::core::convert::From<ModelVersionOwnedView>
3407        for ::buffa::OwnedView<ModelVersionView<'static>> {
3408            fn from(wrapper: ModelVersionOwnedView) -> Self {
3409                wrapper.0
3410            }
3411        }
3412        impl ::core::convert::AsRef<::buffa::OwnedView<ModelVersionView<'static>>>
3413        for ModelVersionOwnedView {
3414            fn as_ref(&self) -> &::buffa::OwnedView<ModelVersionView<'static>> {
3415                &self.0
3416            }
3417        }
3418        impl ::buffa::HasMessageView for super::super::ModelVersion {
3419            type View<'a> = ModelVersionView<'a>;
3420            type ViewHandle = ModelVersionOwnedView;
3421        }
3422        impl ::serde::Serialize for ModelVersionOwnedView {
3423            fn serialize<__S: ::serde::Serializer>(
3424                &self,
3425                __s: __S,
3426            ) -> ::core::result::Result<__S::Ok, __S::Error> {
3427                ::serde::Serialize::serialize(&self.0, __s)
3428            }
3429        }
3430        /// List model versions of a registered model.
3431        #[derive(Clone, Debug, Default)]
3432        pub struct ListModelVersionsRequestView<'a> {
3433            /// The full three-level name of the registered model (catalog.schema.model)
3434            /// whose versions are being listed.
3435            ///
3436            /// Field 1: `full_name`
3437            pub full_name: &'a str,
3438            /// The maximum number of results per page that should be returned.
3439            ///
3440            /// Field 2: `max_results`
3441            pub max_results: ::core::option::Option<i32>,
3442            /// Opaque pagination token to go to next page based on previous query.
3443            ///
3444            /// Field 3: `page_token`
3445            pub page_token: ::core::option::Option<&'a str>,
3446            /// Whether to include model versions in the response for which the principal can
3447            /// only access selective metadata for.
3448            ///
3449            /// Field 4: `include_browse`
3450            pub include_browse: ::core::option::Option<bool>,
3451            pub __buffa_unknown_fields: ::buffa::UnknownFieldsView<'a>,
3452        }
3453        impl<'a> ListModelVersionsRequestView<'a> {
3454            /// Decode from `buf`, enforcing a recursion depth limit for nested messages.
3455            ///
3456            /// Called by [`::buffa::MessageView::decode_view`] with [`::buffa::RECURSION_LIMIT`]
3457            /// and by generated sub-message decode arms with `depth - 1`.
3458            ///
3459            /// **Not part of the public API.** Named with a leading underscore to
3460            /// signal that it is for generated-code use only.
3461            #[doc(hidden)]
3462            pub fn _decode_depth(
3463                buf: &'a [u8],
3464                depth: u32,
3465            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
3466                let mut view = Self::default();
3467                view._merge_into_view(buf, depth)?;
3468                ::core::result::Result::Ok(view)
3469            }
3470            /// Merge fields from `buf` into this view (proto merge semantics).
3471            ///
3472            /// Repeated fields append; singular fields last-wins; singular
3473            /// MESSAGE fields merge recursively. Used by sub-message decode
3474            /// arms when the same field appears multiple times on the wire.
3475            ///
3476            /// **Not part of the public API.**
3477            #[doc(hidden)]
3478            pub fn _merge_into_view(
3479                &mut self,
3480                buf: &'a [u8],
3481                depth: u32,
3482            ) -> ::core::result::Result<(), ::buffa::DecodeError> {
3483                let _ = depth;
3484                #[allow(unused_variables)]
3485                let view = self;
3486                let mut cur: &'a [u8] = buf;
3487                while !cur.is_empty() {
3488                    let before_tag = cur;
3489                    let tag = ::buffa::encoding::Tag::decode(&mut cur)?;
3490                    match tag.field_number() {
3491                        1u32 => {
3492                            if tag.wire_type()
3493                                != ::buffa::encoding::WireType::LengthDelimited
3494                            {
3495                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
3496                                    field_number: 1u32,
3497                                    expected: 2u8,
3498                                    actual: tag.wire_type() as u8,
3499                                });
3500                            }
3501                            view.full_name = ::buffa::types::borrow_str(&mut cur)?;
3502                        }
3503                        2u32 => {
3504                            if tag.wire_type() != ::buffa::encoding::WireType::Varint {
3505                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
3506                                    field_number: 2u32,
3507                                    expected: 0u8,
3508                                    actual: tag.wire_type() as u8,
3509                                });
3510                            }
3511                            view.max_results = Some(
3512                                ::buffa::types::decode_int32(&mut cur)?,
3513                            );
3514                        }
3515                        3u32 => {
3516                            if tag.wire_type()
3517                                != ::buffa::encoding::WireType::LengthDelimited
3518                            {
3519                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
3520                                    field_number: 3u32,
3521                                    expected: 2u8,
3522                                    actual: tag.wire_type() as u8,
3523                                });
3524                            }
3525                            view.page_token = Some(
3526                                ::buffa::types::borrow_str(&mut cur)?,
3527                            );
3528                        }
3529                        4u32 => {
3530                            if tag.wire_type() != ::buffa::encoding::WireType::Varint {
3531                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
3532                                    field_number: 4u32,
3533                                    expected: 0u8,
3534                                    actual: tag.wire_type() as u8,
3535                                });
3536                            }
3537                            view.include_browse = Some(
3538                                ::buffa::types::decode_bool(&mut cur)?,
3539                            );
3540                        }
3541                        _ => {
3542                            ::buffa::encoding::skip_field_depth(tag, &mut cur, depth)?;
3543                            let span_len = before_tag.len() - cur.len();
3544                            view.__buffa_unknown_fields
3545                                .push_raw(&before_tag[..span_len]);
3546                        }
3547                    }
3548                }
3549                ::core::result::Result::Ok(())
3550            }
3551        }
3552        impl<'a> ::buffa::MessageView<'a> for ListModelVersionsRequestView<'a> {
3553            type Owned = super::super::ListModelVersionsRequest;
3554            fn decode_view(
3555                buf: &'a [u8],
3556            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
3557                Self::_decode_depth(buf, ::buffa::RECURSION_LIMIT)
3558            }
3559            fn decode_view_with_limit(
3560                buf: &'a [u8],
3561                depth: u32,
3562            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
3563                Self::_decode_depth(buf, depth)
3564            }
3565            fn to_owned_message(&self) -> super::super::ListModelVersionsRequest {
3566                self.to_owned_from_source(None)
3567            }
3568            #[allow(clippy::useless_conversion, clippy::needless_update)]
3569            fn to_owned_from_source(
3570                &self,
3571                __buffa_src: ::core::option::Option<&::buffa::bytes::Bytes>,
3572            ) -> super::super::ListModelVersionsRequest {
3573                #[allow(unused_imports)]
3574                use ::buffa::alloc::string::ToString as _;
3575                let _ = __buffa_src;
3576                super::super::ListModelVersionsRequest {
3577                    full_name: self.full_name.to_string(),
3578                    max_results: self.max_results,
3579                    page_token: self.page_token.map(|s| s.to_string()),
3580                    include_browse: self.include_browse,
3581                    __buffa_unknown_fields: self
3582                        .__buffa_unknown_fields
3583                        .to_owned()
3584                        .unwrap_or_default()
3585                        .into(),
3586                    ..::core::default::Default::default()
3587                }
3588            }
3589        }
3590        impl<'a> ::buffa::ViewEncode<'a> for ListModelVersionsRequestView<'a> {
3591            #[allow(clippy::needless_borrow, clippy::let_and_return)]
3592            fn compute_size(&self, _cache: &mut ::buffa::SizeCache) -> u32 {
3593                #[allow(unused_imports)]
3594                use ::buffa::Enumeration as _;
3595                let mut size = 0u32;
3596                if !self.full_name.is_empty() {
3597                    size
3598                        += 1u32
3599                            + ::buffa::types::string_encoded_len(&self.full_name) as u32;
3600                }
3601                if let Some(v) = self.max_results {
3602                    size += 1u32 + ::buffa::types::int32_encoded_len(v) as u32;
3603                }
3604                if let Some(ref v) = self.page_token {
3605                    size += 1u32 + ::buffa::types::string_encoded_len(v) as u32;
3606                }
3607                if self.include_browse.is_some() {
3608                    size += 1u32 + ::buffa::types::BOOL_ENCODED_LEN as u32;
3609                }
3610                size += self.__buffa_unknown_fields.encoded_len() as u32;
3611                size
3612            }
3613            #[allow(clippy::needless_borrow)]
3614            fn write_to(
3615                &self,
3616                _cache: &mut ::buffa::SizeCache,
3617                buf: &mut impl ::buffa::bytes::BufMut,
3618            ) {
3619                #[allow(unused_imports)]
3620                use ::buffa::Enumeration as _;
3621                if !self.full_name.is_empty() {
3622                    ::buffa::encoding::Tag::new(
3623                            1u32,
3624                            ::buffa::encoding::WireType::LengthDelimited,
3625                        )
3626                        .encode(buf);
3627                    ::buffa::types::encode_string(&self.full_name, buf);
3628                }
3629                if let Some(v) = self.max_results {
3630                    ::buffa::encoding::Tag::new(
3631                            2u32,
3632                            ::buffa::encoding::WireType::Varint,
3633                        )
3634                        .encode(buf);
3635                    ::buffa::types::encode_int32(v, buf);
3636                }
3637                if let Some(ref v) = self.page_token {
3638                    ::buffa::encoding::Tag::new(
3639                            3u32,
3640                            ::buffa::encoding::WireType::LengthDelimited,
3641                        )
3642                        .encode(buf);
3643                    ::buffa::types::encode_string(v, buf);
3644                }
3645                if let Some(v) = self.include_browse {
3646                    ::buffa::encoding::Tag::new(
3647                            4u32,
3648                            ::buffa::encoding::WireType::Varint,
3649                        )
3650                        .encode(buf);
3651                    ::buffa::types::encode_bool(v, buf);
3652                }
3653                self.__buffa_unknown_fields.write_to(buf);
3654            }
3655        }
3656        /// Serializes this view as protobuf JSON.
3657        ///
3658        /// Implicit-presence fields with default values are omitted, `required`
3659        /// fields are always emitted, explicit-presence (`optional`) fields are
3660        /// emitted only when set, bytes fields are base64-encoded, and enum
3661        /// values are their proto name strings.
3662        ///
3663        /// This impl uses `serialize_map(None)` because the number of emitted
3664        /// fields depends on default-omission rules; serializers that require
3665        /// known map lengths (e.g. `bincode`) will return a runtime error.
3666        /// Use the owned message type for those formats.
3667        impl<'__a> ::serde::Serialize for ListModelVersionsRequestView<'__a> {
3668            fn serialize<__S: ::serde::Serializer>(
3669                &self,
3670                __s: __S,
3671            ) -> ::core::result::Result<__S::Ok, __S::Error> {
3672                use ::serde::ser::SerializeMap as _;
3673                let mut __map = __s.serialize_map(::core::option::Option::None)?;
3674                if !::buffa::json_helpers::skip_if::is_empty_str(self.full_name) {
3675                    __map.serialize_entry("full_name", self.full_name)?;
3676                }
3677                if let ::core::option::Option::Some(__v) = self.max_results {
3678                    struct _W(i32);
3679                    impl ::serde::Serialize for _W {
3680                        fn serialize<__S: ::serde::Serializer>(
3681                            &self,
3682                            __s: __S,
3683                        ) -> ::core::result::Result<__S::Ok, __S::Error> {
3684                            ::buffa::json_helpers::int32::serialize(&self.0, __s)
3685                        }
3686                    }
3687                    __map.serialize_entry("max_results", &_W(__v))?;
3688                }
3689                if let ::core::option::Option::Some(__v) = self.page_token {
3690                    __map.serialize_entry("page_token", __v)?;
3691                }
3692                if let ::core::option::Option::Some(__v) = self.include_browse {
3693                    __map.serialize_entry("include_browse", &__v)?;
3694                }
3695                __map.end()
3696            }
3697        }
3698        impl<'a> ::buffa::MessageName for ListModelVersionsRequestView<'a> {
3699            const PACKAGE: &'static str = "unitycatalog.model_versions.v1";
3700            const NAME: &'static str = "ListModelVersionsRequest";
3701            const FULL_NAME: &'static str = "unitycatalog.model_versions.v1.ListModelVersionsRequest";
3702            const TYPE_URL: &'static str = "type.googleapis.com/unitycatalog.model_versions.v1.ListModelVersionsRequest";
3703        }
3704        impl<'v> ::buffa::DefaultViewInstance for ListModelVersionsRequestView<'v> {
3705            fn default_view_instance<'a>() -> &'a Self
3706            where
3707                Self: 'a,
3708            {
3709                static VALUE: ::buffa::__private::OnceBox<
3710                    ListModelVersionsRequestView<'static>,
3711                > = ::buffa::__private::OnceBox::new();
3712                VALUE
3713                    .get_or_init(|| ::buffa::alloc::boxed::Box::new(
3714                        <ListModelVersionsRequestView<'static>>::default(),
3715                    ))
3716            }
3717        }
3718        impl ::buffa::ViewReborrow for ListModelVersionsRequestView<'static> {
3719            type Reborrowed<'b> = ListModelVersionsRequestView<'b>;
3720            fn reborrow<'b>(this: &'b Self) -> &'b Self::Reborrowed<'b> {
3721                this
3722            }
3723        }
3724        /** Self-contained, `'static` owned view of a `ListModelVersionsRequest` message.
3725
3726 Wraps [`::buffa::OwnedView`]`<`[`ListModelVersionsRequestView`]`<'static>>`: the decoded view and the [`::buffa::bytes::Bytes`] buffer it borrows from travel together, so the handle is `'static` and `Send + Sync` — suitable for async handlers, spawned tasks, and anywhere a `'static` bound is required.
3727
3728 Field accessors return borrows tied to `&self`. Use [`Self::view`] to get the full [`ListModelVersionsRequestView`] when you need struct patterns, iteration helpers, or to pass the view to lifetime-parameterised code.*/
3729        #[derive(Clone, Debug)]
3730        pub struct ListModelVersionsRequestOwnedView(
3731            ::buffa::OwnedView<ListModelVersionsRequestView<'static>>,
3732        );
3733        impl ListModelVersionsRequestOwnedView {
3734            /// Decode an owned view from a [`::buffa::bytes::Bytes`] buffer.
3735            ///
3736            /// The view borrows directly from the buffer's data; the buffer is
3737            /// retained inside the returned handle.
3738            ///
3739            /// # Errors
3740            ///
3741            /// Returns [`::buffa::DecodeError`] if the buffer contains invalid
3742            /// protobuf data.
3743            pub fn decode(
3744                bytes: ::buffa::bytes::Bytes,
3745            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
3746                ::core::result::Result::Ok(
3747                    ListModelVersionsRequestOwnedView(::buffa::OwnedView::decode(bytes)?),
3748                )
3749            }
3750            /// Decode with custom [`::buffa::DecodeOptions`] (recursion limit,
3751            /// max message size).
3752            ///
3753            /// # Errors
3754            ///
3755            /// Returns [`::buffa::DecodeError`] if the buffer is invalid or
3756            /// exceeds the configured limits.
3757            pub fn decode_with_options(
3758                bytes: ::buffa::bytes::Bytes,
3759                opts: &::buffa::DecodeOptions,
3760            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
3761                ::core::result::Result::Ok(
3762                    ListModelVersionsRequestOwnedView(
3763                        ::buffa::OwnedView::decode_with_options(bytes, opts)?,
3764                    ),
3765                )
3766            }
3767            /// Build from an owned message via an encode → decode round-trip.
3768            ///
3769            /// # Errors
3770            ///
3771            /// Returns [`::buffa::DecodeError`] if the re-encoded bytes are
3772            /// somehow invalid (should not happen for well-formed messages).
3773            pub fn from_owned(
3774                msg: &super::super::ListModelVersionsRequest,
3775            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
3776                ::core::result::Result::Ok(
3777                    ListModelVersionsRequestOwnedView(
3778                        ::buffa::OwnedView::from_owned(msg)?,
3779                    ),
3780                )
3781            }
3782            /// Borrow the full [`ListModelVersionsRequestView`] with its lifetime tied to `&self`.
3783            #[must_use]
3784            pub fn view(&self) -> &ListModelVersionsRequestView<'_> {
3785                self.0.reborrow()
3786            }
3787            /// Convert to the owned message type.
3788            #[must_use]
3789            pub fn to_owned_message(&self) -> super::super::ListModelVersionsRequest {
3790                self.0.to_owned_message()
3791            }
3792            /// The underlying bytes buffer.
3793            #[must_use]
3794            pub fn bytes(&self) -> &::buffa::bytes::Bytes {
3795                self.0.bytes()
3796            }
3797            /// Consume the handle, returning the underlying bytes buffer.
3798            #[must_use]
3799            pub fn into_bytes(self) -> ::buffa::bytes::Bytes {
3800                self.0.into_bytes()
3801            }
3802            /// The full three-level name of the registered model (catalog.schema.model)
3803            /// whose versions are being listed.
3804            ///
3805            /// Field 1: `full_name`
3806            #[must_use]
3807            pub fn full_name(&self) -> &'_ str {
3808                self.0.reborrow().full_name
3809            }
3810            /// The maximum number of results per page that should be returned.
3811            ///
3812            /// Field 2: `max_results`
3813            #[must_use]
3814            pub fn max_results(&self) -> ::core::option::Option<i32> {
3815                self.0.reborrow().max_results
3816            }
3817            /// Opaque pagination token to go to next page based on previous query.
3818            ///
3819            /// Field 3: `page_token`
3820            #[must_use]
3821            pub fn page_token(&self) -> ::core::option::Option<&'_ str> {
3822                self.0.reborrow().page_token
3823            }
3824            /// Whether to include model versions in the response for which the principal can
3825            /// only access selective metadata for.
3826            ///
3827            /// Field 4: `include_browse`
3828            #[must_use]
3829            pub fn include_browse(&self) -> ::core::option::Option<bool> {
3830                self.0.reborrow().include_browse
3831            }
3832        }
3833        impl ::core::convert::From<
3834            ::buffa::OwnedView<ListModelVersionsRequestView<'static>>,
3835        > for ListModelVersionsRequestOwnedView {
3836            fn from(
3837                inner: ::buffa::OwnedView<ListModelVersionsRequestView<'static>>,
3838            ) -> Self {
3839                ListModelVersionsRequestOwnedView(inner)
3840            }
3841        }
3842        impl ::core::convert::From<ListModelVersionsRequestOwnedView>
3843        for ::buffa::OwnedView<ListModelVersionsRequestView<'static>> {
3844            fn from(wrapper: ListModelVersionsRequestOwnedView) -> Self {
3845                wrapper.0
3846            }
3847        }
3848        impl ::core::convert::AsRef<
3849            ::buffa::OwnedView<ListModelVersionsRequestView<'static>>,
3850        > for ListModelVersionsRequestOwnedView {
3851            fn as_ref(
3852                &self,
3853            ) -> &::buffa::OwnedView<ListModelVersionsRequestView<'static>> {
3854                &self.0
3855            }
3856        }
3857        impl ::buffa::HasMessageView for super::super::ListModelVersionsRequest {
3858            type View<'a> = ListModelVersionsRequestView<'a>;
3859            type ViewHandle = ListModelVersionsRequestOwnedView;
3860        }
3861        impl ::serde::Serialize for ListModelVersionsRequestOwnedView {
3862            fn serialize<__S: ::serde::Serializer>(
3863                &self,
3864                __s: __S,
3865            ) -> ::core::result::Result<__S::Ok, __S::Error> {
3866                ::serde::Serialize::serialize(&self.0, __s)
3867            }
3868        }
3869        /// List model versions response.
3870        #[derive(Clone, Debug, Default)]
3871        pub struct ListModelVersionsResponseView<'a> {
3872            /// The model versions returned.
3873            ///
3874            /// Field 1: `model_versions`
3875            pub model_versions: ::buffa::RepeatedView<
3876                'a,
3877                super::super::__buffa::view::ModelVersionView<'a>,
3878            >,
3879            /// The next_page_token value to include in the next List request.
3880            ///
3881            /// Field 2: `next_page_token`
3882            pub next_page_token: ::core::option::Option<&'a str>,
3883            pub __buffa_unknown_fields: ::buffa::UnknownFieldsView<'a>,
3884        }
3885        impl<'a> ListModelVersionsResponseView<'a> {
3886            /// Decode from `buf`, enforcing a recursion depth limit for nested messages.
3887            ///
3888            /// Called by [`::buffa::MessageView::decode_view`] with [`::buffa::RECURSION_LIMIT`]
3889            /// and by generated sub-message decode arms with `depth - 1`.
3890            ///
3891            /// **Not part of the public API.** Named with a leading underscore to
3892            /// signal that it is for generated-code use only.
3893            #[doc(hidden)]
3894            pub fn _decode_depth(
3895                buf: &'a [u8],
3896                depth: u32,
3897            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
3898                let mut view = Self::default();
3899                view._merge_into_view(buf, depth)?;
3900                ::core::result::Result::Ok(view)
3901            }
3902            /// Merge fields from `buf` into this view (proto merge semantics).
3903            ///
3904            /// Repeated fields append; singular fields last-wins; singular
3905            /// MESSAGE fields merge recursively. Used by sub-message decode
3906            /// arms when the same field appears multiple times on the wire.
3907            ///
3908            /// **Not part of the public API.**
3909            #[doc(hidden)]
3910            pub fn _merge_into_view(
3911                &mut self,
3912                buf: &'a [u8],
3913                depth: u32,
3914            ) -> ::core::result::Result<(), ::buffa::DecodeError> {
3915                let _ = depth;
3916                #[allow(unused_variables)]
3917                let view = self;
3918                let mut cur: &'a [u8] = buf;
3919                while !cur.is_empty() {
3920                    let before_tag = cur;
3921                    let tag = ::buffa::encoding::Tag::decode(&mut cur)?;
3922                    match tag.field_number() {
3923                        2u32 => {
3924                            if tag.wire_type()
3925                                != ::buffa::encoding::WireType::LengthDelimited
3926                            {
3927                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
3928                                    field_number: 2u32,
3929                                    expected: 2u8,
3930                                    actual: tag.wire_type() as u8,
3931                                });
3932                            }
3933                            view.next_page_token = Some(
3934                                ::buffa::types::borrow_str(&mut cur)?,
3935                            );
3936                        }
3937                        1u32 => {
3938                            if tag.wire_type()
3939                                != ::buffa::encoding::WireType::LengthDelimited
3940                            {
3941                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
3942                                    field_number: 1u32,
3943                                    expected: 2u8,
3944                                    actual: tag.wire_type() as u8,
3945                                });
3946                            }
3947                            if depth == 0 {
3948                                return Err(::buffa::DecodeError::RecursionLimitExceeded);
3949                            }
3950                            let sub = ::buffa::types::borrow_bytes(&mut cur)?;
3951                            view.model_versions
3952                                .push(
3953                                    super::super::__buffa::view::ModelVersionView::_decode_depth(
3954                                        sub,
3955                                        depth - 1,
3956                                    )?,
3957                                );
3958                        }
3959                        _ => {
3960                            ::buffa::encoding::skip_field_depth(tag, &mut cur, depth)?;
3961                            let span_len = before_tag.len() - cur.len();
3962                            view.__buffa_unknown_fields
3963                                .push_raw(&before_tag[..span_len]);
3964                        }
3965                    }
3966                }
3967                ::core::result::Result::Ok(())
3968            }
3969        }
3970        impl<'a> ::buffa::MessageView<'a> for ListModelVersionsResponseView<'a> {
3971            type Owned = super::super::ListModelVersionsResponse;
3972            fn decode_view(
3973                buf: &'a [u8],
3974            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
3975                Self::_decode_depth(buf, ::buffa::RECURSION_LIMIT)
3976            }
3977            fn decode_view_with_limit(
3978                buf: &'a [u8],
3979                depth: u32,
3980            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
3981                Self::_decode_depth(buf, depth)
3982            }
3983            fn to_owned_message(&self) -> super::super::ListModelVersionsResponse {
3984                self.to_owned_from_source(None)
3985            }
3986            #[allow(clippy::useless_conversion, clippy::needless_update)]
3987            fn to_owned_from_source(
3988                &self,
3989                __buffa_src: ::core::option::Option<&::buffa::bytes::Bytes>,
3990            ) -> super::super::ListModelVersionsResponse {
3991                #[allow(unused_imports)]
3992                use ::buffa::alloc::string::ToString as _;
3993                let _ = __buffa_src;
3994                super::super::ListModelVersionsResponse {
3995                    model_versions: self
3996                        .model_versions
3997                        .iter()
3998                        .map(|v| v.to_owned_from_source(__buffa_src))
3999                        .collect(),
4000                    next_page_token: self.next_page_token.map(|s| s.to_string()),
4001                    __buffa_unknown_fields: self
4002                        .__buffa_unknown_fields
4003                        .to_owned()
4004                        .unwrap_or_default()
4005                        .into(),
4006                    ..::core::default::Default::default()
4007                }
4008            }
4009        }
4010        impl<'a> ::buffa::ViewEncode<'a> for ListModelVersionsResponseView<'a> {
4011            #[allow(clippy::needless_borrow, clippy::let_and_return)]
4012            fn compute_size(&self, __cache: &mut ::buffa::SizeCache) -> u32 {
4013                #[allow(unused_imports)]
4014                use ::buffa::Enumeration as _;
4015                let mut size = 0u32;
4016                for v in &self.model_versions {
4017                    let __slot = __cache.reserve();
4018                    let inner_size = v.compute_size(__cache);
4019                    __cache.set(__slot, inner_size);
4020                    size
4021                        += 1u32 + ::buffa::encoding::varint_len(inner_size as u64) as u32
4022                            + inner_size;
4023                }
4024                if let Some(ref v) = self.next_page_token {
4025                    size += 1u32 + ::buffa::types::string_encoded_len(v) as u32;
4026                }
4027                size += self.__buffa_unknown_fields.encoded_len() as u32;
4028                size
4029            }
4030            #[allow(clippy::needless_borrow)]
4031            fn write_to(
4032                &self,
4033                __cache: &mut ::buffa::SizeCache,
4034                buf: &mut impl ::buffa::bytes::BufMut,
4035            ) {
4036                #[allow(unused_imports)]
4037                use ::buffa::Enumeration as _;
4038                for v in &self.model_versions {
4039                    ::buffa::encoding::Tag::new(
4040                            1u32,
4041                            ::buffa::encoding::WireType::LengthDelimited,
4042                        )
4043                        .encode(buf);
4044                    ::buffa::encoding::encode_varint(__cache.consume_next() as u64, buf);
4045                    v.write_to(__cache, buf);
4046                }
4047                if let Some(ref v) = self.next_page_token {
4048                    ::buffa::encoding::Tag::new(
4049                            2u32,
4050                            ::buffa::encoding::WireType::LengthDelimited,
4051                        )
4052                        .encode(buf);
4053                    ::buffa::types::encode_string(v, buf);
4054                }
4055                self.__buffa_unknown_fields.write_to(buf);
4056            }
4057        }
4058        /// Serializes this view as protobuf JSON.
4059        ///
4060        /// Implicit-presence fields with default values are omitted, `required`
4061        /// fields are always emitted, explicit-presence (`optional`) fields are
4062        /// emitted only when set, bytes fields are base64-encoded, and enum
4063        /// values are their proto name strings.
4064        ///
4065        /// This impl uses `serialize_map(None)` because the number of emitted
4066        /// fields depends on default-omission rules; serializers that require
4067        /// known map lengths (e.g. `bincode`) will return a runtime error.
4068        /// Use the owned message type for those formats.
4069        impl<'__a> ::serde::Serialize for ListModelVersionsResponseView<'__a> {
4070            fn serialize<__S: ::serde::Serializer>(
4071                &self,
4072                __s: __S,
4073            ) -> ::core::result::Result<__S::Ok, __S::Error> {
4074                use ::serde::ser::SerializeMap as _;
4075                let mut __map = __s.serialize_map(::core::option::Option::None)?;
4076                if !self.model_versions.is_empty() {
4077                    __map.serialize_entry("model_versions", &*self.model_versions)?;
4078                }
4079                if let ::core::option::Option::Some(__v) = self.next_page_token {
4080                    __map.serialize_entry("next_page_token", __v)?;
4081                }
4082                __map.end()
4083            }
4084        }
4085        impl<'a> ::buffa::MessageName for ListModelVersionsResponseView<'a> {
4086            const PACKAGE: &'static str = "unitycatalog.model_versions.v1";
4087            const NAME: &'static str = "ListModelVersionsResponse";
4088            const FULL_NAME: &'static str = "unitycatalog.model_versions.v1.ListModelVersionsResponse";
4089            const TYPE_URL: &'static str = "type.googleapis.com/unitycatalog.model_versions.v1.ListModelVersionsResponse";
4090        }
4091        impl<'v> ::buffa::DefaultViewInstance for ListModelVersionsResponseView<'v> {
4092            fn default_view_instance<'a>() -> &'a Self
4093            where
4094                Self: 'a,
4095            {
4096                static VALUE: ::buffa::__private::OnceBox<
4097                    ListModelVersionsResponseView<'static>,
4098                > = ::buffa::__private::OnceBox::new();
4099                VALUE
4100                    .get_or_init(|| ::buffa::alloc::boxed::Box::new(
4101                        <ListModelVersionsResponseView<'static>>::default(),
4102                    ))
4103            }
4104        }
4105        impl ::buffa::ViewReborrow for ListModelVersionsResponseView<'static> {
4106            type Reborrowed<'b> = ListModelVersionsResponseView<'b>;
4107            fn reborrow<'b>(this: &'b Self) -> &'b Self::Reborrowed<'b> {
4108                this
4109            }
4110        }
4111        /** Self-contained, `'static` owned view of a `ListModelVersionsResponse` message.
4112
4113 Wraps [`::buffa::OwnedView`]`<`[`ListModelVersionsResponseView`]`<'static>>`: the decoded view and the [`::buffa::bytes::Bytes`] buffer it borrows from travel together, so the handle is `'static` and `Send + Sync` — suitable for async handlers, spawned tasks, and anywhere a `'static` bound is required.
4114
4115 Field accessors return borrows tied to `&self`. Use [`Self::view`] to get the full [`ListModelVersionsResponseView`] when you need struct patterns, iteration helpers, or to pass the view to lifetime-parameterised code.*/
4116        #[derive(Clone, Debug)]
4117        pub struct ListModelVersionsResponseOwnedView(
4118            ::buffa::OwnedView<ListModelVersionsResponseView<'static>>,
4119        );
4120        impl ListModelVersionsResponseOwnedView {
4121            /// Decode an owned view from a [`::buffa::bytes::Bytes`] buffer.
4122            ///
4123            /// The view borrows directly from the buffer's data; the buffer is
4124            /// retained inside the returned handle.
4125            ///
4126            /// # Errors
4127            ///
4128            /// Returns [`::buffa::DecodeError`] if the buffer contains invalid
4129            /// protobuf data.
4130            pub fn decode(
4131                bytes: ::buffa::bytes::Bytes,
4132            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
4133                ::core::result::Result::Ok(
4134                    ListModelVersionsResponseOwnedView(
4135                        ::buffa::OwnedView::decode(bytes)?,
4136                    ),
4137                )
4138            }
4139            /// Decode with custom [`::buffa::DecodeOptions`] (recursion limit,
4140            /// max message size).
4141            ///
4142            /// # Errors
4143            ///
4144            /// Returns [`::buffa::DecodeError`] if the buffer is invalid or
4145            /// exceeds the configured limits.
4146            pub fn decode_with_options(
4147                bytes: ::buffa::bytes::Bytes,
4148                opts: &::buffa::DecodeOptions,
4149            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
4150                ::core::result::Result::Ok(
4151                    ListModelVersionsResponseOwnedView(
4152                        ::buffa::OwnedView::decode_with_options(bytes, opts)?,
4153                    ),
4154                )
4155            }
4156            /// Build from an owned message via an encode → decode round-trip.
4157            ///
4158            /// # Errors
4159            ///
4160            /// Returns [`::buffa::DecodeError`] if the re-encoded bytes are
4161            /// somehow invalid (should not happen for well-formed messages).
4162            pub fn from_owned(
4163                msg: &super::super::ListModelVersionsResponse,
4164            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
4165                ::core::result::Result::Ok(
4166                    ListModelVersionsResponseOwnedView(
4167                        ::buffa::OwnedView::from_owned(msg)?,
4168                    ),
4169                )
4170            }
4171            /// Borrow the full [`ListModelVersionsResponseView`] with its lifetime tied to `&self`.
4172            #[must_use]
4173            pub fn view(&self) -> &ListModelVersionsResponseView<'_> {
4174                self.0.reborrow()
4175            }
4176            /// Convert to the owned message type.
4177            #[must_use]
4178            pub fn to_owned_message(&self) -> super::super::ListModelVersionsResponse {
4179                self.0.to_owned_message()
4180            }
4181            /// The underlying bytes buffer.
4182            #[must_use]
4183            pub fn bytes(&self) -> &::buffa::bytes::Bytes {
4184                self.0.bytes()
4185            }
4186            /// Consume the handle, returning the underlying bytes buffer.
4187            #[must_use]
4188            pub fn into_bytes(self) -> ::buffa::bytes::Bytes {
4189                self.0.into_bytes()
4190            }
4191            /// The model versions returned.
4192            ///
4193            /// Field 1: `model_versions`
4194            #[must_use]
4195            pub fn model_versions(
4196                &self,
4197            ) -> &::buffa::RepeatedView<
4198                '_,
4199                super::super::__buffa::view::ModelVersionView<'_>,
4200            > {
4201                &self.0.reborrow().model_versions
4202            }
4203            /// The next_page_token value to include in the next List request.
4204            ///
4205            /// Field 2: `next_page_token`
4206            #[must_use]
4207            pub fn next_page_token(&self) -> ::core::option::Option<&'_ str> {
4208                self.0.reborrow().next_page_token
4209            }
4210        }
4211        impl ::core::convert::From<
4212            ::buffa::OwnedView<ListModelVersionsResponseView<'static>>,
4213        > for ListModelVersionsResponseOwnedView {
4214            fn from(
4215                inner: ::buffa::OwnedView<ListModelVersionsResponseView<'static>>,
4216            ) -> Self {
4217                ListModelVersionsResponseOwnedView(inner)
4218            }
4219        }
4220        impl ::core::convert::From<ListModelVersionsResponseOwnedView>
4221        for ::buffa::OwnedView<ListModelVersionsResponseView<'static>> {
4222            fn from(wrapper: ListModelVersionsResponseOwnedView) -> Self {
4223                wrapper.0
4224            }
4225        }
4226        impl ::core::convert::AsRef<
4227            ::buffa::OwnedView<ListModelVersionsResponseView<'static>>,
4228        > for ListModelVersionsResponseOwnedView {
4229            fn as_ref(
4230                &self,
4231            ) -> &::buffa::OwnedView<ListModelVersionsResponseView<'static>> {
4232                &self.0
4233            }
4234        }
4235        impl ::buffa::HasMessageView for super::super::ListModelVersionsResponse {
4236            type View<'a> = ListModelVersionsResponseView<'a>;
4237            type ViewHandle = ListModelVersionsResponseOwnedView;
4238        }
4239        impl ::serde::Serialize for ListModelVersionsResponseOwnedView {
4240            fn serialize<__S: ::serde::Serializer>(
4241                &self,
4242                __s: __S,
4243            ) -> ::core::result::Result<__S::Ok, __S::Error> {
4244                ::serde::Serialize::serialize(&self.0, __s)
4245            }
4246        }
4247        /// Create a new model version.
4248        #[derive(Clone, Debug, Default)]
4249        pub struct CreateModelVersionRequestView<'a> {
4250            /// Name of the parent registered model, relative to parent schema.
4251            ///
4252            /// Field 1: `model_name`
4253            pub model_name: &'a str,
4254            /// Name of parent catalog.
4255            ///
4256            /// Field 2: `catalog_name`
4257            pub catalog_name: &'a str,
4258            /// Name of parent schema.
4259            ///
4260            /// Field 3: `schema_name`
4261            pub schema_name: &'a str,
4262            /// URI indicating the location of the source artifacts (e.g. an MLflow run
4263            /// artifact path) used to create the model version.
4264            ///
4265            /// Field 4: `source`
4266            pub source: &'a str,
4267            /// The run id used by the ML package that generated this model.
4268            ///
4269            /// Field 5: `run_id`
4270            pub run_id: ::core::option::Option<&'a str>,
4271            /// User-provided free-form text description.
4272            ///
4273            /// Field 6: `comment`
4274            pub comment: ::core::option::Option<&'a str>,
4275            pub __buffa_unknown_fields: ::buffa::UnknownFieldsView<'a>,
4276        }
4277        impl<'a> CreateModelVersionRequestView<'a> {
4278            /// Decode from `buf`, enforcing a recursion depth limit for nested messages.
4279            ///
4280            /// Called by [`::buffa::MessageView::decode_view`] with [`::buffa::RECURSION_LIMIT`]
4281            /// and by generated sub-message decode arms with `depth - 1`.
4282            ///
4283            /// **Not part of the public API.** Named with a leading underscore to
4284            /// signal that it is for generated-code use only.
4285            #[doc(hidden)]
4286            pub fn _decode_depth(
4287                buf: &'a [u8],
4288                depth: u32,
4289            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
4290                let mut view = Self::default();
4291                view._merge_into_view(buf, depth)?;
4292                ::core::result::Result::Ok(view)
4293            }
4294            /// Merge fields from `buf` into this view (proto merge semantics).
4295            ///
4296            /// Repeated fields append; singular fields last-wins; singular
4297            /// MESSAGE fields merge recursively. Used by sub-message decode
4298            /// arms when the same field appears multiple times on the wire.
4299            ///
4300            /// **Not part of the public API.**
4301            #[doc(hidden)]
4302            pub fn _merge_into_view(
4303                &mut self,
4304                buf: &'a [u8],
4305                depth: u32,
4306            ) -> ::core::result::Result<(), ::buffa::DecodeError> {
4307                let _ = depth;
4308                #[allow(unused_variables)]
4309                let view = self;
4310                let mut cur: &'a [u8] = buf;
4311                while !cur.is_empty() {
4312                    let before_tag = cur;
4313                    let tag = ::buffa::encoding::Tag::decode(&mut cur)?;
4314                    match tag.field_number() {
4315                        1u32 => {
4316                            if tag.wire_type()
4317                                != ::buffa::encoding::WireType::LengthDelimited
4318                            {
4319                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
4320                                    field_number: 1u32,
4321                                    expected: 2u8,
4322                                    actual: tag.wire_type() as u8,
4323                                });
4324                            }
4325                            view.model_name = ::buffa::types::borrow_str(&mut cur)?;
4326                        }
4327                        2u32 => {
4328                            if tag.wire_type()
4329                                != ::buffa::encoding::WireType::LengthDelimited
4330                            {
4331                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
4332                                    field_number: 2u32,
4333                                    expected: 2u8,
4334                                    actual: tag.wire_type() as u8,
4335                                });
4336                            }
4337                            view.catalog_name = ::buffa::types::borrow_str(&mut cur)?;
4338                        }
4339                        3u32 => {
4340                            if tag.wire_type()
4341                                != ::buffa::encoding::WireType::LengthDelimited
4342                            {
4343                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
4344                                    field_number: 3u32,
4345                                    expected: 2u8,
4346                                    actual: tag.wire_type() as u8,
4347                                });
4348                            }
4349                            view.schema_name = ::buffa::types::borrow_str(&mut cur)?;
4350                        }
4351                        4u32 => {
4352                            if tag.wire_type()
4353                                != ::buffa::encoding::WireType::LengthDelimited
4354                            {
4355                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
4356                                    field_number: 4u32,
4357                                    expected: 2u8,
4358                                    actual: tag.wire_type() as u8,
4359                                });
4360                            }
4361                            view.source = ::buffa::types::borrow_str(&mut cur)?;
4362                        }
4363                        5u32 => {
4364                            if tag.wire_type()
4365                                != ::buffa::encoding::WireType::LengthDelimited
4366                            {
4367                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
4368                                    field_number: 5u32,
4369                                    expected: 2u8,
4370                                    actual: tag.wire_type() as u8,
4371                                });
4372                            }
4373                            view.run_id = Some(::buffa::types::borrow_str(&mut cur)?);
4374                        }
4375                        6u32 => {
4376                            if tag.wire_type()
4377                                != ::buffa::encoding::WireType::LengthDelimited
4378                            {
4379                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
4380                                    field_number: 6u32,
4381                                    expected: 2u8,
4382                                    actual: tag.wire_type() as u8,
4383                                });
4384                            }
4385                            view.comment = Some(::buffa::types::borrow_str(&mut cur)?);
4386                        }
4387                        _ => {
4388                            ::buffa::encoding::skip_field_depth(tag, &mut cur, depth)?;
4389                            let span_len = before_tag.len() - cur.len();
4390                            view.__buffa_unknown_fields
4391                                .push_raw(&before_tag[..span_len]);
4392                        }
4393                    }
4394                }
4395                ::core::result::Result::Ok(())
4396            }
4397        }
4398        impl<'a> ::buffa::MessageView<'a> for CreateModelVersionRequestView<'a> {
4399            type Owned = super::super::CreateModelVersionRequest;
4400            fn decode_view(
4401                buf: &'a [u8],
4402            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
4403                Self::_decode_depth(buf, ::buffa::RECURSION_LIMIT)
4404            }
4405            fn decode_view_with_limit(
4406                buf: &'a [u8],
4407                depth: u32,
4408            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
4409                Self::_decode_depth(buf, depth)
4410            }
4411            fn to_owned_message(&self) -> super::super::CreateModelVersionRequest {
4412                self.to_owned_from_source(None)
4413            }
4414            #[allow(clippy::useless_conversion, clippy::needless_update)]
4415            fn to_owned_from_source(
4416                &self,
4417                __buffa_src: ::core::option::Option<&::buffa::bytes::Bytes>,
4418            ) -> super::super::CreateModelVersionRequest {
4419                #[allow(unused_imports)]
4420                use ::buffa::alloc::string::ToString as _;
4421                let _ = __buffa_src;
4422                super::super::CreateModelVersionRequest {
4423                    model_name: self.model_name.to_string(),
4424                    catalog_name: self.catalog_name.to_string(),
4425                    schema_name: self.schema_name.to_string(),
4426                    source: self.source.to_string(),
4427                    run_id: self.run_id.map(|s| s.to_string()),
4428                    comment: self.comment.map(|s| s.to_string()),
4429                    __buffa_unknown_fields: self
4430                        .__buffa_unknown_fields
4431                        .to_owned()
4432                        .unwrap_or_default()
4433                        .into(),
4434                    ..::core::default::Default::default()
4435                }
4436            }
4437        }
4438        impl<'a> ::buffa::ViewEncode<'a> for CreateModelVersionRequestView<'a> {
4439            #[allow(clippy::needless_borrow, clippy::let_and_return)]
4440            fn compute_size(&self, _cache: &mut ::buffa::SizeCache) -> u32 {
4441                #[allow(unused_imports)]
4442                use ::buffa::Enumeration as _;
4443                let mut size = 0u32;
4444                if !self.model_name.is_empty() {
4445                    size
4446                        += 1u32
4447                            + ::buffa::types::string_encoded_len(&self.model_name)
4448                                as u32;
4449                }
4450                if !self.catalog_name.is_empty() {
4451                    size
4452                        += 1u32
4453                            + ::buffa::types::string_encoded_len(&self.catalog_name)
4454                                as u32;
4455                }
4456                if !self.schema_name.is_empty() {
4457                    size
4458                        += 1u32
4459                            + ::buffa::types::string_encoded_len(&self.schema_name)
4460                                as u32;
4461                }
4462                if !self.source.is_empty() {
4463                    size
4464                        += 1u32
4465                            + ::buffa::types::string_encoded_len(&self.source) as u32;
4466                }
4467                if let Some(ref v) = self.run_id {
4468                    size += 1u32 + ::buffa::types::string_encoded_len(v) as u32;
4469                }
4470                if let Some(ref v) = self.comment {
4471                    size += 1u32 + ::buffa::types::string_encoded_len(v) as u32;
4472                }
4473                size += self.__buffa_unknown_fields.encoded_len() as u32;
4474                size
4475            }
4476            #[allow(clippy::needless_borrow)]
4477            fn write_to(
4478                &self,
4479                _cache: &mut ::buffa::SizeCache,
4480                buf: &mut impl ::buffa::bytes::BufMut,
4481            ) {
4482                #[allow(unused_imports)]
4483                use ::buffa::Enumeration as _;
4484                if !self.model_name.is_empty() {
4485                    ::buffa::encoding::Tag::new(
4486                            1u32,
4487                            ::buffa::encoding::WireType::LengthDelimited,
4488                        )
4489                        .encode(buf);
4490                    ::buffa::types::encode_string(&self.model_name, buf);
4491                }
4492                if !self.catalog_name.is_empty() {
4493                    ::buffa::encoding::Tag::new(
4494                            2u32,
4495                            ::buffa::encoding::WireType::LengthDelimited,
4496                        )
4497                        .encode(buf);
4498                    ::buffa::types::encode_string(&self.catalog_name, buf);
4499                }
4500                if !self.schema_name.is_empty() {
4501                    ::buffa::encoding::Tag::new(
4502                            3u32,
4503                            ::buffa::encoding::WireType::LengthDelimited,
4504                        )
4505                        .encode(buf);
4506                    ::buffa::types::encode_string(&self.schema_name, buf);
4507                }
4508                if !self.source.is_empty() {
4509                    ::buffa::encoding::Tag::new(
4510                            4u32,
4511                            ::buffa::encoding::WireType::LengthDelimited,
4512                        )
4513                        .encode(buf);
4514                    ::buffa::types::encode_string(&self.source, buf);
4515                }
4516                if let Some(ref v) = self.run_id {
4517                    ::buffa::encoding::Tag::new(
4518                            5u32,
4519                            ::buffa::encoding::WireType::LengthDelimited,
4520                        )
4521                        .encode(buf);
4522                    ::buffa::types::encode_string(v, buf);
4523                }
4524                if let Some(ref v) = self.comment {
4525                    ::buffa::encoding::Tag::new(
4526                            6u32,
4527                            ::buffa::encoding::WireType::LengthDelimited,
4528                        )
4529                        .encode(buf);
4530                    ::buffa::types::encode_string(v, buf);
4531                }
4532                self.__buffa_unknown_fields.write_to(buf);
4533            }
4534        }
4535        /// Serializes this view as protobuf JSON.
4536        ///
4537        /// Implicit-presence fields with default values are omitted, `required`
4538        /// fields are always emitted, explicit-presence (`optional`) fields are
4539        /// emitted only when set, bytes fields are base64-encoded, and enum
4540        /// values are their proto name strings.
4541        ///
4542        /// This impl uses `serialize_map(None)` because the number of emitted
4543        /// fields depends on default-omission rules; serializers that require
4544        /// known map lengths (e.g. `bincode`) will return a runtime error.
4545        /// Use the owned message type for those formats.
4546        impl<'__a> ::serde::Serialize for CreateModelVersionRequestView<'__a> {
4547            fn serialize<__S: ::serde::Serializer>(
4548                &self,
4549                __s: __S,
4550            ) -> ::core::result::Result<__S::Ok, __S::Error> {
4551                use ::serde::ser::SerializeMap as _;
4552                let mut __map = __s.serialize_map(::core::option::Option::None)?;
4553                if !::buffa::json_helpers::skip_if::is_empty_str(self.model_name) {
4554                    __map.serialize_entry("model_name", self.model_name)?;
4555                }
4556                if !::buffa::json_helpers::skip_if::is_empty_str(self.catalog_name) {
4557                    __map.serialize_entry("catalog_name", self.catalog_name)?;
4558                }
4559                if !::buffa::json_helpers::skip_if::is_empty_str(self.schema_name) {
4560                    __map.serialize_entry("schema_name", self.schema_name)?;
4561                }
4562                if !::buffa::json_helpers::skip_if::is_empty_str(self.source) {
4563                    __map.serialize_entry("source", self.source)?;
4564                }
4565                if let ::core::option::Option::Some(__v) = self.run_id {
4566                    __map.serialize_entry("run_id", __v)?;
4567                }
4568                if let ::core::option::Option::Some(__v) = self.comment {
4569                    __map.serialize_entry("comment", __v)?;
4570                }
4571                __map.end()
4572            }
4573        }
4574        impl<'a> ::buffa::MessageName for CreateModelVersionRequestView<'a> {
4575            const PACKAGE: &'static str = "unitycatalog.model_versions.v1";
4576            const NAME: &'static str = "CreateModelVersionRequest";
4577            const FULL_NAME: &'static str = "unitycatalog.model_versions.v1.CreateModelVersionRequest";
4578            const TYPE_URL: &'static str = "type.googleapis.com/unitycatalog.model_versions.v1.CreateModelVersionRequest";
4579        }
4580        impl<'v> ::buffa::DefaultViewInstance for CreateModelVersionRequestView<'v> {
4581            fn default_view_instance<'a>() -> &'a Self
4582            where
4583                Self: 'a,
4584            {
4585                static VALUE: ::buffa::__private::OnceBox<
4586                    CreateModelVersionRequestView<'static>,
4587                > = ::buffa::__private::OnceBox::new();
4588                VALUE
4589                    .get_or_init(|| ::buffa::alloc::boxed::Box::new(
4590                        <CreateModelVersionRequestView<'static>>::default(),
4591                    ))
4592            }
4593        }
4594        impl ::buffa::ViewReborrow for CreateModelVersionRequestView<'static> {
4595            type Reborrowed<'b> = CreateModelVersionRequestView<'b>;
4596            fn reborrow<'b>(this: &'b Self) -> &'b Self::Reborrowed<'b> {
4597                this
4598            }
4599        }
4600        /** Self-contained, `'static` owned view of a `CreateModelVersionRequest` message.
4601
4602 Wraps [`::buffa::OwnedView`]`<`[`CreateModelVersionRequestView`]`<'static>>`: the decoded view and the [`::buffa::bytes::Bytes`] buffer it borrows from travel together, so the handle is `'static` and `Send + Sync` — suitable for async handlers, spawned tasks, and anywhere a `'static` bound is required.
4603
4604 Field accessors return borrows tied to `&self`. Use [`Self::view`] to get the full [`CreateModelVersionRequestView`] when you need struct patterns, iteration helpers, or to pass the view to lifetime-parameterised code.*/
4605        #[derive(Clone, Debug)]
4606        pub struct CreateModelVersionRequestOwnedView(
4607            ::buffa::OwnedView<CreateModelVersionRequestView<'static>>,
4608        );
4609        impl CreateModelVersionRequestOwnedView {
4610            /// Decode an owned view from a [`::buffa::bytes::Bytes`] buffer.
4611            ///
4612            /// The view borrows directly from the buffer's data; the buffer is
4613            /// retained inside the returned handle.
4614            ///
4615            /// # Errors
4616            ///
4617            /// Returns [`::buffa::DecodeError`] if the buffer contains invalid
4618            /// protobuf data.
4619            pub fn decode(
4620                bytes: ::buffa::bytes::Bytes,
4621            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
4622                ::core::result::Result::Ok(
4623                    CreateModelVersionRequestOwnedView(
4624                        ::buffa::OwnedView::decode(bytes)?,
4625                    ),
4626                )
4627            }
4628            /// Decode with custom [`::buffa::DecodeOptions`] (recursion limit,
4629            /// max message size).
4630            ///
4631            /// # Errors
4632            ///
4633            /// Returns [`::buffa::DecodeError`] if the buffer is invalid or
4634            /// exceeds the configured limits.
4635            pub fn decode_with_options(
4636                bytes: ::buffa::bytes::Bytes,
4637                opts: &::buffa::DecodeOptions,
4638            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
4639                ::core::result::Result::Ok(
4640                    CreateModelVersionRequestOwnedView(
4641                        ::buffa::OwnedView::decode_with_options(bytes, opts)?,
4642                    ),
4643                )
4644            }
4645            /// Build from an owned message via an encode → decode round-trip.
4646            ///
4647            /// # Errors
4648            ///
4649            /// Returns [`::buffa::DecodeError`] if the re-encoded bytes are
4650            /// somehow invalid (should not happen for well-formed messages).
4651            pub fn from_owned(
4652                msg: &super::super::CreateModelVersionRequest,
4653            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
4654                ::core::result::Result::Ok(
4655                    CreateModelVersionRequestOwnedView(
4656                        ::buffa::OwnedView::from_owned(msg)?,
4657                    ),
4658                )
4659            }
4660            /// Borrow the full [`CreateModelVersionRequestView`] with its lifetime tied to `&self`.
4661            #[must_use]
4662            pub fn view(&self) -> &CreateModelVersionRequestView<'_> {
4663                self.0.reborrow()
4664            }
4665            /// Convert to the owned message type.
4666            #[must_use]
4667            pub fn to_owned_message(&self) -> super::super::CreateModelVersionRequest {
4668                self.0.to_owned_message()
4669            }
4670            /// The underlying bytes buffer.
4671            #[must_use]
4672            pub fn bytes(&self) -> &::buffa::bytes::Bytes {
4673                self.0.bytes()
4674            }
4675            /// Consume the handle, returning the underlying bytes buffer.
4676            #[must_use]
4677            pub fn into_bytes(self) -> ::buffa::bytes::Bytes {
4678                self.0.into_bytes()
4679            }
4680            /// Name of the parent registered model, relative to parent schema.
4681            ///
4682            /// Field 1: `model_name`
4683            #[must_use]
4684            pub fn model_name(&self) -> &'_ str {
4685                self.0.reborrow().model_name
4686            }
4687            /// Name of parent catalog.
4688            ///
4689            /// Field 2: `catalog_name`
4690            #[must_use]
4691            pub fn catalog_name(&self) -> &'_ str {
4692                self.0.reborrow().catalog_name
4693            }
4694            /// Name of parent schema.
4695            ///
4696            /// Field 3: `schema_name`
4697            #[must_use]
4698            pub fn schema_name(&self) -> &'_ str {
4699                self.0.reborrow().schema_name
4700            }
4701            /// URI indicating the location of the source artifacts (e.g. an MLflow run
4702            /// artifact path) used to create the model version.
4703            ///
4704            /// Field 4: `source`
4705            #[must_use]
4706            pub fn source(&self) -> &'_ str {
4707                self.0.reborrow().source
4708            }
4709            /// The run id used by the ML package that generated this model.
4710            ///
4711            /// Field 5: `run_id`
4712            #[must_use]
4713            pub fn run_id(&self) -> ::core::option::Option<&'_ str> {
4714                self.0.reborrow().run_id
4715            }
4716            /// User-provided free-form text description.
4717            ///
4718            /// Field 6: `comment`
4719            #[must_use]
4720            pub fn comment(&self) -> ::core::option::Option<&'_ str> {
4721                self.0.reborrow().comment
4722            }
4723        }
4724        impl ::core::convert::From<
4725            ::buffa::OwnedView<CreateModelVersionRequestView<'static>>,
4726        > for CreateModelVersionRequestOwnedView {
4727            fn from(
4728                inner: ::buffa::OwnedView<CreateModelVersionRequestView<'static>>,
4729            ) -> Self {
4730                CreateModelVersionRequestOwnedView(inner)
4731            }
4732        }
4733        impl ::core::convert::From<CreateModelVersionRequestOwnedView>
4734        for ::buffa::OwnedView<CreateModelVersionRequestView<'static>> {
4735            fn from(wrapper: CreateModelVersionRequestOwnedView) -> Self {
4736                wrapper.0
4737            }
4738        }
4739        impl ::core::convert::AsRef<
4740            ::buffa::OwnedView<CreateModelVersionRequestView<'static>>,
4741        > for CreateModelVersionRequestOwnedView {
4742            fn as_ref(
4743                &self,
4744            ) -> &::buffa::OwnedView<CreateModelVersionRequestView<'static>> {
4745                &self.0
4746            }
4747        }
4748        impl ::buffa::HasMessageView for super::super::CreateModelVersionRequest {
4749            type View<'a> = CreateModelVersionRequestView<'a>;
4750            type ViewHandle = CreateModelVersionRequestOwnedView;
4751        }
4752        impl ::serde::Serialize for CreateModelVersionRequestOwnedView {
4753            fn serialize<__S: ::serde::Serializer>(
4754                &self,
4755                __s: __S,
4756            ) -> ::core::result::Result<__S::Ok, __S::Error> {
4757                ::serde::Serialize::serialize(&self.0, __s)
4758            }
4759        }
4760        /// Get a model version.
4761        #[derive(Clone, Debug, Default)]
4762        pub struct GetModelVersionRequestView<'a> {
4763            /// The full three-level name of the parent registered model
4764            /// (catalog.schema.model).
4765            ///
4766            /// Field 1: `full_name`
4767            pub full_name: &'a str,
4768            /// The integer version number of the model version.
4769            ///
4770            /// Field 2: `version`
4771            pub version: i64,
4772            /// Whether to include model versions in the response for which the principal can
4773            /// only access selective metadata for.
4774            ///
4775            /// Field 3: `include_browse`
4776            pub include_browse: ::core::option::Option<bool>,
4777            pub __buffa_unknown_fields: ::buffa::UnknownFieldsView<'a>,
4778        }
4779        impl<'a> GetModelVersionRequestView<'a> {
4780            /// Decode from `buf`, enforcing a recursion depth limit for nested messages.
4781            ///
4782            /// Called by [`::buffa::MessageView::decode_view`] with [`::buffa::RECURSION_LIMIT`]
4783            /// and by generated sub-message decode arms with `depth - 1`.
4784            ///
4785            /// **Not part of the public API.** Named with a leading underscore to
4786            /// signal that it is for generated-code use only.
4787            #[doc(hidden)]
4788            pub fn _decode_depth(
4789                buf: &'a [u8],
4790                depth: u32,
4791            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
4792                let mut view = Self::default();
4793                view._merge_into_view(buf, depth)?;
4794                ::core::result::Result::Ok(view)
4795            }
4796            /// Merge fields from `buf` into this view (proto merge semantics).
4797            ///
4798            /// Repeated fields append; singular fields last-wins; singular
4799            /// MESSAGE fields merge recursively. Used by sub-message decode
4800            /// arms when the same field appears multiple times on the wire.
4801            ///
4802            /// **Not part of the public API.**
4803            #[doc(hidden)]
4804            pub fn _merge_into_view(
4805                &mut self,
4806                buf: &'a [u8],
4807                depth: u32,
4808            ) -> ::core::result::Result<(), ::buffa::DecodeError> {
4809                let _ = depth;
4810                #[allow(unused_variables)]
4811                let view = self;
4812                let mut cur: &'a [u8] = buf;
4813                while !cur.is_empty() {
4814                    let before_tag = cur;
4815                    let tag = ::buffa::encoding::Tag::decode(&mut cur)?;
4816                    match tag.field_number() {
4817                        1u32 => {
4818                            if tag.wire_type()
4819                                != ::buffa::encoding::WireType::LengthDelimited
4820                            {
4821                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
4822                                    field_number: 1u32,
4823                                    expected: 2u8,
4824                                    actual: tag.wire_type() as u8,
4825                                });
4826                            }
4827                            view.full_name = ::buffa::types::borrow_str(&mut cur)?;
4828                        }
4829                        2u32 => {
4830                            if tag.wire_type() != ::buffa::encoding::WireType::Varint {
4831                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
4832                                    field_number: 2u32,
4833                                    expected: 0u8,
4834                                    actual: tag.wire_type() as u8,
4835                                });
4836                            }
4837                            view.version = ::buffa::types::decode_int64(&mut cur)?;
4838                        }
4839                        3u32 => {
4840                            if tag.wire_type() != ::buffa::encoding::WireType::Varint {
4841                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
4842                                    field_number: 3u32,
4843                                    expected: 0u8,
4844                                    actual: tag.wire_type() as u8,
4845                                });
4846                            }
4847                            view.include_browse = Some(
4848                                ::buffa::types::decode_bool(&mut cur)?,
4849                            );
4850                        }
4851                        _ => {
4852                            ::buffa::encoding::skip_field_depth(tag, &mut cur, depth)?;
4853                            let span_len = before_tag.len() - cur.len();
4854                            view.__buffa_unknown_fields
4855                                .push_raw(&before_tag[..span_len]);
4856                        }
4857                    }
4858                }
4859                ::core::result::Result::Ok(())
4860            }
4861        }
4862        impl<'a> ::buffa::MessageView<'a> for GetModelVersionRequestView<'a> {
4863            type Owned = super::super::GetModelVersionRequest;
4864            fn decode_view(
4865                buf: &'a [u8],
4866            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
4867                Self::_decode_depth(buf, ::buffa::RECURSION_LIMIT)
4868            }
4869            fn decode_view_with_limit(
4870                buf: &'a [u8],
4871                depth: u32,
4872            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
4873                Self::_decode_depth(buf, depth)
4874            }
4875            fn to_owned_message(&self) -> super::super::GetModelVersionRequest {
4876                self.to_owned_from_source(None)
4877            }
4878            #[allow(clippy::useless_conversion, clippy::needless_update)]
4879            fn to_owned_from_source(
4880                &self,
4881                __buffa_src: ::core::option::Option<&::buffa::bytes::Bytes>,
4882            ) -> super::super::GetModelVersionRequest {
4883                #[allow(unused_imports)]
4884                use ::buffa::alloc::string::ToString as _;
4885                let _ = __buffa_src;
4886                super::super::GetModelVersionRequest {
4887                    full_name: self.full_name.to_string(),
4888                    version: self.version,
4889                    include_browse: self.include_browse,
4890                    __buffa_unknown_fields: self
4891                        .__buffa_unknown_fields
4892                        .to_owned()
4893                        .unwrap_or_default()
4894                        .into(),
4895                    ..::core::default::Default::default()
4896                }
4897            }
4898        }
4899        impl<'a> ::buffa::ViewEncode<'a> for GetModelVersionRequestView<'a> {
4900            #[allow(clippy::needless_borrow, clippy::let_and_return)]
4901            fn compute_size(&self, _cache: &mut ::buffa::SizeCache) -> u32 {
4902                #[allow(unused_imports)]
4903                use ::buffa::Enumeration as _;
4904                let mut size = 0u32;
4905                if !self.full_name.is_empty() {
4906                    size
4907                        += 1u32
4908                            + ::buffa::types::string_encoded_len(&self.full_name) as u32;
4909                }
4910                if self.version != 0i64 {
4911                    size
4912                        += 1u32 + ::buffa::types::int64_encoded_len(self.version) as u32;
4913                }
4914                if self.include_browse.is_some() {
4915                    size += 1u32 + ::buffa::types::BOOL_ENCODED_LEN as u32;
4916                }
4917                size += self.__buffa_unknown_fields.encoded_len() as u32;
4918                size
4919            }
4920            #[allow(clippy::needless_borrow)]
4921            fn write_to(
4922                &self,
4923                _cache: &mut ::buffa::SizeCache,
4924                buf: &mut impl ::buffa::bytes::BufMut,
4925            ) {
4926                #[allow(unused_imports)]
4927                use ::buffa::Enumeration as _;
4928                if !self.full_name.is_empty() {
4929                    ::buffa::encoding::Tag::new(
4930                            1u32,
4931                            ::buffa::encoding::WireType::LengthDelimited,
4932                        )
4933                        .encode(buf);
4934                    ::buffa::types::encode_string(&self.full_name, buf);
4935                }
4936                if self.version != 0i64 {
4937                    ::buffa::encoding::Tag::new(
4938                            2u32,
4939                            ::buffa::encoding::WireType::Varint,
4940                        )
4941                        .encode(buf);
4942                    ::buffa::types::encode_int64(self.version, buf);
4943                }
4944                if let Some(v) = self.include_browse {
4945                    ::buffa::encoding::Tag::new(
4946                            3u32,
4947                            ::buffa::encoding::WireType::Varint,
4948                        )
4949                        .encode(buf);
4950                    ::buffa::types::encode_bool(v, buf);
4951                }
4952                self.__buffa_unknown_fields.write_to(buf);
4953            }
4954        }
4955        /// Serializes this view as protobuf JSON.
4956        ///
4957        /// Implicit-presence fields with default values are omitted, `required`
4958        /// fields are always emitted, explicit-presence (`optional`) fields are
4959        /// emitted only when set, bytes fields are base64-encoded, and enum
4960        /// values are their proto name strings.
4961        ///
4962        /// This impl uses `serialize_map(None)` because the number of emitted
4963        /// fields depends on default-omission rules; serializers that require
4964        /// known map lengths (e.g. `bincode`) will return a runtime error.
4965        /// Use the owned message type for those formats.
4966        impl<'__a> ::serde::Serialize for GetModelVersionRequestView<'__a> {
4967            fn serialize<__S: ::serde::Serializer>(
4968                &self,
4969                __s: __S,
4970            ) -> ::core::result::Result<__S::Ok, __S::Error> {
4971                use ::serde::ser::SerializeMap as _;
4972                let mut __map = __s.serialize_map(::core::option::Option::None)?;
4973                if !::buffa::json_helpers::skip_if::is_empty_str(self.full_name) {
4974                    __map.serialize_entry("full_name", self.full_name)?;
4975                }
4976                if !::buffa::json_helpers::skip_if::is_zero_i64(&self.version) {
4977                    struct _W(i64);
4978                    impl ::serde::Serialize for _W {
4979                        fn serialize<__S: ::serde::Serializer>(
4980                            &self,
4981                            __s: __S,
4982                        ) -> ::core::result::Result<__S::Ok, __S::Error> {
4983                            ::buffa::json_helpers::int64::serialize(&self.0, __s)
4984                        }
4985                    }
4986                    __map.serialize_entry("version", &_W(self.version))?;
4987                }
4988                if let ::core::option::Option::Some(__v) = self.include_browse {
4989                    __map.serialize_entry("include_browse", &__v)?;
4990                }
4991                __map.end()
4992            }
4993        }
4994        impl<'a> ::buffa::MessageName for GetModelVersionRequestView<'a> {
4995            const PACKAGE: &'static str = "unitycatalog.model_versions.v1";
4996            const NAME: &'static str = "GetModelVersionRequest";
4997            const FULL_NAME: &'static str = "unitycatalog.model_versions.v1.GetModelVersionRequest";
4998            const TYPE_URL: &'static str = "type.googleapis.com/unitycatalog.model_versions.v1.GetModelVersionRequest";
4999        }
5000        impl<'v> ::buffa::DefaultViewInstance for GetModelVersionRequestView<'v> {
5001            fn default_view_instance<'a>() -> &'a Self
5002            where
5003                Self: 'a,
5004            {
5005                static VALUE: ::buffa::__private::OnceBox<
5006                    GetModelVersionRequestView<'static>,
5007                > = ::buffa::__private::OnceBox::new();
5008                VALUE
5009                    .get_or_init(|| ::buffa::alloc::boxed::Box::new(
5010                        <GetModelVersionRequestView<'static>>::default(),
5011                    ))
5012            }
5013        }
5014        impl ::buffa::ViewReborrow for GetModelVersionRequestView<'static> {
5015            type Reborrowed<'b> = GetModelVersionRequestView<'b>;
5016            fn reborrow<'b>(this: &'b Self) -> &'b Self::Reborrowed<'b> {
5017                this
5018            }
5019        }
5020        /** Self-contained, `'static` owned view of a `GetModelVersionRequest` message.
5021
5022 Wraps [`::buffa::OwnedView`]`<`[`GetModelVersionRequestView`]`<'static>>`: the decoded view and the [`::buffa::bytes::Bytes`] buffer it borrows from travel together, so the handle is `'static` and `Send + Sync` — suitable for async handlers, spawned tasks, and anywhere a `'static` bound is required.
5023
5024 Field accessors return borrows tied to `&self`. Use [`Self::view`] to get the full [`GetModelVersionRequestView`] when you need struct patterns, iteration helpers, or to pass the view to lifetime-parameterised code.*/
5025        #[derive(Clone, Debug)]
5026        pub struct GetModelVersionRequestOwnedView(
5027            ::buffa::OwnedView<GetModelVersionRequestView<'static>>,
5028        );
5029        impl GetModelVersionRequestOwnedView {
5030            /// Decode an owned view from a [`::buffa::bytes::Bytes`] buffer.
5031            ///
5032            /// The view borrows directly from the buffer's data; the buffer is
5033            /// retained inside the returned handle.
5034            ///
5035            /// # Errors
5036            ///
5037            /// Returns [`::buffa::DecodeError`] if the buffer contains invalid
5038            /// protobuf data.
5039            pub fn decode(
5040                bytes: ::buffa::bytes::Bytes,
5041            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
5042                ::core::result::Result::Ok(
5043                    GetModelVersionRequestOwnedView(::buffa::OwnedView::decode(bytes)?),
5044                )
5045            }
5046            /// Decode with custom [`::buffa::DecodeOptions`] (recursion limit,
5047            /// max message size).
5048            ///
5049            /// # Errors
5050            ///
5051            /// Returns [`::buffa::DecodeError`] if the buffer is invalid or
5052            /// exceeds the configured limits.
5053            pub fn decode_with_options(
5054                bytes: ::buffa::bytes::Bytes,
5055                opts: &::buffa::DecodeOptions,
5056            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
5057                ::core::result::Result::Ok(
5058                    GetModelVersionRequestOwnedView(
5059                        ::buffa::OwnedView::decode_with_options(bytes, opts)?,
5060                    ),
5061                )
5062            }
5063            /// Build from an owned message via an encode → decode round-trip.
5064            ///
5065            /// # Errors
5066            ///
5067            /// Returns [`::buffa::DecodeError`] if the re-encoded bytes are
5068            /// somehow invalid (should not happen for well-formed messages).
5069            pub fn from_owned(
5070                msg: &super::super::GetModelVersionRequest,
5071            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
5072                ::core::result::Result::Ok(
5073                    GetModelVersionRequestOwnedView(::buffa::OwnedView::from_owned(msg)?),
5074                )
5075            }
5076            /// Borrow the full [`GetModelVersionRequestView`] with its lifetime tied to `&self`.
5077            #[must_use]
5078            pub fn view(&self) -> &GetModelVersionRequestView<'_> {
5079                self.0.reborrow()
5080            }
5081            /// Convert to the owned message type.
5082            #[must_use]
5083            pub fn to_owned_message(&self) -> super::super::GetModelVersionRequest {
5084                self.0.to_owned_message()
5085            }
5086            /// The underlying bytes buffer.
5087            #[must_use]
5088            pub fn bytes(&self) -> &::buffa::bytes::Bytes {
5089                self.0.bytes()
5090            }
5091            /// Consume the handle, returning the underlying bytes buffer.
5092            #[must_use]
5093            pub fn into_bytes(self) -> ::buffa::bytes::Bytes {
5094                self.0.into_bytes()
5095            }
5096            /// The full three-level name of the parent registered model
5097            /// (catalog.schema.model).
5098            ///
5099            /// Field 1: `full_name`
5100            #[must_use]
5101            pub fn full_name(&self) -> &'_ str {
5102                self.0.reborrow().full_name
5103            }
5104            /// The integer version number of the model version.
5105            ///
5106            /// Field 2: `version`
5107            #[must_use]
5108            pub fn version(&self) -> i64 {
5109                self.0.reborrow().version
5110            }
5111            /// Whether to include model versions in the response for which the principal can
5112            /// only access selective metadata for.
5113            ///
5114            /// Field 3: `include_browse`
5115            #[must_use]
5116            pub fn include_browse(&self) -> ::core::option::Option<bool> {
5117                self.0.reborrow().include_browse
5118            }
5119        }
5120        impl ::core::convert::From<
5121            ::buffa::OwnedView<GetModelVersionRequestView<'static>>,
5122        > for GetModelVersionRequestOwnedView {
5123            fn from(
5124                inner: ::buffa::OwnedView<GetModelVersionRequestView<'static>>,
5125            ) -> Self {
5126                GetModelVersionRequestOwnedView(inner)
5127            }
5128        }
5129        impl ::core::convert::From<GetModelVersionRequestOwnedView>
5130        for ::buffa::OwnedView<GetModelVersionRequestView<'static>> {
5131            fn from(wrapper: GetModelVersionRequestOwnedView) -> Self {
5132                wrapper.0
5133            }
5134        }
5135        impl ::core::convert::AsRef<
5136            ::buffa::OwnedView<GetModelVersionRequestView<'static>>,
5137        > for GetModelVersionRequestOwnedView {
5138            fn as_ref(
5139                &self,
5140            ) -> &::buffa::OwnedView<GetModelVersionRequestView<'static>> {
5141                &self.0
5142            }
5143        }
5144        impl ::buffa::HasMessageView for super::super::GetModelVersionRequest {
5145            type View<'a> = GetModelVersionRequestView<'a>;
5146            type ViewHandle = GetModelVersionRequestOwnedView;
5147        }
5148        impl ::serde::Serialize for GetModelVersionRequestOwnedView {
5149            fn serialize<__S: ::serde::Serializer>(
5150                &self,
5151                __s: __S,
5152            ) -> ::core::result::Result<__S::Ok, __S::Error> {
5153                ::serde::Serialize::serialize(&self.0, __s)
5154            }
5155        }
5156        /// Update a model version.
5157        #[derive(Clone, Debug, Default)]
5158        pub struct UpdateModelVersionRequestView<'a> {
5159            /// The full three-level name of the parent registered model
5160            /// (catalog.schema.model).
5161            ///
5162            /// Field 1: `full_name`
5163            pub full_name: &'a str,
5164            /// The integer version number of the model version.
5165            ///
5166            /// Field 2: `version`
5167            pub version: i64,
5168            /// User-provided free-form text description.
5169            ///
5170            /// Field 3: `comment`
5171            pub comment: ::core::option::Option<&'a str>,
5172            pub __buffa_unknown_fields: ::buffa::UnknownFieldsView<'a>,
5173        }
5174        impl<'a> UpdateModelVersionRequestView<'a> {
5175            /// Decode from `buf`, enforcing a recursion depth limit for nested messages.
5176            ///
5177            /// Called by [`::buffa::MessageView::decode_view`] with [`::buffa::RECURSION_LIMIT`]
5178            /// and by generated sub-message decode arms with `depth - 1`.
5179            ///
5180            /// **Not part of the public API.** Named with a leading underscore to
5181            /// signal that it is for generated-code use only.
5182            #[doc(hidden)]
5183            pub fn _decode_depth(
5184                buf: &'a [u8],
5185                depth: u32,
5186            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
5187                let mut view = Self::default();
5188                view._merge_into_view(buf, depth)?;
5189                ::core::result::Result::Ok(view)
5190            }
5191            /// Merge fields from `buf` into this view (proto merge semantics).
5192            ///
5193            /// Repeated fields append; singular fields last-wins; singular
5194            /// MESSAGE fields merge recursively. Used by sub-message decode
5195            /// arms when the same field appears multiple times on the wire.
5196            ///
5197            /// **Not part of the public API.**
5198            #[doc(hidden)]
5199            pub fn _merge_into_view(
5200                &mut self,
5201                buf: &'a [u8],
5202                depth: u32,
5203            ) -> ::core::result::Result<(), ::buffa::DecodeError> {
5204                let _ = depth;
5205                #[allow(unused_variables)]
5206                let view = self;
5207                let mut cur: &'a [u8] = buf;
5208                while !cur.is_empty() {
5209                    let before_tag = cur;
5210                    let tag = ::buffa::encoding::Tag::decode(&mut cur)?;
5211                    match tag.field_number() {
5212                        1u32 => {
5213                            if tag.wire_type()
5214                                != ::buffa::encoding::WireType::LengthDelimited
5215                            {
5216                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
5217                                    field_number: 1u32,
5218                                    expected: 2u8,
5219                                    actual: tag.wire_type() as u8,
5220                                });
5221                            }
5222                            view.full_name = ::buffa::types::borrow_str(&mut cur)?;
5223                        }
5224                        2u32 => {
5225                            if tag.wire_type() != ::buffa::encoding::WireType::Varint {
5226                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
5227                                    field_number: 2u32,
5228                                    expected: 0u8,
5229                                    actual: tag.wire_type() as u8,
5230                                });
5231                            }
5232                            view.version = ::buffa::types::decode_int64(&mut cur)?;
5233                        }
5234                        3u32 => {
5235                            if tag.wire_type()
5236                                != ::buffa::encoding::WireType::LengthDelimited
5237                            {
5238                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
5239                                    field_number: 3u32,
5240                                    expected: 2u8,
5241                                    actual: tag.wire_type() as u8,
5242                                });
5243                            }
5244                            view.comment = Some(::buffa::types::borrow_str(&mut cur)?);
5245                        }
5246                        _ => {
5247                            ::buffa::encoding::skip_field_depth(tag, &mut cur, depth)?;
5248                            let span_len = before_tag.len() - cur.len();
5249                            view.__buffa_unknown_fields
5250                                .push_raw(&before_tag[..span_len]);
5251                        }
5252                    }
5253                }
5254                ::core::result::Result::Ok(())
5255            }
5256        }
5257        impl<'a> ::buffa::MessageView<'a> for UpdateModelVersionRequestView<'a> {
5258            type Owned = super::super::UpdateModelVersionRequest;
5259            fn decode_view(
5260                buf: &'a [u8],
5261            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
5262                Self::_decode_depth(buf, ::buffa::RECURSION_LIMIT)
5263            }
5264            fn decode_view_with_limit(
5265                buf: &'a [u8],
5266                depth: u32,
5267            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
5268                Self::_decode_depth(buf, depth)
5269            }
5270            fn to_owned_message(&self) -> super::super::UpdateModelVersionRequest {
5271                self.to_owned_from_source(None)
5272            }
5273            #[allow(clippy::useless_conversion, clippy::needless_update)]
5274            fn to_owned_from_source(
5275                &self,
5276                __buffa_src: ::core::option::Option<&::buffa::bytes::Bytes>,
5277            ) -> super::super::UpdateModelVersionRequest {
5278                #[allow(unused_imports)]
5279                use ::buffa::alloc::string::ToString as _;
5280                let _ = __buffa_src;
5281                super::super::UpdateModelVersionRequest {
5282                    full_name: self.full_name.to_string(),
5283                    version: self.version,
5284                    comment: self.comment.map(|s| s.to_string()),
5285                    __buffa_unknown_fields: self
5286                        .__buffa_unknown_fields
5287                        .to_owned()
5288                        .unwrap_or_default()
5289                        .into(),
5290                    ..::core::default::Default::default()
5291                }
5292            }
5293        }
5294        impl<'a> ::buffa::ViewEncode<'a> for UpdateModelVersionRequestView<'a> {
5295            #[allow(clippy::needless_borrow, clippy::let_and_return)]
5296            fn compute_size(&self, _cache: &mut ::buffa::SizeCache) -> u32 {
5297                #[allow(unused_imports)]
5298                use ::buffa::Enumeration as _;
5299                let mut size = 0u32;
5300                if !self.full_name.is_empty() {
5301                    size
5302                        += 1u32
5303                            + ::buffa::types::string_encoded_len(&self.full_name) as u32;
5304                }
5305                if self.version != 0i64 {
5306                    size
5307                        += 1u32 + ::buffa::types::int64_encoded_len(self.version) as u32;
5308                }
5309                if let Some(ref v) = self.comment {
5310                    size += 1u32 + ::buffa::types::string_encoded_len(v) as u32;
5311                }
5312                size += self.__buffa_unknown_fields.encoded_len() as u32;
5313                size
5314            }
5315            #[allow(clippy::needless_borrow)]
5316            fn write_to(
5317                &self,
5318                _cache: &mut ::buffa::SizeCache,
5319                buf: &mut impl ::buffa::bytes::BufMut,
5320            ) {
5321                #[allow(unused_imports)]
5322                use ::buffa::Enumeration as _;
5323                if !self.full_name.is_empty() {
5324                    ::buffa::encoding::Tag::new(
5325                            1u32,
5326                            ::buffa::encoding::WireType::LengthDelimited,
5327                        )
5328                        .encode(buf);
5329                    ::buffa::types::encode_string(&self.full_name, buf);
5330                }
5331                if self.version != 0i64 {
5332                    ::buffa::encoding::Tag::new(
5333                            2u32,
5334                            ::buffa::encoding::WireType::Varint,
5335                        )
5336                        .encode(buf);
5337                    ::buffa::types::encode_int64(self.version, buf);
5338                }
5339                if let Some(ref v) = self.comment {
5340                    ::buffa::encoding::Tag::new(
5341                            3u32,
5342                            ::buffa::encoding::WireType::LengthDelimited,
5343                        )
5344                        .encode(buf);
5345                    ::buffa::types::encode_string(v, buf);
5346                }
5347                self.__buffa_unknown_fields.write_to(buf);
5348            }
5349        }
5350        /// Serializes this view as protobuf JSON.
5351        ///
5352        /// Implicit-presence fields with default values are omitted, `required`
5353        /// fields are always emitted, explicit-presence (`optional`) fields are
5354        /// emitted only when set, bytes fields are base64-encoded, and enum
5355        /// values are their proto name strings.
5356        ///
5357        /// This impl uses `serialize_map(None)` because the number of emitted
5358        /// fields depends on default-omission rules; serializers that require
5359        /// known map lengths (e.g. `bincode`) will return a runtime error.
5360        /// Use the owned message type for those formats.
5361        impl<'__a> ::serde::Serialize for UpdateModelVersionRequestView<'__a> {
5362            fn serialize<__S: ::serde::Serializer>(
5363                &self,
5364                __s: __S,
5365            ) -> ::core::result::Result<__S::Ok, __S::Error> {
5366                use ::serde::ser::SerializeMap as _;
5367                let mut __map = __s.serialize_map(::core::option::Option::None)?;
5368                if !::buffa::json_helpers::skip_if::is_empty_str(self.full_name) {
5369                    __map.serialize_entry("full_name", self.full_name)?;
5370                }
5371                if !::buffa::json_helpers::skip_if::is_zero_i64(&self.version) {
5372                    struct _W(i64);
5373                    impl ::serde::Serialize for _W {
5374                        fn serialize<__S: ::serde::Serializer>(
5375                            &self,
5376                            __s: __S,
5377                        ) -> ::core::result::Result<__S::Ok, __S::Error> {
5378                            ::buffa::json_helpers::int64::serialize(&self.0, __s)
5379                        }
5380                    }
5381                    __map.serialize_entry("version", &_W(self.version))?;
5382                }
5383                if let ::core::option::Option::Some(__v) = self.comment {
5384                    __map.serialize_entry("comment", __v)?;
5385                }
5386                __map.end()
5387            }
5388        }
5389        impl<'a> ::buffa::MessageName for UpdateModelVersionRequestView<'a> {
5390            const PACKAGE: &'static str = "unitycatalog.model_versions.v1";
5391            const NAME: &'static str = "UpdateModelVersionRequest";
5392            const FULL_NAME: &'static str = "unitycatalog.model_versions.v1.UpdateModelVersionRequest";
5393            const TYPE_URL: &'static str = "type.googleapis.com/unitycatalog.model_versions.v1.UpdateModelVersionRequest";
5394        }
5395        impl<'v> ::buffa::DefaultViewInstance for UpdateModelVersionRequestView<'v> {
5396            fn default_view_instance<'a>() -> &'a Self
5397            where
5398                Self: 'a,
5399            {
5400                static VALUE: ::buffa::__private::OnceBox<
5401                    UpdateModelVersionRequestView<'static>,
5402                > = ::buffa::__private::OnceBox::new();
5403                VALUE
5404                    .get_or_init(|| ::buffa::alloc::boxed::Box::new(
5405                        <UpdateModelVersionRequestView<'static>>::default(),
5406                    ))
5407            }
5408        }
5409        impl ::buffa::ViewReborrow for UpdateModelVersionRequestView<'static> {
5410            type Reborrowed<'b> = UpdateModelVersionRequestView<'b>;
5411            fn reborrow<'b>(this: &'b Self) -> &'b Self::Reborrowed<'b> {
5412                this
5413            }
5414        }
5415        /** Self-contained, `'static` owned view of a `UpdateModelVersionRequest` message.
5416
5417 Wraps [`::buffa::OwnedView`]`<`[`UpdateModelVersionRequestView`]`<'static>>`: the decoded view and the [`::buffa::bytes::Bytes`] buffer it borrows from travel together, so the handle is `'static` and `Send + Sync` — suitable for async handlers, spawned tasks, and anywhere a `'static` bound is required.
5418
5419 Field accessors return borrows tied to `&self`. Use [`Self::view`] to get the full [`UpdateModelVersionRequestView`] when you need struct patterns, iteration helpers, or to pass the view to lifetime-parameterised code.*/
5420        #[derive(Clone, Debug)]
5421        pub struct UpdateModelVersionRequestOwnedView(
5422            ::buffa::OwnedView<UpdateModelVersionRequestView<'static>>,
5423        );
5424        impl UpdateModelVersionRequestOwnedView {
5425            /// Decode an owned view from a [`::buffa::bytes::Bytes`] buffer.
5426            ///
5427            /// The view borrows directly from the buffer's data; the buffer is
5428            /// retained inside the returned handle.
5429            ///
5430            /// # Errors
5431            ///
5432            /// Returns [`::buffa::DecodeError`] if the buffer contains invalid
5433            /// protobuf data.
5434            pub fn decode(
5435                bytes: ::buffa::bytes::Bytes,
5436            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
5437                ::core::result::Result::Ok(
5438                    UpdateModelVersionRequestOwnedView(
5439                        ::buffa::OwnedView::decode(bytes)?,
5440                    ),
5441                )
5442            }
5443            /// Decode with custom [`::buffa::DecodeOptions`] (recursion limit,
5444            /// max message size).
5445            ///
5446            /// # Errors
5447            ///
5448            /// Returns [`::buffa::DecodeError`] if the buffer is invalid or
5449            /// exceeds the configured limits.
5450            pub fn decode_with_options(
5451                bytes: ::buffa::bytes::Bytes,
5452                opts: &::buffa::DecodeOptions,
5453            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
5454                ::core::result::Result::Ok(
5455                    UpdateModelVersionRequestOwnedView(
5456                        ::buffa::OwnedView::decode_with_options(bytes, opts)?,
5457                    ),
5458                )
5459            }
5460            /// Build from an owned message via an encode → decode round-trip.
5461            ///
5462            /// # Errors
5463            ///
5464            /// Returns [`::buffa::DecodeError`] if the re-encoded bytes are
5465            /// somehow invalid (should not happen for well-formed messages).
5466            pub fn from_owned(
5467                msg: &super::super::UpdateModelVersionRequest,
5468            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
5469                ::core::result::Result::Ok(
5470                    UpdateModelVersionRequestOwnedView(
5471                        ::buffa::OwnedView::from_owned(msg)?,
5472                    ),
5473                )
5474            }
5475            /// Borrow the full [`UpdateModelVersionRequestView`] with its lifetime tied to `&self`.
5476            #[must_use]
5477            pub fn view(&self) -> &UpdateModelVersionRequestView<'_> {
5478                self.0.reborrow()
5479            }
5480            /// Convert to the owned message type.
5481            #[must_use]
5482            pub fn to_owned_message(&self) -> super::super::UpdateModelVersionRequest {
5483                self.0.to_owned_message()
5484            }
5485            /// The underlying bytes buffer.
5486            #[must_use]
5487            pub fn bytes(&self) -> &::buffa::bytes::Bytes {
5488                self.0.bytes()
5489            }
5490            /// Consume the handle, returning the underlying bytes buffer.
5491            #[must_use]
5492            pub fn into_bytes(self) -> ::buffa::bytes::Bytes {
5493                self.0.into_bytes()
5494            }
5495            /// The full three-level name of the parent registered model
5496            /// (catalog.schema.model).
5497            ///
5498            /// Field 1: `full_name`
5499            #[must_use]
5500            pub fn full_name(&self) -> &'_ str {
5501                self.0.reborrow().full_name
5502            }
5503            /// The integer version number of the model version.
5504            ///
5505            /// Field 2: `version`
5506            #[must_use]
5507            pub fn version(&self) -> i64 {
5508                self.0.reborrow().version
5509            }
5510            /// User-provided free-form text description.
5511            ///
5512            /// Field 3: `comment`
5513            #[must_use]
5514            pub fn comment(&self) -> ::core::option::Option<&'_ str> {
5515                self.0.reborrow().comment
5516            }
5517        }
5518        impl ::core::convert::From<
5519            ::buffa::OwnedView<UpdateModelVersionRequestView<'static>>,
5520        > for UpdateModelVersionRequestOwnedView {
5521            fn from(
5522                inner: ::buffa::OwnedView<UpdateModelVersionRequestView<'static>>,
5523            ) -> Self {
5524                UpdateModelVersionRequestOwnedView(inner)
5525            }
5526        }
5527        impl ::core::convert::From<UpdateModelVersionRequestOwnedView>
5528        for ::buffa::OwnedView<UpdateModelVersionRequestView<'static>> {
5529            fn from(wrapper: UpdateModelVersionRequestOwnedView) -> Self {
5530                wrapper.0
5531            }
5532        }
5533        impl ::core::convert::AsRef<
5534            ::buffa::OwnedView<UpdateModelVersionRequestView<'static>>,
5535        > for UpdateModelVersionRequestOwnedView {
5536            fn as_ref(
5537                &self,
5538            ) -> &::buffa::OwnedView<UpdateModelVersionRequestView<'static>> {
5539                &self.0
5540            }
5541        }
5542        impl ::buffa::HasMessageView for super::super::UpdateModelVersionRequest {
5543            type View<'a> = UpdateModelVersionRequestView<'a>;
5544            type ViewHandle = UpdateModelVersionRequestOwnedView;
5545        }
5546        impl ::serde::Serialize for UpdateModelVersionRequestOwnedView {
5547            fn serialize<__S: ::serde::Serializer>(
5548                &self,
5549                __s: __S,
5550            ) -> ::core::result::Result<__S::Ok, __S::Error> {
5551                ::serde::Serialize::serialize(&self.0, __s)
5552            }
5553        }
5554        /// Delete a model version.
5555        #[derive(Clone, Debug, Default)]
5556        pub struct DeleteModelVersionRequestView<'a> {
5557            /// The full three-level name of the parent registered model
5558            /// (catalog.schema.model).
5559            ///
5560            /// Field 1: `full_name`
5561            pub full_name: &'a str,
5562            /// The integer version number of the model version.
5563            ///
5564            /// Field 2: `version`
5565            pub version: i64,
5566            pub __buffa_unknown_fields: ::buffa::UnknownFieldsView<'a>,
5567        }
5568        impl<'a> DeleteModelVersionRequestView<'a> {
5569            /// Decode from `buf`, enforcing a recursion depth limit for nested messages.
5570            ///
5571            /// Called by [`::buffa::MessageView::decode_view`] with [`::buffa::RECURSION_LIMIT`]
5572            /// and by generated sub-message decode arms with `depth - 1`.
5573            ///
5574            /// **Not part of the public API.** Named with a leading underscore to
5575            /// signal that it is for generated-code use only.
5576            #[doc(hidden)]
5577            pub fn _decode_depth(
5578                buf: &'a [u8],
5579                depth: u32,
5580            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
5581                let mut view = Self::default();
5582                view._merge_into_view(buf, depth)?;
5583                ::core::result::Result::Ok(view)
5584            }
5585            /// Merge fields from `buf` into this view (proto merge semantics).
5586            ///
5587            /// Repeated fields append; singular fields last-wins; singular
5588            /// MESSAGE fields merge recursively. Used by sub-message decode
5589            /// arms when the same field appears multiple times on the wire.
5590            ///
5591            /// **Not part of the public API.**
5592            #[doc(hidden)]
5593            pub fn _merge_into_view(
5594                &mut self,
5595                buf: &'a [u8],
5596                depth: u32,
5597            ) -> ::core::result::Result<(), ::buffa::DecodeError> {
5598                let _ = depth;
5599                #[allow(unused_variables)]
5600                let view = self;
5601                let mut cur: &'a [u8] = buf;
5602                while !cur.is_empty() {
5603                    let before_tag = cur;
5604                    let tag = ::buffa::encoding::Tag::decode(&mut cur)?;
5605                    match tag.field_number() {
5606                        1u32 => {
5607                            if tag.wire_type()
5608                                != ::buffa::encoding::WireType::LengthDelimited
5609                            {
5610                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
5611                                    field_number: 1u32,
5612                                    expected: 2u8,
5613                                    actual: tag.wire_type() as u8,
5614                                });
5615                            }
5616                            view.full_name = ::buffa::types::borrow_str(&mut cur)?;
5617                        }
5618                        2u32 => {
5619                            if tag.wire_type() != ::buffa::encoding::WireType::Varint {
5620                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
5621                                    field_number: 2u32,
5622                                    expected: 0u8,
5623                                    actual: tag.wire_type() as u8,
5624                                });
5625                            }
5626                            view.version = ::buffa::types::decode_int64(&mut cur)?;
5627                        }
5628                        _ => {
5629                            ::buffa::encoding::skip_field_depth(tag, &mut cur, depth)?;
5630                            let span_len = before_tag.len() - cur.len();
5631                            view.__buffa_unknown_fields
5632                                .push_raw(&before_tag[..span_len]);
5633                        }
5634                    }
5635                }
5636                ::core::result::Result::Ok(())
5637            }
5638        }
5639        impl<'a> ::buffa::MessageView<'a> for DeleteModelVersionRequestView<'a> {
5640            type Owned = super::super::DeleteModelVersionRequest;
5641            fn decode_view(
5642                buf: &'a [u8],
5643            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
5644                Self::_decode_depth(buf, ::buffa::RECURSION_LIMIT)
5645            }
5646            fn decode_view_with_limit(
5647                buf: &'a [u8],
5648                depth: u32,
5649            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
5650                Self::_decode_depth(buf, depth)
5651            }
5652            fn to_owned_message(&self) -> super::super::DeleteModelVersionRequest {
5653                self.to_owned_from_source(None)
5654            }
5655            #[allow(clippy::useless_conversion, clippy::needless_update)]
5656            fn to_owned_from_source(
5657                &self,
5658                __buffa_src: ::core::option::Option<&::buffa::bytes::Bytes>,
5659            ) -> super::super::DeleteModelVersionRequest {
5660                #[allow(unused_imports)]
5661                use ::buffa::alloc::string::ToString as _;
5662                let _ = __buffa_src;
5663                super::super::DeleteModelVersionRequest {
5664                    full_name: self.full_name.to_string(),
5665                    version: self.version,
5666                    __buffa_unknown_fields: self
5667                        .__buffa_unknown_fields
5668                        .to_owned()
5669                        .unwrap_or_default()
5670                        .into(),
5671                    ..::core::default::Default::default()
5672                }
5673            }
5674        }
5675        impl<'a> ::buffa::ViewEncode<'a> for DeleteModelVersionRequestView<'a> {
5676            #[allow(clippy::needless_borrow, clippy::let_and_return)]
5677            fn compute_size(&self, _cache: &mut ::buffa::SizeCache) -> u32 {
5678                #[allow(unused_imports)]
5679                use ::buffa::Enumeration as _;
5680                let mut size = 0u32;
5681                if !self.full_name.is_empty() {
5682                    size
5683                        += 1u32
5684                            + ::buffa::types::string_encoded_len(&self.full_name) as u32;
5685                }
5686                if self.version != 0i64 {
5687                    size
5688                        += 1u32 + ::buffa::types::int64_encoded_len(self.version) as u32;
5689                }
5690                size += self.__buffa_unknown_fields.encoded_len() as u32;
5691                size
5692            }
5693            #[allow(clippy::needless_borrow)]
5694            fn write_to(
5695                &self,
5696                _cache: &mut ::buffa::SizeCache,
5697                buf: &mut impl ::buffa::bytes::BufMut,
5698            ) {
5699                #[allow(unused_imports)]
5700                use ::buffa::Enumeration as _;
5701                if !self.full_name.is_empty() {
5702                    ::buffa::encoding::Tag::new(
5703                            1u32,
5704                            ::buffa::encoding::WireType::LengthDelimited,
5705                        )
5706                        .encode(buf);
5707                    ::buffa::types::encode_string(&self.full_name, buf);
5708                }
5709                if self.version != 0i64 {
5710                    ::buffa::encoding::Tag::new(
5711                            2u32,
5712                            ::buffa::encoding::WireType::Varint,
5713                        )
5714                        .encode(buf);
5715                    ::buffa::types::encode_int64(self.version, buf);
5716                }
5717                self.__buffa_unknown_fields.write_to(buf);
5718            }
5719        }
5720        /// Serializes this view as protobuf JSON.
5721        ///
5722        /// Implicit-presence fields with default values are omitted, `required`
5723        /// fields are always emitted, explicit-presence (`optional`) fields are
5724        /// emitted only when set, bytes fields are base64-encoded, and enum
5725        /// values are their proto name strings.
5726        ///
5727        /// This impl uses `serialize_map(None)` because the number of emitted
5728        /// fields depends on default-omission rules; serializers that require
5729        /// known map lengths (e.g. `bincode`) will return a runtime error.
5730        /// Use the owned message type for those formats.
5731        impl<'__a> ::serde::Serialize for DeleteModelVersionRequestView<'__a> {
5732            fn serialize<__S: ::serde::Serializer>(
5733                &self,
5734                __s: __S,
5735            ) -> ::core::result::Result<__S::Ok, __S::Error> {
5736                use ::serde::ser::SerializeMap as _;
5737                let mut __map = __s.serialize_map(::core::option::Option::None)?;
5738                if !::buffa::json_helpers::skip_if::is_empty_str(self.full_name) {
5739                    __map.serialize_entry("full_name", self.full_name)?;
5740                }
5741                if !::buffa::json_helpers::skip_if::is_zero_i64(&self.version) {
5742                    struct _W(i64);
5743                    impl ::serde::Serialize for _W {
5744                        fn serialize<__S: ::serde::Serializer>(
5745                            &self,
5746                            __s: __S,
5747                        ) -> ::core::result::Result<__S::Ok, __S::Error> {
5748                            ::buffa::json_helpers::int64::serialize(&self.0, __s)
5749                        }
5750                    }
5751                    __map.serialize_entry("version", &_W(self.version))?;
5752                }
5753                __map.end()
5754            }
5755        }
5756        impl<'a> ::buffa::MessageName for DeleteModelVersionRequestView<'a> {
5757            const PACKAGE: &'static str = "unitycatalog.model_versions.v1";
5758            const NAME: &'static str = "DeleteModelVersionRequest";
5759            const FULL_NAME: &'static str = "unitycatalog.model_versions.v1.DeleteModelVersionRequest";
5760            const TYPE_URL: &'static str = "type.googleapis.com/unitycatalog.model_versions.v1.DeleteModelVersionRequest";
5761        }
5762        impl<'v> ::buffa::DefaultViewInstance for DeleteModelVersionRequestView<'v> {
5763            fn default_view_instance<'a>() -> &'a Self
5764            where
5765                Self: 'a,
5766            {
5767                static VALUE: ::buffa::__private::OnceBox<
5768                    DeleteModelVersionRequestView<'static>,
5769                > = ::buffa::__private::OnceBox::new();
5770                VALUE
5771                    .get_or_init(|| ::buffa::alloc::boxed::Box::new(
5772                        <DeleteModelVersionRequestView<'static>>::default(),
5773                    ))
5774            }
5775        }
5776        impl ::buffa::ViewReborrow for DeleteModelVersionRequestView<'static> {
5777            type Reborrowed<'b> = DeleteModelVersionRequestView<'b>;
5778            fn reborrow<'b>(this: &'b Self) -> &'b Self::Reborrowed<'b> {
5779                this
5780            }
5781        }
5782        /** Self-contained, `'static` owned view of a `DeleteModelVersionRequest` message.
5783
5784 Wraps [`::buffa::OwnedView`]`<`[`DeleteModelVersionRequestView`]`<'static>>`: the decoded view and the [`::buffa::bytes::Bytes`] buffer it borrows from travel together, so the handle is `'static` and `Send + Sync` — suitable for async handlers, spawned tasks, and anywhere a `'static` bound is required.
5785
5786 Field accessors return borrows tied to `&self`. Use [`Self::view`] to get the full [`DeleteModelVersionRequestView`] when you need struct patterns, iteration helpers, or to pass the view to lifetime-parameterised code.*/
5787        #[derive(Clone, Debug)]
5788        pub struct DeleteModelVersionRequestOwnedView(
5789            ::buffa::OwnedView<DeleteModelVersionRequestView<'static>>,
5790        );
5791        impl DeleteModelVersionRequestOwnedView {
5792            /// Decode an owned view from a [`::buffa::bytes::Bytes`] buffer.
5793            ///
5794            /// The view borrows directly from the buffer's data; the buffer is
5795            /// retained inside the returned handle.
5796            ///
5797            /// # Errors
5798            ///
5799            /// Returns [`::buffa::DecodeError`] if the buffer contains invalid
5800            /// protobuf data.
5801            pub fn decode(
5802                bytes: ::buffa::bytes::Bytes,
5803            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
5804                ::core::result::Result::Ok(
5805                    DeleteModelVersionRequestOwnedView(
5806                        ::buffa::OwnedView::decode(bytes)?,
5807                    ),
5808                )
5809            }
5810            /// Decode with custom [`::buffa::DecodeOptions`] (recursion limit,
5811            /// max message size).
5812            ///
5813            /// # Errors
5814            ///
5815            /// Returns [`::buffa::DecodeError`] if the buffer is invalid or
5816            /// exceeds the configured limits.
5817            pub fn decode_with_options(
5818                bytes: ::buffa::bytes::Bytes,
5819                opts: &::buffa::DecodeOptions,
5820            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
5821                ::core::result::Result::Ok(
5822                    DeleteModelVersionRequestOwnedView(
5823                        ::buffa::OwnedView::decode_with_options(bytes, opts)?,
5824                    ),
5825                )
5826            }
5827            /// Build from an owned message via an encode → decode round-trip.
5828            ///
5829            /// # Errors
5830            ///
5831            /// Returns [`::buffa::DecodeError`] if the re-encoded bytes are
5832            /// somehow invalid (should not happen for well-formed messages).
5833            pub fn from_owned(
5834                msg: &super::super::DeleteModelVersionRequest,
5835            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
5836                ::core::result::Result::Ok(
5837                    DeleteModelVersionRequestOwnedView(
5838                        ::buffa::OwnedView::from_owned(msg)?,
5839                    ),
5840                )
5841            }
5842            /// Borrow the full [`DeleteModelVersionRequestView`] with its lifetime tied to `&self`.
5843            #[must_use]
5844            pub fn view(&self) -> &DeleteModelVersionRequestView<'_> {
5845                self.0.reborrow()
5846            }
5847            /// Convert to the owned message type.
5848            #[must_use]
5849            pub fn to_owned_message(&self) -> super::super::DeleteModelVersionRequest {
5850                self.0.to_owned_message()
5851            }
5852            /// The underlying bytes buffer.
5853            #[must_use]
5854            pub fn bytes(&self) -> &::buffa::bytes::Bytes {
5855                self.0.bytes()
5856            }
5857            /// Consume the handle, returning the underlying bytes buffer.
5858            #[must_use]
5859            pub fn into_bytes(self) -> ::buffa::bytes::Bytes {
5860                self.0.into_bytes()
5861            }
5862            /// The full three-level name of the parent registered model
5863            /// (catalog.schema.model).
5864            ///
5865            /// Field 1: `full_name`
5866            #[must_use]
5867            pub fn full_name(&self) -> &'_ str {
5868                self.0.reborrow().full_name
5869            }
5870            /// The integer version number of the model version.
5871            ///
5872            /// Field 2: `version`
5873            #[must_use]
5874            pub fn version(&self) -> i64 {
5875                self.0.reborrow().version
5876            }
5877        }
5878        impl ::core::convert::From<
5879            ::buffa::OwnedView<DeleteModelVersionRequestView<'static>>,
5880        > for DeleteModelVersionRequestOwnedView {
5881            fn from(
5882                inner: ::buffa::OwnedView<DeleteModelVersionRequestView<'static>>,
5883            ) -> Self {
5884                DeleteModelVersionRequestOwnedView(inner)
5885            }
5886        }
5887        impl ::core::convert::From<DeleteModelVersionRequestOwnedView>
5888        for ::buffa::OwnedView<DeleteModelVersionRequestView<'static>> {
5889            fn from(wrapper: DeleteModelVersionRequestOwnedView) -> Self {
5890                wrapper.0
5891            }
5892        }
5893        impl ::core::convert::AsRef<
5894            ::buffa::OwnedView<DeleteModelVersionRequestView<'static>>,
5895        > for DeleteModelVersionRequestOwnedView {
5896            fn as_ref(
5897                &self,
5898            ) -> &::buffa::OwnedView<DeleteModelVersionRequestView<'static>> {
5899                &self.0
5900            }
5901        }
5902        impl ::buffa::HasMessageView for super::super::DeleteModelVersionRequest {
5903            type View<'a> = DeleteModelVersionRequestView<'a>;
5904            type ViewHandle = DeleteModelVersionRequestOwnedView;
5905        }
5906        impl ::serde::Serialize for DeleteModelVersionRequestOwnedView {
5907            fn serialize<__S: ::serde::Serializer>(
5908                &self,
5909                __s: __S,
5910            ) -> ::core::result::Result<__S::Ok, __S::Error> {
5911                ::serde::Serialize::serialize(&self.0, __s)
5912            }
5913        }
5914        /// Finalize a model version.
5915        ///
5916        /// Transitions a model version from PENDING_REGISTRATION to READY once the client
5917        /// has finished writing all artifacts to the version's storage location.
5918        #[derive(Clone, Debug, Default)]
5919        pub struct FinalizeModelVersionRequestView<'a> {
5920            /// The full three-level name of the parent registered model
5921            /// (catalog.schema.model).
5922            ///
5923            /// Field 1: `full_name`
5924            pub full_name: &'a str,
5925            /// The integer version number of the model version to finalize.
5926            ///
5927            /// Field 2: `version`
5928            pub version: i64,
5929            pub __buffa_unknown_fields: ::buffa::UnknownFieldsView<'a>,
5930        }
5931        impl<'a> FinalizeModelVersionRequestView<'a> {
5932            /// Decode from `buf`, enforcing a recursion depth limit for nested messages.
5933            ///
5934            /// Called by [`::buffa::MessageView::decode_view`] with [`::buffa::RECURSION_LIMIT`]
5935            /// and by generated sub-message decode arms with `depth - 1`.
5936            ///
5937            /// **Not part of the public API.** Named with a leading underscore to
5938            /// signal that it is for generated-code use only.
5939            #[doc(hidden)]
5940            pub fn _decode_depth(
5941                buf: &'a [u8],
5942                depth: u32,
5943            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
5944                let mut view = Self::default();
5945                view._merge_into_view(buf, depth)?;
5946                ::core::result::Result::Ok(view)
5947            }
5948            /// Merge fields from `buf` into this view (proto merge semantics).
5949            ///
5950            /// Repeated fields append; singular fields last-wins; singular
5951            /// MESSAGE fields merge recursively. Used by sub-message decode
5952            /// arms when the same field appears multiple times on the wire.
5953            ///
5954            /// **Not part of the public API.**
5955            #[doc(hidden)]
5956            pub fn _merge_into_view(
5957                &mut self,
5958                buf: &'a [u8],
5959                depth: u32,
5960            ) -> ::core::result::Result<(), ::buffa::DecodeError> {
5961                let _ = depth;
5962                #[allow(unused_variables)]
5963                let view = self;
5964                let mut cur: &'a [u8] = buf;
5965                while !cur.is_empty() {
5966                    let before_tag = cur;
5967                    let tag = ::buffa::encoding::Tag::decode(&mut cur)?;
5968                    match tag.field_number() {
5969                        1u32 => {
5970                            if tag.wire_type()
5971                                != ::buffa::encoding::WireType::LengthDelimited
5972                            {
5973                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
5974                                    field_number: 1u32,
5975                                    expected: 2u8,
5976                                    actual: tag.wire_type() as u8,
5977                                });
5978                            }
5979                            view.full_name = ::buffa::types::borrow_str(&mut cur)?;
5980                        }
5981                        2u32 => {
5982                            if tag.wire_type() != ::buffa::encoding::WireType::Varint {
5983                                return ::core::result::Result::Err(::buffa::DecodeError::WireTypeMismatch {
5984                                    field_number: 2u32,
5985                                    expected: 0u8,
5986                                    actual: tag.wire_type() as u8,
5987                                });
5988                            }
5989                            view.version = ::buffa::types::decode_int64(&mut cur)?;
5990                        }
5991                        _ => {
5992                            ::buffa::encoding::skip_field_depth(tag, &mut cur, depth)?;
5993                            let span_len = before_tag.len() - cur.len();
5994                            view.__buffa_unknown_fields
5995                                .push_raw(&before_tag[..span_len]);
5996                        }
5997                    }
5998                }
5999                ::core::result::Result::Ok(())
6000            }
6001        }
6002        impl<'a> ::buffa::MessageView<'a> for FinalizeModelVersionRequestView<'a> {
6003            type Owned = super::super::FinalizeModelVersionRequest;
6004            fn decode_view(
6005                buf: &'a [u8],
6006            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
6007                Self::_decode_depth(buf, ::buffa::RECURSION_LIMIT)
6008            }
6009            fn decode_view_with_limit(
6010                buf: &'a [u8],
6011                depth: u32,
6012            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
6013                Self::_decode_depth(buf, depth)
6014            }
6015            fn to_owned_message(&self) -> super::super::FinalizeModelVersionRequest {
6016                self.to_owned_from_source(None)
6017            }
6018            #[allow(clippy::useless_conversion, clippy::needless_update)]
6019            fn to_owned_from_source(
6020                &self,
6021                __buffa_src: ::core::option::Option<&::buffa::bytes::Bytes>,
6022            ) -> super::super::FinalizeModelVersionRequest {
6023                #[allow(unused_imports)]
6024                use ::buffa::alloc::string::ToString as _;
6025                let _ = __buffa_src;
6026                super::super::FinalizeModelVersionRequest {
6027                    full_name: self.full_name.to_string(),
6028                    version: self.version,
6029                    __buffa_unknown_fields: self
6030                        .__buffa_unknown_fields
6031                        .to_owned()
6032                        .unwrap_or_default()
6033                        .into(),
6034                    ..::core::default::Default::default()
6035                }
6036            }
6037        }
6038        impl<'a> ::buffa::ViewEncode<'a> for FinalizeModelVersionRequestView<'a> {
6039            #[allow(clippy::needless_borrow, clippy::let_and_return)]
6040            fn compute_size(&self, _cache: &mut ::buffa::SizeCache) -> u32 {
6041                #[allow(unused_imports)]
6042                use ::buffa::Enumeration as _;
6043                let mut size = 0u32;
6044                if !self.full_name.is_empty() {
6045                    size
6046                        += 1u32
6047                            + ::buffa::types::string_encoded_len(&self.full_name) as u32;
6048                }
6049                if self.version != 0i64 {
6050                    size
6051                        += 1u32 + ::buffa::types::int64_encoded_len(self.version) as u32;
6052                }
6053                size += self.__buffa_unknown_fields.encoded_len() as u32;
6054                size
6055            }
6056            #[allow(clippy::needless_borrow)]
6057            fn write_to(
6058                &self,
6059                _cache: &mut ::buffa::SizeCache,
6060                buf: &mut impl ::buffa::bytes::BufMut,
6061            ) {
6062                #[allow(unused_imports)]
6063                use ::buffa::Enumeration as _;
6064                if !self.full_name.is_empty() {
6065                    ::buffa::encoding::Tag::new(
6066                            1u32,
6067                            ::buffa::encoding::WireType::LengthDelimited,
6068                        )
6069                        .encode(buf);
6070                    ::buffa::types::encode_string(&self.full_name, buf);
6071                }
6072                if self.version != 0i64 {
6073                    ::buffa::encoding::Tag::new(
6074                            2u32,
6075                            ::buffa::encoding::WireType::Varint,
6076                        )
6077                        .encode(buf);
6078                    ::buffa::types::encode_int64(self.version, buf);
6079                }
6080                self.__buffa_unknown_fields.write_to(buf);
6081            }
6082        }
6083        /// Serializes this view as protobuf JSON.
6084        ///
6085        /// Implicit-presence fields with default values are omitted, `required`
6086        /// fields are always emitted, explicit-presence (`optional`) fields are
6087        /// emitted only when set, bytes fields are base64-encoded, and enum
6088        /// values are their proto name strings.
6089        ///
6090        /// This impl uses `serialize_map(None)` because the number of emitted
6091        /// fields depends on default-omission rules; serializers that require
6092        /// known map lengths (e.g. `bincode`) will return a runtime error.
6093        /// Use the owned message type for those formats.
6094        impl<'__a> ::serde::Serialize for FinalizeModelVersionRequestView<'__a> {
6095            fn serialize<__S: ::serde::Serializer>(
6096                &self,
6097                __s: __S,
6098            ) -> ::core::result::Result<__S::Ok, __S::Error> {
6099                use ::serde::ser::SerializeMap as _;
6100                let mut __map = __s.serialize_map(::core::option::Option::None)?;
6101                if !::buffa::json_helpers::skip_if::is_empty_str(self.full_name) {
6102                    __map.serialize_entry("full_name", self.full_name)?;
6103                }
6104                if !::buffa::json_helpers::skip_if::is_zero_i64(&self.version) {
6105                    struct _W(i64);
6106                    impl ::serde::Serialize for _W {
6107                        fn serialize<__S: ::serde::Serializer>(
6108                            &self,
6109                            __s: __S,
6110                        ) -> ::core::result::Result<__S::Ok, __S::Error> {
6111                            ::buffa::json_helpers::int64::serialize(&self.0, __s)
6112                        }
6113                    }
6114                    __map.serialize_entry("version", &_W(self.version))?;
6115                }
6116                __map.end()
6117            }
6118        }
6119        impl<'a> ::buffa::MessageName for FinalizeModelVersionRequestView<'a> {
6120            const PACKAGE: &'static str = "unitycatalog.model_versions.v1";
6121            const NAME: &'static str = "FinalizeModelVersionRequest";
6122            const FULL_NAME: &'static str = "unitycatalog.model_versions.v1.FinalizeModelVersionRequest";
6123            const TYPE_URL: &'static str = "type.googleapis.com/unitycatalog.model_versions.v1.FinalizeModelVersionRequest";
6124        }
6125        impl<'v> ::buffa::DefaultViewInstance for FinalizeModelVersionRequestView<'v> {
6126            fn default_view_instance<'a>() -> &'a Self
6127            where
6128                Self: 'a,
6129            {
6130                static VALUE: ::buffa::__private::OnceBox<
6131                    FinalizeModelVersionRequestView<'static>,
6132                > = ::buffa::__private::OnceBox::new();
6133                VALUE
6134                    .get_or_init(|| ::buffa::alloc::boxed::Box::new(
6135                        <FinalizeModelVersionRequestView<'static>>::default(),
6136                    ))
6137            }
6138        }
6139        impl ::buffa::ViewReborrow for FinalizeModelVersionRequestView<'static> {
6140            type Reborrowed<'b> = FinalizeModelVersionRequestView<'b>;
6141            fn reborrow<'b>(this: &'b Self) -> &'b Self::Reborrowed<'b> {
6142                this
6143            }
6144        }
6145        /** Self-contained, `'static` owned view of a `FinalizeModelVersionRequest` message.
6146
6147 Wraps [`::buffa::OwnedView`]`<`[`FinalizeModelVersionRequestView`]`<'static>>`: the decoded view and the [`::buffa::bytes::Bytes`] buffer it borrows from travel together, so the handle is `'static` and `Send + Sync` — suitable for async handlers, spawned tasks, and anywhere a `'static` bound is required.
6148
6149 Field accessors return borrows tied to `&self`. Use [`Self::view`] to get the full [`FinalizeModelVersionRequestView`] when you need struct patterns, iteration helpers, or to pass the view to lifetime-parameterised code.*/
6150        #[derive(Clone, Debug)]
6151        pub struct FinalizeModelVersionRequestOwnedView(
6152            ::buffa::OwnedView<FinalizeModelVersionRequestView<'static>>,
6153        );
6154        impl FinalizeModelVersionRequestOwnedView {
6155            /// Decode an owned view from a [`::buffa::bytes::Bytes`] buffer.
6156            ///
6157            /// The view borrows directly from the buffer's data; the buffer is
6158            /// retained inside the returned handle.
6159            ///
6160            /// # Errors
6161            ///
6162            /// Returns [`::buffa::DecodeError`] if the buffer contains invalid
6163            /// protobuf data.
6164            pub fn decode(
6165                bytes: ::buffa::bytes::Bytes,
6166            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
6167                ::core::result::Result::Ok(
6168                    FinalizeModelVersionRequestOwnedView(
6169                        ::buffa::OwnedView::decode(bytes)?,
6170                    ),
6171                )
6172            }
6173            /// Decode with custom [`::buffa::DecodeOptions`] (recursion limit,
6174            /// max message size).
6175            ///
6176            /// # Errors
6177            ///
6178            /// Returns [`::buffa::DecodeError`] if the buffer is invalid or
6179            /// exceeds the configured limits.
6180            pub fn decode_with_options(
6181                bytes: ::buffa::bytes::Bytes,
6182                opts: &::buffa::DecodeOptions,
6183            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
6184                ::core::result::Result::Ok(
6185                    FinalizeModelVersionRequestOwnedView(
6186                        ::buffa::OwnedView::decode_with_options(bytes, opts)?,
6187                    ),
6188                )
6189            }
6190            /// Build from an owned message via an encode → decode round-trip.
6191            ///
6192            /// # Errors
6193            ///
6194            /// Returns [`::buffa::DecodeError`] if the re-encoded bytes are
6195            /// somehow invalid (should not happen for well-formed messages).
6196            pub fn from_owned(
6197                msg: &super::super::FinalizeModelVersionRequest,
6198            ) -> ::core::result::Result<Self, ::buffa::DecodeError> {
6199                ::core::result::Result::Ok(
6200                    FinalizeModelVersionRequestOwnedView(
6201                        ::buffa::OwnedView::from_owned(msg)?,
6202                    ),
6203                )
6204            }
6205            /// Borrow the full [`FinalizeModelVersionRequestView`] with its lifetime tied to `&self`.
6206            #[must_use]
6207            pub fn view(&self) -> &FinalizeModelVersionRequestView<'_> {
6208                self.0.reborrow()
6209            }
6210            /// Convert to the owned message type.
6211            #[must_use]
6212            pub fn to_owned_message(&self) -> super::super::FinalizeModelVersionRequest {
6213                self.0.to_owned_message()
6214            }
6215            /// The underlying bytes buffer.
6216            #[must_use]
6217            pub fn bytes(&self) -> &::buffa::bytes::Bytes {
6218                self.0.bytes()
6219            }
6220            /// Consume the handle, returning the underlying bytes buffer.
6221            #[must_use]
6222            pub fn into_bytes(self) -> ::buffa::bytes::Bytes {
6223                self.0.into_bytes()
6224            }
6225            /// The full three-level name of the parent registered model
6226            /// (catalog.schema.model).
6227            ///
6228            /// Field 1: `full_name`
6229            #[must_use]
6230            pub fn full_name(&self) -> &'_ str {
6231                self.0.reborrow().full_name
6232            }
6233            /// The integer version number of the model version to finalize.
6234            ///
6235            /// Field 2: `version`
6236            #[must_use]
6237            pub fn version(&self) -> i64 {
6238                self.0.reborrow().version
6239            }
6240        }
6241        impl ::core::convert::From<
6242            ::buffa::OwnedView<FinalizeModelVersionRequestView<'static>>,
6243        > for FinalizeModelVersionRequestOwnedView {
6244            fn from(
6245                inner: ::buffa::OwnedView<FinalizeModelVersionRequestView<'static>>,
6246            ) -> Self {
6247                FinalizeModelVersionRequestOwnedView(inner)
6248            }
6249        }
6250        impl ::core::convert::From<FinalizeModelVersionRequestOwnedView>
6251        for ::buffa::OwnedView<FinalizeModelVersionRequestView<'static>> {
6252            fn from(wrapper: FinalizeModelVersionRequestOwnedView) -> Self {
6253                wrapper.0
6254            }
6255        }
6256        impl ::core::convert::AsRef<
6257            ::buffa::OwnedView<FinalizeModelVersionRequestView<'static>>,
6258        > for FinalizeModelVersionRequestOwnedView {
6259            fn as_ref(
6260                &self,
6261            ) -> &::buffa::OwnedView<FinalizeModelVersionRequestView<'static>> {
6262                &self.0
6263            }
6264        }
6265        impl ::buffa::HasMessageView for super::super::FinalizeModelVersionRequest {
6266            type View<'a> = FinalizeModelVersionRequestView<'a>;
6267            type ViewHandle = FinalizeModelVersionRequestOwnedView;
6268        }
6269        impl ::serde::Serialize for FinalizeModelVersionRequestOwnedView {
6270            fn serialize<__S: ::serde::Serializer>(
6271                &self,
6272                __s: __S,
6273            ) -> ::core::result::Result<__S::Ok, __S::Error> {
6274                ::serde::Serialize::serialize(&self.0, __s)
6275            }
6276        }
6277    }
6278    /// Register this package's `Any` type entries and extension entries.
6279    pub fn register_types(reg: &mut ::buffa::type_registry::TypeRegistry) {
6280        reg.register_json_any(super::__MODEL_VERSION_JSON_ANY);
6281        reg.register_json_any(super::__LIST_MODEL_VERSIONS_REQUEST_JSON_ANY);
6282        reg.register_json_any(super::__LIST_MODEL_VERSIONS_RESPONSE_JSON_ANY);
6283        reg.register_json_any(super::__CREATE_MODEL_VERSION_REQUEST_JSON_ANY);
6284        reg.register_json_any(super::__GET_MODEL_VERSION_REQUEST_JSON_ANY);
6285        reg.register_json_any(super::__UPDATE_MODEL_VERSION_REQUEST_JSON_ANY);
6286        reg.register_json_any(super::__DELETE_MODEL_VERSION_REQUEST_JSON_ANY);
6287        reg.register_json_any(super::__FINALIZE_MODEL_VERSION_REQUEST_JSON_ANY);
6288    }
6289}
6290#[doc(inline)]
6291pub use self::__buffa::view::ModelVersionView;
6292#[doc(inline)]
6293pub use self::__buffa::view::ModelVersionOwnedView;
6294#[doc(inline)]
6295pub use self::__buffa::view::ListModelVersionsRequestView;
6296#[doc(inline)]
6297pub use self::__buffa::view::ListModelVersionsRequestOwnedView;
6298#[doc(inline)]
6299pub use self::__buffa::view::ListModelVersionsResponseView;
6300#[doc(inline)]
6301pub use self::__buffa::view::ListModelVersionsResponseOwnedView;
6302#[doc(inline)]
6303pub use self::__buffa::view::CreateModelVersionRequestView;
6304#[doc(inline)]
6305pub use self::__buffa::view::CreateModelVersionRequestOwnedView;
6306#[doc(inline)]
6307pub use self::__buffa::view::GetModelVersionRequestView;
6308#[doc(inline)]
6309pub use self::__buffa::view::GetModelVersionRequestOwnedView;
6310#[doc(inline)]
6311pub use self::__buffa::view::UpdateModelVersionRequestView;
6312#[doc(inline)]
6313pub use self::__buffa::view::UpdateModelVersionRequestOwnedView;
6314#[doc(inline)]
6315pub use self::__buffa::view::DeleteModelVersionRequestView;
6316#[doc(inline)]
6317pub use self::__buffa::view::DeleteModelVersionRequestOwnedView;
6318#[doc(inline)]
6319pub use self::__buffa::view::FinalizeModelVersionRequestView;
6320#[doc(inline)]
6321pub use self::__buffa::view::FinalizeModelVersionRequestOwnedView;
6322#[doc(inline)]
6323pub use self::__buffa::register_types;