From b8e23c2d739909c76c575a9dd41778aeca9e64b2 Mon Sep 17 00:00:00 2001 From: Robbie McKinstry Date: Wed, 26 Feb 2025 16:56:04 -0500 Subject: [PATCH 1/3] Always fmt and sort after generating sdk --- Makefile.toml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Makefile.toml b/Makefile.toml index ee0f77d..d0c577d 100644 --- a/Makefile.toml +++ b/Makefile.toml @@ -66,6 +66,17 @@ alias = "generate" [tasks.generate] description = "Generate the Rust SDK from the API spec." +dependencies = [ + "generate-sdk", + "sort", + "format-flow", + "clippy-flow", +] + + +[tasks.generate-sdk] +description = "Generate the SDK. Does not fmt or sort the output. Use `cargo make generate` instead." +private = true script = [ ''' docker run --rm -v "$PWD:/local" \ From 5708e130764728c9bfce7a21f2ddbf822c1bf7ac Mon Sep 17 00:00:00 2001 From: Robbie McKinstry Date: Wed, 26 Feb 2025 17:16:17 -0500 Subject: [PATCH 2/3] Use reqwest-trait and mock out the client. --- .openapi-generator/VERSION | 2 +- Cargo.toml | 22 +- Makefile.toml | 9 +- README.md | 8 +- docs/Deployment.md | 2 +- docs/DeploymentEvent.md | 2 +- docs/DeploymentsApi.md | 2 +- docs/ResponseCodeMetrics.md | 2 +- docs/ResponseCodeMetricsApi.md | 2 +- src/apis/applications_api.rs | 409 ++++++++++-------- src/apis/configuration.rs | 1 - src/apis/deployments_api.rs | 310 +++++++------ src/apis/heartbeat_api.rs | 97 +++-- src/apis/response_code_metrics_api.rs | 126 ++++-- src/apis/users_api.rs | 185 ++++---- src/apis/workspaces_api.rs | 382 ++++++++-------- src/lib.rs | 6 +- src/models/application_config.rs | 1 + src/models/application_config_one_of.rs | 1 + src/models/application_details.rs | 1 + src/models/application_group.rs | 9 +- src/models/application_summary.rs | 1 + src/models/application_type.rs | 7 +- src/models/create_application_request.rs | 1 + src/models/create_application_success.rs | 1 + src/models/create_deployment_success.rs | 1 + .../create_response_code_metrics_request.rs | 1 + .../create_response_code_metrics_success.rs | 1 + src/models/create_user_request.rs | 1 + src/models/create_user_success.rs | 1 + src/models/create_workspace_request.rs | 1 + src/models/create_workspace_success.rs | 1 + src/models/deployment.rs | 5 +- src/models/deployment_event.rs | 5 +- src/models/deployment_event_type.rs | 21 +- src/models/deployment_status.rs | 15 +- src/models/error_response.rs | 1 + .../heartbeat_controller_200_response.rs | 1 + src/models/ingress_config.rs | 1 + src/models/ingress_config_one_of.rs | 1 + ...ress_config_one_of_aws_rest_api_gateway.rs | 1 + src/models/list_applications_success.rs | 1 + src/models/list_deployments_success.rs | 1 + src/models/list_workspace_success.rs | 1 + src/models/login_request.rs | 1 + src/models/login_success.rs | 1 + src/models/monitor_config.rs | 1 + src/models/monitor_config_one_of.rs | 1 + ...or_config_one_of_aws_cloudwatch_metrics.rs | 1 + src/models/platform_config.rs | 1 + src/models/platform_config_one_of.rs | 1 + .../platform_config_one_of_aws_lambda.rs | 1 + src/models/read_application_success.rs | 1 + src/models/read_deployment_success.rs | 1 + src/models/response_code_metrics.rs | 5 +- src/models/update_workspace_request.rs | 1 + src/models/update_workspace_success.rs | 1 + src/models/user_details.rs | 1 + src/models/user_summary.rs | 1 + src/models/web_service_config.rs | 1 + src/models/workspace_details.rs | 1 + src/models/workspace_read_success.rs | 1 + src/models/workspace_summary.rs | 1 + 63 files changed, 969 insertions(+), 704 deletions(-) diff --git a/.openapi-generator/VERSION b/.openapi-generator/VERSION index ba7f754..b23eb27 100644 --- a/.openapi-generator/VERSION +++ b/.openapi-generator/VERSION @@ -1 +1 @@ -7.4.0 +7.11.0 diff --git a/Cargo.toml b/Cargo.toml index e2e41ef..117089a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,18 +1,20 @@ [package] -name = "openapi" +name = "multitool-sdk" version = "0.1.0" authors = ["OpenAPI Generator team and contributors"] description = "MultiTool backend API" license = "All Rights Reserved" -edition = "2018" +edition = "2021" [dependencies] -serde = "^1.0" -serde_derive = "^1.0" +async-trait = "^0.1" +mockall = { version = "^0.13", optional = true } +reqwest = { version = "^0.12", features = ["json", "multipart"] } +serde = { version = "^1.0", features = ["derive"] } serde_json = "^1.0" -serde_with = "^2.0" -url = "^2.2" -uuid = { version = "^1.0", features = ["serde", "v4"] } -[dependencies.reqwest] -version = "^0.11" -features = ["json", "multipart"] +serde_repr = "^0.1" +serde_with = { version = "^3.8", default-features = false, features = ["base64", "std", "macros"] } +url = "^2.5" +uuid = { version = "^1.8", features = ["serde", "v4"] } +[features] +mockall = ["dep:mockall"] diff --git a/Makefile.toml b/Makefile.toml index d0c577d..817ec7f 100644 --- a/Makefile.toml +++ b/Makefile.toml @@ -74,15 +74,22 @@ dependencies = [ ] +# TODO: Consider piping in the package version from Cargo.toml +# if the generator is producing the wrong library version. [tasks.generate-sdk] description = "Generate the SDK. Does not fmt or sort the output. Use `cargo make generate` instead." private = true script = [ ''' docker run --rm -v "$PWD:/local" \ - openapitools/openapi-generator-cli:v7.4.0 generate \ + openapitools/openapi-generator-cli:v7.11.0 generate \ -i /local/openapi.json \ -g rust \ + --additional-properties library=reqwest-trait \ + --additional-properties mockall=true \ + --additional-properties packageName=multitool-sdk \ + --additional-properties preferUnsignedInt=true \ -o /local/ + ''' ] diff --git a/README.md b/README.md index e34b192..1121f4a 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Rust API client for openapi +# Rust API client for multitool-sdk MultiTool backend API @@ -9,15 +9,15 @@ This API client was generated by the [OpenAPI Generator](https://openapi-generat - API version: 0.1.0 - Package version: 0.1.0 -- Generator version: 7.4.0 +- Generator version: 7.11.0 - Build package: `org.openapitools.codegen.languages.RustClientCodegen` ## Installation -Put the package under your project folder in a directory named `openapi` and add the following to `Cargo.toml` under `[dependencies]`: +Put the package under your project folder in a directory named `multitool-sdk` and add the following to `Cargo.toml` under `[dependencies]`: ``` -openapi = { path = "./openapi" } +multitool-sdk = { path = "./multitool-sdk" } ``` ## Documentation for API Endpoints diff --git a/docs/Deployment.md b/docs/Deployment.md index 4a9a50c..7560b40 100644 --- a/docs/Deployment.md +++ b/docs/Deployment.md @@ -8,7 +8,7 @@ Name | Type | Description | Notes **app_id** | [**uuid::Uuid**](uuid::Uuid.md) | | **created_at** | **String** | | **events** | [**Vec**](DeploymentEvent.md) | | -**id** | **i64** | | +**id** | **u64** | | **status** | [**models::DeploymentStatus**](DeploymentStatus.md) | | **updated_at** | **String** | | diff --git a/docs/DeploymentEvent.md b/docs/DeploymentEvent.md index ea8ce68..dee3073 100644 --- a/docs/DeploymentEvent.md +++ b/docs/DeploymentEvent.md @@ -6,7 +6,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **created_at** | **String** | | **event_type** | [**models::DeploymentEventType**](DeploymentEventType.md) | | -**id** | **i64** | | +**id** | **u64** | | **updated_at** | **String** | | [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/DeploymentsApi.md b/docs/DeploymentsApi.md index a3218a4..0c82c65 100644 --- a/docs/DeploymentsApi.md +++ b/docs/DeploymentsApi.md @@ -80,7 +80,7 @@ Name | Type | Description | Required | Notes ------------- | ------------- | ------------- | ------------- | ------------- **workspace_id** | **uuid::Uuid** | The workspace's id | [required] | **application_id** | **uuid::Uuid** | The application's id | [required] | -**deployment_id** | **i64** | The deployment's id | [required] | +**deployment_id** | **u64** | The deployment's id | [required] | ### Return type diff --git a/docs/ResponseCodeMetrics.md b/docs/ResponseCodeMetrics.md index 1f2de5d..fdf0063 100644 --- a/docs/ResponseCodeMetrics.md +++ b/docs/ResponseCodeMetrics.md @@ -6,7 +6,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **app_class** | [**models::ApplicationGroup**](ApplicationGroup.md) | | **created_at** | **String** | | -**deployment_id** | **i64** | | +**deployment_id** | **u64** | | **status_2xx_count** | **i32** | | **status_4xx_count** | **i32** | | **status_5xx_count** | **i32** | | diff --git a/docs/ResponseCodeMetricsApi.md b/docs/ResponseCodeMetricsApi.md index c087c9f..5f9c384 100644 --- a/docs/ResponseCodeMetricsApi.md +++ b/docs/ResponseCodeMetricsApi.md @@ -20,7 +20,7 @@ Name | Type | Description | Required | Notes ------------- | ------------- | ------------- | ------------- | ------------- **workspace_id** | **uuid::Uuid** | The workspace's id | [required] | **application_id** | **uuid::Uuid** | The application's id | [required] | -**deployment_id** | **i64** | The deployment's id | [required] | +**deployment_id** | **u64** | The deployment's id | [required] | **create_response_code_metrics_request** | [**CreateResponseCodeMetricsRequest**](CreateResponseCodeMetricsRequest.md) | | [required] | ### Return type diff --git a/src/apis/applications_api.rs b/src/apis/applications_api.rs index f948a1d..1d77bc7 100644 --- a/src/apis/applications_api.rs +++ b/src/apis/applications_api.rs @@ -8,10 +8,233 @@ * Generated by: https://openapi-generator.tech */ -use reqwest; - use super::{configuration, Error}; use crate::{apis::ResponseContent, models}; +use async_trait::async_trait; +#[cfg(feature = "mockall")] +use mockall::automock; +use reqwest; +use serde::{Deserialize, Serialize}; +use std::sync::Arc; + +#[cfg_attr(feature = "mockall", automock)] +#[async_trait] +pub trait ApplicationsApi: Send + Sync { + async fn create_application<'workspace_id, 'create_application_request>( + &self, + workspace_id: &str, + create_application_request: models::CreateApplicationRequest, + ) -> Result>; + async fn delete_application<'workspace_id, 'application_id>( + &self, + workspace_id: &str, + application_id: &str, + ) -> Result>; + async fn get_application<'workspace_id, 'application_id>( + &self, + workspace_id: &str, + application_id: &str, + ) -> Result>; + async fn list_applications<'workspace_id>( + &self, + workspace_id: &str, + ) -> Result>; +} + +pub struct ApplicationsApiClient { + configuration: Arc, +} + +impl ApplicationsApiClient { + pub fn new(configuration: Arc) -> Self { + Self { configuration } + } +} + +#[async_trait] +impl ApplicationsApi for ApplicationsApiClient { + async fn create_application<'workspace_id, 'create_application_request>( + &self, + workspace_id: &str, + create_application_request: models::CreateApplicationRequest, + ) -> Result> { + let local_var_configuration = &self.configuration; + + let local_var_client = &local_var_configuration.client; + + let local_var_uri_str = format!( + "{}/api/v1/workspaces/{workspace_id}/applications", + local_var_configuration.base_path, + workspace_id = crate::apis::urlencode(workspace_id) + ); + let mut local_var_req_builder = + local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str()); + + if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { + local_var_req_builder = local_var_req_builder + .header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); + } + if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { + local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); + }; + local_var_req_builder = local_var_req_builder.json(&create_application_request); + + let local_var_req = local_var_req_builder.build()?; + let local_var_resp = local_var_client.execute(local_var_req).await?; + + let local_var_status = local_var_resp.status(); + let local_var_content = local_var_resp.text().await?; + + if !local_var_status.is_client_error() && !local_var_status.is_server_error() { + serde_json::from_str(&local_var_content).map_err(Error::from) + } else { + let local_var_entity: Option = + serde_json::from_str(&local_var_content).ok(); + let local_var_error = ResponseContent { + status: local_var_status, + content: local_var_content, + entity: local_var_entity, + }; + Err(Error::ResponseError(local_var_error)) + } + } + + async fn delete_application<'workspace_id, 'application_id>( + &self, + workspace_id: &str, + application_id: &str, + ) -> Result> { + let local_var_configuration = &self.configuration; + + let local_var_client = &local_var_configuration.client; + + let local_var_uri_str = format!( + "{}/api/v1/workspaces/{workspace_id}/applications/{application_id}", + local_var_configuration.base_path, + workspace_id = crate::apis::urlencode(workspace_id), + application_id = crate::apis::urlencode(application_id) + ); + let mut local_var_req_builder = + local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str()); + + if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { + local_var_req_builder = local_var_req_builder + .header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); + } + if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { + local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); + }; + + let local_var_req = local_var_req_builder.build()?; + let local_var_resp = local_var_client.execute(local_var_req).await?; + + let local_var_status = local_var_resp.status(); + let local_var_content = local_var_resp.text().await?; + + if !local_var_status.is_client_error() && !local_var_status.is_server_error() { + serde_json::from_str(&local_var_content).map_err(Error::from) + } else { + let local_var_entity: Option = + serde_json::from_str(&local_var_content).ok(); + let local_var_error = ResponseContent { + status: local_var_status, + content: local_var_content, + entity: local_var_entity, + }; + Err(Error::ResponseError(local_var_error)) + } + } + + async fn get_application<'workspace_id, 'application_id>( + &self, + workspace_id: &str, + application_id: &str, + ) -> Result> { + let local_var_configuration = &self.configuration; + + let local_var_client = &local_var_configuration.client; + + let local_var_uri_str = format!( + "{}/api/v1/workspaces/{workspace_id}/applications/{application_id}", + local_var_configuration.base_path, + workspace_id = crate::apis::urlencode(workspace_id), + application_id = crate::apis::urlencode(application_id) + ); + let mut local_var_req_builder = + local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str()); + + if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { + local_var_req_builder = local_var_req_builder + .header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); + } + if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { + local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); + }; + + let local_var_req = local_var_req_builder.build()?; + let local_var_resp = local_var_client.execute(local_var_req).await?; + + let local_var_status = local_var_resp.status(); + let local_var_content = local_var_resp.text().await?; + + if !local_var_status.is_client_error() && !local_var_status.is_server_error() { + serde_json::from_str(&local_var_content).map_err(Error::from) + } else { + let local_var_entity: Option = + serde_json::from_str(&local_var_content).ok(); + let local_var_error = ResponseContent { + status: local_var_status, + content: local_var_content, + entity: local_var_entity, + }; + Err(Error::ResponseError(local_var_error)) + } + } + + async fn list_applications<'workspace_id>( + &self, + workspace_id: &str, + ) -> Result> { + let local_var_configuration = &self.configuration; + + let local_var_client = &local_var_configuration.client; + + let local_var_uri_str = format!( + "{}/api/v1/workspaces/{workspace_id}/applications", + local_var_configuration.base_path, + workspace_id = crate::apis::urlencode(workspace_id) + ); + let mut local_var_req_builder = + local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str()); + + if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { + local_var_req_builder = local_var_req_builder + .header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); + } + if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { + local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); + }; + + let local_var_req = local_var_req_builder.build()?; + let local_var_resp = local_var_client.execute(local_var_req).await?; + + let local_var_status = local_var_resp.status(); + let local_var_content = local_var_resp.text().await?; + + if !local_var_status.is_client_error() && !local_var_status.is_server_error() { + serde_json::from_str(&local_var_content).map_err(Error::from) + } else { + let local_var_entity: Option = + serde_json::from_str(&local_var_content).ok(); + let local_var_error = ResponseContent { + status: local_var_status, + content: local_var_content, + entity: local_var_entity, + }; + Err(Error::ResponseError(local_var_error)) + } + } +} /// struct for typed errors of method [`create_application`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -44,185 +267,3 @@ pub enum ListApplicationsError { Status500(), UnknownValue(serde_json::Value), } - -pub async fn create_application( - configuration: &configuration::Configuration, - workspace_id: &str, - create_application_request: models::CreateApplicationRequest, -) -> Result> { - let local_var_configuration = configuration; - - let local_var_client = &local_var_configuration.client; - - let local_var_uri_str = format!( - "{}/api/v1/workspaces/{workspace_id}/applications", - local_var_configuration.base_path, - workspace_id = crate::apis::urlencode(workspace_id) - ); - let mut local_var_req_builder = - local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str()); - - if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { - local_var_req_builder = - local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); - } - if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { - local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); - }; - local_var_req_builder = local_var_req_builder.json(&create_application_request); - - let local_var_req = local_var_req_builder.build()?; - let local_var_resp = local_var_client.execute(local_var_req).await?; - - let local_var_status = local_var_resp.status(); - let local_var_content = local_var_resp.text().await?; - - if !local_var_status.is_client_error() && !local_var_status.is_server_error() { - serde_json::from_str(&local_var_content).map_err(Error::from) - } else { - let local_var_entity: Option = - serde_json::from_str(&local_var_content).ok(); - let local_var_error = ResponseContent { - status: local_var_status, - content: local_var_content, - entity: local_var_entity, - }; - Err(Error::ResponseError(local_var_error)) - } -} - -pub async fn delete_application( - configuration: &configuration::Configuration, - workspace_id: &str, - application_id: &str, -) -> Result> { - let local_var_configuration = configuration; - - let local_var_client = &local_var_configuration.client; - - let local_var_uri_str = format!( - "{}/api/v1/workspaces/{workspace_id}/applications/{application_id}", - local_var_configuration.base_path, - workspace_id = crate::apis::urlencode(workspace_id), - application_id = crate::apis::urlencode(application_id) - ); - let mut local_var_req_builder = - local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str()); - - if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { - local_var_req_builder = - local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); - } - if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { - local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); - }; - - let local_var_req = local_var_req_builder.build()?; - let local_var_resp = local_var_client.execute(local_var_req).await?; - - let local_var_status = local_var_resp.status(); - let local_var_content = local_var_resp.text().await?; - - if !local_var_status.is_client_error() && !local_var_status.is_server_error() { - serde_json::from_str(&local_var_content).map_err(Error::from) - } else { - let local_var_entity: Option = - serde_json::from_str(&local_var_content).ok(); - let local_var_error = ResponseContent { - status: local_var_status, - content: local_var_content, - entity: local_var_entity, - }; - Err(Error::ResponseError(local_var_error)) - } -} - -pub async fn get_application( - configuration: &configuration::Configuration, - workspace_id: &str, - application_id: &str, -) -> Result> { - let local_var_configuration = configuration; - - let local_var_client = &local_var_configuration.client; - - let local_var_uri_str = format!( - "{}/api/v1/workspaces/{workspace_id}/applications/{application_id}", - local_var_configuration.base_path, - workspace_id = crate::apis::urlencode(workspace_id), - application_id = crate::apis::urlencode(application_id) - ); - let mut local_var_req_builder = - local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str()); - - if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { - local_var_req_builder = - local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); - } - if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { - local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); - }; - - let local_var_req = local_var_req_builder.build()?; - let local_var_resp = local_var_client.execute(local_var_req).await?; - - let local_var_status = local_var_resp.status(); - let local_var_content = local_var_resp.text().await?; - - if !local_var_status.is_client_error() && !local_var_status.is_server_error() { - serde_json::from_str(&local_var_content).map_err(Error::from) - } else { - let local_var_entity: Option = - serde_json::from_str(&local_var_content).ok(); - let local_var_error = ResponseContent { - status: local_var_status, - content: local_var_content, - entity: local_var_entity, - }; - Err(Error::ResponseError(local_var_error)) - } -} - -pub async fn list_applications( - configuration: &configuration::Configuration, - workspace_id: &str, -) -> Result> { - let local_var_configuration = configuration; - - let local_var_client = &local_var_configuration.client; - - let local_var_uri_str = format!( - "{}/api/v1/workspaces/{workspace_id}/applications", - local_var_configuration.base_path, - workspace_id = crate::apis::urlencode(workspace_id) - ); - let mut local_var_req_builder = - local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str()); - - if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { - local_var_req_builder = - local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); - } - if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { - local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); - }; - - let local_var_req = local_var_req_builder.build()?; - let local_var_resp = local_var_client.execute(local_var_req).await?; - - let local_var_status = local_var_resp.status(); - let local_var_content = local_var_resp.text().await?; - - if !local_var_status.is_client_error() && !local_var_status.is_server_error() { - serde_json::from_str(&local_var_content).map_err(Error::from) - } else { - let local_var_entity: Option = - serde_json::from_str(&local_var_content).ok(); - let local_var_error = ResponseContent { - status: local_var_status, - content: local_var_content, - entity: local_var_entity, - }; - Err(Error::ResponseError(local_var_error)) - } -} diff --git a/src/apis/configuration.rs b/src/apis/configuration.rs index 22da095..8fb2e8b 100644 --- a/src/apis/configuration.rs +++ b/src/apis/configuration.rs @@ -17,7 +17,6 @@ pub struct Configuration { pub oauth_access_token: Option, pub bearer_access_token: Option, pub api_key: Option, - // TODO: take an oauth2 token source, similar to the go one } pub type BasicAuth = (String, Option); diff --git a/src/apis/deployments_api.rs b/src/apis/deployments_api.rs index 61b64ec..1450fa8 100644 --- a/src/apis/deployments_api.rs +++ b/src/apis/deployments_api.rs @@ -8,10 +8,182 @@ * Generated by: https://openapi-generator.tech */ -use reqwest; - use super::{configuration, Error}; use crate::{apis::ResponseContent, models}; +use async_trait::async_trait; +#[cfg(feature = "mockall")] +use mockall::automock; +use reqwest; +use serde::{Deserialize, Serialize}; +use std::sync::Arc; + +#[cfg_attr(feature = "mockall", automock)] +#[async_trait] +pub trait DeploymentsApi: Send + Sync { + async fn create_deployment<'workspace_id, 'application_id>( + &self, + workspace_id: &str, + application_id: &str, + ) -> Result>; + async fn list_deployments<'workspace_id, 'application_id>( + &self, + workspace_id: &str, + application_id: &str, + ) -> Result>; + async fn read_deployment<'workspace_id, 'application_id, 'deployment_id>( + &self, + workspace_id: &str, + application_id: &str, + deployment_id: u64, + ) -> Result>; +} + +pub struct DeploymentsApiClient { + configuration: Arc, +} + +impl DeploymentsApiClient { + pub fn new(configuration: Arc) -> Self { + Self { configuration } + } +} + +#[async_trait] +impl DeploymentsApi for DeploymentsApiClient { + async fn create_deployment<'workspace_id, 'application_id>( + &self, + workspace_id: &str, + application_id: &str, + ) -> Result> { + let local_var_configuration = &self.configuration; + + let local_var_client = &local_var_configuration.client; + + let local_var_uri_str = format!( + "{}/api/v1/workspaces/{workspace_id}/applications/{application_id}/deployments", + local_var_configuration.base_path, + workspace_id = crate::apis::urlencode(workspace_id), + application_id = crate::apis::urlencode(application_id) + ); + let mut local_var_req_builder = + local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str()); + + if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { + local_var_req_builder = local_var_req_builder + .header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); + } + if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { + local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); + }; + + let local_var_req = local_var_req_builder.build()?; + let local_var_resp = local_var_client.execute(local_var_req).await?; + + let local_var_status = local_var_resp.status(); + let local_var_content = local_var_resp.text().await?; + + if !local_var_status.is_client_error() && !local_var_status.is_server_error() { + serde_json::from_str(&local_var_content).map_err(Error::from) + } else { + let local_var_entity: Option = + serde_json::from_str(&local_var_content).ok(); + let local_var_error = ResponseContent { + status: local_var_status, + content: local_var_content, + entity: local_var_entity, + }; + Err(Error::ResponseError(local_var_error)) + } + } + + async fn list_deployments<'workspace_id, 'application_id>( + &self, + workspace_id: &str, + application_id: &str, + ) -> Result> { + let local_var_configuration = &self.configuration; + + let local_var_client = &local_var_configuration.client; + + let local_var_uri_str = format!( + "{}/api/v1/workspaces/{workspace_id}/applications/{application_id}/deployments", + local_var_configuration.base_path, + workspace_id = crate::apis::urlencode(workspace_id), + application_id = crate::apis::urlencode(application_id) + ); + let mut local_var_req_builder = + local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str()); + + if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { + local_var_req_builder = local_var_req_builder + .header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); + } + if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { + local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); + }; + + let local_var_req = local_var_req_builder.build()?; + let local_var_resp = local_var_client.execute(local_var_req).await?; + + let local_var_status = local_var_resp.status(); + let local_var_content = local_var_resp.text().await?; + + if !local_var_status.is_client_error() && !local_var_status.is_server_error() { + serde_json::from_str(&local_var_content).map_err(Error::from) + } else { + let local_var_entity: Option = + serde_json::from_str(&local_var_content).ok(); + let local_var_error = ResponseContent { + status: local_var_status, + content: local_var_content, + entity: local_var_entity, + }; + Err(Error::ResponseError(local_var_error)) + } + } + + async fn read_deployment<'workspace_id, 'application_id, 'deployment_id>( + &self, + workspace_id: &str, + application_id: &str, + deployment_id: u64, + ) -> Result> { + let local_var_configuration = &self.configuration; + + let local_var_client = &local_var_configuration.client; + + let local_var_uri_str = format!("{}/api/v1/workspaces/{workspace_id}/applications/{application_id}/deployments/{deployment_id}", local_var_configuration.base_path, workspace_id=crate::apis::urlencode(workspace_id), application_id=crate::apis::urlencode(application_id), deployment_id=deployment_id); + let mut local_var_req_builder = + local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str()); + + if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { + local_var_req_builder = local_var_req_builder + .header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); + } + if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { + local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); + }; + + let local_var_req = local_var_req_builder.build()?; + let local_var_resp = local_var_client.execute(local_var_req).await?; + + let local_var_status = local_var_resp.status(); + let local_var_content = local_var_resp.text().await?; + + if !local_var_status.is_client_error() && !local_var_status.is_server_error() { + serde_json::from_str(&local_var_content).map_err(Error::from) + } else { + let local_var_entity: Option = + serde_json::from_str(&local_var_content).ok(); + let local_var_error = ResponseContent { + status: local_var_status, + content: local_var_content, + entity: local_var_entity, + }; + Err(Error::ResponseError(local_var_error)) + } + } +} /// struct for typed errors of method [`create_deployment`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -36,137 +208,3 @@ pub enum ReadDeploymentError { Status500(), UnknownValue(serde_json::Value), } - -pub async fn create_deployment( - configuration: &configuration::Configuration, - workspace_id: &str, - application_id: &str, -) -> Result> { - let local_var_configuration = configuration; - - let local_var_client = &local_var_configuration.client; - - let local_var_uri_str = format!( - "{}/api/v1/workspaces/{workspace_id}/applications/{application_id}/deployments", - local_var_configuration.base_path, - workspace_id = crate::apis::urlencode(workspace_id), - application_id = crate::apis::urlencode(application_id) - ); - let mut local_var_req_builder = - local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str()); - - if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { - local_var_req_builder = - local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); - } - if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { - local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); - }; - - let local_var_req = local_var_req_builder.build()?; - let local_var_resp = local_var_client.execute(local_var_req).await?; - - let local_var_status = local_var_resp.status(); - let local_var_content = local_var_resp.text().await?; - - if !local_var_status.is_client_error() && !local_var_status.is_server_error() { - serde_json::from_str(&local_var_content).map_err(Error::from) - } else { - let local_var_entity: Option = - serde_json::from_str(&local_var_content).ok(); - let local_var_error = ResponseContent { - status: local_var_status, - content: local_var_content, - entity: local_var_entity, - }; - Err(Error::ResponseError(local_var_error)) - } -} - -pub async fn list_deployments( - configuration: &configuration::Configuration, - workspace_id: &str, - application_id: &str, -) -> Result> { - let local_var_configuration = configuration; - - let local_var_client = &local_var_configuration.client; - - let local_var_uri_str = format!( - "{}/api/v1/workspaces/{workspace_id}/applications/{application_id}/deployments", - local_var_configuration.base_path, - workspace_id = crate::apis::urlencode(workspace_id), - application_id = crate::apis::urlencode(application_id) - ); - let mut local_var_req_builder = - local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str()); - - if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { - local_var_req_builder = - local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); - } - if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { - local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); - }; - - let local_var_req = local_var_req_builder.build()?; - let local_var_resp = local_var_client.execute(local_var_req).await?; - - let local_var_status = local_var_resp.status(); - let local_var_content = local_var_resp.text().await?; - - if !local_var_status.is_client_error() && !local_var_status.is_server_error() { - serde_json::from_str(&local_var_content).map_err(Error::from) - } else { - let local_var_entity: Option = - serde_json::from_str(&local_var_content).ok(); - let local_var_error = ResponseContent { - status: local_var_status, - content: local_var_content, - entity: local_var_entity, - }; - Err(Error::ResponseError(local_var_error)) - } -} - -pub async fn read_deployment( - configuration: &configuration::Configuration, - workspace_id: &str, - application_id: &str, - deployment_id: i64, -) -> Result> { - let local_var_configuration = configuration; - - let local_var_client = &local_var_configuration.client; - - let local_var_uri_str = format!("{}/api/v1/workspaces/{workspace_id}/applications/{application_id}/deployments/{deployment_id}", local_var_configuration.base_path, workspace_id=crate::apis::urlencode(workspace_id), application_id=crate::apis::urlencode(application_id), deployment_id=deployment_id); - let mut local_var_req_builder = - local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str()); - - if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { - local_var_req_builder = - local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); - } - if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { - local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); - }; - - let local_var_req = local_var_req_builder.build()?; - let local_var_resp = local_var_client.execute(local_var_req).await?; - - let local_var_status = local_var_resp.status(); - let local_var_content = local_var_resp.text().await?; - - if !local_var_status.is_client_error() && !local_var_status.is_server_error() { - serde_json::from_str(&local_var_content).map_err(Error::from) - } else { - let local_var_entity: Option = - serde_json::from_str(&local_var_content).ok(); - let local_var_error = ResponseContent { - status: local_var_status, - content: local_var_content, - entity: local_var_entity, - }; - Err(Error::ResponseError(local_var_error)) - } -} diff --git a/src/apis/heartbeat_api.rs b/src/apis/heartbeat_api.rs index bec6587..20e275f 100644 --- a/src/apis/heartbeat_api.rs +++ b/src/apis/heartbeat_api.rs @@ -8,50 +8,75 @@ * Generated by: https://openapi-generator.tech */ -use reqwest; - use super::{configuration, Error}; use crate::{apis::ResponseContent, models}; +use async_trait::async_trait; +#[cfg(feature = "mockall")] +use mockall::automock; +use reqwest; +use serde::{Deserialize, Serialize}; +use std::sync::Arc; -/// struct for typed errors of method [`heartbeat_controller`] -#[derive(Debug, Clone, Serialize, Deserialize)] -#[serde(untagged)] -pub enum HeartbeatControllerError { - UnknownValue(serde_json::Value), +#[cfg_attr(feature = "mockall", automock)] +#[async_trait] +pub trait HeartbeatApi: Send + Sync { + async fn heartbeat_controller( + &self, + ) -> Result>; } -pub async fn heartbeat_controller( - configuration: &configuration::Configuration, -) -> Result> { - let local_var_configuration = configuration; +pub struct HeartbeatApiClient { + configuration: Arc, +} - let local_var_client = &local_var_configuration.client; +impl HeartbeatApiClient { + pub fn new(configuration: Arc) -> Self { + Self { configuration } + } +} - let local_var_uri_str = format!("{}/api/v1/heartbeat", local_var_configuration.base_path); - let mut local_var_req_builder = - local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str()); +#[async_trait] +impl HeartbeatApi for HeartbeatApiClient { + async fn heartbeat_controller( + &self, + ) -> Result> { + let local_var_configuration = &self.configuration; - if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { - local_var_req_builder = - local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); - } + let local_var_client = &local_var_configuration.client; - let local_var_req = local_var_req_builder.build()?; - let local_var_resp = local_var_client.execute(local_var_req).await?; - - let local_var_status = local_var_resp.status(); - let local_var_content = local_var_resp.text().await?; - - if !local_var_status.is_client_error() && !local_var_status.is_server_error() { - serde_json::from_str(&local_var_content).map_err(Error::from) - } else { - let local_var_entity: Option = - serde_json::from_str(&local_var_content).ok(); - let local_var_error = ResponseContent { - status: local_var_status, - content: local_var_content, - entity: local_var_entity, - }; - Err(Error::ResponseError(local_var_error)) + let local_var_uri_str = format!("{}/api/v1/heartbeat", local_var_configuration.base_path); + let mut local_var_req_builder = + local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str()); + + if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { + local_var_req_builder = local_var_req_builder + .header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); + } + + let local_var_req = local_var_req_builder.build()?; + let local_var_resp = local_var_client.execute(local_var_req).await?; + + let local_var_status = local_var_resp.status(); + let local_var_content = local_var_resp.text().await?; + + if !local_var_status.is_client_error() && !local_var_status.is_server_error() { + serde_json::from_str(&local_var_content).map_err(Error::from) + } else { + let local_var_entity: Option = + serde_json::from_str(&local_var_content).ok(); + let local_var_error = ResponseContent { + status: local_var_status, + content: local_var_content, + entity: local_var_entity, + }; + Err(Error::ResponseError(local_var_error)) + } } } + +/// struct for typed errors of method [`heartbeat_controller`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum HeartbeatControllerError { + UnknownValue(serde_json::Value), +} diff --git a/src/apis/response_code_metrics_api.rs b/src/apis/response_code_metrics_api.rs index 2281d54..93e4295 100644 --- a/src/apis/response_code_metrics_api.rs +++ b/src/apis/response_code_metrics_api.rs @@ -8,59 +8,99 @@ * Generated by: https://openapi-generator.tech */ -use reqwest; - use super::{configuration, Error}; use crate::{apis::ResponseContent, models}; +use async_trait::async_trait; +#[cfg(feature = "mockall")] +use mockall::automock; +use reqwest; +use serde::{Deserialize, Serialize}; +use std::sync::Arc; -/// struct for typed errors of method [`create_response_code_metrics`] -#[derive(Debug, Clone, Serialize, Deserialize)] -#[serde(untagged)] -pub enum CreateResponseCodeMetricsError { - Status500(), - UnknownValue(serde_json::Value), +#[cfg_attr(feature = "mockall", automock)] +#[async_trait] +pub trait ResponseCodeMetricsApi: Send + Sync { + async fn create_response_code_metrics< + 'workspace_id, + 'application_id, + 'deployment_id, + 'create_response_code_metrics_request, + >( + &self, + workspace_id: &str, + application_id: &str, + deployment_id: u64, + create_response_code_metrics_request: models::CreateResponseCodeMetricsRequest, + ) -> Result>; } -pub async fn create_response_code_metrics( - configuration: &configuration::Configuration, - workspace_id: &str, - application_id: &str, - deployment_id: i64, - create_response_code_metrics_request: models::CreateResponseCodeMetricsRequest, -) -> Result> { - let local_var_configuration = configuration; - - let local_var_client = &local_var_configuration.client; - - let local_var_uri_str = format!("{}/api/v1/workspaces/{workspace_id}/applications/{application_id}/deployments/{deployment_id}/metrics/response-codes", local_var_configuration.base_path, workspace_id=crate::apis::urlencode(workspace_id), application_id=crate::apis::urlencode(application_id), deployment_id=deployment_id); - let mut local_var_req_builder = - local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str()); +pub struct ResponseCodeMetricsApiClient { + configuration: Arc, +} - if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { - local_var_req_builder = - local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); +impl ResponseCodeMetricsApiClient { + pub fn new(configuration: Arc) -> Self { + Self { configuration } } - if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { - local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); - }; - local_var_req_builder = local_var_req_builder.json(&create_response_code_metrics_request); +} - let local_var_req = local_var_req_builder.build()?; - let local_var_resp = local_var_client.execute(local_var_req).await?; +#[async_trait] +impl ResponseCodeMetricsApi for ResponseCodeMetricsApiClient { + async fn create_response_code_metrics< + 'workspace_id, + 'application_id, + 'deployment_id, + 'create_response_code_metrics_request, + >( + &self, + workspace_id: &str, + application_id: &str, + deployment_id: u64, + create_response_code_metrics_request: models::CreateResponseCodeMetricsRequest, + ) -> Result> + { + let local_var_configuration = &self.configuration; - let local_var_status = local_var_resp.status(); - let local_var_content = local_var_resp.text().await?; + let local_var_client = &local_var_configuration.client; - if !local_var_status.is_client_error() && !local_var_status.is_server_error() { - serde_json::from_str(&local_var_content).map_err(Error::from) - } else { - let local_var_entity: Option = - serde_json::from_str(&local_var_content).ok(); - let local_var_error = ResponseContent { - status: local_var_status, - content: local_var_content, - entity: local_var_entity, + let local_var_uri_str = format!("{}/api/v1/workspaces/{workspace_id}/applications/{application_id}/deployments/{deployment_id}/metrics/response-codes", local_var_configuration.base_path, workspace_id=crate::apis::urlencode(workspace_id), application_id=crate::apis::urlencode(application_id), deployment_id=deployment_id); + let mut local_var_req_builder = + local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str()); + + if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { + local_var_req_builder = local_var_req_builder + .header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); + } + if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { + local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); }; - Err(Error::ResponseError(local_var_error)) + local_var_req_builder = local_var_req_builder.json(&create_response_code_metrics_request); + + let local_var_req = local_var_req_builder.build()?; + let local_var_resp = local_var_client.execute(local_var_req).await?; + + let local_var_status = local_var_resp.status(); + let local_var_content = local_var_resp.text().await?; + + if !local_var_status.is_client_error() && !local_var_status.is_server_error() { + serde_json::from_str(&local_var_content).map_err(Error::from) + } else { + let local_var_entity: Option = + serde_json::from_str(&local_var_content).ok(); + let local_var_error = ResponseContent { + status: local_var_status, + content: local_var_content, + entity: local_var_entity, + }; + Err(Error::ResponseError(local_var_error)) + } } } + +/// struct for typed errors of method [`create_response_code_metrics`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum CreateResponseCodeMetricsError { + Status500(), + UnknownValue(serde_json::Value), +} diff --git a/src/apis/users_api.rs b/src/apis/users_api.rs index 581f744..3b09324 100644 --- a/src/apis/users_api.rs +++ b/src/apis/users_api.rs @@ -8,10 +8,116 @@ * Generated by: https://openapi-generator.tech */ -use reqwest; - use super::{configuration, Error}; use crate::{apis::ResponseContent, models}; +use async_trait::async_trait; +#[cfg(feature = "mockall")] +use mockall::automock; +use reqwest; +use serde::{Deserialize, Serialize}; +use std::sync::Arc; + +#[cfg_attr(feature = "mockall", automock)] +#[async_trait] +pub trait UsersApi: Send + Sync { + async fn create_user<'create_user_request>( + &self, + create_user_request: models::CreateUserRequest, + ) -> Result>; + async fn login<'login_request>( + &self, + login_request: models::LoginRequest, + ) -> Result>; +} + +pub struct UsersApiClient { + configuration: Arc, +} + +impl UsersApiClient { + pub fn new(configuration: Arc) -> Self { + Self { configuration } + } +} + +#[async_trait] +impl UsersApi for UsersApiClient { + async fn create_user<'create_user_request>( + &self, + create_user_request: models::CreateUserRequest, + ) -> Result> { + let local_var_configuration = &self.configuration; + + let local_var_client = &local_var_configuration.client; + + let local_var_uri_str = format!("{}/api/v1/users", local_var_configuration.base_path); + let mut local_var_req_builder = + local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str()); + + if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { + local_var_req_builder = local_var_req_builder + .header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); + } + local_var_req_builder = local_var_req_builder.json(&create_user_request); + + let local_var_req = local_var_req_builder.build()?; + let local_var_resp = local_var_client.execute(local_var_req).await?; + + let local_var_status = local_var_resp.status(); + let local_var_content = local_var_resp.text().await?; + + if !local_var_status.is_client_error() && !local_var_status.is_server_error() { + serde_json::from_str(&local_var_content).map_err(Error::from) + } else { + let local_var_entity: Option = + serde_json::from_str(&local_var_content).ok(); + let local_var_error = ResponseContent { + status: local_var_status, + content: local_var_content, + entity: local_var_entity, + }; + Err(Error::ResponseError(local_var_error)) + } + } + + async fn login<'login_request>( + &self, + login_request: models::LoginRequest, + ) -> Result> { + let local_var_configuration = &self.configuration; + + let local_var_client = &local_var_configuration.client; + + let local_var_uri_str = format!("{}/api/v1/users/login", local_var_configuration.base_path); + let mut local_var_req_builder = + local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str()); + + if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { + local_var_req_builder = local_var_req_builder + .header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); + } + local_var_req_builder = local_var_req_builder.json(&login_request); + + let local_var_req = local_var_req_builder.build()?; + let local_var_resp = local_var_client.execute(local_var_req).await?; + + let local_var_status = local_var_resp.status(); + let local_var_content = local_var_resp.text().await?; + + if !local_var_status.is_client_error() && !local_var_status.is_server_error() { + serde_json::from_str(&local_var_content).map_err(Error::from) + } else { + let local_var_entity: Option = + serde_json::from_str(&local_var_content).ok(); + let local_var_error = ResponseContent { + status: local_var_status, + content: local_var_content, + entity: local_var_entity, + }; + Err(Error::ResponseError(local_var_error)) + } + } +} /// struct for typed errors of method [`create_user`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -30,78 +136,3 @@ pub enum LoginError { Status500(), UnknownValue(serde_json::Value), } - -pub async fn create_user( - configuration: &configuration::Configuration, - create_user_request: models::CreateUserRequest, -) -> Result> { - let local_var_configuration = configuration; - - let local_var_client = &local_var_configuration.client; - - let local_var_uri_str = format!("{}/api/v1/users", local_var_configuration.base_path); - let mut local_var_req_builder = - local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str()); - - if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { - local_var_req_builder = - local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); - } - local_var_req_builder = local_var_req_builder.json(&create_user_request); - - let local_var_req = local_var_req_builder.build()?; - let local_var_resp = local_var_client.execute(local_var_req).await?; - - let local_var_status = local_var_resp.status(); - let local_var_content = local_var_resp.text().await?; - - if !local_var_status.is_client_error() && !local_var_status.is_server_error() { - serde_json::from_str(&local_var_content).map_err(Error::from) - } else { - let local_var_entity: Option = - serde_json::from_str(&local_var_content).ok(); - let local_var_error = ResponseContent { - status: local_var_status, - content: local_var_content, - entity: local_var_entity, - }; - Err(Error::ResponseError(local_var_error)) - } -} - -pub async fn login( - configuration: &configuration::Configuration, - login_request: models::LoginRequest, -) -> Result> { - let local_var_configuration = configuration; - - let local_var_client = &local_var_configuration.client; - - let local_var_uri_str = format!("{}/api/v1/users/login", local_var_configuration.base_path); - let mut local_var_req_builder = - local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str()); - - if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { - local_var_req_builder = - local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); - } - local_var_req_builder = local_var_req_builder.json(&login_request); - - let local_var_req = local_var_req_builder.build()?; - let local_var_resp = local_var_client.execute(local_var_req).await?; - - let local_var_status = local_var_resp.status(); - let local_var_content = local_var_resp.text().await?; - - if !local_var_status.is_client_error() && !local_var_status.is_server_error() { - serde_json::from_str(&local_var_content).map_err(Error::from) - } else { - let local_var_entity: Option = serde_json::from_str(&local_var_content).ok(); - let local_var_error = ResponseContent { - status: local_var_status, - content: local_var_content, - entity: local_var_entity, - }; - Err(Error::ResponseError(local_var_error)) - } -} diff --git a/src/apis/workspaces_api.rs b/src/apis/workspaces_api.rs index 9317145..9836476 100644 --- a/src/apis/workspaces_api.rs +++ b/src/apis/workspaces_api.rs @@ -8,10 +8,218 @@ * Generated by: https://openapi-generator.tech */ -use reqwest; - use super::{configuration, Error}; use crate::{apis::ResponseContent, models}; +use async_trait::async_trait; +#[cfg(feature = "mockall")] +use mockall::automock; +use reqwest; +use serde::{Deserialize, Serialize}; +use std::sync::Arc; + +#[cfg_attr(feature = "mockall", automock)] +#[async_trait] +pub trait WorkspacesApi: Send + Sync { + async fn create_workspace<'create_workspace_request>( + &self, + create_workspace_request: models::CreateWorkspaceRequest, + ) -> Result>; + async fn list_workspaces( + &self, + ) -> Result>; + async fn read_workspace<'id>( + &self, + id: &str, + ) -> Result>; + async fn update_workspace<'id, 'update_workspace_request>( + &self, + id: &str, + update_workspace_request: models::UpdateWorkspaceRequest, + ) -> Result>; +} + +pub struct WorkspacesApiClient { + configuration: Arc, +} + +impl WorkspacesApiClient { + pub fn new(configuration: Arc) -> Self { + Self { configuration } + } +} + +#[async_trait] +impl WorkspacesApi for WorkspacesApiClient { + async fn create_workspace<'create_workspace_request>( + &self, + create_workspace_request: models::CreateWorkspaceRequest, + ) -> Result> { + let local_var_configuration = &self.configuration; + + let local_var_client = &local_var_configuration.client; + + let local_var_uri_str = format!("{}/api/v1/workspaces", local_var_configuration.base_path); + let mut local_var_req_builder = + local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str()); + + if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { + local_var_req_builder = local_var_req_builder + .header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); + } + if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { + local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); + }; + local_var_req_builder = local_var_req_builder.json(&create_workspace_request); + + let local_var_req = local_var_req_builder.build()?; + let local_var_resp = local_var_client.execute(local_var_req).await?; + + let local_var_status = local_var_resp.status(); + let local_var_content = local_var_resp.text().await?; + + if !local_var_status.is_client_error() && !local_var_status.is_server_error() { + serde_json::from_str(&local_var_content).map_err(Error::from) + } else { + let local_var_entity: Option = + serde_json::from_str(&local_var_content).ok(); + let local_var_error = ResponseContent { + status: local_var_status, + content: local_var_content, + entity: local_var_entity, + }; + Err(Error::ResponseError(local_var_error)) + } + } + + async fn list_workspaces( + &self, + ) -> Result> { + let local_var_configuration = &self.configuration; + + let local_var_client = &local_var_configuration.client; + + let local_var_uri_str = format!("{}/api/v1/workspaces", local_var_configuration.base_path); + let mut local_var_req_builder = + local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str()); + + if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { + local_var_req_builder = local_var_req_builder + .header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); + } + if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { + local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); + }; + + let local_var_req = local_var_req_builder.build()?; + let local_var_resp = local_var_client.execute(local_var_req).await?; + + let local_var_status = local_var_resp.status(); + let local_var_content = local_var_resp.text().await?; + + if !local_var_status.is_client_error() && !local_var_status.is_server_error() { + serde_json::from_str(&local_var_content).map_err(Error::from) + } else { + let local_var_entity: Option = + serde_json::from_str(&local_var_content).ok(); + let local_var_error = ResponseContent { + status: local_var_status, + content: local_var_content, + entity: local_var_entity, + }; + Err(Error::ResponseError(local_var_error)) + } + } + + async fn read_workspace<'id>( + &self, + id: &str, + ) -> Result> { + let local_var_configuration = &self.configuration; + + let local_var_client = &local_var_configuration.client; + + let local_var_uri_str = format!( + "{}/api/v1/workspaces/{id}", + local_var_configuration.base_path, + id = crate::apis::urlencode(id) + ); + let mut local_var_req_builder = + local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str()); + + if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { + local_var_req_builder = local_var_req_builder + .header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); + } + if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { + local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); + }; + + let local_var_req = local_var_req_builder.build()?; + let local_var_resp = local_var_client.execute(local_var_req).await?; + + let local_var_status = local_var_resp.status(); + let local_var_content = local_var_resp.text().await?; + + if !local_var_status.is_client_error() && !local_var_status.is_server_error() { + serde_json::from_str(&local_var_content).map_err(Error::from) + } else { + let local_var_entity: Option = + serde_json::from_str(&local_var_content).ok(); + let local_var_error = ResponseContent { + status: local_var_status, + content: local_var_content, + entity: local_var_entity, + }; + Err(Error::ResponseError(local_var_error)) + } + } + + async fn update_workspace<'id, 'update_workspace_request>( + &self, + id: &str, + update_workspace_request: models::UpdateWorkspaceRequest, + ) -> Result> { + let local_var_configuration = &self.configuration; + + let local_var_client = &local_var_configuration.client; + + let local_var_uri_str = format!( + "{}/api/v1/workspaces/{id}", + local_var_configuration.base_path, + id = crate::apis::urlencode(id) + ); + let mut local_var_req_builder = + local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str()); + + if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { + local_var_req_builder = local_var_req_builder + .header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); + } + if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { + local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); + }; + local_var_req_builder = local_var_req_builder.json(&update_workspace_request); + + let local_var_req = local_var_req_builder.build()?; + let local_var_resp = local_var_client.execute(local_var_req).await?; + + let local_var_status = local_var_resp.status(); + let local_var_content = local_var_resp.text().await?; + + if !local_var_status.is_client_error() && !local_var_status.is_server_error() { + serde_json::from_str(&local_var_content).map_err(Error::from) + } else { + let local_var_entity: Option = + serde_json::from_str(&local_var_content).ok(); + let local_var_error = ResponseContent { + status: local_var_status, + content: local_var_content, + entity: local_var_entity, + }; + Err(Error::ResponseError(local_var_error)) + } + } +} /// struct for typed errors of method [`create_workspace`] #[derive(Debug, Clone, Serialize, Deserialize)] @@ -44,173 +252,3 @@ pub enum UpdateWorkspaceError { Status500(), UnknownValue(serde_json::Value), } - -pub async fn create_workspace( - configuration: &configuration::Configuration, - create_workspace_request: models::CreateWorkspaceRequest, -) -> Result> { - let local_var_configuration = configuration; - - let local_var_client = &local_var_configuration.client; - - let local_var_uri_str = format!("{}/api/v1/workspaces", local_var_configuration.base_path); - let mut local_var_req_builder = - local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str()); - - if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { - local_var_req_builder = - local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); - } - if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { - local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); - }; - local_var_req_builder = local_var_req_builder.json(&create_workspace_request); - - let local_var_req = local_var_req_builder.build()?; - let local_var_resp = local_var_client.execute(local_var_req).await?; - - let local_var_status = local_var_resp.status(); - let local_var_content = local_var_resp.text().await?; - - if !local_var_status.is_client_error() && !local_var_status.is_server_error() { - serde_json::from_str(&local_var_content).map_err(Error::from) - } else { - let local_var_entity: Option = - serde_json::from_str(&local_var_content).ok(); - let local_var_error = ResponseContent { - status: local_var_status, - content: local_var_content, - entity: local_var_entity, - }; - Err(Error::ResponseError(local_var_error)) - } -} - -pub async fn list_workspaces( - configuration: &configuration::Configuration, -) -> Result> { - let local_var_configuration = configuration; - - let local_var_client = &local_var_configuration.client; - - let local_var_uri_str = format!("{}/api/v1/workspaces", local_var_configuration.base_path); - let mut local_var_req_builder = - local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str()); - - if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { - local_var_req_builder = - local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); - } - if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { - local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); - }; - - let local_var_req = local_var_req_builder.build()?; - let local_var_resp = local_var_client.execute(local_var_req).await?; - - let local_var_status = local_var_resp.status(); - let local_var_content = local_var_resp.text().await?; - - if !local_var_status.is_client_error() && !local_var_status.is_server_error() { - serde_json::from_str(&local_var_content).map_err(Error::from) - } else { - let local_var_entity: Option = - serde_json::from_str(&local_var_content).ok(); - let local_var_error = ResponseContent { - status: local_var_status, - content: local_var_content, - entity: local_var_entity, - }; - Err(Error::ResponseError(local_var_error)) - } -} - -pub async fn read_workspace( - configuration: &configuration::Configuration, - id: &str, -) -> Result> { - let local_var_configuration = configuration; - - let local_var_client = &local_var_configuration.client; - - let local_var_uri_str = format!( - "{}/api/v1/workspaces/{id}", - local_var_configuration.base_path, - id = crate::apis::urlencode(id) - ); - let mut local_var_req_builder = - local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str()); - - if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { - local_var_req_builder = - local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); - } - if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { - local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); - }; - - let local_var_req = local_var_req_builder.build()?; - let local_var_resp = local_var_client.execute(local_var_req).await?; - - let local_var_status = local_var_resp.status(); - let local_var_content = local_var_resp.text().await?; - - if !local_var_status.is_client_error() && !local_var_status.is_server_error() { - serde_json::from_str(&local_var_content).map_err(Error::from) - } else { - let local_var_entity: Option = - serde_json::from_str(&local_var_content).ok(); - let local_var_error = ResponseContent { - status: local_var_status, - content: local_var_content, - entity: local_var_entity, - }; - Err(Error::ResponseError(local_var_error)) - } -} - -pub async fn update_workspace( - configuration: &configuration::Configuration, - id: &str, - update_workspace_request: models::UpdateWorkspaceRequest, -) -> Result> { - let local_var_configuration = configuration; - - let local_var_client = &local_var_configuration.client; - - let local_var_uri_str = format!( - "{}/api/v1/workspaces/{id}", - local_var_configuration.base_path, - id = crate::apis::urlencode(id) - ); - let mut local_var_req_builder = - local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str()); - - if let Some(ref local_var_user_agent) = local_var_configuration.user_agent { - local_var_req_builder = - local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone()); - } - if let Some(ref local_var_token) = local_var_configuration.bearer_access_token { - local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned()); - }; - local_var_req_builder = local_var_req_builder.json(&update_workspace_request); - - let local_var_req = local_var_req_builder.build()?; - let local_var_resp = local_var_client.execute(local_var_req).await?; - - let local_var_status = local_var_resp.status(); - let local_var_content = local_var_resp.text().await?; - - if !local_var_status.is_client_error() && !local_var_status.is_server_error() { - serde_json::from_str(&local_var_content).map_err(Error::from) - } else { - let local_var_entity: Option = - serde_json::from_str(&local_var_content).ok(); - let local_var_error = ResponseContent { - status: local_var_status, - content: local_var_content, - entity: local_var_entity, - }; - Err(Error::ResponseError(local_var_error)) - } -} diff --git a/src/lib.rs b/src/lib.rs index 92760eb..cfbd3aa 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,11 +1,9 @@ #![allow(unused_imports)] +#![allow(clippy::too_many_arguments)] -#[macro_use] -extern crate serde_derive; - -extern crate reqwest; extern crate serde; extern crate serde_json; +extern crate serde_repr; extern crate url; pub mod apis; diff --git a/src/models/application_config.rs b/src/models/application_config.rs index 8cf0dda..f6ab017 100644 --- a/src/models/application_config.rs +++ b/src/models/application_config.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[serde(untagged)] diff --git a/src/models/application_config_one_of.rs b/src/models/application_config_one_of.rs index b708aac..bfcdc62 100644 --- a/src/models/application_config_one_of.rs +++ b/src/models/application_config_one_of.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct ApplicationConfigOneOf { diff --git a/src/models/application_details.rs b/src/models/application_details.rs index ad61bd5..28028e3 100644 --- a/src/models/application_details.rs +++ b/src/models/application_details.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct ApplicationDetails { diff --git a/src/models/application_group.rs b/src/models/application_group.rs index 61bd735..25fae46 100644 --- a/src/models/application_group.rs +++ b/src/models/application_group.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; /// #[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)] @@ -19,11 +20,11 @@ pub enum ApplicationGroup { Baseline, } -impl ToString for ApplicationGroup { - fn to_string(&self) -> String { +impl std::fmt::Display for ApplicationGroup { + fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { match self { - Self::Canary => String::from("canary"), - Self::Baseline => String::from("baseline"), + Self::Canary => write!(f, "canary"), + Self::Baseline => write!(f, "baseline"), } } } diff --git a/src/models/application_summary.rs b/src/models/application_summary.rs index 741da5a..40f4c6b 100644 --- a/src/models/application_summary.rs +++ b/src/models/application_summary.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct ApplicationSummary { diff --git a/src/models/application_type.rs b/src/models/application_type.rs index 566e2c1..efd0078 100644 --- a/src/models/application_type.rs +++ b/src/models/application_type.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; /// ApplicationType : An identifier of what kind of application we're tracking. /// An identifier of what kind of application we're tracking. @@ -18,10 +19,10 @@ pub enum ApplicationType { WebService, } -impl ToString for ApplicationType { - fn to_string(&self) -> String { +impl std::fmt::Display for ApplicationType { + fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { match self { - Self::WebService => String::from("web_service"), + Self::WebService => write!(f, "web_service"), } } } diff --git a/src/models/create_application_request.rs b/src/models/create_application_request.rs index 8d01426..ca07810 100644 --- a/src/models/create_application_request.rs +++ b/src/models/create_application_request.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct CreateApplicationRequest { diff --git a/src/models/create_application_success.rs b/src/models/create_application_success.rs index dbb16d0..68ebe09 100644 --- a/src/models/create_application_success.rs +++ b/src/models/create_application_success.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct CreateApplicationSuccess { diff --git a/src/models/create_deployment_success.rs b/src/models/create_deployment_success.rs index c328f43..97e3e3f 100644 --- a/src/models/create_deployment_success.rs +++ b/src/models/create_deployment_success.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct CreateDeploymentSuccess { diff --git a/src/models/create_response_code_metrics_request.rs b/src/models/create_response_code_metrics_request.rs index 4fd11b2..7880f62 100644 --- a/src/models/create_response_code_metrics_request.rs +++ b/src/models/create_response_code_metrics_request.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct CreateResponseCodeMetricsRequest { diff --git a/src/models/create_response_code_metrics_success.rs b/src/models/create_response_code_metrics_success.rs index fefe09e..f07e2a6 100644 --- a/src/models/create_response_code_metrics_success.rs +++ b/src/models/create_response_code_metrics_success.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct CreateResponseCodeMetricsSuccess { diff --git a/src/models/create_user_request.rs b/src/models/create_user_request.rs index 9cd62f4..7b7fb33 100644 --- a/src/models/create_user_request.rs +++ b/src/models/create_user_request.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; /// CreateUserRequest : Expected body of user endpoint requests #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] diff --git a/src/models/create_user_success.rs b/src/models/create_user_success.rs index cf35342..524cef8 100644 --- a/src/models/create_user_success.rs +++ b/src/models/create_user_success.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct CreateUserSuccess { diff --git a/src/models/create_workspace_request.rs b/src/models/create_workspace_request.rs index c5b45a1..c849002 100644 --- a/src/models/create_workspace_request.rs +++ b/src/models/create_workspace_request.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct CreateWorkspaceRequest { diff --git a/src/models/create_workspace_success.rs b/src/models/create_workspace_success.rs index ca1a82b..003eaf8 100644 --- a/src/models/create_workspace_success.rs +++ b/src/models/create_workspace_success.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct CreateWorkspaceSuccess { diff --git a/src/models/deployment.rs b/src/models/deployment.rs index 1573a61..6bde81d 100644 --- a/src/models/deployment.rs +++ b/src/models/deployment.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct Deployment { @@ -21,7 +22,7 @@ pub struct Deployment { #[serde(rename = "events")] pub events: Vec, #[serde(rename = "id")] - pub id: i64, + pub id: u64, #[serde(rename = "status")] pub status: models::DeploymentStatus, #[serde(rename = "updated_at")] @@ -34,7 +35,7 @@ impl Deployment { app_id: uuid::Uuid, created_at: String, events: Vec, - id: i64, + id: u64, status: models::DeploymentStatus, updated_at: String, ) -> Deployment { diff --git a/src/models/deployment_event.rs b/src/models/deployment_event.rs index a0aa357..29b2118 100644 --- a/src/models/deployment_event.rs +++ b/src/models/deployment_event.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct DeploymentEvent { @@ -17,7 +18,7 @@ pub struct DeploymentEvent { #[serde(rename = "event_type")] pub event_type: models::DeploymentEventType, #[serde(rename = "id")] - pub id: i64, + pub id: u64, #[serde(rename = "updated_at")] pub updated_at: String, } @@ -26,7 +27,7 @@ impl DeploymentEvent { pub fn new( created_at: String, event_type: models::DeploymentEventType, - id: i64, + id: u64, updated_at: String, ) -> DeploymentEvent { DeploymentEvent { diff --git a/src/models/deployment_event_type.rs b/src/models/deployment_event_type.rs index 287514a..ba6421e 100644 --- a/src/models/deployment_event_type.rs +++ b/src/models/deployment_event_type.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; /// #[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)] @@ -31,17 +32,17 @@ pub enum DeploymentEventType { Superseded, } -impl ToString for DeploymentEventType { - fn to_string(&self) -> String { +impl std::fmt::Display for DeploymentEventType { + fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { match self { - Self::DeploymentQueued => String::from("deployment_queued"), - Self::DeploymentReady => String::from("deployment_ready"), - Self::CanaryDeployed => String::from("canary_deployed"), - Self::TrafficIncreased => String::from("traffic_increased"), - Self::TrafficDecreased => String::from("traffic_decreased"), - Self::Promoted => String::from("promoted"), - Self::RolledBack => String::from("rolled_back"), - Self::Superseded => String::from("superseded"), + Self::DeploymentQueued => write!(f, "deployment_queued"), + Self::DeploymentReady => write!(f, "deployment_ready"), + Self::CanaryDeployed => write!(f, "canary_deployed"), + Self::TrafficIncreased => write!(f, "traffic_increased"), + Self::TrafficDecreased => write!(f, "traffic_decreased"), + Self::Promoted => write!(f, "promoted"), + Self::RolledBack => write!(f, "rolled_back"), + Self::Superseded => write!(f, "superseded"), } } } diff --git a/src/models/deployment_status.rs b/src/models/deployment_status.rs index 61501e9..b979286 100644 --- a/src/models/deployment_status.rs +++ b/src/models/deployment_status.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; /// #[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)] @@ -25,14 +26,14 @@ pub enum DeploymentStatus { Superseded, } -impl ToString for DeploymentStatus { - fn to_string(&self) -> String { +impl std::fmt::Display for DeploymentStatus { + fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { match self { - Self::Queued => String::from("queued"), - Self::InProgress => String::from("in_progress"), - Self::Promoted => String::from("promoted"), - Self::RolledBack => String::from("rolled_back"), - Self::Superseded => String::from("superseded"), + Self::Queued => write!(f, "queued"), + Self::InProgress => write!(f, "in_progress"), + Self::Promoted => write!(f, "promoted"), + Self::RolledBack => write!(f, "rolled_back"), + Self::Superseded => write!(f, "superseded"), } } } diff --git a/src/models/error_response.rs b/src/models/error_response.rs index 6825931..567555e 100644 --- a/src/models/error_response.rs +++ b/src/models/error_response.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct ErrorResponse { diff --git a/src/models/heartbeat_controller_200_response.rs b/src/models/heartbeat_controller_200_response.rs index 15f4f43..1d86eec 100644 --- a/src/models/heartbeat_controller_200_response.rs +++ b/src/models/heartbeat_controller_200_response.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; /// HeartbeatController200Response : A Heartbeat response indicates the status of the server. In almost every conceivable circumstance, the response should be a success. #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] diff --git a/src/models/ingress_config.rs b/src/models/ingress_config.rs index 2e90f3e..175320a 100644 --- a/src/models/ingress_config.rs +++ b/src/models/ingress_config.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[serde(untagged)] diff --git a/src/models/ingress_config_one_of.rs b/src/models/ingress_config_one_of.rs index 90b10db..105141a 100644 --- a/src/models/ingress_config_one_of.rs +++ b/src/models/ingress_config_one_of.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct IngressConfigOneOf { diff --git a/src/models/ingress_config_one_of_aws_rest_api_gateway.rs b/src/models/ingress_config_one_of_aws_rest_api_gateway.rs index 773e2ab..01f41fe 100644 --- a/src/models/ingress_config_one_of_aws_rest_api_gateway.rs +++ b/src/models/ingress_config_one_of_aws_rest_api_gateway.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct IngressConfigOneOfAwsRestApiGateway { diff --git a/src/models/list_applications_success.rs b/src/models/list_applications_success.rs index 8d2b27e..28a2390 100644 --- a/src/models/list_applications_success.rs +++ b/src/models/list_applications_success.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct ListApplicationsSuccess { diff --git a/src/models/list_deployments_success.rs b/src/models/list_deployments_success.rs index d270a80..0747975 100644 --- a/src/models/list_deployments_success.rs +++ b/src/models/list_deployments_success.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct ListDeploymentsSuccess { diff --git a/src/models/list_workspace_success.rs b/src/models/list_workspace_success.rs index d04bca4..d7831f3 100644 --- a/src/models/list_workspace_success.rs +++ b/src/models/list_workspace_success.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct ListWorkspaceSuccess { diff --git a/src/models/login_request.rs b/src/models/login_request.rs index 7eafc91..48e0021 100644 --- a/src/models/login_request.rs +++ b/src/models/login_request.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct LoginRequest { diff --git a/src/models/login_success.rs b/src/models/login_success.rs index 41232b8..492902e 100644 --- a/src/models/login_success.rs +++ b/src/models/login_success.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct LoginSuccess { diff --git a/src/models/monitor_config.rs b/src/models/monitor_config.rs index f03345f..7064e98 100644 --- a/src/models/monitor_config.rs +++ b/src/models/monitor_config.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[serde(untagged)] diff --git a/src/models/monitor_config_one_of.rs b/src/models/monitor_config_one_of.rs index 3b265ae..78a6cf1 100644 --- a/src/models/monitor_config_one_of.rs +++ b/src/models/monitor_config_one_of.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct MonitorConfigOneOf { diff --git a/src/models/monitor_config_one_of_aws_cloudwatch_metrics.rs b/src/models/monitor_config_one_of_aws_cloudwatch_metrics.rs index 35acc64..6693538 100644 --- a/src/models/monitor_config_one_of_aws_cloudwatch_metrics.rs +++ b/src/models/monitor_config_one_of_aws_cloudwatch_metrics.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct MonitorConfigOneOfAwsCloudwatchMetrics { diff --git a/src/models/platform_config.rs b/src/models/platform_config.rs index c3150fe..e2cff82 100644 --- a/src/models/platform_config.rs +++ b/src/models/platform_config.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[serde(untagged)] diff --git a/src/models/platform_config_one_of.rs b/src/models/platform_config_one_of.rs index 546f8c8..7c0bef8 100644 --- a/src/models/platform_config_one_of.rs +++ b/src/models/platform_config_one_of.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct PlatformConfigOneOf { diff --git a/src/models/platform_config_one_of_aws_lambda.rs b/src/models/platform_config_one_of_aws_lambda.rs index a588960..8c46614 100644 --- a/src/models/platform_config_one_of_aws_lambda.rs +++ b/src/models/platform_config_one_of_aws_lambda.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct PlatformConfigOneOfAwsLambda { diff --git a/src/models/read_application_success.rs b/src/models/read_application_success.rs index 1924474..2d4bcac 100644 --- a/src/models/read_application_success.rs +++ b/src/models/read_application_success.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct ReadApplicationSuccess { diff --git a/src/models/read_deployment_success.rs b/src/models/read_deployment_success.rs index 12115dc..b464269 100644 --- a/src/models/read_deployment_success.rs +++ b/src/models/read_deployment_success.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct ReadDeploymentSuccess { diff --git a/src/models/response_code_metrics.rs b/src/models/response_code_metrics.rs index 15a3ded..4d49051 100644 --- a/src/models/response_code_metrics.rs +++ b/src/models/response_code_metrics.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct ResponseCodeMetrics { @@ -17,7 +18,7 @@ pub struct ResponseCodeMetrics { #[serde(rename = "created_at")] pub created_at: String, #[serde(rename = "deployment_id")] - pub deployment_id: i64, + pub deployment_id: u64, #[serde(rename = "status_2xx_count")] pub status_2xx_count: i32, #[serde(rename = "status_4xx_count")] @@ -30,7 +31,7 @@ impl ResponseCodeMetrics { pub fn new( app_class: models::ApplicationGroup, created_at: String, - deployment_id: i64, + deployment_id: u64, status_2xx_count: i32, status_4xx_count: i32, status_5xx_count: i32, diff --git a/src/models/update_workspace_request.rs b/src/models/update_workspace_request.rs index 55d9981..8bb1542 100644 --- a/src/models/update_workspace_request.rs +++ b/src/models/update_workspace_request.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct UpdateWorkspaceRequest { diff --git a/src/models/update_workspace_success.rs b/src/models/update_workspace_success.rs index ed216a4..f179691 100644 --- a/src/models/update_workspace_success.rs +++ b/src/models/update_workspace_success.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct UpdateWorkspaceSuccess { diff --git a/src/models/user_details.rs b/src/models/user_details.rs index 695a6ae..24293da 100644 --- a/src/models/user_details.rs +++ b/src/models/user_details.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct UserDetails { diff --git a/src/models/user_summary.rs b/src/models/user_summary.rs index a815345..70c40fc 100644 --- a/src/models/user_summary.rs +++ b/src/models/user_summary.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; /// UserSummary : Successful login response payload #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] diff --git a/src/models/web_service_config.rs b/src/models/web_service_config.rs index 40184a0..4788999 100644 --- a/src/models/web_service_config.rs +++ b/src/models/web_service_config.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct WebServiceConfig { diff --git a/src/models/workspace_details.rs b/src/models/workspace_details.rs index 8b7445d..8e2d3d2 100644 --- a/src/models/workspace_details.rs +++ b/src/models/workspace_details.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; /// WorkspaceDetails : Details about a particular workspace. #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] diff --git a/src/models/workspace_read_success.rs b/src/models/workspace_read_success.rs index e164267..51cd31e 100644 --- a/src/models/workspace_read_success.rs +++ b/src/models/workspace_read_success.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct WorkspaceReadSuccess { diff --git a/src/models/workspace_summary.rs b/src/models/workspace_summary.rs index 27ae6b1..b8bc650 100644 --- a/src/models/workspace_summary.rs +++ b/src/models/workspace_summary.rs @@ -9,6 +9,7 @@ */ use crate::models; +use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct WorkspaceSummary { From b63cf24b1662262a9ef64ea71fa2fa5544dcf67f Mon Sep 17 00:00:00 2001 From: Robbie McKinstry Date: Wed, 26 Feb 2025 17:25:24 -0500 Subject: [PATCH 3/3] trigger second job for merge queue --- .github/workflows/on-push.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/.github/workflows/on-push.yml b/.github/workflows/on-push.yml index 171299d..72805dd 100644 --- a/.github/workflows/on-push.yml +++ b/.github/workflows/on-push.yml @@ -7,6 +7,21 @@ env: CARGO_TERM_COLOR: always jobs: + # Do not change this job's name without also changing "pr-ready"'s + # job name in "on-merge.yml". These jobs must have the same name. + # See the README for more details. + pr-ready: + if: always() + name: "⚡ PR Ready" + runs-on: ubuntu-22.04 + needs: + - "build" + steps: + - if: ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') || contains(needs.*.result, 'skipped') }} + run: | + echo "One or more dependent jobs failed, was skipped, or was cancelled. All jobs must pass for the PR to be ready." + exit 1 + - run: echo "OK" # This job installs Cargo Make and Cargo Nextest before running # the CI workflow using Cargo Make. Most of the time, it should # restore Cargo Make and other dependencies from cache.