Skip to main content

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

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