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