nominal_api/proto/
nominal.connect.v1.rs

1// This file is @generated by prost-build.
2#[derive(Clone, PartialEq, ::prost::Message)]
3pub struct CreateConnectAppRequest {
4    /// separate from the bundle title to allow for creating empty apps
5    #[prost(string, tag = "1")]
6    pub display_name: ::prost::alloc::string::String,
7    #[prost(string, optional, tag = "2")]
8    pub description: ::core::option::Option<::prost::alloc::string::String>,
9    #[prost(string, repeated, tag = "3")]
10    pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
11    #[prost(map = "string, string", tag = "4")]
12    pub properties: ::std::collections::HashMap<
13        ::prost::alloc::string::String,
14        ::prost::alloc::string::String,
15    >,
16    #[prost(bool, optional, tag = "5")]
17    pub is_published: ::core::option::Option<bool>,
18    #[prost(string, tag = "6")]
19    pub workspace: ::prost::alloc::string::String,
20    /// optional to allow for creating "empty" in-progress connect apps
21    #[prost(message, optional, tag = "7")]
22    pub bundle: ::core::option::Option<ConnectAppBundle>,
23    #[prost(string, tag = "8")]
24    pub commit_message: ::prost::alloc::string::String,
25}
26#[derive(Clone, PartialEq, ::prost::Message)]
27pub struct CreateConnectAppResponse {
28    #[prost(message, optional, tag = "1")]
29    pub app: ::core::option::Option<ConnectApp>,
30}
31#[derive(Clone, PartialEq, ::prost::Message)]
32pub struct UpdateConnectAppMetadataRequest {
33    #[prost(string, tag = "1")]
34    pub rid: ::prost::alloc::string::String,
35    #[prost(string, optional, tag = "2")]
36    pub display_name: ::core::option::Option<::prost::alloc::string::String>,
37    #[prost(string, optional, tag = "3")]
38    pub description: ::core::option::Option<::prost::alloc::string::String>,
39    #[prost(message, optional, tag = "4")]
40    pub labels: ::core::option::Option<super::super::types::LabelUpdateWrapper>,
41    #[prost(message, optional, tag = "5")]
42    pub properties: ::core::option::Option<super::super::types::PropertyUpdateWrapper>,
43    #[prost(bool, optional, tag = "6")]
44    pub is_archived: ::core::option::Option<bool>,
45    #[prost(bool, optional, tag = "7")]
46    pub is_published: ::core::option::Option<bool>,
47}
48#[derive(Clone, PartialEq, ::prost::Message)]
49pub struct ConnectAppBundle {
50    #[prost(message, optional, tag = "1")]
51    pub s3_path: ::core::option::Option<super::super::types::Handle>,
52    #[prost(message, optional, tag = "2")]
53    pub metadata: ::core::option::Option<ConnectAppBundleMetadata>,
54}
55/// wrapper message for metadata that will probably be extended in the future
56#[derive(Clone, PartialEq, ::prost::Message)]
57pub struct ConnectAppBundleMetadata {
58    #[prost(string, tag = "1")]
59    pub title: ::prost::alloc::string::String,
60    #[prost(bool, tag = "2")]
61    pub contains_experimental_features: bool,
62    #[prost(string, tag = "3")]
63    pub sha256_checksum: ::prost::alloc::string::String,
64}
65#[derive(Clone, PartialEq, ::prost::Message)]
66pub struct ConnectAppSearchQuery {
67    #[prost(oneof = "connect_app_search_query::Query", tags = "1, 2, 3, 4, 5, 6, 7")]
68    pub query: ::core::option::Option<connect_app_search_query::Query>,
69}
70/// Nested message and enum types in `ConnectAppSearchQuery`.
71pub mod connect_app_search_query {
72    #[derive(Clone, PartialEq, ::prost::Message)]
73    pub struct ConnectAppSearchAndQuery {
74        #[prost(message, repeated, tag = "1")]
75        pub queries: ::prost::alloc::vec::Vec<super::ConnectAppSearchQuery>,
76    }
77    #[derive(Clone, PartialEq, ::prost::Message)]
78    pub struct ConnectAppSearchOrQuery {
79        #[prost(message, repeated, tag = "1")]
80        pub queries: ::prost::alloc::vec::Vec<super::ConnectAppSearchQuery>,
81    }
82    #[derive(Clone, PartialEq, ::prost::Oneof)]
83    pub enum Query {
84        #[prost(string, tag = "1")]
85        SearchText(::prost::alloc::string::String),
86        #[prost(string, tag = "2")]
87        Label(::prost::alloc::string::String),
88        #[prost(message, tag = "3")]
89        Property(super::super::super::types::Property),
90        #[prost(message, tag = "4")]
91        And(ConnectAppSearchAndQuery),
92        #[prost(message, tag = "5")]
93        Or(ConnectAppSearchOrQuery),
94        #[prost(string, tag = "6")]
95        Workspace(::prost::alloc::string::String),
96        #[prost(bool, tag = "7")]
97        IsArchived(bool),
98    }
99}
100#[derive(Clone, PartialEq, ::prost::Message)]
101pub struct ConnectAppMetadata {
102    #[prost(string, tag = "1")]
103    pub rid: ::prost::alloc::string::String,
104    #[prost(string, tag = "2")]
105    pub display_name: ::prost::alloc::string::String,
106    #[prost(string, optional, tag = "3")]
107    pub description: ::core::option::Option<::prost::alloc::string::String>,
108    #[prost(string, repeated, tag = "4")]
109    pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
110    #[prost(map = "string, string", tag = "5")]
111    pub properties: ::std::collections::HashMap<
112        ::prost::alloc::string::String,
113        ::prost::alloc::string::String,
114    >,
115    #[prost(bool, tag = "6")]
116    pub is_archived: bool,
117    #[prost(bool, tag = "7")]
118    pub is_published: bool,
119    #[prost(message, optional, tag = "8")]
120    pub created_at: ::core::option::Option<
121        super::super::super::google::protobuf::Timestamp,
122    >,
123    #[prost(string, tag = "9")]
124    pub created_by: ::prost::alloc::string::String,
125    #[prost(message, optional, tag = "10")]
126    pub updated_at: ::core::option::Option<
127        super::super::super::google::protobuf::Timestamp,
128    >,
129    #[prost(string, tag = "11")]
130    pub workspace: ::prost::alloc::string::String,
131}
132#[derive(Clone, PartialEq, ::prost::Message)]
133pub struct ConnectApp {
134    #[prost(string, tag = "1")]
135    pub rid: ::prost::alloc::string::String,
136    #[prost(string, tag = "2")]
137    pub commit: ::prost::alloc::string::String,
138    #[prost(message, optional, tag = "3")]
139    pub metadata: ::core::option::Option<ConnectAppMetadata>,
140    #[prost(message, optional, tag = "4")]
141    pub bundle: ::core::option::Option<ConnectAppBundle>,
142}
143#[derive(Clone, PartialEq, ::prost::Message)]
144pub struct GetConnectAppRequest {
145    #[prost(string, tag = "1")]
146    pub rid: ::prost::alloc::string::String,
147    #[prost(message, optional, tag = "2")]
148    pub branch_or_commit: ::core::option::Option<
149        super::super::versioning::v1::BranchOrCommit,
150    >,
151}
152#[derive(Clone, PartialEq, ::prost::Message)]
153pub struct GetConnectAppBundleDownloadUrlRequest {
154    #[prost(string, tag = "1")]
155    pub rid: ::prost::alloc::string::String,
156    #[prost(message, optional, tag = "2")]
157    pub branch_or_commit: ::core::option::Option<
158        super::super::versioning::v1::BranchOrCommit,
159    >,
160}
161#[derive(Clone, PartialEq, ::prost::Message)]
162pub struct GetConnectAppBundleDownloadUrlResponse {
163    #[prost(string, tag = "1")]
164    pub url: ::prost::alloc::string::String,
165}
166#[derive(Clone, PartialEq, ::prost::Message)]
167pub struct GetConnectAppResponse {
168    #[prost(message, optional, tag = "1")]
169    pub app: ::core::option::Option<ConnectApp>,
170}
171#[derive(Clone, PartialEq, ::prost::Message)]
172pub struct UpdateConnectAppMetadataResponse {
173    #[prost(message, optional, tag = "1")]
174    pub app_metadata: ::core::option::Option<ConnectAppMetadata>,
175}
176/// only allow commits to the main branch
177/// no latest commit id field to bypass conflict detection
178#[derive(Clone, PartialEq, ::prost::Message)]
179pub struct CommitRequest {
180    #[prost(string, tag = "1")]
181    pub rid: ::prost::alloc::string::String,
182    #[prost(message, optional, tag = "2")]
183    pub bundle: ::core::option::Option<ConnectAppBundle>,
184    #[prost(string, tag = "3")]
185    pub message: ::prost::alloc::string::String,
186}
187#[derive(Clone, PartialEq, ::prost::Message)]
188pub struct CommitResponse {
189    #[prost(message, optional, tag = "1")]
190    pub app: ::core::option::Option<ConnectApp>,
191}
192#[derive(Clone, Copy, PartialEq, ::prost::Message)]
193pub struct SearchConnectAppsOptions {
194    /// default is true
195    #[prost(bool, optional, tag = "1")]
196    pub is_descending: ::core::option::Option<bool>,
197    /// default is title
198    #[prost(enumeration = "SearchConnectAppsSortField", optional, tag = "2")]
199    pub sort_field: ::core::option::Option<i32>,
200}
201#[derive(Clone, PartialEq, ::prost::Message)]
202pub struct SearchConnectAppsRequest {
203    #[prost(message, optional, tag = "1")]
204    pub query: ::core::option::Option<ConnectAppSearchQuery>,
205    #[prost(message, optional, tag = "2")]
206    pub options: ::core::option::Option<SearchConnectAppsOptions>,
207    #[prost(int32, optional, tag = "3")]
208    pub page_size: ::core::option::Option<i32>,
209    #[prost(string, optional, tag = "4")]
210    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
211}
212#[derive(Clone, PartialEq, ::prost::Message)]
213pub struct SearchConnectAppsResponse {
214    #[prost(message, repeated, tag = "1")]
215    pub app_metadata: ::prost::alloc::vec::Vec<ConnectAppMetadata>,
216    #[prost(string, optional, tag = "2")]
217    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
218}
219#[derive(Clone, PartialEq, ::prost::Message)]
220pub struct ArchiveConnectAppsRequest {
221    #[prost(string, repeated, tag = "1")]
222    pub rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
223}
224#[derive(Clone, PartialEq, ::prost::Message)]
225pub struct UnarchiveConnectAppsRequest {
226    #[prost(string, repeated, tag = "1")]
227    pub rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
228}
229#[derive(Clone, PartialEq, ::prost::Message)]
230pub struct ArchiveConnectAppsResponse {
231    #[prost(string, repeated, tag = "1")]
232    pub rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
233}
234#[derive(Clone, PartialEq, ::prost::Message)]
235pub struct UnarchiveConnectAppsResponse {
236    #[prost(string, repeated, tag = "1")]
237    pub rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
238}
239#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
240#[repr(i32)]
241pub enum SearchConnectAppsSortField {
242    Unspecified = 0,
243    Title = 1,
244    CreatedAt = 2,
245    DisplayName = 3,
246}
247impl SearchConnectAppsSortField {
248    /// String value of the enum field names used in the ProtoBuf definition.
249    ///
250    /// The values are not transformed in any way and thus are considered stable
251    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
252    pub fn as_str_name(&self) -> &'static str {
253        match self {
254            Self::Unspecified => "SEARCH_CONNECT_APPS_SORT_FIELD_UNSPECIFIED",
255            Self::Title => "SEARCH_CONNECT_APPS_SORT_FIELD_TITLE",
256            Self::CreatedAt => "SEARCH_CONNECT_APPS_SORT_FIELD_CREATED_AT",
257            Self::DisplayName => "SEARCH_CONNECT_APPS_SORT_FIELD_DISPLAY_NAME",
258        }
259    }
260    /// Creates an enum from field names used in the ProtoBuf definition.
261    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
262        match value {
263            "SEARCH_CONNECT_APPS_SORT_FIELD_UNSPECIFIED" => Some(Self::Unspecified),
264            "SEARCH_CONNECT_APPS_SORT_FIELD_TITLE" => Some(Self::Title),
265            "SEARCH_CONNECT_APPS_SORT_FIELD_CREATED_AT" => Some(Self::CreatedAt),
266            "SEARCH_CONNECT_APPS_SORT_FIELD_DISPLAY_NAME" => Some(Self::DisplayName),
267            _ => None,
268        }
269    }
270}
271#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
272#[repr(i32)]
273pub enum ConnectAppsServiceError {
274    Unspecified = 0,
275    AppNotFound = 1,
276    CommitNotFound = 2,
277    CannotCommitToArchivedConnectApp = 3,
278    InvalidSearchToken = 4,
279    MissingBundle = 5,
280}
281impl ConnectAppsServiceError {
282    /// String value of the enum field names used in the ProtoBuf definition.
283    ///
284    /// The values are not transformed in any way and thus are considered stable
285    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
286    pub fn as_str_name(&self) -> &'static str {
287        match self {
288            Self::Unspecified => "CONNECT_APPS_SERVICE_ERROR_UNSPECIFIED",
289            Self::AppNotFound => "CONNECT_APPS_SERVICE_ERROR_APP_NOT_FOUND",
290            Self::CommitNotFound => "CONNECT_APPS_SERVICE_ERROR_COMMIT_NOT_FOUND",
291            Self::CannotCommitToArchivedConnectApp => {
292                "CONNECT_APPS_SERVICE_ERROR_CANNOT_COMMIT_TO_ARCHIVED_CONNECT_APP"
293            }
294            Self::InvalidSearchToken => "CONNECT_APPS_SERVICE_ERROR_INVALID_SEARCH_TOKEN",
295            Self::MissingBundle => "CONNECT_APPS_SERVICE_ERROR_MISSING_BUNDLE",
296        }
297    }
298    /// Creates an enum from field names used in the ProtoBuf definition.
299    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
300        match value {
301            "CONNECT_APPS_SERVICE_ERROR_UNSPECIFIED" => Some(Self::Unspecified),
302            "CONNECT_APPS_SERVICE_ERROR_APP_NOT_FOUND" => Some(Self::AppNotFound),
303            "CONNECT_APPS_SERVICE_ERROR_COMMIT_NOT_FOUND" => Some(Self::CommitNotFound),
304            "CONNECT_APPS_SERVICE_ERROR_CANNOT_COMMIT_TO_ARCHIVED_CONNECT_APP" => {
305                Some(Self::CannotCommitToArchivedConnectApp)
306            }
307            "CONNECT_APPS_SERVICE_ERROR_INVALID_SEARCH_TOKEN" => {
308                Some(Self::InvalidSearchToken)
309            }
310            "CONNECT_APPS_SERVICE_ERROR_MISSING_BUNDLE" => Some(Self::MissingBundle),
311            _ => None,
312        }
313    }
314}
315/// Generated client implementations.
316pub mod connect_apps_service_client {
317    #![allow(
318        unused_variables,
319        dead_code,
320        missing_docs,
321        clippy::wildcard_imports,
322        clippy::let_unit_value,
323    )]
324    use tonic::codegen::*;
325    use tonic::codegen::http::Uri;
326    /// Service for creating and managing Connect Apps
327    #[derive(Debug, Clone)]
328    pub struct ConnectAppsServiceClient<T> {
329        inner: tonic::client::Grpc<T>,
330    }
331    impl ConnectAppsServiceClient<tonic::transport::Channel> {
332        /// Attempt to create a new client by connecting to a given endpoint.
333        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
334        where
335            D: TryInto<tonic::transport::Endpoint>,
336            D::Error: Into<StdError>,
337        {
338            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
339            Ok(Self::new(conn))
340        }
341    }
342    impl<T> ConnectAppsServiceClient<T>
343    where
344        T: tonic::client::GrpcService<tonic::body::Body>,
345        T::Error: Into<StdError>,
346        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
347        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
348    {
349        pub fn new(inner: T) -> Self {
350            let inner = tonic::client::Grpc::new(inner);
351            Self { inner }
352        }
353        pub fn with_origin(inner: T, origin: Uri) -> Self {
354            let inner = tonic::client::Grpc::with_origin(inner, origin);
355            Self { inner }
356        }
357        pub fn with_interceptor<F>(
358            inner: T,
359            interceptor: F,
360        ) -> ConnectAppsServiceClient<InterceptedService<T, F>>
361        where
362            F: tonic::service::Interceptor,
363            T::ResponseBody: Default,
364            T: tonic::codegen::Service<
365                http::Request<tonic::body::Body>,
366                Response = http::Response<
367                    <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
368                >,
369            >,
370            <T as tonic::codegen::Service<
371                http::Request<tonic::body::Body>,
372            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
373        {
374            ConnectAppsServiceClient::new(InterceptedService::new(inner, interceptor))
375        }
376        /// Compress requests with the given encoding.
377        ///
378        /// This requires the server to support it otherwise it might respond with an
379        /// error.
380        #[must_use]
381        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
382            self.inner = self.inner.send_compressed(encoding);
383            self
384        }
385        /// Enable decompressing responses.
386        #[must_use]
387        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
388            self.inner = self.inner.accept_compressed(encoding);
389            self
390        }
391        /// Limits the maximum size of a decoded message.
392        ///
393        /// Default: `4MB`
394        #[must_use]
395        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
396            self.inner = self.inner.max_decoding_message_size(limit);
397            self
398        }
399        /// Limits the maximum size of an encoded message.
400        ///
401        /// Default: `usize::MAX`
402        #[must_use]
403        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
404            self.inner = self.inner.max_encoding_message_size(limit);
405            self
406        }
407        /// Create a new Connect App, either with a bundle file or as an empty app
408        pub async fn create_connect_app(
409            &mut self,
410            request: impl tonic::IntoRequest<super::CreateConnectAppRequest>,
411        ) -> std::result::Result<
412            tonic::Response<super::CreateConnectAppResponse>,
413            tonic::Status,
414        > {
415            self.inner
416                .ready()
417                .await
418                .map_err(|e| {
419                    tonic::Status::unknown(
420                        format!("Service was not ready: {}", e.into()),
421                    )
422                })?;
423            let codec = tonic::codec::ProstCodec::default();
424            let path = http::uri::PathAndQuery::from_static(
425                "/nominal.connect.v1.ConnectAppsService/CreateConnectApp",
426            );
427            let mut req = request.into_request();
428            req.extensions_mut()
429                .insert(
430                    GrpcMethod::new(
431                        "nominal.connect.v1.ConnectAppsService",
432                        "CreateConnectApp",
433                    ),
434                );
435            self.inner.unary(req, path, codec).await
436        }
437        /// Get a Connect App by its RID
438        pub async fn get_connect_app(
439            &mut self,
440            request: impl tonic::IntoRequest<super::GetConnectAppRequest>,
441        ) -> std::result::Result<
442            tonic::Response<super::GetConnectAppResponse>,
443            tonic::Status,
444        > {
445            self.inner
446                .ready()
447                .await
448                .map_err(|e| {
449                    tonic::Status::unknown(
450                        format!("Service was not ready: {}", e.into()),
451                    )
452                })?;
453            let codec = tonic::codec::ProstCodec::default();
454            let path = http::uri::PathAndQuery::from_static(
455                "/nominal.connect.v1.ConnectAppsService/GetConnectApp",
456            );
457            let mut req = request.into_request();
458            req.extensions_mut()
459                .insert(
460                    GrpcMethod::new(
461                        "nominal.connect.v1.ConnectAppsService",
462                        "GetConnectApp",
463                    ),
464                );
465            self.inner.unary(req, path, codec).await
466        }
467        /// Update metadata fields of a Connect App
468        pub async fn update_connect_app_metadata(
469            &mut self,
470            request: impl tonic::IntoRequest<super::UpdateConnectAppMetadataRequest>,
471        ) -> std::result::Result<
472            tonic::Response<super::UpdateConnectAppMetadataResponse>,
473            tonic::Status,
474        > {
475            self.inner
476                .ready()
477                .await
478                .map_err(|e| {
479                    tonic::Status::unknown(
480                        format!("Service was not ready: {}", e.into()),
481                    )
482                })?;
483            let codec = tonic::codec::ProstCodec::default();
484            let path = http::uri::PathAndQuery::from_static(
485                "/nominal.connect.v1.ConnectAppsService/UpdateConnectAppMetadata",
486            );
487            let mut req = request.into_request();
488            req.extensions_mut()
489                .insert(
490                    GrpcMethod::new(
491                        "nominal.connect.v1.ConnectAppsService",
492                        "UpdateConnectAppMetadata",
493                    ),
494                );
495            self.inner.unary(req, path, codec).await
496        }
497        /// Commit a bundle to the main branch
498        pub async fn commit(
499            &mut self,
500            request: impl tonic::IntoRequest<super::CommitRequest>,
501        ) -> std::result::Result<tonic::Response<super::CommitResponse>, tonic::Status> {
502            self.inner
503                .ready()
504                .await
505                .map_err(|e| {
506                    tonic::Status::unknown(
507                        format!("Service was not ready: {}", e.into()),
508                    )
509                })?;
510            let codec = tonic::codec::ProstCodec::default();
511            let path = http::uri::PathAndQuery::from_static(
512                "/nominal.connect.v1.ConnectAppsService/Commit",
513            );
514            let mut req = request.into_request();
515            req.extensions_mut()
516                .insert(
517                    GrpcMethod::new("nominal.connect.v1.ConnectAppsService", "Commit"),
518                );
519            self.inner.unary(req, path, codec).await
520        }
521        /// Searches for Connect Apps, returning paged results
522        pub async fn search_connect_apps(
523            &mut self,
524            request: impl tonic::IntoRequest<super::SearchConnectAppsRequest>,
525        ) -> std::result::Result<
526            tonic::Response<super::SearchConnectAppsResponse>,
527            tonic::Status,
528        > {
529            self.inner
530                .ready()
531                .await
532                .map_err(|e| {
533                    tonic::Status::unknown(
534                        format!("Service was not ready: {}", e.into()),
535                    )
536                })?;
537            let codec = tonic::codec::ProstCodec::default();
538            let path = http::uri::PathAndQuery::from_static(
539                "/nominal.connect.v1.ConnectAppsService/SearchConnectApps",
540            );
541            let mut req = request.into_request();
542            req.extensions_mut()
543                .insert(
544                    GrpcMethod::new(
545                        "nominal.connect.v1.ConnectAppsService",
546                        "SearchConnectApps",
547                    ),
548                );
549            self.inner.unary(req, path, codec).await
550        }
551        /// Archive Connect Apps
552        pub async fn archive_connect_apps(
553            &mut self,
554            request: impl tonic::IntoRequest<super::ArchiveConnectAppsRequest>,
555        ) -> std::result::Result<
556            tonic::Response<super::ArchiveConnectAppsResponse>,
557            tonic::Status,
558        > {
559            self.inner
560                .ready()
561                .await
562                .map_err(|e| {
563                    tonic::Status::unknown(
564                        format!("Service was not ready: {}", e.into()),
565                    )
566                })?;
567            let codec = tonic::codec::ProstCodec::default();
568            let path = http::uri::PathAndQuery::from_static(
569                "/nominal.connect.v1.ConnectAppsService/ArchiveConnectApps",
570            );
571            let mut req = request.into_request();
572            req.extensions_mut()
573                .insert(
574                    GrpcMethod::new(
575                        "nominal.connect.v1.ConnectAppsService",
576                        "ArchiveConnectApps",
577                    ),
578                );
579            self.inner.unary(req, path, codec).await
580        }
581        /// Unarchive Connect Apps
582        pub async fn unarchive_connect_apps(
583            &mut self,
584            request: impl tonic::IntoRequest<super::UnarchiveConnectAppsRequest>,
585        ) -> std::result::Result<
586            tonic::Response<super::UnarchiveConnectAppsResponse>,
587            tonic::Status,
588        > {
589            self.inner
590                .ready()
591                .await
592                .map_err(|e| {
593                    tonic::Status::unknown(
594                        format!("Service was not ready: {}", e.into()),
595                    )
596                })?;
597            let codec = tonic::codec::ProstCodec::default();
598            let path = http::uri::PathAndQuery::from_static(
599                "/nominal.connect.v1.ConnectAppsService/UnarchiveConnectApps",
600            );
601            let mut req = request.into_request();
602            req.extensions_mut()
603                .insert(
604                    GrpcMethod::new(
605                        "nominal.connect.v1.ConnectAppsService",
606                        "UnarchiveConnectApps",
607                    ),
608                );
609            self.inner.unary(req, path, codec).await
610        }
611        /// Get a pre-signed URL for downloading the bundle of a Connect App at a specific commit or the latest commit on the main branch
612        pub async fn get_connect_app_bundle_download_url(
613            &mut self,
614            request: impl tonic::IntoRequest<
615                super::GetConnectAppBundleDownloadUrlRequest,
616            >,
617        ) -> std::result::Result<
618            tonic::Response<super::GetConnectAppBundleDownloadUrlResponse>,
619            tonic::Status,
620        > {
621            self.inner
622                .ready()
623                .await
624                .map_err(|e| {
625                    tonic::Status::unknown(
626                        format!("Service was not ready: {}", e.into()),
627                    )
628                })?;
629            let codec = tonic::codec::ProstCodec::default();
630            let path = http::uri::PathAndQuery::from_static(
631                "/nominal.connect.v1.ConnectAppsService/GetConnectAppBundleDownloadUrl",
632            );
633            let mut req = request.into_request();
634            req.extensions_mut()
635                .insert(
636                    GrpcMethod::new(
637                        "nominal.connect.v1.ConnectAppsService",
638                        "GetConnectAppBundleDownloadUrl",
639                    ),
640                );
641            self.inner.unary(req, path, codec).await
642        }
643    }
644}