Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: commit generated proto files #753

Merged
merged 2 commits into from
Mar 28, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion proto/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,5 @@ tracing = { workspace = true }
workspace = true
features = ["claims", "error", "service", "wasm"]

[build-dependencies]
[dev-dependencies]
tonic-build = { workspace = true }
5 changes: 0 additions & 5 deletions proto/build.rs

This file was deleted.

382 changes: 382 additions & 0 deletions proto/src/generated/provisioner.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,382 @@
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DatabaseRequest {
#[prost(string, tag = "1")]
pub project_name: ::prost::alloc::string::String,
#[prost(oneof = "database_request::DbType", tags = "10, 11")]
pub db_type: ::core::option::Option<database_request::DbType>,
}
/// Nested message and enum types in `DatabaseRequest`.
pub mod database_request {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum DbType {
#[prost(message, tag = "10")]
Shared(super::Shared),
#[prost(message, tag = "11")]
AwsRds(super::AwsRds),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Shared {
#[prost(oneof = "shared::Engine", tags = "1, 50")]
pub engine: ::core::option::Option<shared::Engine>,
}
/// Nested message and enum types in `Shared`.
pub mod shared {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Engine {
#[prost(string, tag = "1")]
Postgres(::prost::alloc::string::String),
#[prost(string, tag = "50")]
Mongodb(::prost::alloc::string::String),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AwsRds {
#[prost(oneof = "aws_rds::Engine", tags = "1, 2, 3")]
pub engine: ::core::option::Option<aws_rds::Engine>,
}
/// Nested message and enum types in `AwsRds`.
pub mod aws_rds {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Engine {
#[prost(message, tag = "1")]
Postgres(super::RdsConfig),
#[prost(message, tag = "2")]
Mysql(super::RdsConfig),
#[prost(message, tag = "3")]
Mariadb(super::RdsConfig),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RdsConfig {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DatabaseResponse {
#[prost(string, tag = "1")]
pub username: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub password: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub database_name: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub engine: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub address_private: ::prost::alloc::string::String,
#[prost(string, tag = "6")]
pub address_public: ::prost::alloc::string::String,
#[prost(string, tag = "7")]
pub port: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DatabaseDeletionResponse {}
/// Generated client implementations.
pub mod provisioner_client {
#![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
use tonic::codegen::*;
use tonic::codegen::http::Uri;
#[derive(Debug, Clone)]
pub struct ProvisionerClient<T> {
inner: tonic::client::Grpc<T>,
}
impl ProvisionerClient<tonic::transport::Channel> {
/// Attempt to create a new client by connecting to a given endpoint.
pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
where
D: std::convert::TryInto<tonic::transport::Endpoint>,
D::Error: Into<StdError>,
{
let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
Ok(Self::new(conn))
}
}
impl<T> ProvisionerClient<T>
where
T: tonic::client::GrpcService<tonic::body::BoxBody>,
T::Error: Into<StdError>,
T::ResponseBody: Body<Data = Bytes> + Send + 'static,
<T::ResponseBody as Body>::Error: Into<StdError> + Send,
{
pub fn new(inner: T) -> Self {
let inner = tonic::client::Grpc::new(inner);
Self { inner }
}
pub fn with_origin(inner: T, origin: Uri) -> Self {
let inner = tonic::client::Grpc::with_origin(inner, origin);
Self { inner }
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> ProvisionerClient<InterceptedService<T, F>>
where
F: tonic::service::Interceptor,
T::ResponseBody: Default,
T: tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
Response = http::Response<
<T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
>,
>,
<T as tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
>>::Error: Into<StdError> + Send + Sync,
{
ProvisionerClient::new(InterceptedService::new(inner, interceptor))
}
/// Compress requests with the given encoding.
///
/// This requires the server to support it otherwise it might respond with an
/// error.
#[must_use]
pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.inner = self.inner.send_compressed(encoding);
self
}
/// Enable decompressing responses.
#[must_use]
pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.inner = self.inner.accept_compressed(encoding);
self
}
pub async fn provision_database(
&mut self,
request: impl tonic::IntoRequest<super::DatabaseRequest>,
) -> Result<tonic::Response<super::DatabaseResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/provisioner.Provisioner/ProvisionDatabase",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn delete_database(
&mut self,
request: impl tonic::IntoRequest<super::DatabaseRequest>,
) -> Result<tonic::Response<super::DatabaseDeletionResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/provisioner.Provisioner/DeleteDatabase",
);
self.inner.unary(request.into_request(), path, codec).await
}
}
}
/// Generated server implementations.
pub mod provisioner_server {
#![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
use tonic::codegen::*;
/// Generated trait containing gRPC methods that should be implemented for use with ProvisionerServer.
#[async_trait]
pub trait Provisioner: Send + Sync + 'static {
async fn provision_database(
&self,
request: tonic::Request<super::DatabaseRequest>,
) -> Result<tonic::Response<super::DatabaseResponse>, tonic::Status>;
async fn delete_database(
&self,
request: tonic::Request<super::DatabaseRequest>,
) -> Result<tonic::Response<super::DatabaseDeletionResponse>, tonic::Status>;
}
#[derive(Debug)]
pub struct ProvisionerServer<T: Provisioner> {
inner: _Inner<T>,
accept_compression_encodings: EnabledCompressionEncodings,
send_compression_encodings: EnabledCompressionEncodings,
}
struct _Inner<T>(Arc<T>);
impl<T: Provisioner> ProvisionerServer<T> {
pub fn new(inner: T) -> Self {
Self::from_arc(Arc::new(inner))
}
pub fn from_arc(inner: Arc<T>) -> Self {
let inner = _Inner(inner);
Self {
inner,
accept_compression_encodings: Default::default(),
send_compression_encodings: Default::default(),
}
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> InterceptedService<Self, F>
where
F: tonic::service::Interceptor,
{
InterceptedService::new(Self::new(inner), interceptor)
}
/// Enable decompressing requests with the given encoding.
#[must_use]
pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.accept_compression_encodings.enable(encoding);
self
}
/// Compress responses with the given encoding, if the client supports it.
#[must_use]
pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.send_compression_encodings.enable(encoding);
self
}
}
impl<T, B> tonic::codegen::Service<http::Request<B>> for ProvisionerServer<T>
where
T: Provisioner,
B: Body + Send + 'static,
B::Error: Into<StdError> + Send + 'static,
{
type Response = http::Response<tonic::body::BoxBody>;
type Error = std::convert::Infallible;
type Future = BoxFuture<Self::Response, Self::Error>;
fn poll_ready(
&mut self,
_cx: &mut Context<'_>,
) -> Poll<Result<(), Self::Error>> {
Poll::Ready(Ok(()))
}
fn call(&mut self, req: http::Request<B>) -> Self::Future {
let inner = self.inner.clone();
match req.uri().path() {
"/provisioner.Provisioner/ProvisionDatabase" => {
#[allow(non_camel_case_types)]
struct ProvisionDatabaseSvc<T: Provisioner>(pub Arc<T>);
impl<
T: Provisioner,
> tonic::server::UnaryService<super::DatabaseRequest>
for ProvisionDatabaseSvc<T> {
type Response = super::DatabaseResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::DatabaseRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move {
(*inner).provision_database(request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = ProvisionDatabaseSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/provisioner.Provisioner/DeleteDatabase" => {
#[allow(non_camel_case_types)]
struct DeleteDatabaseSvc<T: Provisioner>(pub Arc<T>);
impl<
T: Provisioner,
> tonic::server::UnaryService<super::DatabaseRequest>
for DeleteDatabaseSvc<T> {
type Response = super::DatabaseDeletionResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::DatabaseRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move {
(*inner).delete_database(request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = DeleteDatabaseSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
_ => {
Box::pin(async move {
Ok(
http::Response::builder()
.status(200)
.header("grpc-status", "12")
.header("content-type", "application/grpc")
.body(empty_body())
.unwrap(),
)
})
}
}
}
}
impl<T: Provisioner> Clone for ProvisionerServer<T> {
fn clone(&self) -> Self {
let inner = self.inner.clone();
Self {
inner,
accept_compression_encodings: self.accept_compression_encodings,
send_compression_encodings: self.send_compression_encodings,
}
}
}
impl<T: Provisioner> Clone for _Inner<T> {
fn clone(&self) -> Self {
Self(self.0.clone())
}
}
impl<T: std::fmt::Debug> std::fmt::Debug for _Inner<T> {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{:?}", self.0)
}
}
impl<T: Provisioner> tonic::server::NamedService for ProvisionerServer<T> {
const NAME: &'static str = "provisioner.Provisioner";
}
}
Loading