1#[derive(Clone, PartialEq, ::prost::Message)]
3pub struct ApiProxy {
4 #[prost(string, tag = "1")]
5 pub rid: ::prost::alloc::string::String,
6 #[prost(string, tag = "2")]
7 pub workspace_rid: ::prost::alloc::string::String,
8 #[prost(string, tag = "3")]
9 pub name: ::prost::alloc::string::String,
10 #[prost(string, tag = "4")]
11 pub base_url: ::prost::alloc::string::String,
12 #[prost(enumeration = "ApiProxyProtocol", tag = "5")]
13 pub protocol: i32,
14 #[prost(enumeration = "ApiProxyInteraction", tag = "6")]
15 pub interaction: i32,
16 #[prost(enumeration = "ApiProxyBodyFormat", tag = "7")]
17 pub body_format: i32,
18 #[prost(enumeration = "ApiProxyAuthKind", tag = "8")]
19 pub auth_kind: i32,
20 #[prost(string, tag = "9")]
21 pub created_by_user_rid: ::prost::alloc::string::String,
22 #[prost(message, optional, tag = "10")]
23 pub created_at: ::core::option::Option<
24 super::super::super::google::protobuf::Timestamp,
25 >,
26 #[prost(message, optional, tag = "11")]
27 pub updated_at: ::core::option::Option<
28 super::super::super::google::protobuf::Timestamp,
29 >,
30}
31#[derive(Clone, PartialEq, ::prost::Message)]
32pub struct CreateApiProxyRequest {
33 #[prost(string, tag = "1")]
34 pub workspace_rid: ::prost::alloc::string::String,
35 #[prost(string, tag = "2")]
36 pub name: ::prost::alloc::string::String,
37 #[prost(string, tag = "3")]
38 pub base_url: ::prost::alloc::string::String,
39 #[prost(enumeration = "ApiProxyProtocol", tag = "4")]
40 pub protocol: i32,
41 #[prost(enumeration = "ApiProxyInteraction", tag = "5")]
42 pub interaction: i32,
43 #[prost(enumeration = "ApiProxyBodyFormat", tag = "6")]
44 pub body_format: i32,
45 #[prost(enumeration = "ApiProxyAuthKind", tag = "7")]
46 pub auth_kind: i32,
47 #[prost(string, optional, tag = "8")]
48 pub auth_secret_rid: ::core::option::Option<::prost::alloc::string::String>,
49}
50#[derive(Clone, PartialEq, ::prost::Message)]
51pub struct CreateApiProxyResponse {
52 #[prost(message, optional, tag = "1")]
53 pub api_proxy: ::core::option::Option<ApiProxy>,
54}
55#[derive(Clone, PartialEq, ::prost::Message)]
56pub struct GetApiProxyRequest {
57 #[prost(string, tag = "1")]
58 pub api_proxy_rid: ::prost::alloc::string::String,
59}
60#[derive(Clone, PartialEq, ::prost::Message)]
61pub struct GetApiProxyResponse {
62 #[prost(message, optional, tag = "1")]
63 pub api_proxy: ::core::option::Option<ApiProxy>,
64}
65#[derive(Clone, PartialEq, ::prost::Message)]
66pub struct DeleteApiProxyRequest {
67 #[prost(string, tag = "1")]
68 pub api_proxy_rid: ::prost::alloc::string::String,
69}
70#[derive(Clone, Copy, PartialEq, ::prost::Message)]
71pub struct DeleteApiProxyResponse {}
72#[derive(Clone, PartialEq, ::prost::Message)]
73pub struct ListApiProxiesRequest {
74 #[prost(string, tag = "1")]
75 pub workspace_rid: ::prost::alloc::string::String,
76 #[prost(int32, optional, tag = "2")]
77 pub page_size: ::core::option::Option<i32>,
78 #[prost(string, optional, tag = "3")]
79 pub page_token: ::core::option::Option<::prost::alloc::string::String>,
80}
81#[derive(Clone, PartialEq, ::prost::Message)]
82pub struct ListApiProxiesResponse {
83 #[prost(message, repeated, tag = "1")]
84 pub api_proxies: ::prost::alloc::vec::Vec<ApiProxy>,
85 #[prost(string, optional, tag = "2")]
86 pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
87}
88#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
89#[repr(i32)]
90pub enum ApiProxyProtocol {
91 Unspecified = 0,
92 Http = 1,
93}
94impl ApiProxyProtocol {
95 pub fn as_str_name(&self) -> &'static str {
100 match self {
101 Self::Unspecified => "API_PROXY_PROTOCOL_UNSPECIFIED",
102 Self::Http => "API_PROXY_PROTOCOL_HTTP",
103 }
104 }
105 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
107 match value {
108 "API_PROXY_PROTOCOL_UNSPECIFIED" => Some(Self::Unspecified),
109 "API_PROXY_PROTOCOL_HTTP" => Some(Self::Http),
110 _ => None,
111 }
112 }
113}
114#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
115#[repr(i32)]
116pub enum ApiProxyInteraction {
117 Unspecified = 0,
118 Unary = 1,
119}
120impl ApiProxyInteraction {
121 pub fn as_str_name(&self) -> &'static str {
126 match self {
127 Self::Unspecified => "API_PROXY_INTERACTION_UNSPECIFIED",
128 Self::Unary => "API_PROXY_INTERACTION_UNARY",
129 }
130 }
131 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
133 match value {
134 "API_PROXY_INTERACTION_UNSPECIFIED" => Some(Self::Unspecified),
135 "API_PROXY_INTERACTION_UNARY" => Some(Self::Unary),
136 _ => None,
137 }
138 }
139}
140#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
141#[repr(i32)]
142pub enum ApiProxyBodyFormat {
143 Unspecified = 0,
144 Json = 1,
145}
146impl ApiProxyBodyFormat {
147 pub fn as_str_name(&self) -> &'static str {
152 match self {
153 Self::Unspecified => "API_PROXY_BODY_FORMAT_UNSPECIFIED",
154 Self::Json => "API_PROXY_BODY_FORMAT_JSON",
155 }
156 }
157 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
159 match value {
160 "API_PROXY_BODY_FORMAT_UNSPECIFIED" => Some(Self::Unspecified),
161 "API_PROXY_BODY_FORMAT_JSON" => Some(Self::Json),
162 _ => None,
163 }
164 }
165}
166#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
167#[repr(i32)]
168pub enum ApiProxyAuthKind {
169 Unspecified = 0,
170 None = 1,
171 BearerToken = 2,
172 Basic = 3,
173}
174impl ApiProxyAuthKind {
175 pub fn as_str_name(&self) -> &'static str {
180 match self {
181 Self::Unspecified => "API_PROXY_AUTH_KIND_UNSPECIFIED",
182 Self::None => "API_PROXY_AUTH_KIND_NONE",
183 Self::BearerToken => "API_PROXY_AUTH_KIND_BEARER_TOKEN",
184 Self::Basic => "API_PROXY_AUTH_KIND_BASIC",
185 }
186 }
187 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
189 match value {
190 "API_PROXY_AUTH_KIND_UNSPECIFIED" => Some(Self::Unspecified),
191 "API_PROXY_AUTH_KIND_NONE" => Some(Self::None),
192 "API_PROXY_AUTH_KIND_BEARER_TOKEN" => Some(Self::BearerToken),
193 "API_PROXY_AUTH_KIND_BASIC" => Some(Self::Basic),
194 _ => None,
195 }
196 }
197}
198pub mod api_proxy_service_client {
200 #![allow(
201 unused_variables,
202 dead_code,
203 missing_docs,
204 clippy::wildcard_imports,
205 clippy::let_unit_value,
206 )]
207 use tonic::codegen::*;
208 use tonic::codegen::http::Uri;
209 #[derive(Debug, Clone)]
210 pub struct ApiProxyServiceClient<T> {
211 inner: tonic::client::Grpc<T>,
212 }
213 impl ApiProxyServiceClient<tonic::transport::Channel> {
214 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
216 where
217 D: TryInto<tonic::transport::Endpoint>,
218 D::Error: Into<StdError>,
219 {
220 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
221 Ok(Self::new(conn))
222 }
223 }
224 impl<T> ApiProxyServiceClient<T>
225 where
226 T: tonic::client::GrpcService<tonic::body::Body>,
227 T::Error: Into<StdError>,
228 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
229 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
230 {
231 pub fn new(inner: T) -> Self {
232 let inner = tonic::client::Grpc::new(inner);
233 Self { inner }
234 }
235 pub fn with_origin(inner: T, origin: Uri) -> Self {
236 let inner = tonic::client::Grpc::with_origin(inner, origin);
237 Self { inner }
238 }
239 pub fn with_interceptor<F>(
240 inner: T,
241 interceptor: F,
242 ) -> ApiProxyServiceClient<InterceptedService<T, F>>
243 where
244 F: tonic::service::Interceptor,
245 T::ResponseBody: Default,
246 T: tonic::codegen::Service<
247 http::Request<tonic::body::Body>,
248 Response = http::Response<
249 <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
250 >,
251 >,
252 <T as tonic::codegen::Service<
253 http::Request<tonic::body::Body>,
254 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
255 {
256 ApiProxyServiceClient::new(InterceptedService::new(inner, interceptor))
257 }
258 #[must_use]
263 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
264 self.inner = self.inner.send_compressed(encoding);
265 self
266 }
267 #[must_use]
269 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
270 self.inner = self.inner.accept_compressed(encoding);
271 self
272 }
273 #[must_use]
277 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
278 self.inner = self.inner.max_decoding_message_size(limit);
279 self
280 }
281 #[must_use]
285 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
286 self.inner = self.inner.max_encoding_message_size(limit);
287 self
288 }
289 pub async fn create_api_proxy(
290 &mut self,
291 request: impl tonic::IntoRequest<super::CreateApiProxyRequest>,
292 ) -> std::result::Result<
293 tonic::Response<super::CreateApiProxyResponse>,
294 tonic::Status,
295 > {
296 self.inner
297 .ready()
298 .await
299 .map_err(|e| {
300 tonic::Status::unknown(
301 format!("Service was not ready: {}", e.into()),
302 )
303 })?;
304 let codec = tonic::codec::ProstCodec::default();
305 let path = http::uri::PathAndQuery::from_static(
306 "/nominal.nova.v1.ApiProxyService/CreateApiProxy",
307 );
308 let mut req = request.into_request();
309 req.extensions_mut()
310 .insert(
311 GrpcMethod::new("nominal.nova.v1.ApiProxyService", "CreateApiProxy"),
312 );
313 self.inner.unary(req, path, codec).await
314 }
315 pub async fn get_api_proxy(
316 &mut self,
317 request: impl tonic::IntoRequest<super::GetApiProxyRequest>,
318 ) -> std::result::Result<
319 tonic::Response<super::GetApiProxyResponse>,
320 tonic::Status,
321 > {
322 self.inner
323 .ready()
324 .await
325 .map_err(|e| {
326 tonic::Status::unknown(
327 format!("Service was not ready: {}", e.into()),
328 )
329 })?;
330 let codec = tonic::codec::ProstCodec::default();
331 let path = http::uri::PathAndQuery::from_static(
332 "/nominal.nova.v1.ApiProxyService/GetApiProxy",
333 );
334 let mut req = request.into_request();
335 req.extensions_mut()
336 .insert(
337 GrpcMethod::new("nominal.nova.v1.ApiProxyService", "GetApiProxy"),
338 );
339 self.inner.unary(req, path, codec).await
340 }
341 pub async fn list_api_proxies(
342 &mut self,
343 request: impl tonic::IntoRequest<super::ListApiProxiesRequest>,
344 ) -> std::result::Result<
345 tonic::Response<super::ListApiProxiesResponse>,
346 tonic::Status,
347 > {
348 self.inner
349 .ready()
350 .await
351 .map_err(|e| {
352 tonic::Status::unknown(
353 format!("Service was not ready: {}", e.into()),
354 )
355 })?;
356 let codec = tonic::codec::ProstCodec::default();
357 let path = http::uri::PathAndQuery::from_static(
358 "/nominal.nova.v1.ApiProxyService/ListApiProxies",
359 );
360 let mut req = request.into_request();
361 req.extensions_mut()
362 .insert(
363 GrpcMethod::new("nominal.nova.v1.ApiProxyService", "ListApiProxies"),
364 );
365 self.inner.unary(req, path, codec).await
366 }
367 pub async fn delete_api_proxy(
368 &mut self,
369 request: impl tonic::IntoRequest<super::DeleteApiProxyRequest>,
370 ) -> std::result::Result<
371 tonic::Response<super::DeleteApiProxyResponse>,
372 tonic::Status,
373 > {
374 self.inner
375 .ready()
376 .await
377 .map_err(|e| {
378 tonic::Status::unknown(
379 format!("Service was not ready: {}", e.into()),
380 )
381 })?;
382 let codec = tonic::codec::ProstCodec::default();
383 let path = http::uri::PathAndQuery::from_static(
384 "/nominal.nova.v1.ApiProxyService/DeleteApiProxy",
385 );
386 let mut req = request.into_request();
387 req.extensions_mut()
388 .insert(
389 GrpcMethod::new("nominal.nova.v1.ApiProxyService", "DeleteApiProxy"),
390 );
391 self.inner.unary(req, path, codec).await
392 }
393 }
394}
395#[derive(Clone, PartialEq, ::prost::Message)]
396pub struct App {
397 #[prost(string, tag = "1")]
398 pub rid: ::prost::alloc::string::String,
399 #[prost(string, tag = "2")]
400 pub workspace_rid: ::prost::alloc::string::String,
401 #[prost(string, tag = "3")]
402 pub name: ::prost::alloc::string::String,
403 #[prost(string, tag = "4")]
404 pub title: ::prost::alloc::string::String,
405 #[prost(string, tag = "5")]
406 pub description: ::prost::alloc::string::String,
407 #[prost(string, repeated, tag = "6")]
408 pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
409 #[prost(map = "string, string", tag = "7")]
410 pub properties: ::std::collections::HashMap<
411 ::prost::alloc::string::String,
412 ::prost::alloc::string::String,
413 >,
414 #[prost(string, tag = "8")]
415 pub created_by_user_rid: ::prost::alloc::string::String,
416 #[prost(message, optional, tag = "9")]
417 pub created_at: ::core::option::Option<
418 super::super::super::google::protobuf::Timestamp,
419 >,
420 #[prost(message, optional, tag = "10")]
421 pub updated_at: ::core::option::Option<
422 super::super::super::google::protobuf::Timestamp,
423 >,
424 #[prost(bool, optional, tag = "11")]
425 pub is_archived: ::core::option::Option<bool>,
426 #[deprecated]
427 #[prost(string, optional, tag = "12")]
428 pub embed_path: ::core::option::Option<::prost::alloc::string::String>,
429 #[deprecated]
430 #[prost(string, optional, tag = "13")]
431 pub archive_sha256: ::core::option::Option<::prost::alloc::string::String>,
432 #[prost(string, optional, tag = "14")]
433 pub default_version_rid: ::core::option::Option<::prost::alloc::string::String>,
434}
435#[derive(Clone, PartialEq, ::prost::Message)]
436pub struct BundleSignature {
437 #[prost(string, tag = "1")]
438 pub key_id: ::prost::alloc::string::String,
439 #[prost(bytes = "vec", tag = "2")]
440 pub signature: ::prost::alloc::vec::Vec<u8>,
441}
442#[derive(Clone, PartialEq, ::prost::Message)]
443pub struct SignedAppBundle {
444 #[prost(string, tag = "1")]
445 pub upload_object_key: ::prost::alloc::string::String,
446 #[prost(message, optional, tag = "2")]
447 pub signature: ::core::option::Option<BundleSignature>,
448}
449#[derive(Clone, PartialEq, ::prost::Message)]
450pub struct CreateAppRequest {
451 #[prost(message, optional, tag = "1")]
452 pub app: ::core::option::Option<App>,
453 #[deprecated]
454 #[prost(message, optional, tag = "2")]
455 pub signed_bundle: ::core::option::Option<SignedAppBundle>,
456}
457#[derive(Clone, PartialEq, ::prost::Message)]
458pub struct CreateAppResponse {
459 #[prost(message, optional, tag = "1")]
460 pub app: ::core::option::Option<App>,
461}
462#[derive(Clone, PartialEq, ::prost::Message)]
463pub struct GetAppRequest {
464 #[prost(string, tag = "1")]
465 pub app_rid: ::prost::alloc::string::String,
466}
467#[derive(Clone, PartialEq, ::prost::Message)]
468pub struct GetAppResponse {
469 #[prost(message, optional, tag = "1")]
470 pub app: ::core::option::Option<App>,
471}
472#[derive(Clone, PartialEq, ::prost::Message)]
473pub struct UpdateAppRequest {
474 #[prost(string, tag = "1")]
475 pub app_rid: ::prost::alloc::string::String,
476 #[prost(message, optional, tag = "2")]
477 pub app: ::core::option::Option<App>,
478 #[deprecated]
479 #[prost(message, optional, tag = "3")]
480 pub signed_bundle: ::core::option::Option<SignedAppBundle>,
481 #[prost(message, optional, tag = "4")]
482 pub update_mask: ::core::option::Option<
483 super::super::super::google::protobuf::FieldMask,
484 >,
485}
486#[derive(Clone, PartialEq, ::prost::Message)]
487pub struct UpdateAppResponse {
488 #[prost(message, optional, tag = "1")]
489 pub app: ::core::option::Option<App>,
490}
491#[derive(Clone, PartialEq, ::prost::Message)]
492pub struct DeleteAppRequest {
493 #[prost(string, tag = "1")]
494 pub app_rid: ::prost::alloc::string::String,
495}
496#[derive(Clone, Copy, PartialEq, ::prost::Message)]
497pub struct DeleteAppResponse {}
498#[derive(Clone, PartialEq, ::prost::Message)]
499pub struct AppSearchFilter {
500 #[prost(string, optional, tag = "1")]
501 pub name_contains: ::core::option::Option<::prost::alloc::string::String>,
502 #[prost(bool, optional, tag = "2")]
503 pub include_archived: ::core::option::Option<bool>,
504 #[prost(string, repeated, tag = "3")]
505 pub created_by_user_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
506 #[prost(string, repeated, tag = "4")]
507 pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
508}
509#[derive(Clone, PartialEq, ::prost::Message)]
510pub struct SearchAppsRequest {
511 #[prost(string, tag = "1")]
512 pub workspace_rid: ::prost::alloc::string::String,
513 #[prost(message, optional, tag = "2")]
514 pub filter: ::core::option::Option<AppSearchFilter>,
515 #[prost(enumeration = "SearchAppsSortField", tag = "3")]
516 pub sort_field: i32,
517 #[prost(bool, tag = "4")]
518 pub descending: bool,
519 #[prost(int32, optional, tag = "5")]
520 pub page_size: ::core::option::Option<i32>,
521 #[prost(string, optional, tag = "6")]
522 pub page_token: ::core::option::Option<::prost::alloc::string::String>,
523}
524#[derive(Clone, PartialEq, ::prost::Message)]
525pub struct SearchAppsResponse {
526 #[prost(message, repeated, tag = "1")]
527 pub apps: ::prost::alloc::vec::Vec<App>,
528 #[prost(string, optional, tag = "2")]
529 pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
530}
531#[derive(Clone, PartialEq, ::prost::Message)]
532pub struct SearchAppLabelsRequest {
533 #[prost(string, tag = "1")]
534 pub workspace_rid: ::prost::alloc::string::String,
535 #[prost(int32, optional, tag = "2")]
536 pub page_size: ::core::option::Option<i32>,
537 #[prost(string, optional, tag = "3")]
538 pub page_token: ::core::option::Option<::prost::alloc::string::String>,
539}
540#[derive(Clone, PartialEq, ::prost::Message)]
541pub struct SearchAppLabelsResponse {
542 #[prost(string, repeated, tag = "1")]
543 pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
544 #[prost(string, optional, tag = "2")]
545 pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
546}
547#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
548#[repr(i32)]
549pub enum NovaError {
550 AppNotFound = 0,
551 AppNameTaken = 1,
552 AppNameImmutable = 2,
553 ServerAssignedFieldSet = 3,
554 InvalidPageToken = 4,
555 InvalidBundle = 5,
556 BundleVerificationFailed = 6,
557 AppUpdateConflict = 7,
558 ApiProxyNotFound = 8,
559 ApiProxyNameTaken = 9,
560 ApiProxyInUse = 10,
561 AppProxyExists = 11,
562 AppArchived = 12,
563 AppVersionNotFound = 13,
564 AppVersionTagTaken = 14,
565 AppVersionImmutable = 15,
566 AppVersionNotReleased = 16,
567 AppVersionNotActive = 17,
568 AppVersionArchived = 18,
569 AppVersionIsDefault = 19,
570 AppVersionNotArchived = 20,
571}
572impl NovaError {
573 pub fn as_str_name(&self) -> &'static str {
578 match self {
579 Self::AppNotFound => "NOVA_ERROR_APP_NOT_FOUND",
580 Self::AppNameTaken => "NOVA_ERROR_APP_NAME_TAKEN",
581 Self::AppNameImmutable => "NOVA_ERROR_APP_NAME_IMMUTABLE",
582 Self::ServerAssignedFieldSet => "NOVA_ERROR_SERVER_ASSIGNED_FIELD_SET",
583 Self::InvalidPageToken => "NOVA_ERROR_INVALID_PAGE_TOKEN",
584 Self::InvalidBundle => "NOVA_ERROR_INVALID_BUNDLE",
585 Self::BundleVerificationFailed => "NOVA_ERROR_BUNDLE_VERIFICATION_FAILED",
586 Self::AppUpdateConflict => "NOVA_ERROR_APP_UPDATE_CONFLICT",
587 Self::ApiProxyNotFound => "NOVA_ERROR_API_PROXY_NOT_FOUND",
588 Self::ApiProxyNameTaken => "NOVA_ERROR_API_PROXY_NAME_TAKEN",
589 Self::ApiProxyInUse => "NOVA_ERROR_API_PROXY_IN_USE",
590 Self::AppProxyExists => "NOVA_ERROR_APP_PROXY_EXISTS",
591 Self::AppArchived => "NOVA_ERROR_APP_ARCHIVED",
592 Self::AppVersionNotFound => "NOVA_ERROR_APP_VERSION_NOT_FOUND",
593 Self::AppVersionTagTaken => "NOVA_ERROR_APP_VERSION_TAG_TAKEN",
594 Self::AppVersionImmutable => "NOVA_ERROR_APP_VERSION_IMMUTABLE",
595 Self::AppVersionNotReleased => "NOVA_ERROR_APP_VERSION_NOT_RELEASED",
596 Self::AppVersionNotActive => "NOVA_ERROR_APP_VERSION_NOT_ACTIVE",
597 Self::AppVersionArchived => "NOVA_ERROR_APP_VERSION_ARCHIVED",
598 Self::AppVersionIsDefault => "NOVA_ERROR_APP_VERSION_IS_DEFAULT",
599 Self::AppVersionNotArchived => "NOVA_ERROR_APP_VERSION_NOT_ARCHIVED",
600 }
601 }
602 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
604 match value {
605 "NOVA_ERROR_APP_NOT_FOUND" => Some(Self::AppNotFound),
606 "NOVA_ERROR_APP_NAME_TAKEN" => Some(Self::AppNameTaken),
607 "NOVA_ERROR_APP_NAME_IMMUTABLE" => Some(Self::AppNameImmutable),
608 "NOVA_ERROR_SERVER_ASSIGNED_FIELD_SET" => Some(Self::ServerAssignedFieldSet),
609 "NOVA_ERROR_INVALID_PAGE_TOKEN" => Some(Self::InvalidPageToken),
610 "NOVA_ERROR_INVALID_BUNDLE" => Some(Self::InvalidBundle),
611 "NOVA_ERROR_BUNDLE_VERIFICATION_FAILED" => {
612 Some(Self::BundleVerificationFailed)
613 }
614 "NOVA_ERROR_APP_UPDATE_CONFLICT" => Some(Self::AppUpdateConflict),
615 "NOVA_ERROR_API_PROXY_NOT_FOUND" => Some(Self::ApiProxyNotFound),
616 "NOVA_ERROR_API_PROXY_NAME_TAKEN" => Some(Self::ApiProxyNameTaken),
617 "NOVA_ERROR_API_PROXY_IN_USE" => Some(Self::ApiProxyInUse),
618 "NOVA_ERROR_APP_PROXY_EXISTS" => Some(Self::AppProxyExists),
619 "NOVA_ERROR_APP_ARCHIVED" => Some(Self::AppArchived),
620 "NOVA_ERROR_APP_VERSION_NOT_FOUND" => Some(Self::AppVersionNotFound),
621 "NOVA_ERROR_APP_VERSION_TAG_TAKEN" => Some(Self::AppVersionTagTaken),
622 "NOVA_ERROR_APP_VERSION_IMMUTABLE" => Some(Self::AppVersionImmutable),
623 "NOVA_ERROR_APP_VERSION_NOT_RELEASED" => Some(Self::AppVersionNotReleased),
624 "NOVA_ERROR_APP_VERSION_NOT_ACTIVE" => Some(Self::AppVersionNotActive),
625 "NOVA_ERROR_APP_VERSION_ARCHIVED" => Some(Self::AppVersionArchived),
626 "NOVA_ERROR_APP_VERSION_IS_DEFAULT" => Some(Self::AppVersionIsDefault),
627 "NOVA_ERROR_APP_VERSION_NOT_ARCHIVED" => Some(Self::AppVersionNotArchived),
628 _ => None,
629 }
630 }
631}
632#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
633#[repr(i32)]
634pub enum SearchAppsSortField {
635 Unspecified = 0,
636 Title = 1,
637 CreatedAt = 2,
638 UpdatedAt = 3,
639}
640impl SearchAppsSortField {
641 pub fn as_str_name(&self) -> &'static str {
646 match self {
647 Self::Unspecified => "SEARCH_APPS_SORT_FIELD_UNSPECIFIED",
648 Self::Title => "SEARCH_APPS_SORT_FIELD_TITLE",
649 Self::CreatedAt => "SEARCH_APPS_SORT_FIELD_CREATED_AT",
650 Self::UpdatedAt => "SEARCH_APPS_SORT_FIELD_UPDATED_AT",
651 }
652 }
653 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
655 match value {
656 "SEARCH_APPS_SORT_FIELD_UNSPECIFIED" => Some(Self::Unspecified),
657 "SEARCH_APPS_SORT_FIELD_TITLE" => Some(Self::Title),
658 "SEARCH_APPS_SORT_FIELD_CREATED_AT" => Some(Self::CreatedAt),
659 "SEARCH_APPS_SORT_FIELD_UPDATED_AT" => Some(Self::UpdatedAt),
660 _ => None,
661 }
662 }
663}
664pub mod nova_service_client {
666 #![allow(
667 unused_variables,
668 dead_code,
669 missing_docs,
670 clippy::wildcard_imports,
671 clippy::let_unit_value,
672 )]
673 use tonic::codegen::*;
674 use tonic::codegen::http::Uri;
675 #[derive(Debug, Clone)]
676 pub struct NovaServiceClient<T> {
677 inner: tonic::client::Grpc<T>,
678 }
679 impl NovaServiceClient<tonic::transport::Channel> {
680 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
682 where
683 D: TryInto<tonic::transport::Endpoint>,
684 D::Error: Into<StdError>,
685 {
686 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
687 Ok(Self::new(conn))
688 }
689 }
690 impl<T> NovaServiceClient<T>
691 where
692 T: tonic::client::GrpcService<tonic::body::Body>,
693 T::Error: Into<StdError>,
694 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
695 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
696 {
697 pub fn new(inner: T) -> Self {
698 let inner = tonic::client::Grpc::new(inner);
699 Self { inner }
700 }
701 pub fn with_origin(inner: T, origin: Uri) -> Self {
702 let inner = tonic::client::Grpc::with_origin(inner, origin);
703 Self { inner }
704 }
705 pub fn with_interceptor<F>(
706 inner: T,
707 interceptor: F,
708 ) -> NovaServiceClient<InterceptedService<T, F>>
709 where
710 F: tonic::service::Interceptor,
711 T::ResponseBody: Default,
712 T: tonic::codegen::Service<
713 http::Request<tonic::body::Body>,
714 Response = http::Response<
715 <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
716 >,
717 >,
718 <T as tonic::codegen::Service<
719 http::Request<tonic::body::Body>,
720 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
721 {
722 NovaServiceClient::new(InterceptedService::new(inner, interceptor))
723 }
724 #[must_use]
729 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
730 self.inner = self.inner.send_compressed(encoding);
731 self
732 }
733 #[must_use]
735 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
736 self.inner = self.inner.accept_compressed(encoding);
737 self
738 }
739 #[must_use]
743 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
744 self.inner = self.inner.max_decoding_message_size(limit);
745 self
746 }
747 #[must_use]
751 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
752 self.inner = self.inner.max_encoding_message_size(limit);
753 self
754 }
755 pub async fn create_app(
756 &mut self,
757 request: impl tonic::IntoRequest<super::CreateAppRequest>,
758 ) -> std::result::Result<
759 tonic::Response<super::CreateAppResponse>,
760 tonic::Status,
761 > {
762 self.inner
763 .ready()
764 .await
765 .map_err(|e| {
766 tonic::Status::unknown(
767 format!("Service was not ready: {}", e.into()),
768 )
769 })?;
770 let codec = tonic::codec::ProstCodec::default();
771 let path = http::uri::PathAndQuery::from_static(
772 "/nominal.nova.v1.NovaService/CreateApp",
773 );
774 let mut req = request.into_request();
775 req.extensions_mut()
776 .insert(GrpcMethod::new("nominal.nova.v1.NovaService", "CreateApp"));
777 self.inner.unary(req, path, codec).await
778 }
779 pub async fn get_app(
780 &mut self,
781 request: impl tonic::IntoRequest<super::GetAppRequest>,
782 ) -> std::result::Result<tonic::Response<super::GetAppResponse>, tonic::Status> {
783 self.inner
784 .ready()
785 .await
786 .map_err(|e| {
787 tonic::Status::unknown(
788 format!("Service was not ready: {}", e.into()),
789 )
790 })?;
791 let codec = tonic::codec::ProstCodec::default();
792 let path = http::uri::PathAndQuery::from_static(
793 "/nominal.nova.v1.NovaService/GetApp",
794 );
795 let mut req = request.into_request();
796 req.extensions_mut()
797 .insert(GrpcMethod::new("nominal.nova.v1.NovaService", "GetApp"));
798 self.inner.unary(req, path, codec).await
799 }
800 pub async fn update_app(
801 &mut self,
802 request: impl tonic::IntoRequest<super::UpdateAppRequest>,
803 ) -> std::result::Result<
804 tonic::Response<super::UpdateAppResponse>,
805 tonic::Status,
806 > {
807 self.inner
808 .ready()
809 .await
810 .map_err(|e| {
811 tonic::Status::unknown(
812 format!("Service was not ready: {}", e.into()),
813 )
814 })?;
815 let codec = tonic::codec::ProstCodec::default();
816 let path = http::uri::PathAndQuery::from_static(
817 "/nominal.nova.v1.NovaService/UpdateApp",
818 );
819 let mut req = request.into_request();
820 req.extensions_mut()
821 .insert(GrpcMethod::new("nominal.nova.v1.NovaService", "UpdateApp"));
822 self.inner.unary(req, path, codec).await
823 }
824 pub async fn delete_app(
825 &mut self,
826 request: impl tonic::IntoRequest<super::DeleteAppRequest>,
827 ) -> std::result::Result<
828 tonic::Response<super::DeleteAppResponse>,
829 tonic::Status,
830 > {
831 self.inner
832 .ready()
833 .await
834 .map_err(|e| {
835 tonic::Status::unknown(
836 format!("Service was not ready: {}", e.into()),
837 )
838 })?;
839 let codec = tonic::codec::ProstCodec::default();
840 let path = http::uri::PathAndQuery::from_static(
841 "/nominal.nova.v1.NovaService/DeleteApp",
842 );
843 let mut req = request.into_request();
844 req.extensions_mut()
845 .insert(GrpcMethod::new("nominal.nova.v1.NovaService", "DeleteApp"));
846 self.inner.unary(req, path, codec).await
847 }
848 pub async fn search_apps(
849 &mut self,
850 request: impl tonic::IntoRequest<super::SearchAppsRequest>,
851 ) -> std::result::Result<
852 tonic::Response<super::SearchAppsResponse>,
853 tonic::Status,
854 > {
855 self.inner
856 .ready()
857 .await
858 .map_err(|e| {
859 tonic::Status::unknown(
860 format!("Service was not ready: {}", e.into()),
861 )
862 })?;
863 let codec = tonic::codec::ProstCodec::default();
864 let path = http::uri::PathAndQuery::from_static(
865 "/nominal.nova.v1.NovaService/SearchApps",
866 );
867 let mut req = request.into_request();
868 req.extensions_mut()
869 .insert(GrpcMethod::new("nominal.nova.v1.NovaService", "SearchApps"));
870 self.inner.unary(req, path, codec).await
871 }
872 pub async fn search_app_labels(
873 &mut self,
874 request: impl tonic::IntoRequest<super::SearchAppLabelsRequest>,
875 ) -> std::result::Result<
876 tonic::Response<super::SearchAppLabelsResponse>,
877 tonic::Status,
878 > {
879 self.inner
880 .ready()
881 .await
882 .map_err(|e| {
883 tonic::Status::unknown(
884 format!("Service was not ready: {}", e.into()),
885 )
886 })?;
887 let codec = tonic::codec::ProstCodec::default();
888 let path = http::uri::PathAndQuery::from_static(
889 "/nominal.nova.v1.NovaService/SearchAppLabels",
890 );
891 let mut req = request.into_request();
892 req.extensions_mut()
893 .insert(
894 GrpcMethod::new("nominal.nova.v1.NovaService", "SearchAppLabels"),
895 );
896 self.inner.unary(req, path, codec).await
897 }
898 }
899}
900#[derive(Clone, PartialEq, ::prost::Message)]
901pub struct AppProxy {
902 #[prost(string, tag = "1")]
903 pub app_rid: ::prost::alloc::string::String,
904 #[prost(string, tag = "2")]
905 pub api_proxy_rid: ::prost::alloc::string::String,
906 #[prost(message, optional, tag = "3")]
907 pub created_at: ::core::option::Option<
908 super::super::super::google::protobuf::Timestamp,
909 >,
910}
911#[derive(Clone, PartialEq, ::prost::Message)]
912pub struct CreateAppProxyRequest {
913 #[prost(string, tag = "1")]
914 pub app_rid: ::prost::alloc::string::String,
915 #[prost(string, tag = "2")]
916 pub api_proxy_rid: ::prost::alloc::string::String,
917}
918#[derive(Clone, PartialEq, ::prost::Message)]
919pub struct CreateAppProxyResponse {
920 #[prost(message, optional, tag = "1")]
921 pub app_proxy: ::core::option::Option<AppProxy>,
922}
923#[derive(Clone, PartialEq, ::prost::Message)]
924pub struct DeleteAppProxyRequest {
925 #[prost(string, tag = "1")]
926 pub app_rid: ::prost::alloc::string::String,
927 #[prost(string, tag = "2")]
928 pub api_proxy_rid: ::prost::alloc::string::String,
929}
930#[derive(Clone, Copy, PartialEq, ::prost::Message)]
931pub struct DeleteAppProxyResponse {}
932#[derive(Clone, PartialEq, ::prost::Message)]
933pub struct ListAppProxiesRequest {
934 #[prost(string, tag = "1")]
935 pub app_rid: ::prost::alloc::string::String,
936 #[prost(int32, optional, tag = "2")]
937 pub page_size: ::core::option::Option<i32>,
938 #[prost(string, optional, tag = "3")]
939 pub page_token: ::core::option::Option<::prost::alloc::string::String>,
940}
941#[derive(Clone, PartialEq, ::prost::Message)]
942pub struct ListAppProxiesResponse {
943 #[prost(message, repeated, tag = "1")]
944 pub app_proxies: ::prost::alloc::vec::Vec<AppProxy>,
945 #[prost(string, optional, tag = "2")]
946 pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
947}
948pub mod app_proxy_service_client {
950 #![allow(
951 unused_variables,
952 dead_code,
953 missing_docs,
954 clippy::wildcard_imports,
955 clippy::let_unit_value,
956 )]
957 use tonic::codegen::*;
958 use tonic::codegen::http::Uri;
959 #[derive(Debug, Clone)]
960 pub struct AppProxyServiceClient<T> {
961 inner: tonic::client::Grpc<T>,
962 }
963 impl AppProxyServiceClient<tonic::transport::Channel> {
964 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
966 where
967 D: TryInto<tonic::transport::Endpoint>,
968 D::Error: Into<StdError>,
969 {
970 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
971 Ok(Self::new(conn))
972 }
973 }
974 impl<T> AppProxyServiceClient<T>
975 where
976 T: tonic::client::GrpcService<tonic::body::Body>,
977 T::Error: Into<StdError>,
978 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
979 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
980 {
981 pub fn new(inner: T) -> Self {
982 let inner = tonic::client::Grpc::new(inner);
983 Self { inner }
984 }
985 pub fn with_origin(inner: T, origin: Uri) -> Self {
986 let inner = tonic::client::Grpc::with_origin(inner, origin);
987 Self { inner }
988 }
989 pub fn with_interceptor<F>(
990 inner: T,
991 interceptor: F,
992 ) -> AppProxyServiceClient<InterceptedService<T, F>>
993 where
994 F: tonic::service::Interceptor,
995 T::ResponseBody: Default,
996 T: tonic::codegen::Service<
997 http::Request<tonic::body::Body>,
998 Response = http::Response<
999 <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
1000 >,
1001 >,
1002 <T as tonic::codegen::Service<
1003 http::Request<tonic::body::Body>,
1004 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
1005 {
1006 AppProxyServiceClient::new(InterceptedService::new(inner, interceptor))
1007 }
1008 #[must_use]
1013 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1014 self.inner = self.inner.send_compressed(encoding);
1015 self
1016 }
1017 #[must_use]
1019 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1020 self.inner = self.inner.accept_compressed(encoding);
1021 self
1022 }
1023 #[must_use]
1027 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1028 self.inner = self.inner.max_decoding_message_size(limit);
1029 self
1030 }
1031 #[must_use]
1035 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1036 self.inner = self.inner.max_encoding_message_size(limit);
1037 self
1038 }
1039 pub async fn create_app_proxy(
1040 &mut self,
1041 request: impl tonic::IntoRequest<super::CreateAppProxyRequest>,
1042 ) -> std::result::Result<
1043 tonic::Response<super::CreateAppProxyResponse>,
1044 tonic::Status,
1045 > {
1046 self.inner
1047 .ready()
1048 .await
1049 .map_err(|e| {
1050 tonic::Status::unknown(
1051 format!("Service was not ready: {}", e.into()),
1052 )
1053 })?;
1054 let codec = tonic::codec::ProstCodec::default();
1055 let path = http::uri::PathAndQuery::from_static(
1056 "/nominal.nova.v1.AppProxyService/CreateAppProxy",
1057 );
1058 let mut req = request.into_request();
1059 req.extensions_mut()
1060 .insert(
1061 GrpcMethod::new("nominal.nova.v1.AppProxyService", "CreateAppProxy"),
1062 );
1063 self.inner.unary(req, path, codec).await
1064 }
1065 pub async fn delete_app_proxy(
1066 &mut self,
1067 request: impl tonic::IntoRequest<super::DeleteAppProxyRequest>,
1068 ) -> std::result::Result<
1069 tonic::Response<super::DeleteAppProxyResponse>,
1070 tonic::Status,
1071 > {
1072 self.inner
1073 .ready()
1074 .await
1075 .map_err(|e| {
1076 tonic::Status::unknown(
1077 format!("Service was not ready: {}", e.into()),
1078 )
1079 })?;
1080 let codec = tonic::codec::ProstCodec::default();
1081 let path = http::uri::PathAndQuery::from_static(
1082 "/nominal.nova.v1.AppProxyService/DeleteAppProxy",
1083 );
1084 let mut req = request.into_request();
1085 req.extensions_mut()
1086 .insert(
1087 GrpcMethod::new("nominal.nova.v1.AppProxyService", "DeleteAppProxy"),
1088 );
1089 self.inner.unary(req, path, codec).await
1090 }
1091 pub async fn list_app_proxies(
1092 &mut self,
1093 request: impl tonic::IntoRequest<super::ListAppProxiesRequest>,
1094 ) -> std::result::Result<
1095 tonic::Response<super::ListAppProxiesResponse>,
1096 tonic::Status,
1097 > {
1098 self.inner
1099 .ready()
1100 .await
1101 .map_err(|e| {
1102 tonic::Status::unknown(
1103 format!("Service was not ready: {}", e.into()),
1104 )
1105 })?;
1106 let codec = tonic::codec::ProstCodec::default();
1107 let path = http::uri::PathAndQuery::from_static(
1108 "/nominal.nova.v1.AppProxyService/ListAppProxies",
1109 );
1110 let mut req = request.into_request();
1111 req.extensions_mut()
1112 .insert(
1113 GrpcMethod::new("nominal.nova.v1.AppProxyService", "ListAppProxies"),
1114 );
1115 self.inner.unary(req, path, codec).await
1116 }
1117 }
1118}
1119#[derive(Clone, PartialEq, ::prost::Message)]
1120pub struct ArchivedStatusSet {
1121 #[prost(
1122 enumeration = "super::super::types::ArchivedStatus",
1123 repeated,
1124 packed = "false",
1125 tag = "1"
1126 )]
1127 pub archived_statuses: ::prost::alloc::vec::Vec<i32>,
1128}
1129#[derive(Clone, PartialEq, ::prost::Message)]
1130pub struct AppVersion {
1131 #[prost(string, tag = "1")]
1132 pub rid: ::prost::alloc::string::String,
1133 #[prost(string, tag = "2")]
1134 pub workspace_rid: ::prost::alloc::string::String,
1135 #[prost(string, tag = "3")]
1136 pub app_rid: ::prost::alloc::string::String,
1137 #[prost(string, tag = "4")]
1138 pub tag: ::prost::alloc::string::String,
1139 #[prost(enumeration = "AppBundleState", tag = "5")]
1140 pub bundle_state: i32,
1141 #[prost(string, tag = "7")]
1142 pub created_by_user_rid: ::prost::alloc::string::String,
1143 #[prost(message, optional, tag = "8")]
1144 pub created_at: ::core::option::Option<
1145 super::super::super::google::protobuf::Timestamp,
1146 >,
1147 #[prost(message, optional, tag = "9")]
1148 pub updated_at: ::core::option::Option<
1149 super::super::super::google::protobuf::Timestamp,
1150 >,
1151 #[prost(string, optional, tag = "10")]
1152 pub embed_path: ::core::option::Option<::prost::alloc::string::String>,
1153 #[prost(string, optional, tag = "11")]
1154 pub archive_sha256: ::core::option::Option<::prost::alloc::string::String>,
1155 #[prost(message, optional, tag = "12")]
1156 pub released_at: ::core::option::Option<
1157 super::super::super::google::protobuf::Timestamp,
1158 >,
1159 #[prost(message, optional, tag = "13")]
1160 pub archived_at: ::core::option::Option<
1161 super::super::super::google::protobuf::Timestamp,
1162 >,
1163 #[deprecated]
1164 #[prost(message, optional, tag = "14")]
1165 pub expires_at: ::core::option::Option<
1166 super::super::super::google::protobuf::Timestamp,
1167 >,
1168}
1169#[derive(Clone, PartialEq, ::prost::Message)]
1170pub struct CreateAppVersionRequest {
1171 #[prost(message, optional, tag = "1")]
1172 pub app_version: ::core::option::Option<AppVersion>,
1173 #[prost(message, optional, tag = "2")]
1174 pub signed_bundle: ::core::option::Option<SignedAppBundle>,
1175}
1176#[derive(Clone, PartialEq, ::prost::Message)]
1177pub struct CreateAppVersionResponse {
1178 #[prost(message, optional, tag = "1")]
1179 pub app_version: ::core::option::Option<AppVersion>,
1180}
1181#[derive(Clone, PartialEq, ::prost::Message)]
1182pub struct GetAppVersionRequest {
1183 #[prost(string, tag = "1")]
1184 pub app_version_rid: ::prost::alloc::string::String,
1185}
1186#[derive(Clone, PartialEq, ::prost::Message)]
1187pub struct GetAppVersionResponse {
1188 #[prost(message, optional, tag = "1")]
1189 pub app_version: ::core::option::Option<AppVersion>,
1190}
1191#[derive(Clone, PartialEq, ::prost::Message)]
1192pub struct UpdateAppVersionRequest {
1193 #[prost(string, tag = "1")]
1194 pub app_version_rid: ::prost::alloc::string::String,
1195 #[prost(message, optional, tag = "2")]
1196 pub app_version: ::core::option::Option<AppVersion>,
1197 #[deprecated]
1198 #[prost(message, optional, tag = "3")]
1199 pub signed_bundle: ::core::option::Option<SignedAppBundle>,
1200}
1201#[derive(Clone, PartialEq, ::prost::Message)]
1202pub struct UpdateAppVersionResponse {
1203 #[prost(message, optional, tag = "1")]
1204 pub app_version: ::core::option::Option<AppVersion>,
1205}
1206#[derive(Clone, PartialEq, ::prost::Message)]
1207pub struct DeleteAppVersionRequest {
1208 #[prost(string, tag = "1")]
1209 pub app_version_rid: ::prost::alloc::string::String,
1210}
1211#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1212pub struct DeleteAppVersionResponse {}
1213#[derive(Clone, PartialEq, ::prost::Message)]
1214pub struct ReleaseAppVersionRequest {
1215 #[prost(string, tag = "1")]
1216 pub app_version_rid: ::prost::alloc::string::String,
1217}
1218#[derive(Clone, PartialEq, ::prost::Message)]
1219pub struct ReleaseAppVersionResponse {
1220 #[prost(message, optional, tag = "1")]
1221 pub app_version: ::core::option::Option<AppVersion>,
1222}
1223#[derive(Clone, PartialEq, ::prost::Message)]
1224pub struct ArchiveAppVersionRequest {
1225 #[prost(string, tag = "1")]
1226 pub app_version_rid: ::prost::alloc::string::String,
1227}
1228#[derive(Clone, PartialEq, ::prost::Message)]
1229pub struct ArchiveAppVersionResponse {
1230 #[prost(message, optional, tag = "1")]
1231 pub app_version: ::core::option::Option<AppVersion>,
1232}
1233#[derive(Clone, PartialEq, ::prost::Message)]
1234pub struct UnarchiveAppVersionRequest {
1235 #[prost(string, tag = "1")]
1236 pub app_version_rid: ::prost::alloc::string::String,
1237}
1238#[derive(Clone, PartialEq, ::prost::Message)]
1239pub struct UnarchiveAppVersionResponse {
1240 #[prost(message, optional, tag = "1")]
1241 pub app_version: ::core::option::Option<AppVersion>,
1242}
1243#[derive(Clone, PartialEq, ::prost::Message)]
1244pub struct AppVersionSearchFilter {
1245 #[prost(string, optional, tag = "1")]
1246 pub tag: ::core::option::Option<::prost::alloc::string::String>,
1247 #[prost(enumeration = "AppBundleState", optional, tag = "2")]
1248 pub bundle_state: ::core::option::Option<i32>,
1249 #[prost(bool, optional, tag = "3")]
1250 pub is_released: ::core::option::Option<bool>,
1251 #[prost(message, optional, tag = "4")]
1252 pub archived_statuses: ::core::option::Option<ArchivedStatusSet>,
1253}
1254#[derive(Clone, PartialEq, ::prost::Message)]
1255pub struct SearchAppVersionsRequest {
1256 #[prost(string, tag = "1")]
1257 pub app_rid: ::prost::alloc::string::String,
1258 #[prost(message, optional, tag = "2")]
1259 pub filter: ::core::option::Option<AppVersionSearchFilter>,
1260 #[prost(int32, optional, tag = "3")]
1261 pub page_size: ::core::option::Option<i32>,
1262 #[prost(string, optional, tag = "4")]
1263 pub page_token: ::core::option::Option<::prost::alloc::string::String>,
1264}
1265#[derive(Clone, PartialEq, ::prost::Message)]
1266pub struct SearchAppVersionsResponse {
1267 #[prost(message, repeated, tag = "1")]
1268 pub app_versions: ::prost::alloc::vec::Vec<AppVersion>,
1269 #[prost(string, optional, tag = "2")]
1270 pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
1271}
1272#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1273#[repr(i32)]
1274pub enum AppBundleState {
1275 Unspecified = 0,
1276 Pending = 1,
1277 Scanning = 2,
1278 Active = 3,
1279 Failed = 4,
1280}
1281impl AppBundleState {
1282 pub fn as_str_name(&self) -> &'static str {
1287 match self {
1288 Self::Unspecified => "APP_BUNDLE_STATE_UNSPECIFIED",
1289 Self::Pending => "APP_BUNDLE_STATE_PENDING",
1290 Self::Scanning => "APP_BUNDLE_STATE_SCANNING",
1291 Self::Active => "APP_BUNDLE_STATE_ACTIVE",
1292 Self::Failed => "APP_BUNDLE_STATE_FAILED",
1293 }
1294 }
1295 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1297 match value {
1298 "APP_BUNDLE_STATE_UNSPECIFIED" => Some(Self::Unspecified),
1299 "APP_BUNDLE_STATE_PENDING" => Some(Self::Pending),
1300 "APP_BUNDLE_STATE_SCANNING" => Some(Self::Scanning),
1301 "APP_BUNDLE_STATE_ACTIVE" => Some(Self::Active),
1302 "APP_BUNDLE_STATE_FAILED" => Some(Self::Failed),
1303 _ => None,
1304 }
1305 }
1306}
1307pub mod app_version_service_client {
1309 #![allow(
1310 unused_variables,
1311 dead_code,
1312 missing_docs,
1313 clippy::wildcard_imports,
1314 clippy::let_unit_value,
1315 )]
1316 use tonic::codegen::*;
1317 use tonic::codegen::http::Uri;
1318 #[derive(Debug, Clone)]
1319 pub struct AppVersionServiceClient<T> {
1320 inner: tonic::client::Grpc<T>,
1321 }
1322 impl AppVersionServiceClient<tonic::transport::Channel> {
1323 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
1325 where
1326 D: TryInto<tonic::transport::Endpoint>,
1327 D::Error: Into<StdError>,
1328 {
1329 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
1330 Ok(Self::new(conn))
1331 }
1332 }
1333 impl<T> AppVersionServiceClient<T>
1334 where
1335 T: tonic::client::GrpcService<tonic::body::Body>,
1336 T::Error: Into<StdError>,
1337 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
1338 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
1339 {
1340 pub fn new(inner: T) -> Self {
1341 let inner = tonic::client::Grpc::new(inner);
1342 Self { inner }
1343 }
1344 pub fn with_origin(inner: T, origin: Uri) -> Self {
1345 let inner = tonic::client::Grpc::with_origin(inner, origin);
1346 Self { inner }
1347 }
1348 pub fn with_interceptor<F>(
1349 inner: T,
1350 interceptor: F,
1351 ) -> AppVersionServiceClient<InterceptedService<T, F>>
1352 where
1353 F: tonic::service::Interceptor,
1354 T::ResponseBody: Default,
1355 T: tonic::codegen::Service<
1356 http::Request<tonic::body::Body>,
1357 Response = http::Response<
1358 <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
1359 >,
1360 >,
1361 <T as tonic::codegen::Service<
1362 http::Request<tonic::body::Body>,
1363 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
1364 {
1365 AppVersionServiceClient::new(InterceptedService::new(inner, interceptor))
1366 }
1367 #[must_use]
1372 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1373 self.inner = self.inner.send_compressed(encoding);
1374 self
1375 }
1376 #[must_use]
1378 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1379 self.inner = self.inner.accept_compressed(encoding);
1380 self
1381 }
1382 #[must_use]
1386 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1387 self.inner = self.inner.max_decoding_message_size(limit);
1388 self
1389 }
1390 #[must_use]
1394 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1395 self.inner = self.inner.max_encoding_message_size(limit);
1396 self
1397 }
1398 pub async fn create_app_version(
1399 &mut self,
1400 request: impl tonic::IntoRequest<super::CreateAppVersionRequest>,
1401 ) -> std::result::Result<
1402 tonic::Response<super::CreateAppVersionResponse>,
1403 tonic::Status,
1404 > {
1405 self.inner
1406 .ready()
1407 .await
1408 .map_err(|e| {
1409 tonic::Status::unknown(
1410 format!("Service was not ready: {}", e.into()),
1411 )
1412 })?;
1413 let codec = tonic::codec::ProstCodec::default();
1414 let path = http::uri::PathAndQuery::from_static(
1415 "/nominal.nova.v1.AppVersionService/CreateAppVersion",
1416 );
1417 let mut req = request.into_request();
1418 req.extensions_mut()
1419 .insert(
1420 GrpcMethod::new(
1421 "nominal.nova.v1.AppVersionService",
1422 "CreateAppVersion",
1423 ),
1424 );
1425 self.inner.unary(req, path, codec).await
1426 }
1427 pub async fn get_app_version(
1428 &mut self,
1429 request: impl tonic::IntoRequest<super::GetAppVersionRequest>,
1430 ) -> std::result::Result<
1431 tonic::Response<super::GetAppVersionResponse>,
1432 tonic::Status,
1433 > {
1434 self.inner
1435 .ready()
1436 .await
1437 .map_err(|e| {
1438 tonic::Status::unknown(
1439 format!("Service was not ready: {}", e.into()),
1440 )
1441 })?;
1442 let codec = tonic::codec::ProstCodec::default();
1443 let path = http::uri::PathAndQuery::from_static(
1444 "/nominal.nova.v1.AppVersionService/GetAppVersion",
1445 );
1446 let mut req = request.into_request();
1447 req.extensions_mut()
1448 .insert(
1449 GrpcMethod::new("nominal.nova.v1.AppVersionService", "GetAppVersion"),
1450 );
1451 self.inner.unary(req, path, codec).await
1452 }
1453 #[deprecated]
1454 pub async fn update_app_version(
1455 &mut self,
1456 request: impl tonic::IntoRequest<super::UpdateAppVersionRequest>,
1457 ) -> std::result::Result<
1458 tonic::Response<super::UpdateAppVersionResponse>,
1459 tonic::Status,
1460 > {
1461 self.inner
1462 .ready()
1463 .await
1464 .map_err(|e| {
1465 tonic::Status::unknown(
1466 format!("Service was not ready: {}", e.into()),
1467 )
1468 })?;
1469 let codec = tonic::codec::ProstCodec::default();
1470 let path = http::uri::PathAndQuery::from_static(
1471 "/nominal.nova.v1.AppVersionService/UpdateAppVersion",
1472 );
1473 let mut req = request.into_request();
1474 req.extensions_mut()
1475 .insert(
1476 GrpcMethod::new(
1477 "nominal.nova.v1.AppVersionService",
1478 "UpdateAppVersion",
1479 ),
1480 );
1481 self.inner.unary(req, path, codec).await
1482 }
1483 pub async fn delete_app_version(
1484 &mut self,
1485 request: impl tonic::IntoRequest<super::DeleteAppVersionRequest>,
1486 ) -> std::result::Result<
1487 tonic::Response<super::DeleteAppVersionResponse>,
1488 tonic::Status,
1489 > {
1490 self.inner
1491 .ready()
1492 .await
1493 .map_err(|e| {
1494 tonic::Status::unknown(
1495 format!("Service was not ready: {}", e.into()),
1496 )
1497 })?;
1498 let codec = tonic::codec::ProstCodec::default();
1499 let path = http::uri::PathAndQuery::from_static(
1500 "/nominal.nova.v1.AppVersionService/DeleteAppVersion",
1501 );
1502 let mut req = request.into_request();
1503 req.extensions_mut()
1504 .insert(
1505 GrpcMethod::new(
1506 "nominal.nova.v1.AppVersionService",
1507 "DeleteAppVersion",
1508 ),
1509 );
1510 self.inner.unary(req, path, codec).await
1511 }
1512 #[deprecated]
1513 pub async fn release_app_version(
1514 &mut self,
1515 request: impl tonic::IntoRequest<super::ReleaseAppVersionRequest>,
1516 ) -> std::result::Result<
1517 tonic::Response<super::ReleaseAppVersionResponse>,
1518 tonic::Status,
1519 > {
1520 self.inner
1521 .ready()
1522 .await
1523 .map_err(|e| {
1524 tonic::Status::unknown(
1525 format!("Service was not ready: {}", e.into()),
1526 )
1527 })?;
1528 let codec = tonic::codec::ProstCodec::default();
1529 let path = http::uri::PathAndQuery::from_static(
1530 "/nominal.nova.v1.AppVersionService/ReleaseAppVersion",
1531 );
1532 let mut req = request.into_request();
1533 req.extensions_mut()
1534 .insert(
1535 GrpcMethod::new(
1536 "nominal.nova.v1.AppVersionService",
1537 "ReleaseAppVersion",
1538 ),
1539 );
1540 self.inner.unary(req, path, codec).await
1541 }
1542 pub async fn archive_app_version(
1543 &mut self,
1544 request: impl tonic::IntoRequest<super::ArchiveAppVersionRequest>,
1545 ) -> std::result::Result<
1546 tonic::Response<super::ArchiveAppVersionResponse>,
1547 tonic::Status,
1548 > {
1549 self.inner
1550 .ready()
1551 .await
1552 .map_err(|e| {
1553 tonic::Status::unknown(
1554 format!("Service was not ready: {}", e.into()),
1555 )
1556 })?;
1557 let codec = tonic::codec::ProstCodec::default();
1558 let path = http::uri::PathAndQuery::from_static(
1559 "/nominal.nova.v1.AppVersionService/ArchiveAppVersion",
1560 );
1561 let mut req = request.into_request();
1562 req.extensions_mut()
1563 .insert(
1564 GrpcMethod::new(
1565 "nominal.nova.v1.AppVersionService",
1566 "ArchiveAppVersion",
1567 ),
1568 );
1569 self.inner.unary(req, path, codec).await
1570 }
1571 pub async fn unarchive_app_version(
1572 &mut self,
1573 request: impl tonic::IntoRequest<super::UnarchiveAppVersionRequest>,
1574 ) -> std::result::Result<
1575 tonic::Response<super::UnarchiveAppVersionResponse>,
1576 tonic::Status,
1577 > {
1578 self.inner
1579 .ready()
1580 .await
1581 .map_err(|e| {
1582 tonic::Status::unknown(
1583 format!("Service was not ready: {}", e.into()),
1584 )
1585 })?;
1586 let codec = tonic::codec::ProstCodec::default();
1587 let path = http::uri::PathAndQuery::from_static(
1588 "/nominal.nova.v1.AppVersionService/UnarchiveAppVersion",
1589 );
1590 let mut req = request.into_request();
1591 req.extensions_mut()
1592 .insert(
1593 GrpcMethod::new(
1594 "nominal.nova.v1.AppVersionService",
1595 "UnarchiveAppVersion",
1596 ),
1597 );
1598 self.inner.unary(req, path, codec).await
1599 }
1600 pub async fn search_app_versions(
1601 &mut self,
1602 request: impl tonic::IntoRequest<super::SearchAppVersionsRequest>,
1603 ) -> std::result::Result<
1604 tonic::Response<super::SearchAppVersionsResponse>,
1605 tonic::Status,
1606 > {
1607 self.inner
1608 .ready()
1609 .await
1610 .map_err(|e| {
1611 tonic::Status::unknown(
1612 format!("Service was not ready: {}", e.into()),
1613 )
1614 })?;
1615 let codec = tonic::codec::ProstCodec::default();
1616 let path = http::uri::PathAndQuery::from_static(
1617 "/nominal.nova.v1.AppVersionService/SearchAppVersions",
1618 );
1619 let mut req = request.into_request();
1620 req.extensions_mut()
1621 .insert(
1622 GrpcMethod::new(
1623 "nominal.nova.v1.AppVersionService",
1624 "SearchAppVersions",
1625 ),
1626 );
1627 self.inner.unary(req, path, codec).await
1628 }
1629 }
1630}
1631#[derive(Clone, PartialEq, ::prost::Message)]
1632pub struct KeyValueEntry {
1633 #[prost(string, tag = "1")]
1634 pub app_rid: ::prost::alloc::string::String,
1635 #[prost(string, tag = "2")]
1636 pub key: ::prost::alloc::string::String,
1637 #[prost(message, optional, tag = "3")]
1638 pub value: ::core::option::Option<super::super::super::google::protobuf::Value>,
1639 #[prost(message, optional, tag = "4")]
1640 pub created_at: ::core::option::Option<
1641 super::super::super::google::protobuf::Timestamp,
1642 >,
1643 #[prost(message, optional, tag = "5")]
1644 pub updated_at: ::core::option::Option<
1645 super::super::super::google::protobuf::Timestamp,
1646 >,
1647 #[prost(int64, tag = "6")]
1648 pub version: i64,
1649}
1650#[derive(Clone, PartialEq, ::prost::Message)]
1651pub struct CreateKeyValueEntryRequest {
1652 #[prost(string, tag = "1")]
1653 pub app_rid: ::prost::alloc::string::String,
1654 #[prost(string, tag = "2")]
1655 pub key: ::prost::alloc::string::String,
1656 #[prost(message, optional, tag = "3")]
1657 pub value: ::core::option::Option<super::super::super::google::protobuf::Value>,
1658}
1659#[derive(Clone, PartialEq, ::prost::Message)]
1660pub struct CreateKeyValueEntryResponse {
1661 #[prost(message, optional, tag = "1")]
1662 pub key_value_entry: ::core::option::Option<KeyValueEntry>,
1663}
1664#[derive(Clone, PartialEq, ::prost::Message)]
1665pub struct UpdateKeyValueEntryRequest {
1666 #[prost(string, tag = "1")]
1667 pub app_rid: ::prost::alloc::string::String,
1668 #[prost(string, tag = "2")]
1669 pub key: ::prost::alloc::string::String,
1670 #[prost(message, optional, tag = "3")]
1671 pub value: ::core::option::Option<super::super::super::google::protobuf::Value>,
1672 #[prost(int64, optional, tag = "4")]
1673 pub expected_version: ::core::option::Option<i64>,
1674}
1675#[derive(Clone, PartialEq, ::prost::Message)]
1676pub struct UpdateKeyValueEntryResponse {
1677 #[prost(message, optional, tag = "1")]
1678 pub key_value_entry: ::core::option::Option<KeyValueEntry>,
1679}
1680#[derive(Clone, PartialEq, ::prost::Message)]
1681pub struct GetKeyValueEntryRequest {
1682 #[prost(string, tag = "1")]
1683 pub app_rid: ::prost::alloc::string::String,
1684 #[prost(string, tag = "2")]
1685 pub key: ::prost::alloc::string::String,
1686}
1687#[derive(Clone, PartialEq, ::prost::Message)]
1688pub struct GetKeyValueEntryResponse {
1689 #[prost(message, optional, tag = "1")]
1690 pub key_value_entry: ::core::option::Option<KeyValueEntry>,
1691}
1692#[derive(Clone, PartialEq, ::prost::Message)]
1693pub struct DeleteKeyValueEntryRequest {
1694 #[prost(string, tag = "1")]
1695 pub app_rid: ::prost::alloc::string::String,
1696 #[prost(string, tag = "2")]
1697 pub key: ::prost::alloc::string::String,
1698}
1699#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1700pub struct DeleteKeyValueEntryResponse {}
1701#[derive(Clone, PartialEq, ::prost::Message)]
1702pub struct BatchGetKeyValueEntriesRequest {
1703 #[prost(string, tag = "1")]
1704 pub app_rid: ::prost::alloc::string::String,
1705 #[prost(string, repeated, tag = "2")]
1706 pub keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1707}
1708#[derive(Clone, PartialEq, ::prost::Message)]
1709pub struct BatchGetKeyValueEntriesResponse {
1710 #[prost(message, repeated, tag = "1")]
1711 pub key_value_entries: ::prost::alloc::vec::Vec<KeyValueEntry>,
1712}
1713#[derive(Clone, PartialEq, ::prost::Message)]
1714pub struct BatchCreateKeyValueEntriesRequest {
1715 #[prost(string, tag = "1")]
1716 pub app_rid: ::prost::alloc::string::String,
1717 #[prost(message, repeated, tag = "2")]
1718 pub writes: ::prost::alloc::vec::Vec<KeyValueEntryWrite>,
1719}
1720#[derive(Clone, PartialEq, ::prost::Message)]
1721pub struct BatchCreateKeyValueEntriesResponse {
1722 #[prost(message, repeated, tag = "1")]
1723 pub key_value_entries: ::prost::alloc::vec::Vec<KeyValueEntry>,
1724}
1725#[derive(Clone, PartialEq, ::prost::Message)]
1726pub struct KeyValueEntryWrite {
1727 #[prost(string, tag = "1")]
1728 pub key: ::prost::alloc::string::String,
1729 #[prost(message, optional, tag = "2")]
1730 pub value: ::core::option::Option<super::super::super::google::protobuf::Value>,
1731 #[prost(int64, optional, tag = "3")]
1732 pub expected_version: ::core::option::Option<i64>,
1733}
1734#[derive(Clone, PartialEq, ::prost::Message)]
1735pub struct BatchUpdateKeyValueEntriesRequest {
1736 #[prost(string, tag = "1")]
1737 pub app_rid: ::prost::alloc::string::String,
1738 #[prost(message, repeated, tag = "2")]
1739 pub writes: ::prost::alloc::vec::Vec<KeyValueEntryWrite>,
1740}
1741#[derive(Clone, PartialEq, ::prost::Message)]
1742pub struct BatchUpdateKeyValueEntriesResponse {
1743 #[prost(message, repeated, tag = "1")]
1744 pub key_value_entries: ::prost::alloc::vec::Vec<KeyValueEntry>,
1745}
1746#[derive(Clone, PartialEq, ::prost::Message)]
1747pub struct BatchDeleteKeyValueEntriesRequest {
1748 #[prost(string, tag = "1")]
1749 pub app_rid: ::prost::alloc::string::String,
1750 #[prost(string, repeated, tag = "2")]
1751 pub keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1752}
1753#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1754pub struct BatchDeleteKeyValueEntriesResponse {}
1755#[derive(Clone, PartialEq, ::prost::Message)]
1756pub struct SearchKeyValueEntriesRequest {
1757 #[prost(string, tag = "1")]
1758 pub app_rid: ::prost::alloc::string::String,
1759 #[prost(string, optional, tag = "2")]
1760 pub key_prefix: ::core::option::Option<::prost::alloc::string::String>,
1761 #[prost(int32, optional, tag = "3")]
1762 pub page_size: ::core::option::Option<i32>,
1763 #[prost(string, optional, tag = "4")]
1764 pub page_token: ::core::option::Option<::prost::alloc::string::String>,
1765}
1766#[derive(Clone, PartialEq, ::prost::Message)]
1767pub struct SearchKeyValueEntriesResponse {
1768 #[prost(message, repeated, tag = "1")]
1769 pub key_value_entries: ::prost::alloc::vec::Vec<KeyValueEntry>,
1770 #[prost(string, optional, tag = "2")]
1771 pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
1772}
1773#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1774#[repr(i32)]
1775pub enum NovaKeyValueError {
1776 VersionConflict = 0,
1777 QuotaExceeded = 1,
1778 RateLimited = 2,
1779 AppArchived = 3,
1780 ValueTooLarge = 4,
1781 EntryAlreadyExists = 6,
1782 EntryNotFound = 5,
1783}
1784impl NovaKeyValueError {
1785 pub fn as_str_name(&self) -> &'static str {
1790 match self {
1791 Self::VersionConflict => "NOVA_KEY_VALUE_ERROR_VERSION_CONFLICT",
1792 Self::QuotaExceeded => "NOVA_KEY_VALUE_ERROR_QUOTA_EXCEEDED",
1793 Self::RateLimited => "NOVA_KEY_VALUE_ERROR_RATE_LIMITED",
1794 Self::AppArchived => "NOVA_KEY_VALUE_ERROR_APP_ARCHIVED",
1795 Self::ValueTooLarge => "NOVA_KEY_VALUE_ERROR_VALUE_TOO_LARGE",
1796 Self::EntryAlreadyExists => "NOVA_KEY_VALUE_ERROR_ENTRY_ALREADY_EXISTS",
1797 Self::EntryNotFound => "NOVA_KEY_VALUE_ERROR_ENTRY_NOT_FOUND",
1798 }
1799 }
1800 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1802 match value {
1803 "NOVA_KEY_VALUE_ERROR_VERSION_CONFLICT" => Some(Self::VersionConflict),
1804 "NOVA_KEY_VALUE_ERROR_QUOTA_EXCEEDED" => Some(Self::QuotaExceeded),
1805 "NOVA_KEY_VALUE_ERROR_RATE_LIMITED" => Some(Self::RateLimited),
1806 "NOVA_KEY_VALUE_ERROR_APP_ARCHIVED" => Some(Self::AppArchived),
1807 "NOVA_KEY_VALUE_ERROR_VALUE_TOO_LARGE" => Some(Self::ValueTooLarge),
1808 "NOVA_KEY_VALUE_ERROR_ENTRY_ALREADY_EXISTS" => Some(Self::EntryAlreadyExists),
1809 "NOVA_KEY_VALUE_ERROR_ENTRY_NOT_FOUND" => Some(Self::EntryNotFound),
1810 _ => None,
1811 }
1812 }
1813}
1814pub mod nova_key_value_service_client {
1816 #![allow(
1817 unused_variables,
1818 dead_code,
1819 missing_docs,
1820 clippy::wildcard_imports,
1821 clippy::let_unit_value,
1822 )]
1823 use tonic::codegen::*;
1824 use tonic::codegen::http::Uri;
1825 #[derive(Debug, Clone)]
1826 pub struct NovaKeyValueServiceClient<T> {
1827 inner: tonic::client::Grpc<T>,
1828 }
1829 impl NovaKeyValueServiceClient<tonic::transport::Channel> {
1830 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
1832 where
1833 D: TryInto<tonic::transport::Endpoint>,
1834 D::Error: Into<StdError>,
1835 {
1836 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
1837 Ok(Self::new(conn))
1838 }
1839 }
1840 impl<T> NovaKeyValueServiceClient<T>
1841 where
1842 T: tonic::client::GrpcService<tonic::body::Body>,
1843 T::Error: Into<StdError>,
1844 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
1845 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
1846 {
1847 pub fn new(inner: T) -> Self {
1848 let inner = tonic::client::Grpc::new(inner);
1849 Self { inner }
1850 }
1851 pub fn with_origin(inner: T, origin: Uri) -> Self {
1852 let inner = tonic::client::Grpc::with_origin(inner, origin);
1853 Self { inner }
1854 }
1855 pub fn with_interceptor<F>(
1856 inner: T,
1857 interceptor: F,
1858 ) -> NovaKeyValueServiceClient<InterceptedService<T, F>>
1859 where
1860 F: tonic::service::Interceptor,
1861 T::ResponseBody: Default,
1862 T: tonic::codegen::Service<
1863 http::Request<tonic::body::Body>,
1864 Response = http::Response<
1865 <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
1866 >,
1867 >,
1868 <T as tonic::codegen::Service<
1869 http::Request<tonic::body::Body>,
1870 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
1871 {
1872 NovaKeyValueServiceClient::new(InterceptedService::new(inner, interceptor))
1873 }
1874 #[must_use]
1879 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1880 self.inner = self.inner.send_compressed(encoding);
1881 self
1882 }
1883 #[must_use]
1885 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1886 self.inner = self.inner.accept_compressed(encoding);
1887 self
1888 }
1889 #[must_use]
1893 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1894 self.inner = self.inner.max_decoding_message_size(limit);
1895 self
1896 }
1897 #[must_use]
1901 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1902 self.inner = self.inner.max_encoding_message_size(limit);
1903 self
1904 }
1905 pub async fn create_key_value_entry(
1906 &mut self,
1907 request: impl tonic::IntoRequest<super::CreateKeyValueEntryRequest>,
1908 ) -> std::result::Result<
1909 tonic::Response<super::CreateKeyValueEntryResponse>,
1910 tonic::Status,
1911 > {
1912 self.inner
1913 .ready()
1914 .await
1915 .map_err(|e| {
1916 tonic::Status::unknown(
1917 format!("Service was not ready: {}", e.into()),
1918 )
1919 })?;
1920 let codec = tonic::codec::ProstCodec::default();
1921 let path = http::uri::PathAndQuery::from_static(
1922 "/nominal.nova.v1.NovaKeyValueService/CreateKeyValueEntry",
1923 );
1924 let mut req = request.into_request();
1925 req.extensions_mut()
1926 .insert(
1927 GrpcMethod::new(
1928 "nominal.nova.v1.NovaKeyValueService",
1929 "CreateKeyValueEntry",
1930 ),
1931 );
1932 self.inner.unary(req, path, codec).await
1933 }
1934 pub async fn update_key_value_entry(
1935 &mut self,
1936 request: impl tonic::IntoRequest<super::UpdateKeyValueEntryRequest>,
1937 ) -> std::result::Result<
1938 tonic::Response<super::UpdateKeyValueEntryResponse>,
1939 tonic::Status,
1940 > {
1941 self.inner
1942 .ready()
1943 .await
1944 .map_err(|e| {
1945 tonic::Status::unknown(
1946 format!("Service was not ready: {}", e.into()),
1947 )
1948 })?;
1949 let codec = tonic::codec::ProstCodec::default();
1950 let path = http::uri::PathAndQuery::from_static(
1951 "/nominal.nova.v1.NovaKeyValueService/UpdateKeyValueEntry",
1952 );
1953 let mut req = request.into_request();
1954 req.extensions_mut()
1955 .insert(
1956 GrpcMethod::new(
1957 "nominal.nova.v1.NovaKeyValueService",
1958 "UpdateKeyValueEntry",
1959 ),
1960 );
1961 self.inner.unary(req, path, codec).await
1962 }
1963 pub async fn get_key_value_entry(
1964 &mut self,
1965 request: impl tonic::IntoRequest<super::GetKeyValueEntryRequest>,
1966 ) -> std::result::Result<
1967 tonic::Response<super::GetKeyValueEntryResponse>,
1968 tonic::Status,
1969 > {
1970 self.inner
1971 .ready()
1972 .await
1973 .map_err(|e| {
1974 tonic::Status::unknown(
1975 format!("Service was not ready: {}", e.into()),
1976 )
1977 })?;
1978 let codec = tonic::codec::ProstCodec::default();
1979 let path = http::uri::PathAndQuery::from_static(
1980 "/nominal.nova.v1.NovaKeyValueService/GetKeyValueEntry",
1981 );
1982 let mut req = request.into_request();
1983 req.extensions_mut()
1984 .insert(
1985 GrpcMethod::new(
1986 "nominal.nova.v1.NovaKeyValueService",
1987 "GetKeyValueEntry",
1988 ),
1989 );
1990 self.inner.unary(req, path, codec).await
1991 }
1992 pub async fn delete_key_value_entry(
1993 &mut self,
1994 request: impl tonic::IntoRequest<super::DeleteKeyValueEntryRequest>,
1995 ) -> std::result::Result<
1996 tonic::Response<super::DeleteKeyValueEntryResponse>,
1997 tonic::Status,
1998 > {
1999 self.inner
2000 .ready()
2001 .await
2002 .map_err(|e| {
2003 tonic::Status::unknown(
2004 format!("Service was not ready: {}", e.into()),
2005 )
2006 })?;
2007 let codec = tonic::codec::ProstCodec::default();
2008 let path = http::uri::PathAndQuery::from_static(
2009 "/nominal.nova.v1.NovaKeyValueService/DeleteKeyValueEntry",
2010 );
2011 let mut req = request.into_request();
2012 req.extensions_mut()
2013 .insert(
2014 GrpcMethod::new(
2015 "nominal.nova.v1.NovaKeyValueService",
2016 "DeleteKeyValueEntry",
2017 ),
2018 );
2019 self.inner.unary(req, path, codec).await
2020 }
2021 pub async fn batch_get_key_value_entries(
2022 &mut self,
2023 request: impl tonic::IntoRequest<super::BatchGetKeyValueEntriesRequest>,
2024 ) -> std::result::Result<
2025 tonic::Response<super::BatchGetKeyValueEntriesResponse>,
2026 tonic::Status,
2027 > {
2028 self.inner
2029 .ready()
2030 .await
2031 .map_err(|e| {
2032 tonic::Status::unknown(
2033 format!("Service was not ready: {}", e.into()),
2034 )
2035 })?;
2036 let codec = tonic::codec::ProstCodec::default();
2037 let path = http::uri::PathAndQuery::from_static(
2038 "/nominal.nova.v1.NovaKeyValueService/BatchGetKeyValueEntries",
2039 );
2040 let mut req = request.into_request();
2041 req.extensions_mut()
2042 .insert(
2043 GrpcMethod::new(
2044 "nominal.nova.v1.NovaKeyValueService",
2045 "BatchGetKeyValueEntries",
2046 ),
2047 );
2048 self.inner.unary(req, path, codec).await
2049 }
2050 pub async fn batch_create_key_value_entries(
2051 &mut self,
2052 request: impl tonic::IntoRequest<super::BatchCreateKeyValueEntriesRequest>,
2053 ) -> std::result::Result<
2054 tonic::Response<super::BatchCreateKeyValueEntriesResponse>,
2055 tonic::Status,
2056 > {
2057 self.inner
2058 .ready()
2059 .await
2060 .map_err(|e| {
2061 tonic::Status::unknown(
2062 format!("Service was not ready: {}", e.into()),
2063 )
2064 })?;
2065 let codec = tonic::codec::ProstCodec::default();
2066 let path = http::uri::PathAndQuery::from_static(
2067 "/nominal.nova.v1.NovaKeyValueService/BatchCreateKeyValueEntries",
2068 );
2069 let mut req = request.into_request();
2070 req.extensions_mut()
2071 .insert(
2072 GrpcMethod::new(
2073 "nominal.nova.v1.NovaKeyValueService",
2074 "BatchCreateKeyValueEntries",
2075 ),
2076 );
2077 self.inner.unary(req, path, codec).await
2078 }
2079 pub async fn batch_update_key_value_entries(
2080 &mut self,
2081 request: impl tonic::IntoRequest<super::BatchUpdateKeyValueEntriesRequest>,
2082 ) -> std::result::Result<
2083 tonic::Response<super::BatchUpdateKeyValueEntriesResponse>,
2084 tonic::Status,
2085 > {
2086 self.inner
2087 .ready()
2088 .await
2089 .map_err(|e| {
2090 tonic::Status::unknown(
2091 format!("Service was not ready: {}", e.into()),
2092 )
2093 })?;
2094 let codec = tonic::codec::ProstCodec::default();
2095 let path = http::uri::PathAndQuery::from_static(
2096 "/nominal.nova.v1.NovaKeyValueService/BatchUpdateKeyValueEntries",
2097 );
2098 let mut req = request.into_request();
2099 req.extensions_mut()
2100 .insert(
2101 GrpcMethod::new(
2102 "nominal.nova.v1.NovaKeyValueService",
2103 "BatchUpdateKeyValueEntries",
2104 ),
2105 );
2106 self.inner.unary(req, path, codec).await
2107 }
2108 pub async fn batch_delete_key_value_entries(
2109 &mut self,
2110 request: impl tonic::IntoRequest<super::BatchDeleteKeyValueEntriesRequest>,
2111 ) -> std::result::Result<
2112 tonic::Response<super::BatchDeleteKeyValueEntriesResponse>,
2113 tonic::Status,
2114 > {
2115 self.inner
2116 .ready()
2117 .await
2118 .map_err(|e| {
2119 tonic::Status::unknown(
2120 format!("Service was not ready: {}", e.into()),
2121 )
2122 })?;
2123 let codec = tonic::codec::ProstCodec::default();
2124 let path = http::uri::PathAndQuery::from_static(
2125 "/nominal.nova.v1.NovaKeyValueService/BatchDeleteKeyValueEntries",
2126 );
2127 let mut req = request.into_request();
2128 req.extensions_mut()
2129 .insert(
2130 GrpcMethod::new(
2131 "nominal.nova.v1.NovaKeyValueService",
2132 "BatchDeleteKeyValueEntries",
2133 ),
2134 );
2135 self.inner.unary(req, path, codec).await
2136 }
2137 pub async fn search_key_value_entries(
2138 &mut self,
2139 request: impl tonic::IntoRequest<super::SearchKeyValueEntriesRequest>,
2140 ) -> std::result::Result<
2141 tonic::Response<super::SearchKeyValueEntriesResponse>,
2142 tonic::Status,
2143 > {
2144 self.inner
2145 .ready()
2146 .await
2147 .map_err(|e| {
2148 tonic::Status::unknown(
2149 format!("Service was not ready: {}", e.into()),
2150 )
2151 })?;
2152 let codec = tonic::codec::ProstCodec::default();
2153 let path = http::uri::PathAndQuery::from_static(
2154 "/nominal.nova.v1.NovaKeyValueService/SearchKeyValueEntries",
2155 );
2156 let mut req = request.into_request();
2157 req.extensions_mut()
2158 .insert(
2159 GrpcMethod::new(
2160 "nominal.nova.v1.NovaKeyValueService",
2161 "SearchKeyValueEntries",
2162 ),
2163 );
2164 self.inner.unary(req, path, codec).await
2165 }
2166 }
2167}
2168#[derive(Clone, PartialEq, ::prost::Message)]
2169pub struct ProxyHeader {
2170 #[prost(string, tag = "1")]
2171 pub name: ::prost::alloc::string::String,
2172 #[prost(string, tag = "2")]
2173 pub value: ::prost::alloc::string::String,
2174}
2175#[derive(Clone, PartialEq, ::prost::Message)]
2176pub struct CallApiProxyRequest {
2177 #[prost(string, tag = "1")]
2178 pub app_rid: ::prost::alloc::string::String,
2179 #[prost(string, tag = "2")]
2180 pub api_proxy_rid: ::prost::alloc::string::String,
2181 #[prost(enumeration = "ProxyHttpMethod", tag = "3")]
2182 pub method: i32,
2183 #[prost(string, tag = "4")]
2184 pub path: ::prost::alloc::string::String,
2185 #[prost(string, tag = "5")]
2186 pub query: ::prost::alloc::string::String,
2187 #[prost(message, repeated, tag = "6")]
2188 pub headers: ::prost::alloc::vec::Vec<ProxyHeader>,
2189 #[prost(bytes = "vec", tag = "7")]
2190 pub body: ::prost::alloc::vec::Vec<u8>,
2191}
2192#[derive(Clone, PartialEq, ::prost::Message)]
2193pub struct CallApiProxyResponse {
2194 #[prost(int32, tag = "1")]
2195 pub status_code: i32,
2196 #[prost(message, repeated, tag = "2")]
2197 pub headers: ::prost::alloc::vec::Vec<ProxyHeader>,
2198 #[prost(bytes = "vec", tag = "3")]
2199 pub body: ::prost::alloc::vec::Vec<u8>,
2200}
2201#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2202#[repr(i32)]
2203pub enum ProxyHttpMethod {
2204 Unspecified = 0,
2205 Get = 1,
2206 Head = 2,
2207 Post = 3,
2208 Put = 4,
2209 Patch = 5,
2210 Delete = 6,
2211}
2212impl ProxyHttpMethod {
2213 pub fn as_str_name(&self) -> &'static str {
2218 match self {
2219 Self::Unspecified => "PROXY_HTTP_METHOD_UNSPECIFIED",
2220 Self::Get => "PROXY_HTTP_METHOD_GET",
2221 Self::Head => "PROXY_HTTP_METHOD_HEAD",
2222 Self::Post => "PROXY_HTTP_METHOD_POST",
2223 Self::Put => "PROXY_HTTP_METHOD_PUT",
2224 Self::Patch => "PROXY_HTTP_METHOD_PATCH",
2225 Self::Delete => "PROXY_HTTP_METHOD_DELETE",
2226 }
2227 }
2228 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2230 match value {
2231 "PROXY_HTTP_METHOD_UNSPECIFIED" => Some(Self::Unspecified),
2232 "PROXY_HTTP_METHOD_GET" => Some(Self::Get),
2233 "PROXY_HTTP_METHOD_HEAD" => Some(Self::Head),
2234 "PROXY_HTTP_METHOD_POST" => Some(Self::Post),
2235 "PROXY_HTTP_METHOD_PUT" => Some(Self::Put),
2236 "PROXY_HTTP_METHOD_PATCH" => Some(Self::Patch),
2237 "PROXY_HTTP_METHOD_DELETE" => Some(Self::Delete),
2238 _ => None,
2239 }
2240 }
2241}
2242pub mod nova_proxy_service_client {
2244 #![allow(
2245 unused_variables,
2246 dead_code,
2247 missing_docs,
2248 clippy::wildcard_imports,
2249 clippy::let_unit_value,
2250 )]
2251 use tonic::codegen::*;
2252 use tonic::codegen::http::Uri;
2253 #[derive(Debug, Clone)]
2254 pub struct NovaProxyServiceClient<T> {
2255 inner: tonic::client::Grpc<T>,
2256 }
2257 impl NovaProxyServiceClient<tonic::transport::Channel> {
2258 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
2260 where
2261 D: TryInto<tonic::transport::Endpoint>,
2262 D::Error: Into<StdError>,
2263 {
2264 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
2265 Ok(Self::new(conn))
2266 }
2267 }
2268 impl<T> NovaProxyServiceClient<T>
2269 where
2270 T: tonic::client::GrpcService<tonic::body::Body>,
2271 T::Error: Into<StdError>,
2272 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
2273 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
2274 {
2275 pub fn new(inner: T) -> Self {
2276 let inner = tonic::client::Grpc::new(inner);
2277 Self { inner }
2278 }
2279 pub fn with_origin(inner: T, origin: Uri) -> Self {
2280 let inner = tonic::client::Grpc::with_origin(inner, origin);
2281 Self { inner }
2282 }
2283 pub fn with_interceptor<F>(
2284 inner: T,
2285 interceptor: F,
2286 ) -> NovaProxyServiceClient<InterceptedService<T, F>>
2287 where
2288 F: tonic::service::Interceptor,
2289 T::ResponseBody: Default,
2290 T: tonic::codegen::Service<
2291 http::Request<tonic::body::Body>,
2292 Response = http::Response<
2293 <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
2294 >,
2295 >,
2296 <T as tonic::codegen::Service<
2297 http::Request<tonic::body::Body>,
2298 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
2299 {
2300 NovaProxyServiceClient::new(InterceptedService::new(inner, interceptor))
2301 }
2302 #[must_use]
2307 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
2308 self.inner = self.inner.send_compressed(encoding);
2309 self
2310 }
2311 #[must_use]
2313 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
2314 self.inner = self.inner.accept_compressed(encoding);
2315 self
2316 }
2317 #[must_use]
2321 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
2322 self.inner = self.inner.max_decoding_message_size(limit);
2323 self
2324 }
2325 #[must_use]
2329 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
2330 self.inner = self.inner.max_encoding_message_size(limit);
2331 self
2332 }
2333 pub async fn call_api_proxy(
2334 &mut self,
2335 request: impl tonic::IntoRequest<super::CallApiProxyRequest>,
2336 ) -> std::result::Result<
2337 tonic::Response<super::CallApiProxyResponse>,
2338 tonic::Status,
2339 > {
2340 self.inner
2341 .ready()
2342 .await
2343 .map_err(|e| {
2344 tonic::Status::unknown(
2345 format!("Service was not ready: {}", e.into()),
2346 )
2347 })?;
2348 let codec = tonic::codec::ProstCodec::default();
2349 let path = http::uri::PathAndQuery::from_static(
2350 "/nominal.nova.v1.NovaProxyService/CallApiProxy",
2351 );
2352 let mut req = request.into_request();
2353 req.extensions_mut()
2354 .insert(
2355 GrpcMethod::new("nominal.nova.v1.NovaProxyService", "CallApiProxy"),
2356 );
2357 self.inner.unary(req, path, codec).await
2358 }
2359 }
2360}