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}
173impl ApiProxyAuthKind {
174 pub fn as_str_name(&self) -> &'static str {
179 match self {
180 Self::Unspecified => "API_PROXY_AUTH_KIND_UNSPECIFIED",
181 Self::None => "API_PROXY_AUTH_KIND_NONE",
182 Self::BearerToken => "API_PROXY_AUTH_KIND_BEARER_TOKEN",
183 }
184 }
185 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
187 match value {
188 "API_PROXY_AUTH_KIND_UNSPECIFIED" => Some(Self::Unspecified),
189 "API_PROXY_AUTH_KIND_NONE" => Some(Self::None),
190 "API_PROXY_AUTH_KIND_BEARER_TOKEN" => Some(Self::BearerToken),
191 _ => None,
192 }
193 }
194}
195pub mod api_proxy_service_client {
197 #![allow(
198 unused_variables,
199 dead_code,
200 missing_docs,
201 clippy::wildcard_imports,
202 clippy::let_unit_value,
203 )]
204 use tonic::codegen::*;
205 use tonic::codegen::http::Uri;
206 #[derive(Debug, Clone)]
207 pub struct ApiProxyServiceClient<T> {
208 inner: tonic::client::Grpc<T>,
209 }
210 impl ApiProxyServiceClient<tonic::transport::Channel> {
211 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
213 where
214 D: TryInto<tonic::transport::Endpoint>,
215 D::Error: Into<StdError>,
216 {
217 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
218 Ok(Self::new(conn))
219 }
220 }
221 impl<T> ApiProxyServiceClient<T>
222 where
223 T: tonic::client::GrpcService<tonic::body::Body>,
224 T::Error: Into<StdError>,
225 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
226 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
227 {
228 pub fn new(inner: T) -> Self {
229 let inner = tonic::client::Grpc::new(inner);
230 Self { inner }
231 }
232 pub fn with_origin(inner: T, origin: Uri) -> Self {
233 let inner = tonic::client::Grpc::with_origin(inner, origin);
234 Self { inner }
235 }
236 pub fn with_interceptor<F>(
237 inner: T,
238 interceptor: F,
239 ) -> ApiProxyServiceClient<InterceptedService<T, F>>
240 where
241 F: tonic::service::Interceptor,
242 T::ResponseBody: Default,
243 T: tonic::codegen::Service<
244 http::Request<tonic::body::Body>,
245 Response = http::Response<
246 <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
247 >,
248 >,
249 <T as tonic::codegen::Service<
250 http::Request<tonic::body::Body>,
251 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
252 {
253 ApiProxyServiceClient::new(InterceptedService::new(inner, interceptor))
254 }
255 #[must_use]
260 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
261 self.inner = self.inner.send_compressed(encoding);
262 self
263 }
264 #[must_use]
266 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
267 self.inner = self.inner.accept_compressed(encoding);
268 self
269 }
270 #[must_use]
274 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
275 self.inner = self.inner.max_decoding_message_size(limit);
276 self
277 }
278 #[must_use]
282 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
283 self.inner = self.inner.max_encoding_message_size(limit);
284 self
285 }
286 pub async fn create_api_proxy(
287 &mut self,
288 request: impl tonic::IntoRequest<super::CreateApiProxyRequest>,
289 ) -> std::result::Result<
290 tonic::Response<super::CreateApiProxyResponse>,
291 tonic::Status,
292 > {
293 self.inner
294 .ready()
295 .await
296 .map_err(|e| {
297 tonic::Status::unknown(
298 format!("Service was not ready: {}", e.into()),
299 )
300 })?;
301 let codec = tonic::codec::ProstCodec::default();
302 let path = http::uri::PathAndQuery::from_static(
303 "/nominal.nova.v1.ApiProxyService/CreateApiProxy",
304 );
305 let mut req = request.into_request();
306 req.extensions_mut()
307 .insert(
308 GrpcMethod::new("nominal.nova.v1.ApiProxyService", "CreateApiProxy"),
309 );
310 self.inner.unary(req, path, codec).await
311 }
312 pub async fn get_api_proxy(
313 &mut self,
314 request: impl tonic::IntoRequest<super::GetApiProxyRequest>,
315 ) -> std::result::Result<
316 tonic::Response<super::GetApiProxyResponse>,
317 tonic::Status,
318 > {
319 self.inner
320 .ready()
321 .await
322 .map_err(|e| {
323 tonic::Status::unknown(
324 format!("Service was not ready: {}", e.into()),
325 )
326 })?;
327 let codec = tonic::codec::ProstCodec::default();
328 let path = http::uri::PathAndQuery::from_static(
329 "/nominal.nova.v1.ApiProxyService/GetApiProxy",
330 );
331 let mut req = request.into_request();
332 req.extensions_mut()
333 .insert(
334 GrpcMethod::new("nominal.nova.v1.ApiProxyService", "GetApiProxy"),
335 );
336 self.inner.unary(req, path, codec).await
337 }
338 pub async fn list_api_proxies(
339 &mut self,
340 request: impl tonic::IntoRequest<super::ListApiProxiesRequest>,
341 ) -> std::result::Result<
342 tonic::Response<super::ListApiProxiesResponse>,
343 tonic::Status,
344 > {
345 self.inner
346 .ready()
347 .await
348 .map_err(|e| {
349 tonic::Status::unknown(
350 format!("Service was not ready: {}", e.into()),
351 )
352 })?;
353 let codec = tonic::codec::ProstCodec::default();
354 let path = http::uri::PathAndQuery::from_static(
355 "/nominal.nova.v1.ApiProxyService/ListApiProxies",
356 );
357 let mut req = request.into_request();
358 req.extensions_mut()
359 .insert(
360 GrpcMethod::new("nominal.nova.v1.ApiProxyService", "ListApiProxies"),
361 );
362 self.inner.unary(req, path, codec).await
363 }
364 pub async fn delete_api_proxy(
365 &mut self,
366 request: impl tonic::IntoRequest<super::DeleteApiProxyRequest>,
367 ) -> std::result::Result<
368 tonic::Response<super::DeleteApiProxyResponse>,
369 tonic::Status,
370 > {
371 self.inner
372 .ready()
373 .await
374 .map_err(|e| {
375 tonic::Status::unknown(
376 format!("Service was not ready: {}", e.into()),
377 )
378 })?;
379 let codec = tonic::codec::ProstCodec::default();
380 let path = http::uri::PathAndQuery::from_static(
381 "/nominal.nova.v1.ApiProxyService/DeleteApiProxy",
382 );
383 let mut req = request.into_request();
384 req.extensions_mut()
385 .insert(
386 GrpcMethod::new("nominal.nova.v1.ApiProxyService", "DeleteApiProxy"),
387 );
388 self.inner.unary(req, path, codec).await
389 }
390 }
391}
392#[derive(Clone, PartialEq, ::prost::Message)]
393pub struct App {
394 #[prost(string, tag = "1")]
395 pub rid: ::prost::alloc::string::String,
396 #[prost(string, tag = "2")]
397 pub workspace_rid: ::prost::alloc::string::String,
398 #[prost(string, tag = "3")]
399 pub name: ::prost::alloc::string::String,
400 #[prost(string, tag = "4")]
401 pub title: ::prost::alloc::string::String,
402 #[prost(string, tag = "5")]
403 pub description: ::prost::alloc::string::String,
404 #[prost(string, repeated, tag = "6")]
405 pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
406 #[prost(map = "string, string", tag = "7")]
407 pub properties: ::std::collections::HashMap<
408 ::prost::alloc::string::String,
409 ::prost::alloc::string::String,
410 >,
411 #[prost(string, tag = "8")]
412 pub created_by_user_rid: ::prost::alloc::string::String,
413 #[prost(message, optional, tag = "9")]
414 pub created_at: ::core::option::Option<
415 super::super::super::google::protobuf::Timestamp,
416 >,
417 #[prost(message, optional, tag = "10")]
418 pub updated_at: ::core::option::Option<
419 super::super::super::google::protobuf::Timestamp,
420 >,
421 #[prost(bool, optional, tag = "11")]
422 pub is_archived: ::core::option::Option<bool>,
423 #[prost(string, optional, tag = "12")]
424 pub embed_path: ::core::option::Option<::prost::alloc::string::String>,
425 #[prost(string, optional, tag = "13")]
426 pub archive_sha256: ::core::option::Option<::prost::alloc::string::String>,
427}
428#[derive(Clone, PartialEq, ::prost::Message)]
429pub struct BundleSignature {
430 #[prost(string, tag = "1")]
431 pub key_id: ::prost::alloc::string::String,
432 #[prost(bytes = "vec", tag = "2")]
433 pub signature: ::prost::alloc::vec::Vec<u8>,
434}
435#[derive(Clone, PartialEq, ::prost::Message)]
436pub struct SignedAppBundle {
437 #[prost(string, tag = "1")]
438 pub upload_object_key: ::prost::alloc::string::String,
439 #[prost(message, optional, tag = "2")]
440 pub signature: ::core::option::Option<BundleSignature>,
441}
442#[derive(Clone, PartialEq, ::prost::Message)]
443pub struct CreateAppRequest {
444 #[prost(message, optional, tag = "1")]
445 pub app: ::core::option::Option<App>,
446 #[prost(message, optional, tag = "2")]
447 pub signed_bundle: ::core::option::Option<SignedAppBundle>,
448}
449#[derive(Clone, PartialEq, ::prost::Message)]
450pub struct CreateAppResponse {
451 #[prost(message, optional, tag = "1")]
452 pub app: ::core::option::Option<App>,
453}
454#[derive(Clone, PartialEq, ::prost::Message)]
455pub struct GetAppRequest {
456 #[prost(string, tag = "1")]
457 pub app_rid: ::prost::alloc::string::String,
458}
459#[derive(Clone, PartialEq, ::prost::Message)]
460pub struct GetAppResponse {
461 #[prost(message, optional, tag = "1")]
462 pub app: ::core::option::Option<App>,
463}
464#[derive(Clone, PartialEq, ::prost::Message)]
465pub struct UpdateAppRequest {
466 #[prost(string, tag = "1")]
467 pub app_rid: ::prost::alloc::string::String,
468 #[prost(message, optional, tag = "2")]
469 pub app: ::core::option::Option<App>,
470 #[prost(message, optional, tag = "3")]
471 pub signed_bundle: ::core::option::Option<SignedAppBundle>,
472}
473#[derive(Clone, PartialEq, ::prost::Message)]
474pub struct UpdateAppResponse {
475 #[prost(message, optional, tag = "1")]
476 pub app: ::core::option::Option<App>,
477}
478#[derive(Clone, PartialEq, ::prost::Message)]
479pub struct DeleteAppRequest {
480 #[prost(string, tag = "1")]
481 pub app_rid: ::prost::alloc::string::String,
482}
483#[derive(Clone, Copy, PartialEq, ::prost::Message)]
484pub struct DeleteAppResponse {}
485#[derive(Clone, PartialEq, ::prost::Message)]
486pub struct AppSearchFilter {
487 #[prost(string, optional, tag = "1")]
488 pub name_contains: ::core::option::Option<::prost::alloc::string::String>,
489 #[prost(bool, optional, tag = "2")]
490 pub include_archived: ::core::option::Option<bool>,
491 #[prost(string, repeated, tag = "3")]
492 pub created_by_user_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
493 #[prost(string, repeated, tag = "4")]
494 pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
495}
496#[derive(Clone, PartialEq, ::prost::Message)]
497pub struct SearchAppsRequest {
498 #[prost(string, tag = "1")]
499 pub workspace_rid: ::prost::alloc::string::String,
500 #[prost(message, optional, tag = "2")]
501 pub filter: ::core::option::Option<AppSearchFilter>,
502 #[prost(enumeration = "SearchAppsSortField", tag = "3")]
503 pub sort_field: i32,
504 #[prost(bool, tag = "4")]
505 pub descending: bool,
506 #[prost(int32, optional, tag = "5")]
507 pub page_size: ::core::option::Option<i32>,
508 #[prost(string, optional, tag = "6")]
509 pub page_token: ::core::option::Option<::prost::alloc::string::String>,
510}
511#[derive(Clone, PartialEq, ::prost::Message)]
512pub struct SearchAppsResponse {
513 #[prost(message, repeated, tag = "1")]
514 pub apps: ::prost::alloc::vec::Vec<App>,
515 #[prost(string, optional, tag = "2")]
516 pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
517}
518#[derive(Clone, PartialEq, ::prost::Message)]
519pub struct SearchAppLabelsRequest {
520 #[prost(string, tag = "1")]
521 pub workspace_rid: ::prost::alloc::string::String,
522 #[prost(int32, optional, tag = "2")]
523 pub page_size: ::core::option::Option<i32>,
524 #[prost(string, optional, tag = "3")]
525 pub page_token: ::core::option::Option<::prost::alloc::string::String>,
526}
527#[derive(Clone, PartialEq, ::prost::Message)]
528pub struct SearchAppLabelsResponse {
529 #[prost(string, repeated, tag = "1")]
530 pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
531 #[prost(string, optional, tag = "2")]
532 pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
533}
534#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
535#[repr(i32)]
536pub enum NovaError {
537 AppNotFound = 0,
538 AppNameTaken = 1,
539 AppNameImmutable = 2,
540 ServerAssignedFieldSet = 3,
541 InvalidPageToken = 4,
542 InvalidBundle = 5,
543 BundleVerificationFailed = 6,
544 AppUpdateConflict = 7,
545 ApiProxyNotFound = 8,
546 ApiProxyNameTaken = 9,
547 ApiProxyInUse = 10,
548 AppProxyExists = 11,
549 AppArchived = 12,
550}
551impl NovaError {
552 pub fn as_str_name(&self) -> &'static str {
557 match self {
558 Self::AppNotFound => "NOVA_ERROR_APP_NOT_FOUND",
559 Self::AppNameTaken => "NOVA_ERROR_APP_NAME_TAKEN",
560 Self::AppNameImmutable => "NOVA_ERROR_APP_NAME_IMMUTABLE",
561 Self::ServerAssignedFieldSet => "NOVA_ERROR_SERVER_ASSIGNED_FIELD_SET",
562 Self::InvalidPageToken => "NOVA_ERROR_INVALID_PAGE_TOKEN",
563 Self::InvalidBundle => "NOVA_ERROR_INVALID_BUNDLE",
564 Self::BundleVerificationFailed => "NOVA_ERROR_BUNDLE_VERIFICATION_FAILED",
565 Self::AppUpdateConflict => "NOVA_ERROR_APP_UPDATE_CONFLICT",
566 Self::ApiProxyNotFound => "NOVA_ERROR_API_PROXY_NOT_FOUND",
567 Self::ApiProxyNameTaken => "NOVA_ERROR_API_PROXY_NAME_TAKEN",
568 Self::ApiProxyInUse => "NOVA_ERROR_API_PROXY_IN_USE",
569 Self::AppProxyExists => "NOVA_ERROR_APP_PROXY_EXISTS",
570 Self::AppArchived => "NOVA_ERROR_APP_ARCHIVED",
571 }
572 }
573 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
575 match value {
576 "NOVA_ERROR_APP_NOT_FOUND" => Some(Self::AppNotFound),
577 "NOVA_ERROR_APP_NAME_TAKEN" => Some(Self::AppNameTaken),
578 "NOVA_ERROR_APP_NAME_IMMUTABLE" => Some(Self::AppNameImmutable),
579 "NOVA_ERROR_SERVER_ASSIGNED_FIELD_SET" => Some(Self::ServerAssignedFieldSet),
580 "NOVA_ERROR_INVALID_PAGE_TOKEN" => Some(Self::InvalidPageToken),
581 "NOVA_ERROR_INVALID_BUNDLE" => Some(Self::InvalidBundle),
582 "NOVA_ERROR_BUNDLE_VERIFICATION_FAILED" => {
583 Some(Self::BundleVerificationFailed)
584 }
585 "NOVA_ERROR_APP_UPDATE_CONFLICT" => Some(Self::AppUpdateConflict),
586 "NOVA_ERROR_API_PROXY_NOT_FOUND" => Some(Self::ApiProxyNotFound),
587 "NOVA_ERROR_API_PROXY_NAME_TAKEN" => Some(Self::ApiProxyNameTaken),
588 "NOVA_ERROR_API_PROXY_IN_USE" => Some(Self::ApiProxyInUse),
589 "NOVA_ERROR_APP_PROXY_EXISTS" => Some(Self::AppProxyExists),
590 "NOVA_ERROR_APP_ARCHIVED" => Some(Self::AppArchived),
591 _ => None,
592 }
593 }
594}
595#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
596#[repr(i32)]
597pub enum SearchAppsSortField {
598 Unspecified = 0,
599 Title = 1,
600 CreatedAt = 2,
601 UpdatedAt = 3,
602}
603impl SearchAppsSortField {
604 pub fn as_str_name(&self) -> &'static str {
609 match self {
610 Self::Unspecified => "SEARCH_APPS_SORT_FIELD_UNSPECIFIED",
611 Self::Title => "SEARCH_APPS_SORT_FIELD_TITLE",
612 Self::CreatedAt => "SEARCH_APPS_SORT_FIELD_CREATED_AT",
613 Self::UpdatedAt => "SEARCH_APPS_SORT_FIELD_UPDATED_AT",
614 }
615 }
616 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
618 match value {
619 "SEARCH_APPS_SORT_FIELD_UNSPECIFIED" => Some(Self::Unspecified),
620 "SEARCH_APPS_SORT_FIELD_TITLE" => Some(Self::Title),
621 "SEARCH_APPS_SORT_FIELD_CREATED_AT" => Some(Self::CreatedAt),
622 "SEARCH_APPS_SORT_FIELD_UPDATED_AT" => Some(Self::UpdatedAt),
623 _ => None,
624 }
625 }
626}
627pub mod nova_service_client {
629 #![allow(
630 unused_variables,
631 dead_code,
632 missing_docs,
633 clippy::wildcard_imports,
634 clippy::let_unit_value,
635 )]
636 use tonic::codegen::*;
637 use tonic::codegen::http::Uri;
638 #[derive(Debug, Clone)]
639 pub struct NovaServiceClient<T> {
640 inner: tonic::client::Grpc<T>,
641 }
642 impl NovaServiceClient<tonic::transport::Channel> {
643 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
645 where
646 D: TryInto<tonic::transport::Endpoint>,
647 D::Error: Into<StdError>,
648 {
649 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
650 Ok(Self::new(conn))
651 }
652 }
653 impl<T> NovaServiceClient<T>
654 where
655 T: tonic::client::GrpcService<tonic::body::Body>,
656 T::Error: Into<StdError>,
657 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
658 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
659 {
660 pub fn new(inner: T) -> Self {
661 let inner = tonic::client::Grpc::new(inner);
662 Self { inner }
663 }
664 pub fn with_origin(inner: T, origin: Uri) -> Self {
665 let inner = tonic::client::Grpc::with_origin(inner, origin);
666 Self { inner }
667 }
668 pub fn with_interceptor<F>(
669 inner: T,
670 interceptor: F,
671 ) -> NovaServiceClient<InterceptedService<T, F>>
672 where
673 F: tonic::service::Interceptor,
674 T::ResponseBody: Default,
675 T: tonic::codegen::Service<
676 http::Request<tonic::body::Body>,
677 Response = http::Response<
678 <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
679 >,
680 >,
681 <T as tonic::codegen::Service<
682 http::Request<tonic::body::Body>,
683 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
684 {
685 NovaServiceClient::new(InterceptedService::new(inner, interceptor))
686 }
687 #[must_use]
692 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
693 self.inner = self.inner.send_compressed(encoding);
694 self
695 }
696 #[must_use]
698 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
699 self.inner = self.inner.accept_compressed(encoding);
700 self
701 }
702 #[must_use]
706 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
707 self.inner = self.inner.max_decoding_message_size(limit);
708 self
709 }
710 #[must_use]
714 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
715 self.inner = self.inner.max_encoding_message_size(limit);
716 self
717 }
718 pub async fn create_app(
719 &mut self,
720 request: impl tonic::IntoRequest<super::CreateAppRequest>,
721 ) -> std::result::Result<
722 tonic::Response<super::CreateAppResponse>,
723 tonic::Status,
724 > {
725 self.inner
726 .ready()
727 .await
728 .map_err(|e| {
729 tonic::Status::unknown(
730 format!("Service was not ready: {}", e.into()),
731 )
732 })?;
733 let codec = tonic::codec::ProstCodec::default();
734 let path = http::uri::PathAndQuery::from_static(
735 "/nominal.nova.v1.NovaService/CreateApp",
736 );
737 let mut req = request.into_request();
738 req.extensions_mut()
739 .insert(GrpcMethod::new("nominal.nova.v1.NovaService", "CreateApp"));
740 self.inner.unary(req, path, codec).await
741 }
742 pub async fn get_app(
743 &mut self,
744 request: impl tonic::IntoRequest<super::GetAppRequest>,
745 ) -> std::result::Result<tonic::Response<super::GetAppResponse>, tonic::Status> {
746 self.inner
747 .ready()
748 .await
749 .map_err(|e| {
750 tonic::Status::unknown(
751 format!("Service was not ready: {}", e.into()),
752 )
753 })?;
754 let codec = tonic::codec::ProstCodec::default();
755 let path = http::uri::PathAndQuery::from_static(
756 "/nominal.nova.v1.NovaService/GetApp",
757 );
758 let mut req = request.into_request();
759 req.extensions_mut()
760 .insert(GrpcMethod::new("nominal.nova.v1.NovaService", "GetApp"));
761 self.inner.unary(req, path, codec).await
762 }
763 pub async fn update_app(
764 &mut self,
765 request: impl tonic::IntoRequest<super::UpdateAppRequest>,
766 ) -> std::result::Result<
767 tonic::Response<super::UpdateAppResponse>,
768 tonic::Status,
769 > {
770 self.inner
771 .ready()
772 .await
773 .map_err(|e| {
774 tonic::Status::unknown(
775 format!("Service was not ready: {}", e.into()),
776 )
777 })?;
778 let codec = tonic::codec::ProstCodec::default();
779 let path = http::uri::PathAndQuery::from_static(
780 "/nominal.nova.v1.NovaService/UpdateApp",
781 );
782 let mut req = request.into_request();
783 req.extensions_mut()
784 .insert(GrpcMethod::new("nominal.nova.v1.NovaService", "UpdateApp"));
785 self.inner.unary(req, path, codec).await
786 }
787 pub async fn delete_app(
788 &mut self,
789 request: impl tonic::IntoRequest<super::DeleteAppRequest>,
790 ) -> std::result::Result<
791 tonic::Response<super::DeleteAppResponse>,
792 tonic::Status,
793 > {
794 self.inner
795 .ready()
796 .await
797 .map_err(|e| {
798 tonic::Status::unknown(
799 format!("Service was not ready: {}", e.into()),
800 )
801 })?;
802 let codec = tonic::codec::ProstCodec::default();
803 let path = http::uri::PathAndQuery::from_static(
804 "/nominal.nova.v1.NovaService/DeleteApp",
805 );
806 let mut req = request.into_request();
807 req.extensions_mut()
808 .insert(GrpcMethod::new("nominal.nova.v1.NovaService", "DeleteApp"));
809 self.inner.unary(req, path, codec).await
810 }
811 pub async fn search_apps(
812 &mut self,
813 request: impl tonic::IntoRequest<super::SearchAppsRequest>,
814 ) -> std::result::Result<
815 tonic::Response<super::SearchAppsResponse>,
816 tonic::Status,
817 > {
818 self.inner
819 .ready()
820 .await
821 .map_err(|e| {
822 tonic::Status::unknown(
823 format!("Service was not ready: {}", e.into()),
824 )
825 })?;
826 let codec = tonic::codec::ProstCodec::default();
827 let path = http::uri::PathAndQuery::from_static(
828 "/nominal.nova.v1.NovaService/SearchApps",
829 );
830 let mut req = request.into_request();
831 req.extensions_mut()
832 .insert(GrpcMethod::new("nominal.nova.v1.NovaService", "SearchApps"));
833 self.inner.unary(req, path, codec).await
834 }
835 pub async fn search_app_labels(
836 &mut self,
837 request: impl tonic::IntoRequest<super::SearchAppLabelsRequest>,
838 ) -> std::result::Result<
839 tonic::Response<super::SearchAppLabelsResponse>,
840 tonic::Status,
841 > {
842 self.inner
843 .ready()
844 .await
845 .map_err(|e| {
846 tonic::Status::unknown(
847 format!("Service was not ready: {}", e.into()),
848 )
849 })?;
850 let codec = tonic::codec::ProstCodec::default();
851 let path = http::uri::PathAndQuery::from_static(
852 "/nominal.nova.v1.NovaService/SearchAppLabels",
853 );
854 let mut req = request.into_request();
855 req.extensions_mut()
856 .insert(
857 GrpcMethod::new("nominal.nova.v1.NovaService", "SearchAppLabels"),
858 );
859 self.inner.unary(req, path, codec).await
860 }
861 }
862}
863#[derive(Clone, PartialEq, ::prost::Message)]
864pub struct AppProxy {
865 #[prost(string, tag = "1")]
866 pub app_rid: ::prost::alloc::string::String,
867 #[prost(string, tag = "2")]
868 pub api_proxy_rid: ::prost::alloc::string::String,
869 #[prost(message, optional, tag = "3")]
870 pub created_at: ::core::option::Option<
871 super::super::super::google::protobuf::Timestamp,
872 >,
873}
874#[derive(Clone, PartialEq, ::prost::Message)]
875pub struct CreateAppProxyRequest {
876 #[prost(string, tag = "1")]
877 pub app_rid: ::prost::alloc::string::String,
878 #[prost(string, tag = "2")]
879 pub api_proxy_rid: ::prost::alloc::string::String,
880}
881#[derive(Clone, PartialEq, ::prost::Message)]
882pub struct CreateAppProxyResponse {
883 #[prost(message, optional, tag = "1")]
884 pub app_proxy: ::core::option::Option<AppProxy>,
885}
886#[derive(Clone, PartialEq, ::prost::Message)]
887pub struct DeleteAppProxyRequest {
888 #[prost(string, tag = "1")]
889 pub app_rid: ::prost::alloc::string::String,
890 #[prost(string, tag = "2")]
891 pub api_proxy_rid: ::prost::alloc::string::String,
892}
893#[derive(Clone, Copy, PartialEq, ::prost::Message)]
894pub struct DeleteAppProxyResponse {}
895#[derive(Clone, PartialEq, ::prost::Message)]
896pub struct ListAppProxiesRequest {
897 #[prost(string, tag = "1")]
898 pub app_rid: ::prost::alloc::string::String,
899 #[prost(int32, optional, tag = "2")]
900 pub page_size: ::core::option::Option<i32>,
901 #[prost(string, optional, tag = "3")]
902 pub page_token: ::core::option::Option<::prost::alloc::string::String>,
903}
904#[derive(Clone, PartialEq, ::prost::Message)]
905pub struct ListAppProxiesResponse {
906 #[prost(message, repeated, tag = "1")]
907 pub app_proxies: ::prost::alloc::vec::Vec<AppProxy>,
908 #[prost(string, optional, tag = "2")]
909 pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
910}
911pub mod app_proxy_service_client {
913 #![allow(
914 unused_variables,
915 dead_code,
916 missing_docs,
917 clippy::wildcard_imports,
918 clippy::let_unit_value,
919 )]
920 use tonic::codegen::*;
921 use tonic::codegen::http::Uri;
922 #[derive(Debug, Clone)]
923 pub struct AppProxyServiceClient<T> {
924 inner: tonic::client::Grpc<T>,
925 }
926 impl AppProxyServiceClient<tonic::transport::Channel> {
927 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
929 where
930 D: TryInto<tonic::transport::Endpoint>,
931 D::Error: Into<StdError>,
932 {
933 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
934 Ok(Self::new(conn))
935 }
936 }
937 impl<T> AppProxyServiceClient<T>
938 where
939 T: tonic::client::GrpcService<tonic::body::Body>,
940 T::Error: Into<StdError>,
941 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
942 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
943 {
944 pub fn new(inner: T) -> Self {
945 let inner = tonic::client::Grpc::new(inner);
946 Self { inner }
947 }
948 pub fn with_origin(inner: T, origin: Uri) -> Self {
949 let inner = tonic::client::Grpc::with_origin(inner, origin);
950 Self { inner }
951 }
952 pub fn with_interceptor<F>(
953 inner: T,
954 interceptor: F,
955 ) -> AppProxyServiceClient<InterceptedService<T, F>>
956 where
957 F: tonic::service::Interceptor,
958 T::ResponseBody: Default,
959 T: tonic::codegen::Service<
960 http::Request<tonic::body::Body>,
961 Response = http::Response<
962 <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
963 >,
964 >,
965 <T as tonic::codegen::Service<
966 http::Request<tonic::body::Body>,
967 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
968 {
969 AppProxyServiceClient::new(InterceptedService::new(inner, interceptor))
970 }
971 #[must_use]
976 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
977 self.inner = self.inner.send_compressed(encoding);
978 self
979 }
980 #[must_use]
982 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
983 self.inner = self.inner.accept_compressed(encoding);
984 self
985 }
986 #[must_use]
990 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
991 self.inner = self.inner.max_decoding_message_size(limit);
992 self
993 }
994 #[must_use]
998 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
999 self.inner = self.inner.max_encoding_message_size(limit);
1000 self
1001 }
1002 pub async fn create_app_proxy(
1003 &mut self,
1004 request: impl tonic::IntoRequest<super::CreateAppProxyRequest>,
1005 ) -> std::result::Result<
1006 tonic::Response<super::CreateAppProxyResponse>,
1007 tonic::Status,
1008 > {
1009 self.inner
1010 .ready()
1011 .await
1012 .map_err(|e| {
1013 tonic::Status::unknown(
1014 format!("Service was not ready: {}", e.into()),
1015 )
1016 })?;
1017 let codec = tonic::codec::ProstCodec::default();
1018 let path = http::uri::PathAndQuery::from_static(
1019 "/nominal.nova.v1.AppProxyService/CreateAppProxy",
1020 );
1021 let mut req = request.into_request();
1022 req.extensions_mut()
1023 .insert(
1024 GrpcMethod::new("nominal.nova.v1.AppProxyService", "CreateAppProxy"),
1025 );
1026 self.inner.unary(req, path, codec).await
1027 }
1028 pub async fn delete_app_proxy(
1029 &mut self,
1030 request: impl tonic::IntoRequest<super::DeleteAppProxyRequest>,
1031 ) -> std::result::Result<
1032 tonic::Response<super::DeleteAppProxyResponse>,
1033 tonic::Status,
1034 > {
1035 self.inner
1036 .ready()
1037 .await
1038 .map_err(|e| {
1039 tonic::Status::unknown(
1040 format!("Service was not ready: {}", e.into()),
1041 )
1042 })?;
1043 let codec = tonic::codec::ProstCodec::default();
1044 let path = http::uri::PathAndQuery::from_static(
1045 "/nominal.nova.v1.AppProxyService/DeleteAppProxy",
1046 );
1047 let mut req = request.into_request();
1048 req.extensions_mut()
1049 .insert(
1050 GrpcMethod::new("nominal.nova.v1.AppProxyService", "DeleteAppProxy"),
1051 );
1052 self.inner.unary(req, path, codec).await
1053 }
1054 pub async fn list_app_proxies(
1055 &mut self,
1056 request: impl tonic::IntoRequest<super::ListAppProxiesRequest>,
1057 ) -> std::result::Result<
1058 tonic::Response<super::ListAppProxiesResponse>,
1059 tonic::Status,
1060 > {
1061 self.inner
1062 .ready()
1063 .await
1064 .map_err(|e| {
1065 tonic::Status::unknown(
1066 format!("Service was not ready: {}", e.into()),
1067 )
1068 })?;
1069 let codec = tonic::codec::ProstCodec::default();
1070 let path = http::uri::PathAndQuery::from_static(
1071 "/nominal.nova.v1.AppProxyService/ListAppProxies",
1072 );
1073 let mut req = request.into_request();
1074 req.extensions_mut()
1075 .insert(
1076 GrpcMethod::new("nominal.nova.v1.AppProxyService", "ListAppProxies"),
1077 );
1078 self.inner.unary(req, path, codec).await
1079 }
1080 }
1081}
1082#[derive(Clone, PartialEq, ::prost::Message)]
1083pub struct KeyValueEntry {
1084 #[prost(string, tag = "1")]
1085 pub app_rid: ::prost::alloc::string::String,
1086 #[prost(string, tag = "2")]
1087 pub key: ::prost::alloc::string::String,
1088 #[prost(message, optional, tag = "3")]
1089 pub value: ::core::option::Option<super::super::super::google::protobuf::Value>,
1090 #[prost(message, optional, tag = "4")]
1091 pub created_at: ::core::option::Option<
1092 super::super::super::google::protobuf::Timestamp,
1093 >,
1094 #[prost(message, optional, tag = "5")]
1095 pub updated_at: ::core::option::Option<
1096 super::super::super::google::protobuf::Timestamp,
1097 >,
1098 #[prost(int64, tag = "6")]
1099 pub version: i64,
1100}
1101#[derive(Clone, PartialEq, ::prost::Message)]
1102pub struct CreateKeyValueEntryRequest {
1103 #[prost(string, tag = "1")]
1104 pub app_rid: ::prost::alloc::string::String,
1105 #[prost(string, tag = "2")]
1106 pub key: ::prost::alloc::string::String,
1107 #[prost(message, optional, tag = "3")]
1108 pub value: ::core::option::Option<super::super::super::google::protobuf::Value>,
1109}
1110#[derive(Clone, PartialEq, ::prost::Message)]
1111pub struct CreateKeyValueEntryResponse {
1112 #[prost(message, optional, tag = "1")]
1113 pub key_value_entry: ::core::option::Option<KeyValueEntry>,
1114}
1115#[derive(Clone, PartialEq, ::prost::Message)]
1116pub struct UpdateKeyValueEntryRequest {
1117 #[prost(string, tag = "1")]
1118 pub app_rid: ::prost::alloc::string::String,
1119 #[prost(string, tag = "2")]
1120 pub key: ::prost::alloc::string::String,
1121 #[prost(message, optional, tag = "3")]
1122 pub value: ::core::option::Option<super::super::super::google::protobuf::Value>,
1123 #[prost(int64, optional, tag = "4")]
1124 pub expected_version: ::core::option::Option<i64>,
1125}
1126#[derive(Clone, PartialEq, ::prost::Message)]
1127pub struct UpdateKeyValueEntryResponse {
1128 #[prost(message, optional, tag = "1")]
1129 pub key_value_entry: ::core::option::Option<KeyValueEntry>,
1130}
1131#[derive(Clone, PartialEq, ::prost::Message)]
1132pub struct GetKeyValueEntryRequest {
1133 #[prost(string, tag = "1")]
1134 pub app_rid: ::prost::alloc::string::String,
1135 #[prost(string, tag = "2")]
1136 pub key: ::prost::alloc::string::String,
1137}
1138#[derive(Clone, PartialEq, ::prost::Message)]
1139pub struct GetKeyValueEntryResponse {
1140 #[prost(message, optional, tag = "1")]
1141 pub key_value_entry: ::core::option::Option<KeyValueEntry>,
1142}
1143#[derive(Clone, PartialEq, ::prost::Message)]
1144pub struct DeleteKeyValueEntryRequest {
1145 #[prost(string, tag = "1")]
1146 pub app_rid: ::prost::alloc::string::String,
1147 #[prost(string, tag = "2")]
1148 pub key: ::prost::alloc::string::String,
1149}
1150#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1151pub struct DeleteKeyValueEntryResponse {}
1152#[derive(Clone, PartialEq, ::prost::Message)]
1153pub struct BatchGetKeyValueEntriesRequest {
1154 #[prost(string, tag = "1")]
1155 pub app_rid: ::prost::alloc::string::String,
1156 #[prost(string, repeated, tag = "2")]
1157 pub keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1158}
1159#[derive(Clone, PartialEq, ::prost::Message)]
1160pub struct BatchGetKeyValueEntriesResponse {
1161 #[prost(message, repeated, tag = "1")]
1162 pub key_value_entries: ::prost::alloc::vec::Vec<KeyValueEntry>,
1163}
1164#[derive(Clone, PartialEq, ::prost::Message)]
1165pub struct BatchCreateKeyValueEntriesRequest {
1166 #[prost(string, tag = "1")]
1167 pub app_rid: ::prost::alloc::string::String,
1168 #[prost(message, repeated, tag = "2")]
1169 pub writes: ::prost::alloc::vec::Vec<KeyValueEntryWrite>,
1170}
1171#[derive(Clone, PartialEq, ::prost::Message)]
1172pub struct BatchCreateKeyValueEntriesResponse {
1173 #[prost(message, repeated, tag = "1")]
1174 pub key_value_entries: ::prost::alloc::vec::Vec<KeyValueEntry>,
1175}
1176#[derive(Clone, PartialEq, ::prost::Message)]
1177pub struct KeyValueEntryWrite {
1178 #[prost(string, tag = "1")]
1179 pub key: ::prost::alloc::string::String,
1180 #[prost(message, optional, tag = "2")]
1181 pub value: ::core::option::Option<super::super::super::google::protobuf::Value>,
1182 #[prost(int64, optional, tag = "3")]
1183 pub expected_version: ::core::option::Option<i64>,
1184}
1185#[derive(Clone, PartialEq, ::prost::Message)]
1186pub struct BatchUpdateKeyValueEntriesRequest {
1187 #[prost(string, tag = "1")]
1188 pub app_rid: ::prost::alloc::string::String,
1189 #[prost(message, repeated, tag = "2")]
1190 pub writes: ::prost::alloc::vec::Vec<KeyValueEntryWrite>,
1191}
1192#[derive(Clone, PartialEq, ::prost::Message)]
1193pub struct BatchUpdateKeyValueEntriesResponse {
1194 #[prost(message, repeated, tag = "1")]
1195 pub key_value_entries: ::prost::alloc::vec::Vec<KeyValueEntry>,
1196}
1197#[derive(Clone, PartialEq, ::prost::Message)]
1198pub struct BatchDeleteKeyValueEntriesRequest {
1199 #[prost(string, tag = "1")]
1200 pub app_rid: ::prost::alloc::string::String,
1201 #[prost(string, repeated, tag = "2")]
1202 pub keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1203}
1204#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1205pub struct BatchDeleteKeyValueEntriesResponse {}
1206#[derive(Clone, PartialEq, ::prost::Message)]
1207pub struct SearchKeyValueEntriesRequest {
1208 #[prost(string, tag = "1")]
1209 pub app_rid: ::prost::alloc::string::String,
1210 #[prost(string, optional, tag = "2")]
1211 pub key_prefix: ::core::option::Option<::prost::alloc::string::String>,
1212 #[prost(int32, optional, tag = "3")]
1213 pub page_size: ::core::option::Option<i32>,
1214 #[prost(string, optional, tag = "4")]
1215 pub page_token: ::core::option::Option<::prost::alloc::string::String>,
1216}
1217#[derive(Clone, PartialEq, ::prost::Message)]
1218pub struct SearchKeyValueEntriesResponse {
1219 #[prost(message, repeated, tag = "1")]
1220 pub key_value_entries: ::prost::alloc::vec::Vec<KeyValueEntry>,
1221 #[prost(string, optional, tag = "2")]
1222 pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
1223}
1224#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1225#[repr(i32)]
1226pub enum NovaKeyValueError {
1227 VersionConflict = 0,
1228 QuotaExceeded = 1,
1229 RateLimited = 2,
1230 AppArchived = 3,
1231 ValueTooLarge = 4,
1232 EntryAlreadyExists = 6,
1233 EntryNotFound = 5,
1234}
1235impl NovaKeyValueError {
1236 pub fn as_str_name(&self) -> &'static str {
1241 match self {
1242 Self::VersionConflict => "NOVA_KEY_VALUE_ERROR_VERSION_CONFLICT",
1243 Self::QuotaExceeded => "NOVA_KEY_VALUE_ERROR_QUOTA_EXCEEDED",
1244 Self::RateLimited => "NOVA_KEY_VALUE_ERROR_RATE_LIMITED",
1245 Self::AppArchived => "NOVA_KEY_VALUE_ERROR_APP_ARCHIVED",
1246 Self::ValueTooLarge => "NOVA_KEY_VALUE_ERROR_VALUE_TOO_LARGE",
1247 Self::EntryAlreadyExists => "NOVA_KEY_VALUE_ERROR_ENTRY_ALREADY_EXISTS",
1248 Self::EntryNotFound => "NOVA_KEY_VALUE_ERROR_ENTRY_NOT_FOUND",
1249 }
1250 }
1251 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1253 match value {
1254 "NOVA_KEY_VALUE_ERROR_VERSION_CONFLICT" => Some(Self::VersionConflict),
1255 "NOVA_KEY_VALUE_ERROR_QUOTA_EXCEEDED" => Some(Self::QuotaExceeded),
1256 "NOVA_KEY_VALUE_ERROR_RATE_LIMITED" => Some(Self::RateLimited),
1257 "NOVA_KEY_VALUE_ERROR_APP_ARCHIVED" => Some(Self::AppArchived),
1258 "NOVA_KEY_VALUE_ERROR_VALUE_TOO_LARGE" => Some(Self::ValueTooLarge),
1259 "NOVA_KEY_VALUE_ERROR_ENTRY_ALREADY_EXISTS" => Some(Self::EntryAlreadyExists),
1260 "NOVA_KEY_VALUE_ERROR_ENTRY_NOT_FOUND" => Some(Self::EntryNotFound),
1261 _ => None,
1262 }
1263 }
1264}
1265pub mod nova_key_value_service_client {
1267 #![allow(
1268 unused_variables,
1269 dead_code,
1270 missing_docs,
1271 clippy::wildcard_imports,
1272 clippy::let_unit_value,
1273 )]
1274 use tonic::codegen::*;
1275 use tonic::codegen::http::Uri;
1276 #[derive(Debug, Clone)]
1277 pub struct NovaKeyValueServiceClient<T> {
1278 inner: tonic::client::Grpc<T>,
1279 }
1280 impl NovaKeyValueServiceClient<tonic::transport::Channel> {
1281 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
1283 where
1284 D: TryInto<tonic::transport::Endpoint>,
1285 D::Error: Into<StdError>,
1286 {
1287 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
1288 Ok(Self::new(conn))
1289 }
1290 }
1291 impl<T> NovaKeyValueServiceClient<T>
1292 where
1293 T: tonic::client::GrpcService<tonic::body::Body>,
1294 T::Error: Into<StdError>,
1295 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
1296 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
1297 {
1298 pub fn new(inner: T) -> Self {
1299 let inner = tonic::client::Grpc::new(inner);
1300 Self { inner }
1301 }
1302 pub fn with_origin(inner: T, origin: Uri) -> Self {
1303 let inner = tonic::client::Grpc::with_origin(inner, origin);
1304 Self { inner }
1305 }
1306 pub fn with_interceptor<F>(
1307 inner: T,
1308 interceptor: F,
1309 ) -> NovaKeyValueServiceClient<InterceptedService<T, F>>
1310 where
1311 F: tonic::service::Interceptor,
1312 T::ResponseBody: Default,
1313 T: tonic::codegen::Service<
1314 http::Request<tonic::body::Body>,
1315 Response = http::Response<
1316 <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
1317 >,
1318 >,
1319 <T as tonic::codegen::Service<
1320 http::Request<tonic::body::Body>,
1321 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
1322 {
1323 NovaKeyValueServiceClient::new(InterceptedService::new(inner, interceptor))
1324 }
1325 #[must_use]
1330 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1331 self.inner = self.inner.send_compressed(encoding);
1332 self
1333 }
1334 #[must_use]
1336 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1337 self.inner = self.inner.accept_compressed(encoding);
1338 self
1339 }
1340 #[must_use]
1344 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1345 self.inner = self.inner.max_decoding_message_size(limit);
1346 self
1347 }
1348 #[must_use]
1352 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1353 self.inner = self.inner.max_encoding_message_size(limit);
1354 self
1355 }
1356 pub async fn create_key_value_entry(
1357 &mut self,
1358 request: impl tonic::IntoRequest<super::CreateKeyValueEntryRequest>,
1359 ) -> std::result::Result<
1360 tonic::Response<super::CreateKeyValueEntryResponse>,
1361 tonic::Status,
1362 > {
1363 self.inner
1364 .ready()
1365 .await
1366 .map_err(|e| {
1367 tonic::Status::unknown(
1368 format!("Service was not ready: {}", e.into()),
1369 )
1370 })?;
1371 let codec = tonic::codec::ProstCodec::default();
1372 let path = http::uri::PathAndQuery::from_static(
1373 "/nominal.nova.v1.NovaKeyValueService/CreateKeyValueEntry",
1374 );
1375 let mut req = request.into_request();
1376 req.extensions_mut()
1377 .insert(
1378 GrpcMethod::new(
1379 "nominal.nova.v1.NovaKeyValueService",
1380 "CreateKeyValueEntry",
1381 ),
1382 );
1383 self.inner.unary(req, path, codec).await
1384 }
1385 pub async fn update_key_value_entry(
1386 &mut self,
1387 request: impl tonic::IntoRequest<super::UpdateKeyValueEntryRequest>,
1388 ) -> std::result::Result<
1389 tonic::Response<super::UpdateKeyValueEntryResponse>,
1390 tonic::Status,
1391 > {
1392 self.inner
1393 .ready()
1394 .await
1395 .map_err(|e| {
1396 tonic::Status::unknown(
1397 format!("Service was not ready: {}", e.into()),
1398 )
1399 })?;
1400 let codec = tonic::codec::ProstCodec::default();
1401 let path = http::uri::PathAndQuery::from_static(
1402 "/nominal.nova.v1.NovaKeyValueService/UpdateKeyValueEntry",
1403 );
1404 let mut req = request.into_request();
1405 req.extensions_mut()
1406 .insert(
1407 GrpcMethod::new(
1408 "nominal.nova.v1.NovaKeyValueService",
1409 "UpdateKeyValueEntry",
1410 ),
1411 );
1412 self.inner.unary(req, path, codec).await
1413 }
1414 pub async fn get_key_value_entry(
1415 &mut self,
1416 request: impl tonic::IntoRequest<super::GetKeyValueEntryRequest>,
1417 ) -> std::result::Result<
1418 tonic::Response<super::GetKeyValueEntryResponse>,
1419 tonic::Status,
1420 > {
1421 self.inner
1422 .ready()
1423 .await
1424 .map_err(|e| {
1425 tonic::Status::unknown(
1426 format!("Service was not ready: {}", e.into()),
1427 )
1428 })?;
1429 let codec = tonic::codec::ProstCodec::default();
1430 let path = http::uri::PathAndQuery::from_static(
1431 "/nominal.nova.v1.NovaKeyValueService/GetKeyValueEntry",
1432 );
1433 let mut req = request.into_request();
1434 req.extensions_mut()
1435 .insert(
1436 GrpcMethod::new(
1437 "nominal.nova.v1.NovaKeyValueService",
1438 "GetKeyValueEntry",
1439 ),
1440 );
1441 self.inner.unary(req, path, codec).await
1442 }
1443 pub async fn delete_key_value_entry(
1444 &mut self,
1445 request: impl tonic::IntoRequest<super::DeleteKeyValueEntryRequest>,
1446 ) -> std::result::Result<
1447 tonic::Response<super::DeleteKeyValueEntryResponse>,
1448 tonic::Status,
1449 > {
1450 self.inner
1451 .ready()
1452 .await
1453 .map_err(|e| {
1454 tonic::Status::unknown(
1455 format!("Service was not ready: {}", e.into()),
1456 )
1457 })?;
1458 let codec = tonic::codec::ProstCodec::default();
1459 let path = http::uri::PathAndQuery::from_static(
1460 "/nominal.nova.v1.NovaKeyValueService/DeleteKeyValueEntry",
1461 );
1462 let mut req = request.into_request();
1463 req.extensions_mut()
1464 .insert(
1465 GrpcMethod::new(
1466 "nominal.nova.v1.NovaKeyValueService",
1467 "DeleteKeyValueEntry",
1468 ),
1469 );
1470 self.inner.unary(req, path, codec).await
1471 }
1472 pub async fn batch_get_key_value_entries(
1473 &mut self,
1474 request: impl tonic::IntoRequest<super::BatchGetKeyValueEntriesRequest>,
1475 ) -> std::result::Result<
1476 tonic::Response<super::BatchGetKeyValueEntriesResponse>,
1477 tonic::Status,
1478 > {
1479 self.inner
1480 .ready()
1481 .await
1482 .map_err(|e| {
1483 tonic::Status::unknown(
1484 format!("Service was not ready: {}", e.into()),
1485 )
1486 })?;
1487 let codec = tonic::codec::ProstCodec::default();
1488 let path = http::uri::PathAndQuery::from_static(
1489 "/nominal.nova.v1.NovaKeyValueService/BatchGetKeyValueEntries",
1490 );
1491 let mut req = request.into_request();
1492 req.extensions_mut()
1493 .insert(
1494 GrpcMethod::new(
1495 "nominal.nova.v1.NovaKeyValueService",
1496 "BatchGetKeyValueEntries",
1497 ),
1498 );
1499 self.inner.unary(req, path, codec).await
1500 }
1501 pub async fn batch_create_key_value_entries(
1502 &mut self,
1503 request: impl tonic::IntoRequest<super::BatchCreateKeyValueEntriesRequest>,
1504 ) -> std::result::Result<
1505 tonic::Response<super::BatchCreateKeyValueEntriesResponse>,
1506 tonic::Status,
1507 > {
1508 self.inner
1509 .ready()
1510 .await
1511 .map_err(|e| {
1512 tonic::Status::unknown(
1513 format!("Service was not ready: {}", e.into()),
1514 )
1515 })?;
1516 let codec = tonic::codec::ProstCodec::default();
1517 let path = http::uri::PathAndQuery::from_static(
1518 "/nominal.nova.v1.NovaKeyValueService/BatchCreateKeyValueEntries",
1519 );
1520 let mut req = request.into_request();
1521 req.extensions_mut()
1522 .insert(
1523 GrpcMethod::new(
1524 "nominal.nova.v1.NovaKeyValueService",
1525 "BatchCreateKeyValueEntries",
1526 ),
1527 );
1528 self.inner.unary(req, path, codec).await
1529 }
1530 pub async fn batch_update_key_value_entries(
1531 &mut self,
1532 request: impl tonic::IntoRequest<super::BatchUpdateKeyValueEntriesRequest>,
1533 ) -> std::result::Result<
1534 tonic::Response<super::BatchUpdateKeyValueEntriesResponse>,
1535 tonic::Status,
1536 > {
1537 self.inner
1538 .ready()
1539 .await
1540 .map_err(|e| {
1541 tonic::Status::unknown(
1542 format!("Service was not ready: {}", e.into()),
1543 )
1544 })?;
1545 let codec = tonic::codec::ProstCodec::default();
1546 let path = http::uri::PathAndQuery::from_static(
1547 "/nominal.nova.v1.NovaKeyValueService/BatchUpdateKeyValueEntries",
1548 );
1549 let mut req = request.into_request();
1550 req.extensions_mut()
1551 .insert(
1552 GrpcMethod::new(
1553 "nominal.nova.v1.NovaKeyValueService",
1554 "BatchUpdateKeyValueEntries",
1555 ),
1556 );
1557 self.inner.unary(req, path, codec).await
1558 }
1559 pub async fn batch_delete_key_value_entries(
1560 &mut self,
1561 request: impl tonic::IntoRequest<super::BatchDeleteKeyValueEntriesRequest>,
1562 ) -> std::result::Result<
1563 tonic::Response<super::BatchDeleteKeyValueEntriesResponse>,
1564 tonic::Status,
1565 > {
1566 self.inner
1567 .ready()
1568 .await
1569 .map_err(|e| {
1570 tonic::Status::unknown(
1571 format!("Service was not ready: {}", e.into()),
1572 )
1573 })?;
1574 let codec = tonic::codec::ProstCodec::default();
1575 let path = http::uri::PathAndQuery::from_static(
1576 "/nominal.nova.v1.NovaKeyValueService/BatchDeleteKeyValueEntries",
1577 );
1578 let mut req = request.into_request();
1579 req.extensions_mut()
1580 .insert(
1581 GrpcMethod::new(
1582 "nominal.nova.v1.NovaKeyValueService",
1583 "BatchDeleteKeyValueEntries",
1584 ),
1585 );
1586 self.inner.unary(req, path, codec).await
1587 }
1588 pub async fn search_key_value_entries(
1589 &mut self,
1590 request: impl tonic::IntoRequest<super::SearchKeyValueEntriesRequest>,
1591 ) -> std::result::Result<
1592 tonic::Response<super::SearchKeyValueEntriesResponse>,
1593 tonic::Status,
1594 > {
1595 self.inner
1596 .ready()
1597 .await
1598 .map_err(|e| {
1599 tonic::Status::unknown(
1600 format!("Service was not ready: {}", e.into()),
1601 )
1602 })?;
1603 let codec = tonic::codec::ProstCodec::default();
1604 let path = http::uri::PathAndQuery::from_static(
1605 "/nominal.nova.v1.NovaKeyValueService/SearchKeyValueEntries",
1606 );
1607 let mut req = request.into_request();
1608 req.extensions_mut()
1609 .insert(
1610 GrpcMethod::new(
1611 "nominal.nova.v1.NovaKeyValueService",
1612 "SearchKeyValueEntries",
1613 ),
1614 );
1615 self.inner.unary(req, path, codec).await
1616 }
1617 }
1618}
1619#[derive(Clone, PartialEq, ::prost::Message)]
1620pub struct ProxyHeader {
1621 #[prost(string, tag = "1")]
1622 pub name: ::prost::alloc::string::String,
1623 #[prost(string, tag = "2")]
1624 pub value: ::prost::alloc::string::String,
1625}
1626#[derive(Clone, PartialEq, ::prost::Message)]
1627pub struct CallApiProxyRequest {
1628 #[prost(string, tag = "1")]
1629 pub app_rid: ::prost::alloc::string::String,
1630 #[prost(string, tag = "2")]
1631 pub api_proxy_rid: ::prost::alloc::string::String,
1632 #[prost(enumeration = "ProxyHttpMethod", tag = "3")]
1633 pub method: i32,
1634 #[prost(string, tag = "4")]
1635 pub path: ::prost::alloc::string::String,
1636 #[prost(string, tag = "5")]
1637 pub query: ::prost::alloc::string::String,
1638 #[prost(message, repeated, tag = "6")]
1639 pub headers: ::prost::alloc::vec::Vec<ProxyHeader>,
1640 #[prost(bytes = "vec", tag = "7")]
1641 pub body: ::prost::alloc::vec::Vec<u8>,
1642}
1643#[derive(Clone, PartialEq, ::prost::Message)]
1644pub struct CallApiProxyResponse {
1645 #[prost(int32, tag = "1")]
1646 pub status_code: i32,
1647 #[prost(message, repeated, tag = "2")]
1648 pub headers: ::prost::alloc::vec::Vec<ProxyHeader>,
1649 #[prost(bytes = "vec", tag = "3")]
1650 pub body: ::prost::alloc::vec::Vec<u8>,
1651}
1652#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1653#[repr(i32)]
1654pub enum ProxyHttpMethod {
1655 Unspecified = 0,
1656 Get = 1,
1657 Head = 2,
1658 Post = 3,
1659 Put = 4,
1660 Patch = 5,
1661 Delete = 6,
1662}
1663impl ProxyHttpMethod {
1664 pub fn as_str_name(&self) -> &'static str {
1669 match self {
1670 Self::Unspecified => "PROXY_HTTP_METHOD_UNSPECIFIED",
1671 Self::Get => "PROXY_HTTP_METHOD_GET",
1672 Self::Head => "PROXY_HTTP_METHOD_HEAD",
1673 Self::Post => "PROXY_HTTP_METHOD_POST",
1674 Self::Put => "PROXY_HTTP_METHOD_PUT",
1675 Self::Patch => "PROXY_HTTP_METHOD_PATCH",
1676 Self::Delete => "PROXY_HTTP_METHOD_DELETE",
1677 }
1678 }
1679 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1681 match value {
1682 "PROXY_HTTP_METHOD_UNSPECIFIED" => Some(Self::Unspecified),
1683 "PROXY_HTTP_METHOD_GET" => Some(Self::Get),
1684 "PROXY_HTTP_METHOD_HEAD" => Some(Self::Head),
1685 "PROXY_HTTP_METHOD_POST" => Some(Self::Post),
1686 "PROXY_HTTP_METHOD_PUT" => Some(Self::Put),
1687 "PROXY_HTTP_METHOD_PATCH" => Some(Self::Patch),
1688 "PROXY_HTTP_METHOD_DELETE" => Some(Self::Delete),
1689 _ => None,
1690 }
1691 }
1692}
1693pub mod nova_proxy_service_client {
1695 #![allow(
1696 unused_variables,
1697 dead_code,
1698 missing_docs,
1699 clippy::wildcard_imports,
1700 clippy::let_unit_value,
1701 )]
1702 use tonic::codegen::*;
1703 use tonic::codegen::http::Uri;
1704 #[derive(Debug, Clone)]
1705 pub struct NovaProxyServiceClient<T> {
1706 inner: tonic::client::Grpc<T>,
1707 }
1708 impl NovaProxyServiceClient<tonic::transport::Channel> {
1709 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
1711 where
1712 D: TryInto<tonic::transport::Endpoint>,
1713 D::Error: Into<StdError>,
1714 {
1715 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
1716 Ok(Self::new(conn))
1717 }
1718 }
1719 impl<T> NovaProxyServiceClient<T>
1720 where
1721 T: tonic::client::GrpcService<tonic::body::Body>,
1722 T::Error: Into<StdError>,
1723 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
1724 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
1725 {
1726 pub fn new(inner: T) -> Self {
1727 let inner = tonic::client::Grpc::new(inner);
1728 Self { inner }
1729 }
1730 pub fn with_origin(inner: T, origin: Uri) -> Self {
1731 let inner = tonic::client::Grpc::with_origin(inner, origin);
1732 Self { inner }
1733 }
1734 pub fn with_interceptor<F>(
1735 inner: T,
1736 interceptor: F,
1737 ) -> NovaProxyServiceClient<InterceptedService<T, F>>
1738 where
1739 F: tonic::service::Interceptor,
1740 T::ResponseBody: Default,
1741 T: tonic::codegen::Service<
1742 http::Request<tonic::body::Body>,
1743 Response = http::Response<
1744 <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
1745 >,
1746 >,
1747 <T as tonic::codegen::Service<
1748 http::Request<tonic::body::Body>,
1749 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
1750 {
1751 NovaProxyServiceClient::new(InterceptedService::new(inner, interceptor))
1752 }
1753 #[must_use]
1758 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1759 self.inner = self.inner.send_compressed(encoding);
1760 self
1761 }
1762 #[must_use]
1764 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1765 self.inner = self.inner.accept_compressed(encoding);
1766 self
1767 }
1768 #[must_use]
1772 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1773 self.inner = self.inner.max_decoding_message_size(limit);
1774 self
1775 }
1776 #[must_use]
1780 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1781 self.inner = self.inner.max_encoding_message_size(limit);
1782 self
1783 }
1784 pub async fn call_api_proxy(
1785 &mut self,
1786 request: impl tonic::IntoRequest<super::CallApiProxyRequest>,
1787 ) -> std::result::Result<
1788 tonic::Response<super::CallApiProxyResponse>,
1789 tonic::Status,
1790 > {
1791 self.inner
1792 .ready()
1793 .await
1794 .map_err(|e| {
1795 tonic::Status::unknown(
1796 format!("Service was not ready: {}", e.into()),
1797 )
1798 })?;
1799 let codec = tonic::codec::ProstCodec::default();
1800 let path = http::uri::PathAndQuery::from_static(
1801 "/nominal.nova.v1.NovaProxyService/CallApiProxy",
1802 );
1803 let mut req = request.into_request();
1804 req.extensions_mut()
1805 .insert(
1806 GrpcMethod::new("nominal.nova.v1.NovaProxyService", "CallApiProxy"),
1807 );
1808 self.inner.unary(req, path, codec).await
1809 }
1810 }
1811}