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 #[prost(message, optional, tag = "14")]
1164 pub expires_at: ::core::option::Option<
1165 super::super::super::google::protobuf::Timestamp,
1166 >,
1167}
1168#[derive(Clone, PartialEq, ::prost::Message)]
1169pub struct CreateAppVersionRequest {
1170 #[prost(message, optional, tag = "1")]
1171 pub app_version: ::core::option::Option<AppVersion>,
1172 #[prost(message, optional, tag = "2")]
1173 pub signed_bundle: ::core::option::Option<SignedAppBundle>,
1174}
1175#[derive(Clone, PartialEq, ::prost::Message)]
1176pub struct CreateAppVersionResponse {
1177 #[prost(message, optional, tag = "1")]
1178 pub app_version: ::core::option::Option<AppVersion>,
1179}
1180#[derive(Clone, PartialEq, ::prost::Message)]
1181pub struct GetAppVersionRequest {
1182 #[prost(string, tag = "1")]
1183 pub app_version_rid: ::prost::alloc::string::String,
1184}
1185#[derive(Clone, PartialEq, ::prost::Message)]
1186pub struct GetAppVersionResponse {
1187 #[prost(message, optional, tag = "1")]
1188 pub app_version: ::core::option::Option<AppVersion>,
1189}
1190#[derive(Clone, PartialEq, ::prost::Message)]
1191pub struct UpdateAppVersionRequest {
1192 #[prost(string, tag = "1")]
1193 pub app_version_rid: ::prost::alloc::string::String,
1194 #[prost(message, optional, tag = "2")]
1195 pub app_version: ::core::option::Option<AppVersion>,
1196 #[prost(message, optional, tag = "3")]
1197 pub signed_bundle: ::core::option::Option<SignedAppBundle>,
1198}
1199#[derive(Clone, PartialEq, ::prost::Message)]
1200pub struct UpdateAppVersionResponse {
1201 #[prost(message, optional, tag = "1")]
1202 pub app_version: ::core::option::Option<AppVersion>,
1203}
1204#[derive(Clone, PartialEq, ::prost::Message)]
1205pub struct DeleteAppVersionRequest {
1206 #[prost(string, tag = "1")]
1207 pub app_version_rid: ::prost::alloc::string::String,
1208}
1209#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1210pub struct DeleteAppVersionResponse {}
1211#[derive(Clone, PartialEq, ::prost::Message)]
1212pub struct ReleaseAppVersionRequest {
1213 #[prost(string, tag = "1")]
1214 pub app_version_rid: ::prost::alloc::string::String,
1215}
1216#[derive(Clone, PartialEq, ::prost::Message)]
1217pub struct ReleaseAppVersionResponse {
1218 #[prost(message, optional, tag = "1")]
1219 pub app_version: ::core::option::Option<AppVersion>,
1220}
1221#[derive(Clone, PartialEq, ::prost::Message)]
1222pub struct ArchiveAppVersionRequest {
1223 #[prost(string, tag = "1")]
1224 pub app_version_rid: ::prost::alloc::string::String,
1225}
1226#[derive(Clone, PartialEq, ::prost::Message)]
1227pub struct ArchiveAppVersionResponse {
1228 #[prost(message, optional, tag = "1")]
1229 pub app_version: ::core::option::Option<AppVersion>,
1230}
1231#[derive(Clone, PartialEq, ::prost::Message)]
1232pub struct UnarchiveAppVersionRequest {
1233 #[prost(string, tag = "1")]
1234 pub app_version_rid: ::prost::alloc::string::String,
1235}
1236#[derive(Clone, PartialEq, ::prost::Message)]
1237pub struct UnarchiveAppVersionResponse {
1238 #[prost(message, optional, tag = "1")]
1239 pub app_version: ::core::option::Option<AppVersion>,
1240}
1241#[derive(Clone, PartialEq, ::prost::Message)]
1242pub struct AppVersionSearchFilter {
1243 #[prost(string, optional, tag = "1")]
1244 pub tag: ::core::option::Option<::prost::alloc::string::String>,
1245 #[prost(enumeration = "AppBundleState", optional, tag = "2")]
1246 pub bundle_state: ::core::option::Option<i32>,
1247 #[prost(bool, optional, tag = "3")]
1248 pub is_released: ::core::option::Option<bool>,
1249 #[prost(message, optional, tag = "4")]
1250 pub archived_statuses: ::core::option::Option<ArchivedStatusSet>,
1251}
1252#[derive(Clone, PartialEq, ::prost::Message)]
1253pub struct SearchAppVersionsRequest {
1254 #[prost(string, tag = "1")]
1255 pub app_rid: ::prost::alloc::string::String,
1256 #[prost(message, optional, tag = "2")]
1257 pub filter: ::core::option::Option<AppVersionSearchFilter>,
1258 #[prost(int32, optional, tag = "3")]
1259 pub page_size: ::core::option::Option<i32>,
1260 #[prost(string, optional, tag = "4")]
1261 pub page_token: ::core::option::Option<::prost::alloc::string::String>,
1262}
1263#[derive(Clone, PartialEq, ::prost::Message)]
1264pub struct SearchAppVersionsResponse {
1265 #[prost(message, repeated, tag = "1")]
1266 pub app_versions: ::prost::alloc::vec::Vec<AppVersion>,
1267 #[prost(string, optional, tag = "2")]
1268 pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
1269}
1270#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1271#[repr(i32)]
1272pub enum AppBundleState {
1273 Unspecified = 0,
1274 Pending = 1,
1275 Scanning = 2,
1276 Active = 3,
1277 Failed = 4,
1278}
1279impl AppBundleState {
1280 pub fn as_str_name(&self) -> &'static str {
1285 match self {
1286 Self::Unspecified => "APP_BUNDLE_STATE_UNSPECIFIED",
1287 Self::Pending => "APP_BUNDLE_STATE_PENDING",
1288 Self::Scanning => "APP_BUNDLE_STATE_SCANNING",
1289 Self::Active => "APP_BUNDLE_STATE_ACTIVE",
1290 Self::Failed => "APP_BUNDLE_STATE_FAILED",
1291 }
1292 }
1293 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1295 match value {
1296 "APP_BUNDLE_STATE_UNSPECIFIED" => Some(Self::Unspecified),
1297 "APP_BUNDLE_STATE_PENDING" => Some(Self::Pending),
1298 "APP_BUNDLE_STATE_SCANNING" => Some(Self::Scanning),
1299 "APP_BUNDLE_STATE_ACTIVE" => Some(Self::Active),
1300 "APP_BUNDLE_STATE_FAILED" => Some(Self::Failed),
1301 _ => None,
1302 }
1303 }
1304}
1305pub mod app_version_service_client {
1307 #![allow(
1308 unused_variables,
1309 dead_code,
1310 missing_docs,
1311 clippy::wildcard_imports,
1312 clippy::let_unit_value,
1313 )]
1314 use tonic::codegen::*;
1315 use tonic::codegen::http::Uri;
1316 #[derive(Debug, Clone)]
1317 pub struct AppVersionServiceClient<T> {
1318 inner: tonic::client::Grpc<T>,
1319 }
1320 impl AppVersionServiceClient<tonic::transport::Channel> {
1321 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
1323 where
1324 D: TryInto<tonic::transport::Endpoint>,
1325 D::Error: Into<StdError>,
1326 {
1327 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
1328 Ok(Self::new(conn))
1329 }
1330 }
1331 impl<T> AppVersionServiceClient<T>
1332 where
1333 T: tonic::client::GrpcService<tonic::body::Body>,
1334 T::Error: Into<StdError>,
1335 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
1336 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
1337 {
1338 pub fn new(inner: T) -> Self {
1339 let inner = tonic::client::Grpc::new(inner);
1340 Self { inner }
1341 }
1342 pub fn with_origin(inner: T, origin: Uri) -> Self {
1343 let inner = tonic::client::Grpc::with_origin(inner, origin);
1344 Self { inner }
1345 }
1346 pub fn with_interceptor<F>(
1347 inner: T,
1348 interceptor: F,
1349 ) -> AppVersionServiceClient<InterceptedService<T, F>>
1350 where
1351 F: tonic::service::Interceptor,
1352 T::ResponseBody: Default,
1353 T: tonic::codegen::Service<
1354 http::Request<tonic::body::Body>,
1355 Response = http::Response<
1356 <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
1357 >,
1358 >,
1359 <T as tonic::codegen::Service<
1360 http::Request<tonic::body::Body>,
1361 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
1362 {
1363 AppVersionServiceClient::new(InterceptedService::new(inner, interceptor))
1364 }
1365 #[must_use]
1370 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1371 self.inner = self.inner.send_compressed(encoding);
1372 self
1373 }
1374 #[must_use]
1376 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1377 self.inner = self.inner.accept_compressed(encoding);
1378 self
1379 }
1380 #[must_use]
1384 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1385 self.inner = self.inner.max_decoding_message_size(limit);
1386 self
1387 }
1388 #[must_use]
1392 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1393 self.inner = self.inner.max_encoding_message_size(limit);
1394 self
1395 }
1396 pub async fn create_app_version(
1397 &mut self,
1398 request: impl tonic::IntoRequest<super::CreateAppVersionRequest>,
1399 ) -> std::result::Result<
1400 tonic::Response<super::CreateAppVersionResponse>,
1401 tonic::Status,
1402 > {
1403 self.inner
1404 .ready()
1405 .await
1406 .map_err(|e| {
1407 tonic::Status::unknown(
1408 format!("Service was not ready: {}", e.into()),
1409 )
1410 })?;
1411 let codec = tonic::codec::ProstCodec::default();
1412 let path = http::uri::PathAndQuery::from_static(
1413 "/nominal.nova.v1.AppVersionService/CreateAppVersion",
1414 );
1415 let mut req = request.into_request();
1416 req.extensions_mut()
1417 .insert(
1418 GrpcMethod::new(
1419 "nominal.nova.v1.AppVersionService",
1420 "CreateAppVersion",
1421 ),
1422 );
1423 self.inner.unary(req, path, codec).await
1424 }
1425 pub async fn get_app_version(
1426 &mut self,
1427 request: impl tonic::IntoRequest<super::GetAppVersionRequest>,
1428 ) -> std::result::Result<
1429 tonic::Response<super::GetAppVersionResponse>,
1430 tonic::Status,
1431 > {
1432 self.inner
1433 .ready()
1434 .await
1435 .map_err(|e| {
1436 tonic::Status::unknown(
1437 format!("Service was not ready: {}", e.into()),
1438 )
1439 })?;
1440 let codec = tonic::codec::ProstCodec::default();
1441 let path = http::uri::PathAndQuery::from_static(
1442 "/nominal.nova.v1.AppVersionService/GetAppVersion",
1443 );
1444 let mut req = request.into_request();
1445 req.extensions_mut()
1446 .insert(
1447 GrpcMethod::new("nominal.nova.v1.AppVersionService", "GetAppVersion"),
1448 );
1449 self.inner.unary(req, path, codec).await
1450 }
1451 pub async fn update_app_version(
1452 &mut self,
1453 request: impl tonic::IntoRequest<super::UpdateAppVersionRequest>,
1454 ) -> std::result::Result<
1455 tonic::Response<super::UpdateAppVersionResponse>,
1456 tonic::Status,
1457 > {
1458 self.inner
1459 .ready()
1460 .await
1461 .map_err(|e| {
1462 tonic::Status::unknown(
1463 format!("Service was not ready: {}", e.into()),
1464 )
1465 })?;
1466 let codec = tonic::codec::ProstCodec::default();
1467 let path = http::uri::PathAndQuery::from_static(
1468 "/nominal.nova.v1.AppVersionService/UpdateAppVersion",
1469 );
1470 let mut req = request.into_request();
1471 req.extensions_mut()
1472 .insert(
1473 GrpcMethod::new(
1474 "nominal.nova.v1.AppVersionService",
1475 "UpdateAppVersion",
1476 ),
1477 );
1478 self.inner.unary(req, path, codec).await
1479 }
1480 pub async fn delete_app_version(
1481 &mut self,
1482 request: impl tonic::IntoRequest<super::DeleteAppVersionRequest>,
1483 ) -> std::result::Result<
1484 tonic::Response<super::DeleteAppVersionResponse>,
1485 tonic::Status,
1486 > {
1487 self.inner
1488 .ready()
1489 .await
1490 .map_err(|e| {
1491 tonic::Status::unknown(
1492 format!("Service was not ready: {}", e.into()),
1493 )
1494 })?;
1495 let codec = tonic::codec::ProstCodec::default();
1496 let path = http::uri::PathAndQuery::from_static(
1497 "/nominal.nova.v1.AppVersionService/DeleteAppVersion",
1498 );
1499 let mut req = request.into_request();
1500 req.extensions_mut()
1501 .insert(
1502 GrpcMethod::new(
1503 "nominal.nova.v1.AppVersionService",
1504 "DeleteAppVersion",
1505 ),
1506 );
1507 self.inner.unary(req, path, codec).await
1508 }
1509 pub async fn release_app_version(
1510 &mut self,
1511 request: impl tonic::IntoRequest<super::ReleaseAppVersionRequest>,
1512 ) -> std::result::Result<
1513 tonic::Response<super::ReleaseAppVersionResponse>,
1514 tonic::Status,
1515 > {
1516 self.inner
1517 .ready()
1518 .await
1519 .map_err(|e| {
1520 tonic::Status::unknown(
1521 format!("Service was not ready: {}", e.into()),
1522 )
1523 })?;
1524 let codec = tonic::codec::ProstCodec::default();
1525 let path = http::uri::PathAndQuery::from_static(
1526 "/nominal.nova.v1.AppVersionService/ReleaseAppVersion",
1527 );
1528 let mut req = request.into_request();
1529 req.extensions_mut()
1530 .insert(
1531 GrpcMethod::new(
1532 "nominal.nova.v1.AppVersionService",
1533 "ReleaseAppVersion",
1534 ),
1535 );
1536 self.inner.unary(req, path, codec).await
1537 }
1538 pub async fn archive_app_version(
1539 &mut self,
1540 request: impl tonic::IntoRequest<super::ArchiveAppVersionRequest>,
1541 ) -> std::result::Result<
1542 tonic::Response<super::ArchiveAppVersionResponse>,
1543 tonic::Status,
1544 > {
1545 self.inner
1546 .ready()
1547 .await
1548 .map_err(|e| {
1549 tonic::Status::unknown(
1550 format!("Service was not ready: {}", e.into()),
1551 )
1552 })?;
1553 let codec = tonic::codec::ProstCodec::default();
1554 let path = http::uri::PathAndQuery::from_static(
1555 "/nominal.nova.v1.AppVersionService/ArchiveAppVersion",
1556 );
1557 let mut req = request.into_request();
1558 req.extensions_mut()
1559 .insert(
1560 GrpcMethod::new(
1561 "nominal.nova.v1.AppVersionService",
1562 "ArchiveAppVersion",
1563 ),
1564 );
1565 self.inner.unary(req, path, codec).await
1566 }
1567 pub async fn unarchive_app_version(
1568 &mut self,
1569 request: impl tonic::IntoRequest<super::UnarchiveAppVersionRequest>,
1570 ) -> std::result::Result<
1571 tonic::Response<super::UnarchiveAppVersionResponse>,
1572 tonic::Status,
1573 > {
1574 self.inner
1575 .ready()
1576 .await
1577 .map_err(|e| {
1578 tonic::Status::unknown(
1579 format!("Service was not ready: {}", e.into()),
1580 )
1581 })?;
1582 let codec = tonic::codec::ProstCodec::default();
1583 let path = http::uri::PathAndQuery::from_static(
1584 "/nominal.nova.v1.AppVersionService/UnarchiveAppVersion",
1585 );
1586 let mut req = request.into_request();
1587 req.extensions_mut()
1588 .insert(
1589 GrpcMethod::new(
1590 "nominal.nova.v1.AppVersionService",
1591 "UnarchiveAppVersion",
1592 ),
1593 );
1594 self.inner.unary(req, path, codec).await
1595 }
1596 pub async fn search_app_versions(
1597 &mut self,
1598 request: impl tonic::IntoRequest<super::SearchAppVersionsRequest>,
1599 ) -> std::result::Result<
1600 tonic::Response<super::SearchAppVersionsResponse>,
1601 tonic::Status,
1602 > {
1603 self.inner
1604 .ready()
1605 .await
1606 .map_err(|e| {
1607 tonic::Status::unknown(
1608 format!("Service was not ready: {}", e.into()),
1609 )
1610 })?;
1611 let codec = tonic::codec::ProstCodec::default();
1612 let path = http::uri::PathAndQuery::from_static(
1613 "/nominal.nova.v1.AppVersionService/SearchAppVersions",
1614 );
1615 let mut req = request.into_request();
1616 req.extensions_mut()
1617 .insert(
1618 GrpcMethod::new(
1619 "nominal.nova.v1.AppVersionService",
1620 "SearchAppVersions",
1621 ),
1622 );
1623 self.inner.unary(req, path, codec).await
1624 }
1625 }
1626}
1627#[derive(Clone, PartialEq, ::prost::Message)]
1628pub struct KeyValueEntry {
1629 #[prost(string, tag = "1")]
1630 pub app_rid: ::prost::alloc::string::String,
1631 #[prost(string, tag = "2")]
1632 pub key: ::prost::alloc::string::String,
1633 #[prost(message, optional, tag = "3")]
1634 pub value: ::core::option::Option<super::super::super::google::protobuf::Value>,
1635 #[prost(message, optional, tag = "4")]
1636 pub created_at: ::core::option::Option<
1637 super::super::super::google::protobuf::Timestamp,
1638 >,
1639 #[prost(message, optional, tag = "5")]
1640 pub updated_at: ::core::option::Option<
1641 super::super::super::google::protobuf::Timestamp,
1642 >,
1643 #[prost(int64, tag = "6")]
1644 pub version: i64,
1645}
1646#[derive(Clone, PartialEq, ::prost::Message)]
1647pub struct CreateKeyValueEntryRequest {
1648 #[prost(string, tag = "1")]
1649 pub app_rid: ::prost::alloc::string::String,
1650 #[prost(string, tag = "2")]
1651 pub key: ::prost::alloc::string::String,
1652 #[prost(message, optional, tag = "3")]
1653 pub value: ::core::option::Option<super::super::super::google::protobuf::Value>,
1654}
1655#[derive(Clone, PartialEq, ::prost::Message)]
1656pub struct CreateKeyValueEntryResponse {
1657 #[prost(message, optional, tag = "1")]
1658 pub key_value_entry: ::core::option::Option<KeyValueEntry>,
1659}
1660#[derive(Clone, PartialEq, ::prost::Message)]
1661pub struct UpdateKeyValueEntryRequest {
1662 #[prost(string, tag = "1")]
1663 pub app_rid: ::prost::alloc::string::String,
1664 #[prost(string, tag = "2")]
1665 pub key: ::prost::alloc::string::String,
1666 #[prost(message, optional, tag = "3")]
1667 pub value: ::core::option::Option<super::super::super::google::protobuf::Value>,
1668 #[prost(int64, optional, tag = "4")]
1669 pub expected_version: ::core::option::Option<i64>,
1670}
1671#[derive(Clone, PartialEq, ::prost::Message)]
1672pub struct UpdateKeyValueEntryResponse {
1673 #[prost(message, optional, tag = "1")]
1674 pub key_value_entry: ::core::option::Option<KeyValueEntry>,
1675}
1676#[derive(Clone, PartialEq, ::prost::Message)]
1677pub struct GetKeyValueEntryRequest {
1678 #[prost(string, tag = "1")]
1679 pub app_rid: ::prost::alloc::string::String,
1680 #[prost(string, tag = "2")]
1681 pub key: ::prost::alloc::string::String,
1682}
1683#[derive(Clone, PartialEq, ::prost::Message)]
1684pub struct GetKeyValueEntryResponse {
1685 #[prost(message, optional, tag = "1")]
1686 pub key_value_entry: ::core::option::Option<KeyValueEntry>,
1687}
1688#[derive(Clone, PartialEq, ::prost::Message)]
1689pub struct DeleteKeyValueEntryRequest {
1690 #[prost(string, tag = "1")]
1691 pub app_rid: ::prost::alloc::string::String,
1692 #[prost(string, tag = "2")]
1693 pub key: ::prost::alloc::string::String,
1694}
1695#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1696pub struct DeleteKeyValueEntryResponse {}
1697#[derive(Clone, PartialEq, ::prost::Message)]
1698pub struct BatchGetKeyValueEntriesRequest {
1699 #[prost(string, tag = "1")]
1700 pub app_rid: ::prost::alloc::string::String,
1701 #[prost(string, repeated, tag = "2")]
1702 pub keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1703}
1704#[derive(Clone, PartialEq, ::prost::Message)]
1705pub struct BatchGetKeyValueEntriesResponse {
1706 #[prost(message, repeated, tag = "1")]
1707 pub key_value_entries: ::prost::alloc::vec::Vec<KeyValueEntry>,
1708}
1709#[derive(Clone, PartialEq, ::prost::Message)]
1710pub struct BatchCreateKeyValueEntriesRequest {
1711 #[prost(string, tag = "1")]
1712 pub app_rid: ::prost::alloc::string::String,
1713 #[prost(message, repeated, tag = "2")]
1714 pub writes: ::prost::alloc::vec::Vec<KeyValueEntryWrite>,
1715}
1716#[derive(Clone, PartialEq, ::prost::Message)]
1717pub struct BatchCreateKeyValueEntriesResponse {
1718 #[prost(message, repeated, tag = "1")]
1719 pub key_value_entries: ::prost::alloc::vec::Vec<KeyValueEntry>,
1720}
1721#[derive(Clone, PartialEq, ::prost::Message)]
1722pub struct KeyValueEntryWrite {
1723 #[prost(string, tag = "1")]
1724 pub key: ::prost::alloc::string::String,
1725 #[prost(message, optional, tag = "2")]
1726 pub value: ::core::option::Option<super::super::super::google::protobuf::Value>,
1727 #[prost(int64, optional, tag = "3")]
1728 pub expected_version: ::core::option::Option<i64>,
1729}
1730#[derive(Clone, PartialEq, ::prost::Message)]
1731pub struct BatchUpdateKeyValueEntriesRequest {
1732 #[prost(string, tag = "1")]
1733 pub app_rid: ::prost::alloc::string::String,
1734 #[prost(message, repeated, tag = "2")]
1735 pub writes: ::prost::alloc::vec::Vec<KeyValueEntryWrite>,
1736}
1737#[derive(Clone, PartialEq, ::prost::Message)]
1738pub struct BatchUpdateKeyValueEntriesResponse {
1739 #[prost(message, repeated, tag = "1")]
1740 pub key_value_entries: ::prost::alloc::vec::Vec<KeyValueEntry>,
1741}
1742#[derive(Clone, PartialEq, ::prost::Message)]
1743pub struct BatchDeleteKeyValueEntriesRequest {
1744 #[prost(string, tag = "1")]
1745 pub app_rid: ::prost::alloc::string::String,
1746 #[prost(string, repeated, tag = "2")]
1747 pub keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1748}
1749#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1750pub struct BatchDeleteKeyValueEntriesResponse {}
1751#[derive(Clone, PartialEq, ::prost::Message)]
1752pub struct SearchKeyValueEntriesRequest {
1753 #[prost(string, tag = "1")]
1754 pub app_rid: ::prost::alloc::string::String,
1755 #[prost(string, optional, tag = "2")]
1756 pub key_prefix: ::core::option::Option<::prost::alloc::string::String>,
1757 #[prost(int32, optional, tag = "3")]
1758 pub page_size: ::core::option::Option<i32>,
1759 #[prost(string, optional, tag = "4")]
1760 pub page_token: ::core::option::Option<::prost::alloc::string::String>,
1761}
1762#[derive(Clone, PartialEq, ::prost::Message)]
1763pub struct SearchKeyValueEntriesResponse {
1764 #[prost(message, repeated, tag = "1")]
1765 pub key_value_entries: ::prost::alloc::vec::Vec<KeyValueEntry>,
1766 #[prost(string, optional, tag = "2")]
1767 pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
1768}
1769#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1770#[repr(i32)]
1771pub enum NovaKeyValueError {
1772 VersionConflict = 0,
1773 QuotaExceeded = 1,
1774 RateLimited = 2,
1775 AppArchived = 3,
1776 ValueTooLarge = 4,
1777 EntryAlreadyExists = 6,
1778 EntryNotFound = 5,
1779}
1780impl NovaKeyValueError {
1781 pub fn as_str_name(&self) -> &'static str {
1786 match self {
1787 Self::VersionConflict => "NOVA_KEY_VALUE_ERROR_VERSION_CONFLICT",
1788 Self::QuotaExceeded => "NOVA_KEY_VALUE_ERROR_QUOTA_EXCEEDED",
1789 Self::RateLimited => "NOVA_KEY_VALUE_ERROR_RATE_LIMITED",
1790 Self::AppArchived => "NOVA_KEY_VALUE_ERROR_APP_ARCHIVED",
1791 Self::ValueTooLarge => "NOVA_KEY_VALUE_ERROR_VALUE_TOO_LARGE",
1792 Self::EntryAlreadyExists => "NOVA_KEY_VALUE_ERROR_ENTRY_ALREADY_EXISTS",
1793 Self::EntryNotFound => "NOVA_KEY_VALUE_ERROR_ENTRY_NOT_FOUND",
1794 }
1795 }
1796 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1798 match value {
1799 "NOVA_KEY_VALUE_ERROR_VERSION_CONFLICT" => Some(Self::VersionConflict),
1800 "NOVA_KEY_VALUE_ERROR_QUOTA_EXCEEDED" => Some(Self::QuotaExceeded),
1801 "NOVA_KEY_VALUE_ERROR_RATE_LIMITED" => Some(Self::RateLimited),
1802 "NOVA_KEY_VALUE_ERROR_APP_ARCHIVED" => Some(Self::AppArchived),
1803 "NOVA_KEY_VALUE_ERROR_VALUE_TOO_LARGE" => Some(Self::ValueTooLarge),
1804 "NOVA_KEY_VALUE_ERROR_ENTRY_ALREADY_EXISTS" => Some(Self::EntryAlreadyExists),
1805 "NOVA_KEY_VALUE_ERROR_ENTRY_NOT_FOUND" => Some(Self::EntryNotFound),
1806 _ => None,
1807 }
1808 }
1809}
1810pub mod nova_key_value_service_client {
1812 #![allow(
1813 unused_variables,
1814 dead_code,
1815 missing_docs,
1816 clippy::wildcard_imports,
1817 clippy::let_unit_value,
1818 )]
1819 use tonic::codegen::*;
1820 use tonic::codegen::http::Uri;
1821 #[derive(Debug, Clone)]
1822 pub struct NovaKeyValueServiceClient<T> {
1823 inner: tonic::client::Grpc<T>,
1824 }
1825 impl NovaKeyValueServiceClient<tonic::transport::Channel> {
1826 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
1828 where
1829 D: TryInto<tonic::transport::Endpoint>,
1830 D::Error: Into<StdError>,
1831 {
1832 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
1833 Ok(Self::new(conn))
1834 }
1835 }
1836 impl<T> NovaKeyValueServiceClient<T>
1837 where
1838 T: tonic::client::GrpcService<tonic::body::Body>,
1839 T::Error: Into<StdError>,
1840 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
1841 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
1842 {
1843 pub fn new(inner: T) -> Self {
1844 let inner = tonic::client::Grpc::new(inner);
1845 Self { inner }
1846 }
1847 pub fn with_origin(inner: T, origin: Uri) -> Self {
1848 let inner = tonic::client::Grpc::with_origin(inner, origin);
1849 Self { inner }
1850 }
1851 pub fn with_interceptor<F>(
1852 inner: T,
1853 interceptor: F,
1854 ) -> NovaKeyValueServiceClient<InterceptedService<T, F>>
1855 where
1856 F: tonic::service::Interceptor,
1857 T::ResponseBody: Default,
1858 T: tonic::codegen::Service<
1859 http::Request<tonic::body::Body>,
1860 Response = http::Response<
1861 <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
1862 >,
1863 >,
1864 <T as tonic::codegen::Service<
1865 http::Request<tonic::body::Body>,
1866 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
1867 {
1868 NovaKeyValueServiceClient::new(InterceptedService::new(inner, interceptor))
1869 }
1870 #[must_use]
1875 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1876 self.inner = self.inner.send_compressed(encoding);
1877 self
1878 }
1879 #[must_use]
1881 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1882 self.inner = self.inner.accept_compressed(encoding);
1883 self
1884 }
1885 #[must_use]
1889 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1890 self.inner = self.inner.max_decoding_message_size(limit);
1891 self
1892 }
1893 #[must_use]
1897 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1898 self.inner = self.inner.max_encoding_message_size(limit);
1899 self
1900 }
1901 pub async fn create_key_value_entry(
1902 &mut self,
1903 request: impl tonic::IntoRequest<super::CreateKeyValueEntryRequest>,
1904 ) -> std::result::Result<
1905 tonic::Response<super::CreateKeyValueEntryResponse>,
1906 tonic::Status,
1907 > {
1908 self.inner
1909 .ready()
1910 .await
1911 .map_err(|e| {
1912 tonic::Status::unknown(
1913 format!("Service was not ready: {}", e.into()),
1914 )
1915 })?;
1916 let codec = tonic::codec::ProstCodec::default();
1917 let path = http::uri::PathAndQuery::from_static(
1918 "/nominal.nova.v1.NovaKeyValueService/CreateKeyValueEntry",
1919 );
1920 let mut req = request.into_request();
1921 req.extensions_mut()
1922 .insert(
1923 GrpcMethod::new(
1924 "nominal.nova.v1.NovaKeyValueService",
1925 "CreateKeyValueEntry",
1926 ),
1927 );
1928 self.inner.unary(req, path, codec).await
1929 }
1930 pub async fn update_key_value_entry(
1931 &mut self,
1932 request: impl tonic::IntoRequest<super::UpdateKeyValueEntryRequest>,
1933 ) -> std::result::Result<
1934 tonic::Response<super::UpdateKeyValueEntryResponse>,
1935 tonic::Status,
1936 > {
1937 self.inner
1938 .ready()
1939 .await
1940 .map_err(|e| {
1941 tonic::Status::unknown(
1942 format!("Service was not ready: {}", e.into()),
1943 )
1944 })?;
1945 let codec = tonic::codec::ProstCodec::default();
1946 let path = http::uri::PathAndQuery::from_static(
1947 "/nominal.nova.v1.NovaKeyValueService/UpdateKeyValueEntry",
1948 );
1949 let mut req = request.into_request();
1950 req.extensions_mut()
1951 .insert(
1952 GrpcMethod::new(
1953 "nominal.nova.v1.NovaKeyValueService",
1954 "UpdateKeyValueEntry",
1955 ),
1956 );
1957 self.inner.unary(req, path, codec).await
1958 }
1959 pub async fn get_key_value_entry(
1960 &mut self,
1961 request: impl tonic::IntoRequest<super::GetKeyValueEntryRequest>,
1962 ) -> std::result::Result<
1963 tonic::Response<super::GetKeyValueEntryResponse>,
1964 tonic::Status,
1965 > {
1966 self.inner
1967 .ready()
1968 .await
1969 .map_err(|e| {
1970 tonic::Status::unknown(
1971 format!("Service was not ready: {}", e.into()),
1972 )
1973 })?;
1974 let codec = tonic::codec::ProstCodec::default();
1975 let path = http::uri::PathAndQuery::from_static(
1976 "/nominal.nova.v1.NovaKeyValueService/GetKeyValueEntry",
1977 );
1978 let mut req = request.into_request();
1979 req.extensions_mut()
1980 .insert(
1981 GrpcMethod::new(
1982 "nominal.nova.v1.NovaKeyValueService",
1983 "GetKeyValueEntry",
1984 ),
1985 );
1986 self.inner.unary(req, path, codec).await
1987 }
1988 pub async fn delete_key_value_entry(
1989 &mut self,
1990 request: impl tonic::IntoRequest<super::DeleteKeyValueEntryRequest>,
1991 ) -> std::result::Result<
1992 tonic::Response<super::DeleteKeyValueEntryResponse>,
1993 tonic::Status,
1994 > {
1995 self.inner
1996 .ready()
1997 .await
1998 .map_err(|e| {
1999 tonic::Status::unknown(
2000 format!("Service was not ready: {}", e.into()),
2001 )
2002 })?;
2003 let codec = tonic::codec::ProstCodec::default();
2004 let path = http::uri::PathAndQuery::from_static(
2005 "/nominal.nova.v1.NovaKeyValueService/DeleteKeyValueEntry",
2006 );
2007 let mut req = request.into_request();
2008 req.extensions_mut()
2009 .insert(
2010 GrpcMethod::new(
2011 "nominal.nova.v1.NovaKeyValueService",
2012 "DeleteKeyValueEntry",
2013 ),
2014 );
2015 self.inner.unary(req, path, codec).await
2016 }
2017 pub async fn batch_get_key_value_entries(
2018 &mut self,
2019 request: impl tonic::IntoRequest<super::BatchGetKeyValueEntriesRequest>,
2020 ) -> std::result::Result<
2021 tonic::Response<super::BatchGetKeyValueEntriesResponse>,
2022 tonic::Status,
2023 > {
2024 self.inner
2025 .ready()
2026 .await
2027 .map_err(|e| {
2028 tonic::Status::unknown(
2029 format!("Service was not ready: {}", e.into()),
2030 )
2031 })?;
2032 let codec = tonic::codec::ProstCodec::default();
2033 let path = http::uri::PathAndQuery::from_static(
2034 "/nominal.nova.v1.NovaKeyValueService/BatchGetKeyValueEntries",
2035 );
2036 let mut req = request.into_request();
2037 req.extensions_mut()
2038 .insert(
2039 GrpcMethod::new(
2040 "nominal.nova.v1.NovaKeyValueService",
2041 "BatchGetKeyValueEntries",
2042 ),
2043 );
2044 self.inner.unary(req, path, codec).await
2045 }
2046 pub async fn batch_create_key_value_entries(
2047 &mut self,
2048 request: impl tonic::IntoRequest<super::BatchCreateKeyValueEntriesRequest>,
2049 ) -> std::result::Result<
2050 tonic::Response<super::BatchCreateKeyValueEntriesResponse>,
2051 tonic::Status,
2052 > {
2053 self.inner
2054 .ready()
2055 .await
2056 .map_err(|e| {
2057 tonic::Status::unknown(
2058 format!("Service was not ready: {}", e.into()),
2059 )
2060 })?;
2061 let codec = tonic::codec::ProstCodec::default();
2062 let path = http::uri::PathAndQuery::from_static(
2063 "/nominal.nova.v1.NovaKeyValueService/BatchCreateKeyValueEntries",
2064 );
2065 let mut req = request.into_request();
2066 req.extensions_mut()
2067 .insert(
2068 GrpcMethod::new(
2069 "nominal.nova.v1.NovaKeyValueService",
2070 "BatchCreateKeyValueEntries",
2071 ),
2072 );
2073 self.inner.unary(req, path, codec).await
2074 }
2075 pub async fn batch_update_key_value_entries(
2076 &mut self,
2077 request: impl tonic::IntoRequest<super::BatchUpdateKeyValueEntriesRequest>,
2078 ) -> std::result::Result<
2079 tonic::Response<super::BatchUpdateKeyValueEntriesResponse>,
2080 tonic::Status,
2081 > {
2082 self.inner
2083 .ready()
2084 .await
2085 .map_err(|e| {
2086 tonic::Status::unknown(
2087 format!("Service was not ready: {}", e.into()),
2088 )
2089 })?;
2090 let codec = tonic::codec::ProstCodec::default();
2091 let path = http::uri::PathAndQuery::from_static(
2092 "/nominal.nova.v1.NovaKeyValueService/BatchUpdateKeyValueEntries",
2093 );
2094 let mut req = request.into_request();
2095 req.extensions_mut()
2096 .insert(
2097 GrpcMethod::new(
2098 "nominal.nova.v1.NovaKeyValueService",
2099 "BatchUpdateKeyValueEntries",
2100 ),
2101 );
2102 self.inner.unary(req, path, codec).await
2103 }
2104 pub async fn batch_delete_key_value_entries(
2105 &mut self,
2106 request: impl tonic::IntoRequest<super::BatchDeleteKeyValueEntriesRequest>,
2107 ) -> std::result::Result<
2108 tonic::Response<super::BatchDeleteKeyValueEntriesResponse>,
2109 tonic::Status,
2110 > {
2111 self.inner
2112 .ready()
2113 .await
2114 .map_err(|e| {
2115 tonic::Status::unknown(
2116 format!("Service was not ready: {}", e.into()),
2117 )
2118 })?;
2119 let codec = tonic::codec::ProstCodec::default();
2120 let path = http::uri::PathAndQuery::from_static(
2121 "/nominal.nova.v1.NovaKeyValueService/BatchDeleteKeyValueEntries",
2122 );
2123 let mut req = request.into_request();
2124 req.extensions_mut()
2125 .insert(
2126 GrpcMethod::new(
2127 "nominal.nova.v1.NovaKeyValueService",
2128 "BatchDeleteKeyValueEntries",
2129 ),
2130 );
2131 self.inner.unary(req, path, codec).await
2132 }
2133 pub async fn search_key_value_entries(
2134 &mut self,
2135 request: impl tonic::IntoRequest<super::SearchKeyValueEntriesRequest>,
2136 ) -> std::result::Result<
2137 tonic::Response<super::SearchKeyValueEntriesResponse>,
2138 tonic::Status,
2139 > {
2140 self.inner
2141 .ready()
2142 .await
2143 .map_err(|e| {
2144 tonic::Status::unknown(
2145 format!("Service was not ready: {}", e.into()),
2146 )
2147 })?;
2148 let codec = tonic::codec::ProstCodec::default();
2149 let path = http::uri::PathAndQuery::from_static(
2150 "/nominal.nova.v1.NovaKeyValueService/SearchKeyValueEntries",
2151 );
2152 let mut req = request.into_request();
2153 req.extensions_mut()
2154 .insert(
2155 GrpcMethod::new(
2156 "nominal.nova.v1.NovaKeyValueService",
2157 "SearchKeyValueEntries",
2158 ),
2159 );
2160 self.inner.unary(req, path, codec).await
2161 }
2162 }
2163}
2164#[derive(Clone, PartialEq, ::prost::Message)]
2165pub struct ProxyHeader {
2166 #[prost(string, tag = "1")]
2167 pub name: ::prost::alloc::string::String,
2168 #[prost(string, tag = "2")]
2169 pub value: ::prost::alloc::string::String,
2170}
2171#[derive(Clone, PartialEq, ::prost::Message)]
2172pub struct CallApiProxyRequest {
2173 #[prost(string, tag = "1")]
2174 pub app_rid: ::prost::alloc::string::String,
2175 #[prost(string, tag = "2")]
2176 pub api_proxy_rid: ::prost::alloc::string::String,
2177 #[prost(enumeration = "ProxyHttpMethod", tag = "3")]
2178 pub method: i32,
2179 #[prost(string, tag = "4")]
2180 pub path: ::prost::alloc::string::String,
2181 #[prost(string, tag = "5")]
2182 pub query: ::prost::alloc::string::String,
2183 #[prost(message, repeated, tag = "6")]
2184 pub headers: ::prost::alloc::vec::Vec<ProxyHeader>,
2185 #[prost(bytes = "vec", tag = "7")]
2186 pub body: ::prost::alloc::vec::Vec<u8>,
2187}
2188#[derive(Clone, PartialEq, ::prost::Message)]
2189pub struct CallApiProxyResponse {
2190 #[prost(int32, tag = "1")]
2191 pub status_code: i32,
2192 #[prost(message, repeated, tag = "2")]
2193 pub headers: ::prost::alloc::vec::Vec<ProxyHeader>,
2194 #[prost(bytes = "vec", tag = "3")]
2195 pub body: ::prost::alloc::vec::Vec<u8>,
2196}
2197#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2198#[repr(i32)]
2199pub enum ProxyHttpMethod {
2200 Unspecified = 0,
2201 Get = 1,
2202 Head = 2,
2203 Post = 3,
2204 Put = 4,
2205 Patch = 5,
2206 Delete = 6,
2207}
2208impl ProxyHttpMethod {
2209 pub fn as_str_name(&self) -> &'static str {
2214 match self {
2215 Self::Unspecified => "PROXY_HTTP_METHOD_UNSPECIFIED",
2216 Self::Get => "PROXY_HTTP_METHOD_GET",
2217 Self::Head => "PROXY_HTTP_METHOD_HEAD",
2218 Self::Post => "PROXY_HTTP_METHOD_POST",
2219 Self::Put => "PROXY_HTTP_METHOD_PUT",
2220 Self::Patch => "PROXY_HTTP_METHOD_PATCH",
2221 Self::Delete => "PROXY_HTTP_METHOD_DELETE",
2222 }
2223 }
2224 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2226 match value {
2227 "PROXY_HTTP_METHOD_UNSPECIFIED" => Some(Self::Unspecified),
2228 "PROXY_HTTP_METHOD_GET" => Some(Self::Get),
2229 "PROXY_HTTP_METHOD_HEAD" => Some(Self::Head),
2230 "PROXY_HTTP_METHOD_POST" => Some(Self::Post),
2231 "PROXY_HTTP_METHOD_PUT" => Some(Self::Put),
2232 "PROXY_HTTP_METHOD_PATCH" => Some(Self::Patch),
2233 "PROXY_HTTP_METHOD_DELETE" => Some(Self::Delete),
2234 _ => None,
2235 }
2236 }
2237}
2238pub mod nova_proxy_service_client {
2240 #![allow(
2241 unused_variables,
2242 dead_code,
2243 missing_docs,
2244 clippy::wildcard_imports,
2245 clippy::let_unit_value,
2246 )]
2247 use tonic::codegen::*;
2248 use tonic::codegen::http::Uri;
2249 #[derive(Debug, Clone)]
2250 pub struct NovaProxyServiceClient<T> {
2251 inner: tonic::client::Grpc<T>,
2252 }
2253 impl NovaProxyServiceClient<tonic::transport::Channel> {
2254 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
2256 where
2257 D: TryInto<tonic::transport::Endpoint>,
2258 D::Error: Into<StdError>,
2259 {
2260 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
2261 Ok(Self::new(conn))
2262 }
2263 }
2264 impl<T> NovaProxyServiceClient<T>
2265 where
2266 T: tonic::client::GrpcService<tonic::body::Body>,
2267 T::Error: Into<StdError>,
2268 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
2269 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
2270 {
2271 pub fn new(inner: T) -> Self {
2272 let inner = tonic::client::Grpc::new(inner);
2273 Self { inner }
2274 }
2275 pub fn with_origin(inner: T, origin: Uri) -> Self {
2276 let inner = tonic::client::Grpc::with_origin(inner, origin);
2277 Self { inner }
2278 }
2279 pub fn with_interceptor<F>(
2280 inner: T,
2281 interceptor: F,
2282 ) -> NovaProxyServiceClient<InterceptedService<T, F>>
2283 where
2284 F: tonic::service::Interceptor,
2285 T::ResponseBody: Default,
2286 T: tonic::codegen::Service<
2287 http::Request<tonic::body::Body>,
2288 Response = http::Response<
2289 <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
2290 >,
2291 >,
2292 <T as tonic::codegen::Service<
2293 http::Request<tonic::body::Body>,
2294 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
2295 {
2296 NovaProxyServiceClient::new(InterceptedService::new(inner, interceptor))
2297 }
2298 #[must_use]
2303 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
2304 self.inner = self.inner.send_compressed(encoding);
2305 self
2306 }
2307 #[must_use]
2309 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
2310 self.inner = self.inner.accept_compressed(encoding);
2311 self
2312 }
2313 #[must_use]
2317 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
2318 self.inner = self.inner.max_decoding_message_size(limit);
2319 self
2320 }
2321 #[must_use]
2325 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
2326 self.inner = self.inner.max_encoding_message_size(limit);
2327 self
2328 }
2329 pub async fn call_api_proxy(
2330 &mut self,
2331 request: impl tonic::IntoRequest<super::CallApiProxyRequest>,
2332 ) -> std::result::Result<
2333 tonic::Response<super::CallApiProxyResponse>,
2334 tonic::Status,
2335 > {
2336 self.inner
2337 .ready()
2338 .await
2339 .map_err(|e| {
2340 tonic::Status::unknown(
2341 format!("Service was not ready: {}", e.into()),
2342 )
2343 })?;
2344 let codec = tonic::codec::ProstCodec::default();
2345 let path = http::uri::PathAndQuery::from_static(
2346 "/nominal.nova.v1.NovaProxyService/CallApiProxy",
2347 );
2348 let mut req = request.into_request();
2349 req.extensions_mut()
2350 .insert(
2351 GrpcMethod::new("nominal.nova.v1.NovaProxyService", "CallApiProxy"),
2352 );
2353 self.inner.unary(req, path, codec).await
2354 }
2355 }
2356}