diff --git a/.gitignore b/.gitignore index 01c5d225..66143969 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,7 @@ __pycache__ # may contain sensitive data pytest.ini -# +# # Artifacts from the Rust client generation process # /crates/tower-api/.openapi-generator-ignore @@ -31,3 +31,8 @@ pytest.ini # local MCP overrides (e.g. internal tooling with secrets) .mcp.json.local + +# llm/AI harness folders plus a .plans folder for storing LLM plans +.claude +.codex +.plans diff --git a/crates/tower-api/README.md b/crates/tower-api/README.md index 6c22dca1..de03bbb4 100644 --- a/crates/tower-api/README.md +++ b/crates/tower-api/README.md @@ -8,7 +8,7 @@ For more information, please visit [https://tower.dev](https://tower.dev) This API client was generated by the [OpenAPI Generator](https://openapi-generator.tech) project. By using the [openapi-spec](https://openapis.org) from a remote server, you can easily generate an API client. -- API version: v0.11.17 +- API version: v0.11.23 - Package version: 1.0.0 - Generator version: 7.19.0 - Build package: `org.openapitools.codegen.languages.RustClientCodegen` @@ -30,6 +30,8 @@ Class | Method | HTTP request | Description *DefaultApi* | [**acknowledge_alert**](docs/DefaultApi.md#acknowledge_alert) | **POST** /alerts/{alert_seq}/acknowledge | Acknowledge alert *DefaultApi* | [**acknowledge_all_alerts**](docs/DefaultApi.md#acknowledge_all_alerts) | **POST** /alerts/acknowledge-all | Acknowledge all alerts *DefaultApi* | [**activate_schedules**](docs/DefaultApi.md#activate_schedules) | **PATCH** /schedules/activate | Activate multiple schedules +*DefaultApi* | [**batch_describe_runs**](docs/DefaultApi.md#batch_describe_runs) | **POST** /batch/describe-runs | Batch describe runs +*DefaultApi* | [**batch_describe_runs_logs**](docs/DefaultApi.md#batch_describe_runs_logs) | **POST** /batch/describe-runs-logs | Batch describe runs logs *DefaultApi* | [**cancel_run**](docs/DefaultApi.md#cancel_run) | **POST** /apps/{name}/runs/{seq} | Cancel run *DefaultApi* | [**check_webhook**](docs/DefaultApi.md#check_webhook) | **POST** /webhooks/{name}/test | Check webhook *DefaultApi* | [**claim_device_login_ticket**](docs/DefaultApi.md#claim_device_login_ticket) | **POST** /login/device/claim | Claim a device login ticket @@ -71,6 +73,7 @@ Class | Method | HTTP request | Description *DefaultApi* | [**describe_authentication_context**](docs/DefaultApi.md#describe_authentication_context) | **GET** /user/auth-context | Describe authentication context *DefaultApi* | [**describe_catalog**](docs/DefaultApi.md#describe_catalog) | **GET** /catalogs/{name} | Describe catalog *DefaultApi* | [**describe_catalog_fact**](docs/DefaultApi.md#describe_catalog_fact) | **GET** /catalogs/{catalog}/facts/{name} | Describe a catalog fact +*DefaultApi* | [**describe_catalog_usage**](docs/DefaultApi.md#describe_catalog_usage) | **GET** /catalogs/{name}/usage | Describe catalog usage *DefaultApi* | [**describe_default_catalog**](docs/DefaultApi.md#describe_default_catalog) | **GET** /storage/catalogs/default | Describe default catalog *DefaultApi* | [**describe_device_login_session**](docs/DefaultApi.md#describe_device_login_session) | **GET** /login/device/{device_code} | Describe device login session *DefaultApi* | [**describe_email_preferences**](docs/DefaultApi.md#describe_email_preferences) | **GET** /user/email-preferences | Describe email preferences @@ -159,13 +162,20 @@ Class | Method | HTTP request | Description - [AppTag](docs/AppTag.md) - [AppVersion](docs/AppVersion.md) - [AuthenticationContext](docs/AuthenticationContext.md) + - [BatchDescribeRunsLogsParams](docs/BatchDescribeRunsLogsParams.md) + - [BatchDescribeRunsParams](docs/BatchDescribeRunsParams.md) + - [BatchDescribeRunsResponse](docs/BatchDescribeRunsResponse.md) + - [BatchError](docs/BatchError.md) + - [BatchRunAndLinks](docs/BatchRunAndLinks.md) - [BatchScheduleParams](docs/BatchScheduleParams.md) - [BatchScheduleResponse](docs/BatchScheduleResponse.md) + - [BatchedRunLogLines](docs/BatchedRunLogLines.md) - [CancelRunResponse](docs/CancelRunResponse.md) - [Catalog](docs/Catalog.md) - [CatalogCredentials](docs/CatalogCredentials.md) - [CatalogFact](docs/CatalogFact.md) - [CatalogProperty](docs/CatalogProperty.md) + - [CatalogUsage](docs/CatalogUsage.md) - [ClaimDeviceLoginTicketParams](docs/ClaimDeviceLoginTicketParams.md) - [ClaimDeviceLoginTicketResponse](docs/ClaimDeviceLoginTicketResponse.md) - [CreateAccountParams](docs/CreateAccountParams.md) @@ -223,6 +233,7 @@ Class | Method | HTTP request | Description - [DescribeAuthenticationContextBody](docs/DescribeAuthenticationContextBody.md) - [DescribeCatalogFactResponse](docs/DescribeCatalogFactResponse.md) - [DescribeCatalogResponse](docs/DescribeCatalogResponse.md) + - [DescribeCatalogUsageResponse](docs/DescribeCatalogUsageResponse.md) - [DescribeDeviceLoginSessionResponse](docs/DescribeDeviceLoginSessionResponse.md) - [DescribeEmailPreferencesBody](docs/DescribeEmailPreferencesBody.md) - [DescribeEnvironmentResponse](docs/DescribeEnvironmentResponse.md) @@ -287,6 +298,7 @@ Class | Method | HTTP request | Description - [ListTeamsResponse](docs/ListTeamsResponse.md) - [ListWebhooksResponse](docs/ListWebhooksResponse.md) - [Organization](docs/Organization.md) + - [OrganizationStorageUsage](docs/OrganizationStorageUsage.md) - [OrganizationUsage](docs/OrganizationUsage.md) - [Pagination](docs/Pagination.md) - [Parameter](docs/Parameter.md) @@ -300,6 +312,7 @@ Class | Method | HTTP request | Description - [ResendTeamInvitationParams](docs/ResendTeamInvitationParams.md) - [ResendTeamInvitationResponse](docs/ResendTeamInvitationResponse.md) - [Run](docs/Run.md) + - [RunAndLinks](docs/RunAndLinks.md) - [RunAppInitiatorData](docs/RunAppInitiatorData.md) - [RunAppParams](docs/RunAppParams.md) - [RunAppResponse](docs/RunAppResponse.md) @@ -310,6 +323,7 @@ Class | Method | HTTP request | Description - [RunGraphRunId](docs/RunGraphRunId.md) - [RunInitiator](docs/RunInitiator.md) - [RunInitiatorDetails](docs/RunInitiatorDetails.md) + - [RunLinks](docs/RunLinks.md) - [RunLogLine](docs/RunLogLine.md) - [RunParameter](docs/RunParameter.md) - [RunResults](docs/RunResults.md) diff --git a/crates/tower-api/src/apis/configuration.rs b/crates/tower-api/src/apis/configuration.rs index eed91008..a942b263 100644 --- a/crates/tower-api/src/apis/configuration.rs +++ b/crates/tower-api/src/apis/configuration.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/apis/default_api.rs b/crates/tower-api/src/apis/default_api.rs index 80aa8413..ce53118f 100644 --- a/crates/tower-api/src/apis/default_api.rs +++ b/crates/tower-api/src/apis/default_api.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ @@ -27,6 +27,18 @@ pub struct ActivateSchedulesParams { pub batch_schedule_params: models::BatchScheduleParams, } +/// struct for passing parameters to the method [`batch_describe_runs`] +#[derive(Clone, Debug)] +pub struct BatchDescribeRunsParams { + pub batch_describe_runs_params: Vec, +} + +/// struct for passing parameters to the method [`batch_describe_runs_logs`] +#[derive(Clone, Debug)] +pub struct BatchDescribeRunsLogsParams { + pub batch_describe_runs_logs_params: Vec, +} + /// struct for passing parameters to the method [`cancel_run`] #[derive(Clone, Debug)] pub struct CancelRunParams { @@ -263,6 +275,8 @@ pub struct DeployAppParams { pub x_tower_checksum_sha256: Option, /// Optional opaque key (typically a git commit SHA or CI build ID). If a prior deploy for this app supplied the same value, the server reuses that AppVersion instead of creating a new one — letting consecutive deploys to different environments share a single version when the source hasn't changed. pub x_tower_idempotency_key: Option, + /// Optional account-scoped monotonic sequence token used to reject out-of-order writes. See the fence documentation for the acceptance window and retry behavior. + pub x_tower_request_number: Option, /// Size of the uploaded bundle in bytes. pub content_length: Option, /// The environment to deploy to. @@ -324,6 +338,15 @@ pub struct DescribeCatalogFactParams { pub environment: Option, } +/// struct for passing parameters to the method [`describe_catalog_usage`] +#[derive(Clone, Debug)] +pub struct DescribeCatalogUsageParams { + /// The name of the catalog. + pub name: String, + /// The environment of the catalog. + pub environment: Option, +} + /// struct for passing parameters to the method [`describe_device_login_session`] #[derive(Clone, Debug)] pub struct DescribeDeviceLoginSessionParams { @@ -748,6 +771,8 @@ pub struct UpdateAppParams { /// The name of the App to update. pub name: String, pub update_app_params: models::UpdateAppParams, + /// Optional account-scoped monotonic sequence token used to reject out-of-order writes. See the fence documentation for the acceptance window and retry behavior. + pub x_tower_request_number: Option, } /// struct for passing parameters to the method [`update_app_environment`] @@ -820,6 +845,8 @@ pub struct UpdateScheduleParams { /// The ID or name of the schedule to update. pub id_or_name: String, pub update_schedule_params: models::UpdateScheduleParams, + /// Optional account-scoped monotonic sequence token used to reject out-of-order writes. See the fence documentation for the acceptance window and retry behavior. + pub x_tower_request_number: Option, } /// struct for passing parameters to the method [`update_secret`] @@ -901,6 +928,22 @@ pub enum ActivateSchedulesSuccess { UnknownValue(serde_json::Value), } +/// struct for typed successes of method [`batch_describe_runs`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum BatchDescribeRunsSuccess { + Status200(models::BatchDescribeRunsResponse), + UnknownValue(serde_json::Value), +} + +/// struct for typed successes of method [`batch_describe_runs_logs`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum BatchDescribeRunsLogsSuccess { + Status200(Vec), + UnknownValue(serde_json::Value), +} + /// struct for typed successes of method [`cancel_run`] #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] @@ -1229,6 +1272,14 @@ pub enum DescribeCatalogFactSuccess { UnknownValue(serde_json::Value), } +/// struct for typed successes of method [`describe_catalog_usage`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum DescribeCatalogUsageSuccess { + Status200(models::DescribeCatalogUsageResponse), + UnknownValue(serde_json::Value), +} + /// struct for typed successes of method [`describe_default_catalog`] #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] @@ -1822,6 +1873,22 @@ pub enum ActivateSchedulesError { UnknownValue(serde_json::Value), } +/// struct for typed errors of method [`batch_describe_runs`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum BatchDescribeRunsError { + DefaultResponse(models::ErrorModel), + UnknownValue(serde_json::Value), +} + +/// struct for typed errors of method [`batch_describe_runs_logs`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum BatchDescribeRunsLogsError { + DefaultResponse(models::ErrorModel), + UnknownValue(serde_json::Value), +} + /// struct for typed errors of method [`cancel_run`] #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] @@ -1874,6 +1941,12 @@ pub enum CreateAppError { #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum CreateCatalogError { + Status400(models::ErrorModel), + Status401(models::ErrorModel), + Status403(models::ErrorModel), + Status409(models::ErrorModel), + Status422(models::ErrorModel), + Status500(models::ErrorModel), DefaultResponse(models::ErrorModel), UnknownValue(serde_json::Value), } @@ -2005,6 +2078,12 @@ pub enum DeleteAppError { #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum DeleteCatalogError { + Status401(models::ErrorModel), + Status403(models::ErrorModel), + Status404(models::ErrorModel), + Status409(models::ErrorModel), + Status422(models::ErrorModel), + Status500(models::ErrorModel), DefaultResponse(models::ErrorModel), UnknownValue(serde_json::Value), } @@ -2021,6 +2100,12 @@ pub enum DeleteCatalogFactError { #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum DeleteEnvironmentError { + Status401(models::ErrorModel), + Status403(models::ErrorModel), + Status404(models::ErrorModel), + Status409(models::ErrorModel), + Status422(models::ErrorModel), + Status500(models::ErrorModel), DefaultResponse(models::ErrorModel), UnknownValue(serde_json::Value), } @@ -2102,6 +2187,7 @@ pub enum DeleteWebhookError { #[serde(untagged)] pub enum DeployAppError { Status400(models::ErrorModel), + Status412(models::ErrorModel), Status422(models::ErrorModel), Status500(models::ErrorModel), UnknownValue(serde_json::Value), @@ -2155,6 +2241,17 @@ pub enum DescribeCatalogFactError { UnknownValue(serde_json::Value), } +/// struct for typed errors of method [`describe_catalog_usage`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum DescribeCatalogUsageError { + Status401(models::ErrorModel), + Status404(models::ErrorModel), + Status422(models::ErrorModel), + Status500(models::ErrorModel), + UnknownValue(serde_json::Value), +} + /// struct for typed errors of method [`describe_default_catalog`] #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] @@ -2592,7 +2689,9 @@ pub enum UpdateAccountError { #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum UpdateAppError { - DefaultResponse(models::ErrorModel), + Status412(models::ErrorModel), + Status422(models::ErrorModel), + Status500(models::ErrorModel), UnknownValue(serde_json::Value), } @@ -2608,6 +2707,11 @@ pub enum UpdateAppEnvironmentError { #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum UpdateCatalogError { + Status401(models::ErrorModel), + Status403(models::ErrorModel), + Status404(models::ErrorModel), + Status422(models::ErrorModel), + Status500(models::ErrorModel), DefaultResponse(models::ErrorModel), UnknownValue(serde_json::Value), } @@ -2632,6 +2736,12 @@ pub enum UpdateEmailPreferencesError { #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum UpdateEnvironmentError { + Status401(models::ErrorModel), + Status403(models::ErrorModel), + Status404(models::ErrorModel), + Status409(models::ErrorModel), + Status422(models::ErrorModel), + Status500(models::ErrorModel), DefaultResponse(models::ErrorModel), UnknownValue(serde_json::Value), } @@ -2670,7 +2780,9 @@ pub enum UpdatePlanError { #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum UpdateScheduleError { - DefaultResponse(models::ErrorModel), + Status412(models::ErrorModel), + Status422(models::ErrorModel), + Status500(models::ErrorModel), UnknownValue(serde_json::Value), } @@ -2909,6 +3021,122 @@ pub async fn activate_schedules( } } +/// Describe multiple runs in a single request. +pub async fn batch_describe_runs( + configuration: &configuration::Configuration, + params: BatchDescribeRunsParams, +) -> Result, Error> { + let uri_str = format!("{}/batch/describe-runs", configuration.base_path); + let mut req_builder = configuration + .client + .request(reqwest::Method::POST, &uri_str); + + if let Some(ref user_agent) = configuration.user_agent { + req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone()); + } + if let Some(ref token) = configuration.bearer_access_token { + req_builder = req_builder.bearer_auth(token.to_owned()); + }; + if let Some(ref apikey) = configuration.api_key { + let key = apikey.key.clone(); + let value = match apikey.prefix { + Some(ref prefix) => format!("{} {}", prefix, key), + None => key, + }; + req_builder = req_builder.header("X-API-Key", value); + }; + req_builder = req_builder.json(¶ms.batch_describe_runs_params); + + let req = req_builder.build()?; + let resp = configuration.client.execute(req).await?; + + let status = resp.status(); + + let tower_trace_id = resp + .headers() + .get("x-tower-trace-id") + .and_then(|v| v.to_str().ok()) + .map_or(String::from(DEFAULT_TOWER_TRACE_ID), String::from); + + if !status.is_client_error() && !status.is_server_error() { + let content = resp.text().await?; + let entity: Option = serde_json::from_str(&content).ok(); + Ok(ResponseContent { + tower_trace_id, + status, + content, + entity, + }) + } else { + let content = resp.text().await?; + let entity: Option = serde_json::from_str(&content).ok(); + Err(Error::ResponseError(ResponseContent { + tower_trace_id, + status, + content, + entity, + })) + } +} + +/// Describe multiple run logs in a single request. +pub async fn batch_describe_runs_logs( + configuration: &configuration::Configuration, + params: BatchDescribeRunsLogsParams, +) -> Result, Error> { + let uri_str = format!("{}/batch/describe-runs-logs", configuration.base_path); + let mut req_builder = configuration + .client + .request(reqwest::Method::POST, &uri_str); + + if let Some(ref user_agent) = configuration.user_agent { + req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone()); + } + if let Some(ref token) = configuration.bearer_access_token { + req_builder = req_builder.bearer_auth(token.to_owned()); + }; + if let Some(ref apikey) = configuration.api_key { + let key = apikey.key.clone(); + let value = match apikey.prefix { + Some(ref prefix) => format!("{} {}", prefix, key), + None => key, + }; + req_builder = req_builder.header("X-API-Key", value); + }; + req_builder = req_builder.json(¶ms.batch_describe_runs_logs_params); + + let req = req_builder.build()?; + let resp = configuration.client.execute(req).await?; + + let status = resp.status(); + + let tower_trace_id = resp + .headers() + .get("x-tower-trace-id") + .and_then(|v| v.to_str().ok()) + .map_or(String::from(DEFAULT_TOWER_TRACE_ID), String::from); + + if !status.is_client_error() && !status.is_server_error() { + let content = resp.text().await?; + let entity: Option = serde_json::from_str(&content).ok(); + Ok(ResponseContent { + tower_trace_id, + status, + content, + entity, + }) + } else { + let content = resp.text().await?; + let entity: Option = serde_json::from_str(&content).ok(); + Err(Error::ResponseError(ResponseContent { + tower_trace_id, + status, + content, + entity, + })) + } +} + /// Cancel a run pub async fn cancel_run( configuration: &configuration::Configuration, @@ -4930,6 +5158,9 @@ pub async fn deploy_app( if let Some(param_value) = params.x_tower_idempotency_key { req_builder = req_builder.header("X-Tower-Idempotency-Key", param_value.to_string()); } + if let Some(param_value) = params.x_tower_request_number { + req_builder = req_builder.header("X-Tower-Request-Number", param_value.to_string()); + } if let Some(param_value) = params.content_length { req_builder = req_builder.header("Content-Length", param_value.to_string()); } @@ -5355,6 +5586,68 @@ pub async fn describe_catalog_fact( } } +/// Returns physical bytes stored by one Tower-managed catalog, including Iceberg metadata and not-yet-compacted snapshot history. Measurements are cached and may be temporarily unavailable; measured_at is null when no measurement exists. BYO and S3 Tables catalogs are not metered. +pub async fn describe_catalog_usage( + configuration: &configuration::Configuration, + params: DescribeCatalogUsageParams, +) -> Result, Error> { + let uri_str = format!( + "{}/catalogs/{name}/usage", + configuration.base_path, + name = crate::apis::urlencode(params.name) + ); + let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str); + + if let Some(ref param_value) = params.environment { + req_builder = req_builder.query(&[("environment", ¶m_value.to_string())]); + } + if let Some(ref user_agent) = configuration.user_agent { + req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone()); + } + if let Some(ref token) = configuration.bearer_access_token { + req_builder = req_builder.bearer_auth(token.to_owned()); + }; + if let Some(ref apikey) = configuration.api_key { + let key = apikey.key.clone(); + let value = match apikey.prefix { + Some(ref prefix) => format!("{} {}", prefix, key), + None => key, + }; + req_builder = req_builder.header("X-API-Key", value); + }; + + let req = req_builder.build()?; + let resp = configuration.client.execute(req).await?; + + let status = resp.status(); + + let tower_trace_id = resp + .headers() + .get("x-tower-trace-id") + .and_then(|v| v.to_str().ok()) + .map_or(String::from(DEFAULT_TOWER_TRACE_ID), String::from); + + if !status.is_client_error() && !status.is_server_error() { + let content = resp.text().await?; + let entity: Option = serde_json::from_str(&content).ok(); + Ok(ResponseContent { + tower_trace_id, + status, + content, + entity, + }) + } else { + let content = resp.text().await?; + let entity: Option = serde_json::from_str(&content).ok(); + Err(Error::ResponseError(ResponseContent { + tower_trace_id, + status, + content, + entity, + })) + } +} + /// Returns the team's default catalog, provisioning it lazily if it does not yet exist. When two concurrent first calls race to provision the catalog, the loser receives 202 Accepted; retry after a few seconds and the catalog will be ready. pub async fn describe_default_catalog( configuration: &configuration::Configuration, @@ -8706,6 +8999,9 @@ pub async fn update_app( if let Some(ref user_agent) = configuration.user_agent { req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone()); } + if let Some(param_value) = params.x_tower_request_number { + req_builder = req_builder.header("X-Tower-Request-Number", param_value.to_string()); + } if let Some(ref token) = configuration.bearer_access_token { req_builder = req_builder.bearer_auth(token.to_owned()); }; @@ -9238,6 +9534,9 @@ pub async fn update_schedule( if let Some(ref user_agent) = configuration.user_agent { req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone()); } + if let Some(param_value) = params.x_tower_request_number { + req_builder = req_builder.header("X-Tower-Request-Number", param_value.to_string()); + } if let Some(ref token) = configuration.bearer_access_token { req_builder = req_builder.bearer_auth(token.to_owned()); }; diff --git a/crates/tower-api/src/apis/feature_flags_api.rs b/crates/tower-api/src/apis/feature_flags_api.rs index bb90cc43..a106ba65 100644 --- a/crates/tower-api/src/apis/feature_flags_api.rs +++ b/crates/tower-api/src/apis/feature_flags_api.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/account.rs b/crates/tower-api/src/models/account.rs index 13f84cda..98ebffe0 100644 --- a/crates/tower-api/src/models/account.rs +++ b/crates/tower-api/src/models/account.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/acknowledge_alert_response.rs b/crates/tower-api/src/models/acknowledge_alert_response.rs index d55f0d56..f3da8f54 100644 --- a/crates/tower-api/src/models/acknowledge_alert_response.rs +++ b/crates/tower-api/src/models/acknowledge_alert_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/acknowledge_all_alerts_response.rs b/crates/tower-api/src/models/acknowledge_all_alerts_response.rs index 3562b641..758870d7 100644 --- a/crates/tower-api/src/models/acknowledge_all_alerts_response.rs +++ b/crates/tower-api/src/models/acknowledge_all_alerts_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/alert.rs b/crates/tower-api/src/models/alert.rs index 917366f8..f4f944cb 100644 --- a/crates/tower-api/src/models/alert.rs +++ b/crates/tower-api/src/models/alert.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/api_key.rs b/crates/tower-api/src/models/api_key.rs index c92f2dff..5240be5d 100644 --- a/crates/tower-api/src/models/api_key.rs +++ b/crates/tower-api/src/models/api_key.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/api_key_owner.rs b/crates/tower-api/src/models/api_key_owner.rs index 840d5b93..39188944 100644 --- a/crates/tower-api/src/models/api_key_owner.rs +++ b/crates/tower-api/src/models/api_key_owner.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/app.rs b/crates/tower-api/src/models/app.rs index 6afd89c2..ae129597 100644 --- a/crates/tower-api/src/models/app.rs +++ b/crates/tower-api/src/models/app.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ @@ -22,6 +22,10 @@ pub struct App { #[serde_as(as = "DefaultOnNull")] #[serde(rename = "health_status")] pub health_status: HealthStatus, + /// Whether this app was deployed from the Tower examples catalog. + #[serde_as(as = "DefaultOnNull")] + #[serde(rename = "is_example")] + pub is_example: bool, #[serde_as(as = "DefaultOnNull")] #[serde(rename = "is_externally_accessible")] pub is_externally_accessible: bool, @@ -81,6 +85,7 @@ impl App { pub fn new( created_at: String, health_status: HealthStatus, + is_example: bool, is_externally_accessible: bool, name: String, next_run_at: Option, @@ -94,6 +99,7 @@ impl App { App { created_at, health_status, + is_example, is_externally_accessible, last_run: None, name, diff --git a/crates/tower-api/src/models/app_statistics.rs b/crates/tower-api/src/models/app_statistics.rs index e691a736..67884d13 100644 --- a/crates/tower-api/src/models/app_statistics.rs +++ b/crates/tower-api/src/models/app_statistics.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/app_summary.rs b/crates/tower-api/src/models/app_summary.rs index fd6eaacf..0e71da18 100644 --- a/crates/tower-api/src/models/app_summary.rs +++ b/crates/tower-api/src/models/app_summary.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/app_tag.rs b/crates/tower-api/src/models/app_tag.rs index 59fadff6..dfee0f21 100644 --- a/crates/tower-api/src/models/app_tag.rs +++ b/crates/tower-api/src/models/app_tag.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/app_version.rs b/crates/tower-api/src/models/app_version.rs index b1193b3c..a43a8117 100644 --- a/crates/tower-api/src/models/app_version.rs +++ b/crates/tower-api/src/models/app_version.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/authentication_context.rs b/crates/tower-api/src/models/authentication_context.rs index 16e7d68b..2ce748f8 100644 --- a/crates/tower-api/src/models/authentication_context.rs +++ b/crates/tower-api/src/models/authentication_context.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/batch_describe_runs_logs_params.rs b/crates/tower-api/src/models/batch_describe_runs_logs_params.rs new file mode 100644 index 00000000..545980ec --- /dev/null +++ b/crates/tower-api/src/models/batch_describe_runs_logs_params.rs @@ -0,0 +1,61 @@ +/* + * Tower API + * + * REST API to interact with Tower Services. + * + * The version of the OpenAPI document: v0.11.23 + * Contact: hello@tower.dev + * Generated by: https://openapi-generator.tech + */ +use crate::models; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::{serde_as, DefaultOnNull}; + +#[serde_as] +#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] +pub struct BatchDescribeRunsLogsParams { + /// Return only the first N log lines. Cannot be combined with tail. + #[serde( + rename = "head", + default, + with = "::serde_with::rust::double_option", + skip_serializing_if = "Option::is_none" + )] + pub head: Option>, + /// The name of the app to describe the run for. + #[serde_as(as = "DefaultOnNull")] + #[serde(rename = "name")] + pub name: String, + /// The number of the run to describe. + #[serde_as(as = "DefaultOnNull")] + #[serde(rename = "seq")] + pub seq: i64, + /// Fetch logs from this timestamp onwards (inclusive). + #[serde( + rename = "start_at", + default, + with = "::serde_with::rust::double_option", + skip_serializing_if = "Option::is_none" + )] + pub start_at: Option>, + /// Return only the last N log lines. Cannot be combined with head. + #[serde( + rename = "tail", + default, + with = "::serde_with::rust::double_option", + skip_serializing_if = "Option::is_none" + )] + pub tail: Option>, +} + +impl BatchDescribeRunsLogsParams { + pub fn new(name: String, seq: i64) -> BatchDescribeRunsLogsParams { + BatchDescribeRunsLogsParams { + head: None, + name, + seq, + start_at: None, + tail: None, + } + } +} diff --git a/crates/tower-api/src/models/batch_describe_runs_params.rs b/crates/tower-api/src/models/batch_describe_runs_params.rs new file mode 100644 index 00000000..71f93da3 --- /dev/null +++ b/crates/tower-api/src/models/batch_describe_runs_params.rs @@ -0,0 +1,31 @@ +/* + * Tower API + * + * REST API to interact with Tower Services. + * + * The version of the OpenAPI document: v0.11.23 + * Contact: hello@tower.dev + * Generated by: https://openapi-generator.tech + */ +use crate::models; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::{serde_as, DefaultOnNull}; + +#[serde_as] +#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] +pub struct BatchDescribeRunsParams { + /// The name of the app to describe the run for. + #[serde_as(as = "DefaultOnNull")] + #[serde(rename = "name")] + pub name: String, + /// The number of the run to describe. + #[serde_as(as = "DefaultOnNull")] + #[serde(rename = "seq")] + pub seq: i64, +} + +impl BatchDescribeRunsParams { + pub fn new(name: String, seq: i64) -> BatchDescribeRunsParams { + BatchDescribeRunsParams { name, seq } + } +} diff --git a/crates/tower-api/src/models/batch_describe_runs_response.rs b/crates/tower-api/src/models/batch_describe_runs_response.rs new file mode 100644 index 00000000..d23f948f --- /dev/null +++ b/crates/tower-api/src/models/batch_describe_runs_response.rs @@ -0,0 +1,29 @@ +/* + * Tower API + * + * REST API to interact with Tower Services. + * + * The version of the OpenAPI document: v0.11.23 + * Contact: hello@tower.dev + * Generated by: https://openapi-generator.tech + */ +use crate::models; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::{serde_as, DefaultOnNull}; + +#[serde_as] +#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] +pub struct BatchDescribeRunsResponse { + /// A URL to the JSON Schema for this object. + #[serde(rename = "$schema", skip_serializing_if = "Option::is_none")] + pub schema: Option, + #[serde_as(as = "DefaultOnNull")] + #[serde(rename = "runs")] + pub runs: Vec, +} + +impl BatchDescribeRunsResponse { + pub fn new(runs: Vec) -> BatchDescribeRunsResponse { + BatchDescribeRunsResponse { schema: None, runs } + } +} diff --git a/crates/tower-api/src/models/batch_error.rs b/crates/tower-api/src/models/batch_error.rs new file mode 100644 index 00000000..5304ea00 --- /dev/null +++ b/crates/tower-api/src/models/batch_error.rs @@ -0,0 +1,26 @@ +/* + * Tower API + * + * REST API to interact with Tower Services. + * + * The version of the OpenAPI document: v0.11.23 + * Contact: hello@tower.dev + * Generated by: https://openapi-generator.tech + */ +use crate::models; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::{serde_as, DefaultOnNull}; + +#[serde_as] +#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] +pub struct BatchError { + #[serde_as(as = "DefaultOnNull")] + #[serde(rename = "message")] + pub message: String, +} + +impl BatchError { + pub fn new(message: String) -> BatchError { + BatchError { message } + } +} diff --git a/crates/tower-api/src/models/batch_run_and_links.rs b/crates/tower-api/src/models/batch_run_and_links.rs new file mode 100644 index 00000000..df7b9002 --- /dev/null +++ b/crates/tower-api/src/models/batch_run_and_links.rs @@ -0,0 +1,30 @@ +/* + * Tower API + * + * REST API to interact with Tower Services. + * + * The version of the OpenAPI document: v0.11.23 + * Contact: hello@tower.dev + * Generated by: https://openapi-generator.tech + */ +use crate::models; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::{serde_as, DefaultOnNull}; + +#[serde_as] +#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] +pub struct BatchRunAndLinks { + #[serde(rename = "data", skip_serializing_if = "Option::is_none")] + pub data: Option, + #[serde(rename = "error", skip_serializing_if = "Option::is_none")] + pub error: Option, +} + +impl BatchRunAndLinks { + pub fn new() -> BatchRunAndLinks { + BatchRunAndLinks { + data: None, + error: None, + } + } +} diff --git a/crates/tower-api/src/models/batch_schedule_params.rs b/crates/tower-api/src/models/batch_schedule_params.rs index 81e52aa1..5ab9c6dd 100644 --- a/crates/tower-api/src/models/batch_schedule_params.rs +++ b/crates/tower-api/src/models/batch_schedule_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/batch_schedule_response.rs b/crates/tower-api/src/models/batch_schedule_response.rs index 09532e94..ce2b223b 100644 --- a/crates/tower-api/src/models/batch_schedule_response.rs +++ b/crates/tower-api/src/models/batch_schedule_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/batched_run_log_lines.rs b/crates/tower-api/src/models/batched_run_log_lines.rs new file mode 100644 index 00000000..608761d3 --- /dev/null +++ b/crates/tower-api/src/models/batched_run_log_lines.rs @@ -0,0 +1,35 @@ +/* + * Tower API + * + * REST API to interact with Tower Services. + * + * The version of the OpenAPI document: v0.11.23 + * Contact: hello@tower.dev + * Generated by: https://openapi-generator.tech + */ +use crate::models; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::{serde_as, DefaultOnNull}; + +#[serde_as] +#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] +pub struct BatchedRunLogLines { + #[serde( + rename = "error", + default, + with = "::serde_with::rust::double_option", + skip_serializing_if = "Option::is_none" + )] + pub error: Option>, + #[serde(rename = "log_lines", skip_serializing_if = "Option::is_none")] + pub log_lines: Option>, +} + +impl BatchedRunLogLines { + pub fn new() -> BatchedRunLogLines { + BatchedRunLogLines { + error: None, + log_lines: None, + } + } +} diff --git a/crates/tower-api/src/models/cancel_run_response.rs b/crates/tower-api/src/models/cancel_run_response.rs index d7c0e02a..97ab2861 100644 --- a/crates/tower-api/src/models/cancel_run_response.rs +++ b/crates/tower-api/src/models/cancel_run_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/catalog.rs b/crates/tower-api/src/models/catalog.rs index 352181b2..559544b4 100644 --- a/crates/tower-api/src/models/catalog.rs +++ b/crates/tower-api/src/models/catalog.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/catalog_credentials.rs b/crates/tower-api/src/models/catalog_credentials.rs index 284b8aee..47749acc 100644 --- a/crates/tower-api/src/models/catalog_credentials.rs +++ b/crates/tower-api/src/models/catalog_credentials.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/catalog_fact.rs b/crates/tower-api/src/models/catalog_fact.rs index 7689d4d6..3242bcc1 100644 --- a/crates/tower-api/src/models/catalog_fact.rs +++ b/crates/tower-api/src/models/catalog_fact.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/catalog_property.rs b/crates/tower-api/src/models/catalog_property.rs index 4b15bd7e..088dfe83 100644 --- a/crates/tower-api/src/models/catalog_property.rs +++ b/crates/tower-api/src/models/catalog_property.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/catalog_usage.rs b/crates/tower-api/src/models/catalog_usage.rs new file mode 100644 index 00000000..d8803fd8 --- /dev/null +++ b/crates/tower-api/src/models/catalog_usage.rs @@ -0,0 +1,33 @@ +/* + * Tower API + * + * REST API to interact with Tower Services. + * + * The version of the OpenAPI document: v0.11.23 + * Contact: hello@tower.dev + * Generated by: https://openapi-generator.tech + */ +use crate::models; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::{serde_as, DefaultOnNull}; + +#[serde_as] +#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] +pub struct CatalogUsage { + /// When this value was measured. Null when metering is unconfigured, disabled, or failed without a cached value. + #[serde(rename = "measured_at", deserialize_with = "Option::deserialize")] + pub measured_at: Option, + /// Physical bytes stored by this Tower-managed catalog, including Iceberg metadata and not-yet-compacted snapshot history. + #[serde_as(as = "DefaultOnNull")] + #[serde(rename = "total_bytes")] + pub total_bytes: i64, +} + +impl CatalogUsage { + pub fn new(measured_at: Option, total_bytes: i64) -> CatalogUsage { + CatalogUsage { + measured_at, + total_bytes, + } + } +} diff --git a/crates/tower-api/src/models/claim_device_login_ticket_params.rs b/crates/tower-api/src/models/claim_device_login_ticket_params.rs index 0c5bf058..7c973c94 100644 --- a/crates/tower-api/src/models/claim_device_login_ticket_params.rs +++ b/crates/tower-api/src/models/claim_device_login_ticket_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/claim_device_login_ticket_response.rs b/crates/tower-api/src/models/claim_device_login_ticket_response.rs index 327fa284..156c1b64 100644 --- a/crates/tower-api/src/models/claim_device_login_ticket_response.rs +++ b/crates/tower-api/src/models/claim_device_login_ticket_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/create_account_params.rs b/crates/tower-api/src/models/create_account_params.rs index 7aa1327d..caee5c30 100644 --- a/crates/tower-api/src/models/create_account_params.rs +++ b/crates/tower-api/src/models/create_account_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/create_account_params_flags_struct.rs b/crates/tower-api/src/models/create_account_params_flags_struct.rs index 66d4c825..19c84476 100644 --- a/crates/tower-api/src/models/create_account_params_flags_struct.rs +++ b/crates/tower-api/src/models/create_account_params_flags_struct.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/create_account_response.rs b/crates/tower-api/src/models/create_account_response.rs index bbed8fba..bcdff0cd 100644 --- a/crates/tower-api/src/models/create_account_response.rs +++ b/crates/tower-api/src/models/create_account_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/create_api_key_params.rs b/crates/tower-api/src/models/create_api_key_params.rs index 4f026c03..f2b0d119 100644 --- a/crates/tower-api/src/models/create_api_key_params.rs +++ b/crates/tower-api/src/models/create_api_key_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/create_api_key_response.rs b/crates/tower-api/src/models/create_api_key_response.rs index c90b282b..563ed398 100644 --- a/crates/tower-api/src/models/create_api_key_response.rs +++ b/crates/tower-api/src/models/create_api_key_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/create_app_params.rs b/crates/tower-api/src/models/create_app_params.rs index 77b91935..0c293e29 100644 --- a/crates/tower-api/src/models/create_app_params.rs +++ b/crates/tower-api/src/models/create_app_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/create_app_response.rs b/crates/tower-api/src/models/create_app_response.rs index e1cac520..a1b05b1c 100644 --- a/crates/tower-api/src/models/create_app_response.rs +++ b/crates/tower-api/src/models/create_app_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/create_catalog_params.rs b/crates/tower-api/src/models/create_catalog_params.rs index 33196ef6..e44132fb 100644 --- a/crates/tower-api/src/models/create_catalog_params.rs +++ b/crates/tower-api/src/models/create_catalog_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/create_catalog_response.rs b/crates/tower-api/src/models/create_catalog_response.rs index f4bb0866..8fd42f77 100644 --- a/crates/tower-api/src/models/create_catalog_response.rs +++ b/crates/tower-api/src/models/create_catalog_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/create_device_login_ticket_response.rs b/crates/tower-api/src/models/create_device_login_ticket_response.rs index 1da72fec..0f56beaf 100644 --- a/crates/tower-api/src/models/create_device_login_ticket_response.rs +++ b/crates/tower-api/src/models/create_device_login_ticket_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/create_environment_params.rs b/crates/tower-api/src/models/create_environment_params.rs index b1e70989..aa6f80cb 100644 --- a/crates/tower-api/src/models/create_environment_params.rs +++ b/crates/tower-api/src/models/create_environment_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/create_environment_response.rs b/crates/tower-api/src/models/create_environment_response.rs index 0aed4bf2..3b561bb2 100644 --- a/crates/tower-api/src/models/create_environment_response.rs +++ b/crates/tower-api/src/models/create_environment_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/create_guest_params.rs b/crates/tower-api/src/models/create_guest_params.rs index 7afc6838..d743f1dc 100644 --- a/crates/tower-api/src/models/create_guest_params.rs +++ b/crates/tower-api/src/models/create_guest_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/create_guest_response.rs b/crates/tower-api/src/models/create_guest_response.rs index d5df6972..75f8bc5f 100644 --- a/crates/tower-api/src/models/create_guest_response.rs +++ b/crates/tower-api/src/models/create_guest_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/create_sandbox_secrets_params.rs b/crates/tower-api/src/models/create_sandbox_secrets_params.rs index 3918e1de..5de7fb24 100644 --- a/crates/tower-api/src/models/create_sandbox_secrets_params.rs +++ b/crates/tower-api/src/models/create_sandbox_secrets_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/create_sandbox_secrets_response.rs b/crates/tower-api/src/models/create_sandbox_secrets_response.rs index 46ac8d02..a67766b1 100644 --- a/crates/tower-api/src/models/create_sandbox_secrets_response.rs +++ b/crates/tower-api/src/models/create_sandbox_secrets_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/create_schedule_params.rs b/crates/tower-api/src/models/create_schedule_params.rs index 791809b0..6f2a29e5 100644 --- a/crates/tower-api/src/models/create_schedule_params.rs +++ b/crates/tower-api/src/models/create_schedule_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/create_schedule_response.rs b/crates/tower-api/src/models/create_schedule_response.rs index a95ab056..fcb03e26 100644 --- a/crates/tower-api/src/models/create_schedule_response.rs +++ b/crates/tower-api/src/models/create_schedule_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/create_secret_params.rs b/crates/tower-api/src/models/create_secret_params.rs index 6e27c3ea..a1f7ace3 100644 --- a/crates/tower-api/src/models/create_secret_params.rs +++ b/crates/tower-api/src/models/create_secret_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/create_secret_response.rs b/crates/tower-api/src/models/create_secret_response.rs index 3a8f27ed..44a34d77 100644 --- a/crates/tower-api/src/models/create_secret_response.rs +++ b/crates/tower-api/src/models/create_secret_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/create_service_account_api_key_params.rs b/crates/tower-api/src/models/create_service_account_api_key_params.rs index a45d8088..90ff9095 100644 --- a/crates/tower-api/src/models/create_service_account_api_key_params.rs +++ b/crates/tower-api/src/models/create_service_account_api_key_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/create_service_account_api_key_response.rs b/crates/tower-api/src/models/create_service_account_api_key_response.rs index 47758632..17fbc69b 100644 --- a/crates/tower-api/src/models/create_service_account_api_key_response.rs +++ b/crates/tower-api/src/models/create_service_account_api_key_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/create_service_account_params.rs b/crates/tower-api/src/models/create_service_account_params.rs index 799df04a..2f7da9b0 100644 --- a/crates/tower-api/src/models/create_service_account_params.rs +++ b/crates/tower-api/src/models/create_service_account_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/create_service_account_response.rs b/crates/tower-api/src/models/create_service_account_response.rs index 2c84d6f4..31cfa3b5 100644 --- a/crates/tower-api/src/models/create_service_account_response.rs +++ b/crates/tower-api/src/models/create_service_account_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/create_session_params.rs b/crates/tower-api/src/models/create_session_params.rs index c6259b64..26227e7b 100644 --- a/crates/tower-api/src/models/create_session_params.rs +++ b/crates/tower-api/src/models/create_session_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/create_session_response.rs b/crates/tower-api/src/models/create_session_response.rs index a5239d45..9147e11f 100644 --- a/crates/tower-api/src/models/create_session_response.rs +++ b/crates/tower-api/src/models/create_session_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/create_team_params.rs b/crates/tower-api/src/models/create_team_params.rs index 58119629..2f693755 100644 --- a/crates/tower-api/src/models/create_team_params.rs +++ b/crates/tower-api/src/models/create_team_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/create_team_response.rs b/crates/tower-api/src/models/create_team_response.rs index 9bdd10c4..661cd144 100644 --- a/crates/tower-api/src/models/create_team_response.rs +++ b/crates/tower-api/src/models/create_team_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/create_webhook_params.rs b/crates/tower-api/src/models/create_webhook_params.rs index 490bfabb..817de3e6 100644 --- a/crates/tower-api/src/models/create_webhook_params.rs +++ b/crates/tower-api/src/models/create_webhook_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/create_webhook_response.rs b/crates/tower-api/src/models/create_webhook_response.rs index 045ef73e..393f5ff7 100644 --- a/crates/tower-api/src/models/create_webhook_response.rs +++ b/crates/tower-api/src/models/create_webhook_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/delete_api_key_params.rs b/crates/tower-api/src/models/delete_api_key_params.rs index 499f72a9..3ff81402 100644 --- a/crates/tower-api/src/models/delete_api_key_params.rs +++ b/crates/tower-api/src/models/delete_api_key_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/delete_api_key_response.rs b/crates/tower-api/src/models/delete_api_key_response.rs index 39ac6a3e..f5045829 100644 --- a/crates/tower-api/src/models/delete_api_key_response.rs +++ b/crates/tower-api/src/models/delete_api_key_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/delete_app_response.rs b/crates/tower-api/src/models/delete_app_response.rs index 2946b48a..9b821a94 100644 --- a/crates/tower-api/src/models/delete_app_response.rs +++ b/crates/tower-api/src/models/delete_app_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/delete_catalog_response.rs b/crates/tower-api/src/models/delete_catalog_response.rs index 1affd044..4d1015e8 100644 --- a/crates/tower-api/src/models/delete_catalog_response.rs +++ b/crates/tower-api/src/models/delete_catalog_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/delete_environment_response.rs b/crates/tower-api/src/models/delete_environment_response.rs index 24bbd310..232d96b6 100644 --- a/crates/tower-api/src/models/delete_environment_response.rs +++ b/crates/tower-api/src/models/delete_environment_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/delete_guest_output_body.rs b/crates/tower-api/src/models/delete_guest_output_body.rs index fc40e6b7..3a40a139 100644 --- a/crates/tower-api/src/models/delete_guest_output_body.rs +++ b/crates/tower-api/src/models/delete_guest_output_body.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/delete_schedule_params.rs b/crates/tower-api/src/models/delete_schedule_params.rs index cc5546ac..8db47d1a 100644 --- a/crates/tower-api/src/models/delete_schedule_params.rs +++ b/crates/tower-api/src/models/delete_schedule_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/delete_schedule_response.rs b/crates/tower-api/src/models/delete_schedule_response.rs index 0a830666..948fabfa 100644 --- a/crates/tower-api/src/models/delete_schedule_response.rs +++ b/crates/tower-api/src/models/delete_schedule_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/delete_secret_response.rs b/crates/tower-api/src/models/delete_secret_response.rs index 4ca7b11f..774461d7 100644 --- a/crates/tower-api/src/models/delete_secret_response.rs +++ b/crates/tower-api/src/models/delete_secret_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/delete_service_account_api_key_params.rs b/crates/tower-api/src/models/delete_service_account_api_key_params.rs index 16ebdbaa..449f4782 100644 --- a/crates/tower-api/src/models/delete_service_account_api_key_params.rs +++ b/crates/tower-api/src/models/delete_service_account_api_key_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/delete_session_params.rs b/crates/tower-api/src/models/delete_session_params.rs index de8f855f..3c02565d 100644 --- a/crates/tower-api/src/models/delete_session_params.rs +++ b/crates/tower-api/src/models/delete_session_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/delete_session_response.rs b/crates/tower-api/src/models/delete_session_response.rs index d7fc8575..8d7507d8 100644 --- a/crates/tower-api/src/models/delete_session_response.rs +++ b/crates/tower-api/src/models/delete_session_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/delete_team_invitation_params.rs b/crates/tower-api/src/models/delete_team_invitation_params.rs index 96a895b4..1e16e5d2 100644 --- a/crates/tower-api/src/models/delete_team_invitation_params.rs +++ b/crates/tower-api/src/models/delete_team_invitation_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/delete_team_invitation_response.rs b/crates/tower-api/src/models/delete_team_invitation_response.rs index ca73daa0..bf812c80 100644 --- a/crates/tower-api/src/models/delete_team_invitation_response.rs +++ b/crates/tower-api/src/models/delete_team_invitation_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/delete_team_params.rs b/crates/tower-api/src/models/delete_team_params.rs index e8175fa4..ece295ab 100644 --- a/crates/tower-api/src/models/delete_team_params.rs +++ b/crates/tower-api/src/models/delete_team_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/delete_team_response.rs b/crates/tower-api/src/models/delete_team_response.rs index fcfc256f..616821b7 100644 --- a/crates/tower-api/src/models/delete_team_response.rs +++ b/crates/tower-api/src/models/delete_team_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/delete_webhook_response.rs b/crates/tower-api/src/models/delete_webhook_response.rs index a0b3d6a6..0f7c9bc3 100644 --- a/crates/tower-api/src/models/delete_webhook_response.rs +++ b/crates/tower-api/src/models/delete_webhook_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/deploy_app_request.rs b/crates/tower-api/src/models/deploy_app_request.rs index 2f2de5cc..9d2f7849 100644 --- a/crates/tower-api/src/models/deploy_app_request.rs +++ b/crates/tower-api/src/models/deploy_app_request.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/deploy_app_response.rs b/crates/tower-api/src/models/deploy_app_response.rs index ec69374d..fb35cc74 100644 --- a/crates/tower-api/src/models/deploy_app_response.rs +++ b/crates/tower-api/src/models/deploy_app_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/describe_account_body.rs b/crates/tower-api/src/models/describe_account_body.rs index 3cdef8a6..2e15b8e9 100644 --- a/crates/tower-api/src/models/describe_account_body.rs +++ b/crates/tower-api/src/models/describe_account_body.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/describe_app_response.rs b/crates/tower-api/src/models/describe_app_response.rs index 38666c9e..3ce3f474 100644 --- a/crates/tower-api/src/models/describe_app_response.rs +++ b/crates/tower-api/src/models/describe_app_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/describe_app_version_response.rs b/crates/tower-api/src/models/describe_app_version_response.rs index 3258f6fd..a5649266 100644 --- a/crates/tower-api/src/models/describe_app_version_response.rs +++ b/crates/tower-api/src/models/describe_app_version_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/describe_authentication_context_body.rs b/crates/tower-api/src/models/describe_authentication_context_body.rs index c55cdd00..854598ee 100644 --- a/crates/tower-api/src/models/describe_authentication_context_body.rs +++ b/crates/tower-api/src/models/describe_authentication_context_body.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/describe_catalog_fact_response.rs b/crates/tower-api/src/models/describe_catalog_fact_response.rs index 04cde236..a6812fc2 100644 --- a/crates/tower-api/src/models/describe_catalog_fact_response.rs +++ b/crates/tower-api/src/models/describe_catalog_fact_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/describe_catalog_response.rs b/crates/tower-api/src/models/describe_catalog_response.rs index bf1f98cf..6250e332 100644 --- a/crates/tower-api/src/models/describe_catalog_response.rs +++ b/crates/tower-api/src/models/describe_catalog_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/describe_catalog_usage_response.rs b/crates/tower-api/src/models/describe_catalog_usage_response.rs new file mode 100644 index 00000000..160de7ff --- /dev/null +++ b/crates/tower-api/src/models/describe_catalog_usage_response.rs @@ -0,0 +1,32 @@ +/* + * Tower API + * + * REST API to interact with Tower Services. + * + * The version of the OpenAPI document: v0.11.23 + * Contact: hello@tower.dev + * Generated by: https://openapi-generator.tech + */ +use crate::models; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::{serde_as, DefaultOnNull}; + +#[serde_as] +#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] +pub struct DescribeCatalogUsageResponse { + /// A URL to the JSON Schema for this object. + #[serde(rename = "$schema", skip_serializing_if = "Option::is_none")] + pub schema: Option, + #[serde_as(as = "DefaultOnNull")] + #[serde(rename = "usage")] + pub usage: models::CatalogUsage, +} + +impl DescribeCatalogUsageResponse { + pub fn new(usage: models::CatalogUsage) -> DescribeCatalogUsageResponse { + DescribeCatalogUsageResponse { + schema: None, + usage, + } + } +} diff --git a/crates/tower-api/src/models/describe_device_login_session_response.rs b/crates/tower-api/src/models/describe_device_login_session_response.rs index 5a6bbf0b..e029aebc 100644 --- a/crates/tower-api/src/models/describe_device_login_session_response.rs +++ b/crates/tower-api/src/models/describe_device_login_session_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/describe_email_preferences_body.rs b/crates/tower-api/src/models/describe_email_preferences_body.rs index befb4ee8..404d63bc 100644 --- a/crates/tower-api/src/models/describe_email_preferences_body.rs +++ b/crates/tower-api/src/models/describe_email_preferences_body.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/describe_environment_response.rs b/crates/tower-api/src/models/describe_environment_response.rs index 1657cafb..d98a727b 100644 --- a/crates/tower-api/src/models/describe_environment_response.rs +++ b/crates/tower-api/src/models/describe_environment_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/describe_plan_response.rs b/crates/tower-api/src/models/describe_plan_response.rs index 5bf3b864..27547d58 100644 --- a/crates/tower-api/src/models/describe_plan_response.rs +++ b/crates/tower-api/src/models/describe_plan_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/describe_run_graph_response.rs b/crates/tower-api/src/models/describe_run_graph_response.rs index 1d21caf4..ec65ddb5 100644 --- a/crates/tower-api/src/models/describe_run_graph_response.rs +++ b/crates/tower-api/src/models/describe_run_graph_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/describe_run_links.rs b/crates/tower-api/src/models/describe_run_links.rs index 2cf98a00..e81ee4a0 100644 --- a/crates/tower-api/src/models/describe_run_links.rs +++ b/crates/tower-api/src/models/describe_run_links.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/describe_run_logs_response.rs b/crates/tower-api/src/models/describe_run_logs_response.rs index da5664b9..11ff2331 100644 --- a/crates/tower-api/src/models/describe_run_logs_response.rs +++ b/crates/tower-api/src/models/describe_run_logs_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/describe_run_response.rs b/crates/tower-api/src/models/describe_run_response.rs index 23d86c2d..ce9e4b0c 100644 --- a/crates/tower-api/src/models/describe_run_response.rs +++ b/crates/tower-api/src/models/describe_run_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/describe_secrets_key_response.rs b/crates/tower-api/src/models/describe_secrets_key_response.rs index 9090dba3..31002653 100644 --- a/crates/tower-api/src/models/describe_secrets_key_response.rs +++ b/crates/tower-api/src/models/describe_secrets_key_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/describe_service_account_response.rs b/crates/tower-api/src/models/describe_service_account_response.rs index 668a4127..921965e5 100644 --- a/crates/tower-api/src/models/describe_service_account_response.rs +++ b/crates/tower-api/src/models/describe_service_account_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/describe_session_response.rs b/crates/tower-api/src/models/describe_session_response.rs index 33bc35b7..3d6bd2dc 100644 --- a/crates/tower-api/src/models/describe_session_response.rs +++ b/crates/tower-api/src/models/describe_session_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/describe_team_response.rs b/crates/tower-api/src/models/describe_team_response.rs index b4a5d58c..bc7e0259 100644 --- a/crates/tower-api/src/models/describe_team_response.rs +++ b/crates/tower-api/src/models/describe_team_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/describe_webhook_response.rs b/crates/tower-api/src/models/describe_webhook_response.rs index 99277e52..e86c99d6 100644 --- a/crates/tower-api/src/models/describe_webhook_response.rs +++ b/crates/tower-api/src/models/describe_webhook_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/describe_whoami_response.rs b/crates/tower-api/src/models/describe_whoami_response.rs index 9dae2606..f34be2f3 100644 --- a/crates/tower-api/src/models/describe_whoami_response.rs +++ b/crates/tower-api/src/models/describe_whoami_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/email_subscriptions.rs b/crates/tower-api/src/models/email_subscriptions.rs index de02f82c..a00c249c 100644 --- a/crates/tower-api/src/models/email_subscriptions.rs +++ b/crates/tower-api/src/models/email_subscriptions.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/encrypted_catalog_property.rs b/crates/tower-api/src/models/encrypted_catalog_property.rs index 3c953566..55db7419 100644 --- a/crates/tower-api/src/models/encrypted_catalog_property.rs +++ b/crates/tower-api/src/models/encrypted_catalog_property.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/environment.rs b/crates/tower-api/src/models/environment.rs index a84b27ea..079304db 100644 --- a/crates/tower-api/src/models/environment.rs +++ b/crates/tower-api/src/models/environment.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/error_detail.rs b/crates/tower-api/src/models/error_detail.rs index d67f1289..cae52d7c 100644 --- a/crates/tower-api/src/models/error_detail.rs +++ b/crates/tower-api/src/models/error_detail.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/error_model.rs b/crates/tower-api/src/models/error_model.rs index 32c65920..465ef5d4 100644 --- a/crates/tower-api/src/models/error_model.rs +++ b/crates/tower-api/src/models/error_model.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/event_alert.rs b/crates/tower-api/src/models/event_alert.rs index 423dde06..0792ed71 100644 --- a/crates/tower-api/src/models/event_alert.rs +++ b/crates/tower-api/src/models/event_alert.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/event_error.rs b/crates/tower-api/src/models/event_error.rs index ad65d975..ee6f4255 100644 --- a/crates/tower-api/src/models/event_error.rs +++ b/crates/tower-api/src/models/event_error.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/event_log.rs b/crates/tower-api/src/models/event_log.rs index 7a0ca024..b8e5232d 100644 --- a/crates/tower-api/src/models/event_log.rs +++ b/crates/tower-api/src/models/event_log.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/event_shouldertap.rs b/crates/tower-api/src/models/event_shouldertap.rs index 170626c5..49f01387 100644 --- a/crates/tower-api/src/models/event_shouldertap.rs +++ b/crates/tower-api/src/models/event_shouldertap.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/event_warning.rs b/crates/tower-api/src/models/event_warning.rs index fc49ee89..d2f463aa 100644 --- a/crates/tower-api/src/models/event_warning.rs +++ b/crates/tower-api/src/models/event_warning.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/export_catalogs_params.rs b/crates/tower-api/src/models/export_catalogs_params.rs index 413ccc54..73ae1a7f 100644 --- a/crates/tower-api/src/models/export_catalogs_params.rs +++ b/crates/tower-api/src/models/export_catalogs_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/export_catalogs_response.rs b/crates/tower-api/src/models/export_catalogs_response.rs index 16f13f08..712cebff 100644 --- a/crates/tower-api/src/models/export_catalogs_response.rs +++ b/crates/tower-api/src/models/export_catalogs_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/export_secrets_params.rs b/crates/tower-api/src/models/export_secrets_params.rs index 3b61f881..4291efed 100644 --- a/crates/tower-api/src/models/export_secrets_params.rs +++ b/crates/tower-api/src/models/export_secrets_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/export_secrets_response.rs b/crates/tower-api/src/models/export_secrets_response.rs index 95a898a1..9c928769 100644 --- a/crates/tower-api/src/models/export_secrets_response.rs +++ b/crates/tower-api/src/models/export_secrets_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/exported_catalog.rs b/crates/tower-api/src/models/exported_catalog.rs index ec48600c..a6aec561 100644 --- a/crates/tower-api/src/models/exported_catalog.rs +++ b/crates/tower-api/src/models/exported_catalog.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/exported_catalog_property.rs b/crates/tower-api/src/models/exported_catalog_property.rs index ee03db06..bea60169 100644 --- a/crates/tower-api/src/models/exported_catalog_property.rs +++ b/crates/tower-api/src/models/exported_catalog_property.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/exported_secret.rs b/crates/tower-api/src/models/exported_secret.rs index d81128da..c8d2b865 100644 --- a/crates/tower-api/src/models/exported_secret.rs +++ b/crates/tower-api/src/models/exported_secret.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/feature.rs b/crates/tower-api/src/models/feature.rs index a4b8ac57..b3e88403 100644 --- a/crates/tower-api/src/models/feature.rs +++ b/crates/tower-api/src/models/feature.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/featurebase_identity.rs b/crates/tower-api/src/models/featurebase_identity.rs index e5fbe8ad..9575db43 100644 --- a/crates/tower-api/src/models/featurebase_identity.rs +++ b/crates/tower-api/src/models/featurebase_identity.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/generate_app_statistics_response.rs b/crates/tower-api/src/models/generate_app_statistics_response.rs index 5d8b8db5..618b8810 100644 --- a/crates/tower-api/src/models/generate_app_statistics_response.rs +++ b/crates/tower-api/src/models/generate_app_statistics_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/generate_organization_usage_time_series_response.rs b/crates/tower-api/src/models/generate_organization_usage_time_series_response.rs index d6c64432..ba79968f 100644 --- a/crates/tower-api/src/models/generate_organization_usage_time_series_response.rs +++ b/crates/tower-api/src/models/generate_organization_usage_time_series_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/generate_run_statistics_response.rs b/crates/tower-api/src/models/generate_run_statistics_response.rs index 1d1c46de..4c7f05f6 100644 --- a/crates/tower-api/src/models/generate_run_statistics_response.rs +++ b/crates/tower-api/src/models/generate_run_statistics_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/generate_runner_credentials_response.rs b/crates/tower-api/src/models/generate_runner_credentials_response.rs index a39529f9..b8e82860 100644 --- a/crates/tower-api/src/models/generate_runner_credentials_response.rs +++ b/crates/tower-api/src/models/generate_runner_credentials_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/get_feature_flag_response_body.rs b/crates/tower-api/src/models/get_feature_flag_response_body.rs index 6e19cb36..8ab86072 100644 --- a/crates/tower-api/src/models/get_feature_flag_response_body.rs +++ b/crates/tower-api/src/models/get_feature_flag_response_body.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/guest.rs b/crates/tower-api/src/models/guest.rs index 8ca0a8a7..e9985e23 100644 --- a/crates/tower-api/src/models/guest.rs +++ b/crates/tower-api/src/models/guest.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/invite_team_member_params.rs b/crates/tower-api/src/models/invite_team_member_params.rs index db6c84f9..a927f5da 100644 --- a/crates/tower-api/src/models/invite_team_member_params.rs +++ b/crates/tower-api/src/models/invite_team_member_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/invite_team_member_response.rs b/crates/tower-api/src/models/invite_team_member_response.rs index 4d0d6d17..c331a215 100644 --- a/crates/tower-api/src/models/invite_team_member_response.rs +++ b/crates/tower-api/src/models/invite_team_member_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/leave_team_response.rs b/crates/tower-api/src/models/leave_team_response.rs index 8b8856d4..5c031bfb 100644 --- a/crates/tower-api/src/models/leave_team_response.rs +++ b/crates/tower-api/src/models/leave_team_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/list_alerts_response.rs b/crates/tower-api/src/models/list_alerts_response.rs index 6af2496d..1b9d036b 100644 --- a/crates/tower-api/src/models/list_alerts_response.rs +++ b/crates/tower-api/src/models/list_alerts_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/list_api_keys_response.rs b/crates/tower-api/src/models/list_api_keys_response.rs index af4f1ba6..a21d316e 100644 --- a/crates/tower-api/src/models/list_api_keys_response.rs +++ b/crates/tower-api/src/models/list_api_keys_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/list_app_environments_response.rs b/crates/tower-api/src/models/list_app_environments_response.rs index 9101caf8..01df6241 100644 --- a/crates/tower-api/src/models/list_app_environments_response.rs +++ b/crates/tower-api/src/models/list_app_environments_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/list_app_versions_response.rs b/crates/tower-api/src/models/list_app_versions_response.rs index 0ce2f3d4..1aedcc44 100644 --- a/crates/tower-api/src/models/list_app_versions_response.rs +++ b/crates/tower-api/src/models/list_app_versions_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/list_apps_response.rs b/crates/tower-api/src/models/list_apps_response.rs index 622c25b4..6a7d5da3 100644 --- a/crates/tower-api/src/models/list_apps_response.rs +++ b/crates/tower-api/src/models/list_apps_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/list_catalog_facts_response.rs b/crates/tower-api/src/models/list_catalog_facts_response.rs index 41c21216..f22f34f3 100644 --- a/crates/tower-api/src/models/list_catalog_facts_response.rs +++ b/crates/tower-api/src/models/list_catalog_facts_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/list_catalogs_response.rs b/crates/tower-api/src/models/list_catalogs_response.rs index c21d39c4..d82a50ba 100644 --- a/crates/tower-api/src/models/list_catalogs_response.rs +++ b/crates/tower-api/src/models/list_catalogs_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/list_environments_response.rs b/crates/tower-api/src/models/list_environments_response.rs index e9f268fc..5bde2e01 100644 --- a/crates/tower-api/src/models/list_environments_response.rs +++ b/crates/tower-api/src/models/list_environments_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/list_guests_response.rs b/crates/tower-api/src/models/list_guests_response.rs index a0870acc..acdf7c3c 100644 --- a/crates/tower-api/src/models/list_guests_response.rs +++ b/crates/tower-api/src/models/list_guests_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/list_my_team_invitations_response.rs b/crates/tower-api/src/models/list_my_team_invitations_response.rs index e4a43c25..7069f04a 100644 --- a/crates/tower-api/src/models/list_my_team_invitations_response.rs +++ b/crates/tower-api/src/models/list_my_team_invitations_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/list_runners_response.rs b/crates/tower-api/src/models/list_runners_response.rs index 7aac8cf1..79880df7 100644 --- a/crates/tower-api/src/models/list_runners_response.rs +++ b/crates/tower-api/src/models/list_runners_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/list_runs_response.rs b/crates/tower-api/src/models/list_runs_response.rs index f86ede42..2646b617 100644 --- a/crates/tower-api/src/models/list_runs_response.rs +++ b/crates/tower-api/src/models/list_runs_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/list_schedules_response.rs b/crates/tower-api/src/models/list_schedules_response.rs index ded64720..0c8dc2c0 100644 --- a/crates/tower-api/src/models/list_schedules_response.rs +++ b/crates/tower-api/src/models/list_schedules_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/list_secret_environments_response.rs b/crates/tower-api/src/models/list_secret_environments_response.rs index a2337e8d..0921bbc5 100644 --- a/crates/tower-api/src/models/list_secret_environments_response.rs +++ b/crates/tower-api/src/models/list_secret_environments_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/list_secrets_response.rs b/crates/tower-api/src/models/list_secrets_response.rs index a3eb54e3..89e46f15 100644 --- a/crates/tower-api/src/models/list_secrets_response.rs +++ b/crates/tower-api/src/models/list_secrets_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/list_service_account_api_keys_response.rs b/crates/tower-api/src/models/list_service_account_api_keys_response.rs index 2df25684..33ae0b53 100644 --- a/crates/tower-api/src/models/list_service_account_api_keys_response.rs +++ b/crates/tower-api/src/models/list_service_account_api_keys_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/list_service_accounts_response.rs b/crates/tower-api/src/models/list_service_accounts_response.rs index 87fa954d..2fc9def4 100644 --- a/crates/tower-api/src/models/list_service_accounts_response.rs +++ b/crates/tower-api/src/models/list_service_accounts_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/list_team_invitations_response.rs b/crates/tower-api/src/models/list_team_invitations_response.rs index cae3cd39..0fc0beb7 100644 --- a/crates/tower-api/src/models/list_team_invitations_response.rs +++ b/crates/tower-api/src/models/list_team_invitations_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/list_team_members_response.rs b/crates/tower-api/src/models/list_team_members_response.rs index 231c2daa..3530a7b0 100644 --- a/crates/tower-api/src/models/list_team_members_response.rs +++ b/crates/tower-api/src/models/list_team_members_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/list_teams_response.rs b/crates/tower-api/src/models/list_teams_response.rs index f4cd0cd6..29aae505 100644 --- a/crates/tower-api/src/models/list_teams_response.rs +++ b/crates/tower-api/src/models/list_teams_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/list_webhooks_response.rs b/crates/tower-api/src/models/list_webhooks_response.rs index 23bb637e..43dbcbe9 100644 --- a/crates/tower-api/src/models/list_webhooks_response.rs +++ b/crates/tower-api/src/models/list_webhooks_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/mod.rs b/crates/tower-api/src/models/mod.rs index bdcad19e..f08dced9 100644 --- a/crates/tower-api/src/models/mod.rs +++ b/crates/tower-api/src/models/mod.rs @@ -22,10 +22,22 @@ pub mod app_version; pub use self::app_version::AppVersion; pub mod authentication_context; pub use self::authentication_context::AuthenticationContext; +pub mod batch_describe_runs_logs_params; +pub use self::batch_describe_runs_logs_params::BatchDescribeRunsLogsParams; +pub mod batch_describe_runs_params; +pub use self::batch_describe_runs_params::BatchDescribeRunsParams; +pub mod batch_describe_runs_response; +pub use self::batch_describe_runs_response::BatchDescribeRunsResponse; +pub mod batch_error; +pub use self::batch_error::BatchError; +pub mod batch_run_and_links; +pub use self::batch_run_and_links::BatchRunAndLinks; pub mod batch_schedule_params; pub use self::batch_schedule_params::BatchScheduleParams; pub mod batch_schedule_response; pub use self::batch_schedule_response::BatchScheduleResponse; +pub mod batched_run_log_lines; +pub use self::batched_run_log_lines::BatchedRunLogLines; pub mod cancel_run_response; pub use self::cancel_run_response::CancelRunResponse; pub mod catalog; @@ -36,6 +48,8 @@ pub mod catalog_fact; pub use self::catalog_fact::CatalogFact; pub mod catalog_property; pub use self::catalog_property::CatalogProperty; +pub mod catalog_usage; +pub use self::catalog_usage::CatalogUsage; pub mod claim_device_login_ticket_params; pub use self::claim_device_login_ticket_params::ClaimDeviceLoginTicketParams; pub mod claim_device_login_ticket_response; @@ -150,6 +164,8 @@ pub mod describe_catalog_fact_response; pub use self::describe_catalog_fact_response::DescribeCatalogFactResponse; pub mod describe_catalog_response; pub use self::describe_catalog_response::DescribeCatalogResponse; +pub mod describe_catalog_usage_response; +pub use self::describe_catalog_usage_response::DescribeCatalogUsageResponse; pub mod describe_device_login_session_response; pub use self::describe_device_login_session_response::DescribeDeviceLoginSessionResponse; pub mod describe_email_preferences_body; @@ -278,6 +294,8 @@ pub mod list_webhooks_response; pub use self::list_webhooks_response::ListWebhooksResponse; pub mod organization; pub use self::organization::Organization; +pub mod organization_storage_usage; +pub use self::organization_storage_usage::OrganizationStorageUsage; pub mod organization_usage; pub use self::organization_usage::OrganizationUsage; pub mod pagination; @@ -304,6 +322,8 @@ pub mod resend_team_invitation_response; pub use self::resend_team_invitation_response::ResendTeamInvitationResponse; pub mod run; pub use self::run::Run; +pub mod run_and_links; +pub use self::run_and_links::RunAndLinks; pub mod run_app_initiator_data; pub use self::run_app_initiator_data::RunAppInitiatorData; pub mod run_app_params; @@ -324,6 +344,8 @@ pub mod run_initiator; pub use self::run_initiator::RunInitiator; pub mod run_initiator_details; pub use self::run_initiator_details::RunInitiatorDetails; +pub mod run_links; +pub use self::run_links::RunLinks; pub mod run_log_line; pub use self::run_log_line::RunLogLine; pub mod run_parameter; diff --git a/crates/tower-api/src/models/organization.rs b/crates/tower-api/src/models/organization.rs index 61247d6b..62323f2e 100644 --- a/crates/tower-api/src/models/organization.rs +++ b/crates/tower-api/src/models/organization.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/organization_storage_usage.rs b/crates/tower-api/src/models/organization_storage_usage.rs new file mode 100644 index 00000000..1f68851a --- /dev/null +++ b/crates/tower-api/src/models/organization_storage_usage.rs @@ -0,0 +1,33 @@ +/* + * Tower API + * + * REST API to interact with Tower Services. + * + * The version of the OpenAPI document: v0.11.23 + * Contact: hello@tower.dev + * Generated by: https://openapi-generator.tech + */ +use crate::models; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::{serde_as, DefaultOnNull}; + +#[serde_as] +#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] +pub struct OrganizationStorageUsage { + /// When the total was measured. Null when no measurement is available. + #[serde(rename = "measured_at", deserialize_with = "Option::deserialize")] + pub measured_at: Option, + /// Physical bytes across the organization's Tower-managed catalogs, including Iceberg metadata and not-yet-compacted snapshot history. + #[serde_as(as = "DefaultOnNull")] + #[serde(rename = "total_bytes")] + pub total_bytes: i64, +} + +impl OrganizationStorageUsage { + pub fn new(measured_at: Option, total_bytes: i64) -> OrganizationStorageUsage { + OrganizationStorageUsage { + measured_at, + total_bytes, + } + } +} diff --git a/crates/tower-api/src/models/organization_usage.rs b/crates/tower-api/src/models/organization_usage.rs index 18026159..84f2405e 100644 --- a/crates/tower-api/src/models/organization_usage.rs +++ b/crates/tower-api/src/models/organization_usage.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ @@ -45,6 +45,10 @@ pub struct OrganizationUsage { #[serde_as(as = "DefaultOnNull")] #[serde(rename = "self_hosted_runners")] pub self_hosted_runners: models::UsageLimit, + /// Current pay-as-you-go Tower-managed storage usage. This is not a plan limit. + #[serde_as(as = "DefaultOnNull")] + #[serde(rename = "storage")] + pub storage: models::OrganizationStorageUsage, } impl OrganizationUsage { @@ -56,6 +60,7 @@ impl OrganizationUsage { members: models::UsageLimit, organization_name: String, self_hosted_runners: models::UsageLimit, + storage: models::OrganizationStorageUsage, ) -> OrganizationUsage { OrganizationUsage { schema: None, @@ -66,6 +71,7 @@ impl OrganizationUsage { members, organization_name, self_hosted_runners, + storage, } } } diff --git a/crates/tower-api/src/models/pagination.rs b/crates/tower-api/src/models/pagination.rs index 9cd2012f..1af7426c 100644 --- a/crates/tower-api/src/models/pagination.rs +++ b/crates/tower-api/src/models/pagination.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/parameter.rs b/crates/tower-api/src/models/parameter.rs index 0226331c..c2adf501 100644 --- a/crates/tower-api/src/models/parameter.rs +++ b/crates/tower-api/src/models/parameter.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/plan.rs b/crates/tower-api/src/models/plan.rs index 9daedc53..55680788 100644 --- a/crates/tower-api/src/models/plan.rs +++ b/crates/tower-api/src/models/plan.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/refresh_session_params.rs b/crates/tower-api/src/models/refresh_session_params.rs index 21101fff..6dcf374f 100644 --- a/crates/tower-api/src/models/refresh_session_params.rs +++ b/crates/tower-api/src/models/refresh_session_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/refresh_session_response.rs b/crates/tower-api/src/models/refresh_session_response.rs index cc00dc96..9f7da360 100644 --- a/crates/tower-api/src/models/refresh_session_response.rs +++ b/crates/tower-api/src/models/refresh_session_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/regenerate_guest_login_url_params.rs b/crates/tower-api/src/models/regenerate_guest_login_url_params.rs index a512b9c8..3cc8ed30 100644 --- a/crates/tower-api/src/models/regenerate_guest_login_url_params.rs +++ b/crates/tower-api/src/models/regenerate_guest_login_url_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/regenerate_guest_login_url_response.rs b/crates/tower-api/src/models/regenerate_guest_login_url_response.rs index f0a97ee9..86793e7c 100644 --- a/crates/tower-api/src/models/regenerate_guest_login_url_response.rs +++ b/crates/tower-api/src/models/regenerate_guest_login_url_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/remove_team_member_params.rs b/crates/tower-api/src/models/remove_team_member_params.rs index 96d83918..a835fd9a 100644 --- a/crates/tower-api/src/models/remove_team_member_params.rs +++ b/crates/tower-api/src/models/remove_team_member_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/remove_team_member_response.rs b/crates/tower-api/src/models/remove_team_member_response.rs index a11492fe..5dcd86b1 100644 --- a/crates/tower-api/src/models/remove_team_member_response.rs +++ b/crates/tower-api/src/models/remove_team_member_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/resend_team_invitation_params.rs b/crates/tower-api/src/models/resend_team_invitation_params.rs index 4691e655..4004b437 100644 --- a/crates/tower-api/src/models/resend_team_invitation_params.rs +++ b/crates/tower-api/src/models/resend_team_invitation_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/resend_team_invitation_response.rs b/crates/tower-api/src/models/resend_team_invitation_response.rs index 17313fc5..e51ea3de 100644 --- a/crates/tower-api/src/models/resend_team_invitation_response.rs +++ b/crates/tower-api/src/models/resend_team_invitation_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/run.rs b/crates/tower-api/src/models/run.rs index 2e38e158..3059ad3e 100644 --- a/crates/tower-api/src/models/run.rs +++ b/crates/tower-api/src/models/run.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/run_and_links.rs b/crates/tower-api/src/models/run_and_links.rs new file mode 100644 index 00000000..26ab9ed8 --- /dev/null +++ b/crates/tower-api/src/models/run_and_links.rs @@ -0,0 +1,29 @@ +/* + * Tower API + * + * REST API to interact with Tower Services. + * + * The version of the OpenAPI document: v0.11.23 + * Contact: hello@tower.dev + * Generated by: https://openapi-generator.tech + */ +use crate::models; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::{serde_as, DefaultOnNull}; + +#[serde_as] +#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] +pub struct RunAndLinks { + #[serde_as(as = "DefaultOnNull")] + #[serde(rename = "$links")] + pub dollar_links: models::RunLinks, + #[serde_as(as = "DefaultOnNull")] + #[serde(rename = "run")] + pub run: models::Run, +} + +impl RunAndLinks { + pub fn new(dollar_links: models::RunLinks, run: models::Run) -> RunAndLinks { + RunAndLinks { dollar_links, run } + } +} diff --git a/crates/tower-api/src/models/run_app_initiator_data.rs b/crates/tower-api/src/models/run_app_initiator_data.rs index 37ee9516..6948d4f1 100644 --- a/crates/tower-api/src/models/run_app_initiator_data.rs +++ b/crates/tower-api/src/models/run_app_initiator_data.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/run_app_params.rs b/crates/tower-api/src/models/run_app_params.rs index 9917741f..2b5a0449 100644 --- a/crates/tower-api/src/models/run_app_params.rs +++ b/crates/tower-api/src/models/run_app_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/run_app_response.rs b/crates/tower-api/src/models/run_app_response.rs index 4deee56f..c2864c63 100644 --- a/crates/tower-api/src/models/run_app_response.rs +++ b/crates/tower-api/src/models/run_app_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/run_attempt.rs b/crates/tower-api/src/models/run_attempt.rs index b1e88712..c97a0c63 100644 --- a/crates/tower-api/src/models/run_attempt.rs +++ b/crates/tower-api/src/models/run_attempt.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/run_creator.rs b/crates/tower-api/src/models/run_creator.rs index 6139b8cd..37568803 100644 --- a/crates/tower-api/src/models/run_creator.rs +++ b/crates/tower-api/src/models/run_creator.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/run_failure_alert.rs b/crates/tower-api/src/models/run_failure_alert.rs index 340b228e..e5963868 100644 --- a/crates/tower-api/src/models/run_failure_alert.rs +++ b/crates/tower-api/src/models/run_failure_alert.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/run_graph_node.rs b/crates/tower-api/src/models/run_graph_node.rs index 2ccaafc9..9e0a1dcd 100644 --- a/crates/tower-api/src/models/run_graph_node.rs +++ b/crates/tower-api/src/models/run_graph_node.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/run_graph_run_id.rs b/crates/tower-api/src/models/run_graph_run_id.rs index 60a9dc3a..c57c8d27 100644 --- a/crates/tower-api/src/models/run_graph_run_id.rs +++ b/crates/tower-api/src/models/run_graph_run_id.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/run_initiator.rs b/crates/tower-api/src/models/run_initiator.rs index c859adec..376de240 100644 --- a/crates/tower-api/src/models/run_initiator.rs +++ b/crates/tower-api/src/models/run_initiator.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/run_initiator_details.rs b/crates/tower-api/src/models/run_initiator_details.rs index 5787e17f..b64deec8 100644 --- a/crates/tower-api/src/models/run_initiator_details.rs +++ b/crates/tower-api/src/models/run_initiator_details.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/run_links.rs b/crates/tower-api/src/models/run_links.rs new file mode 100644 index 00000000..ae548412 --- /dev/null +++ b/crates/tower-api/src/models/run_links.rs @@ -0,0 +1,32 @@ +/* + * Tower API + * + * REST API to interact with Tower Services. + * + * The version of the OpenAPI document: v0.11.23 + * Contact: hello@tower.dev + * Generated by: https://openapi-generator.tech + */ +use crate::models; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::{serde_as, DefaultOnNull}; + +#[serde_as] +#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] +pub struct RunLinks { + /// The number of the next run, if any. + #[serde(rename = "next_number", deserialize_with = "Option::deserialize")] + pub next_number: Option, + /// The number of the previous run, if any. + #[serde(rename = "prev_number", deserialize_with = "Option::deserialize")] + pub prev_number: Option, +} + +impl RunLinks { + pub fn new(next_number: Option, prev_number: Option) -> RunLinks { + RunLinks { + next_number, + prev_number, + } + } +} diff --git a/crates/tower-api/src/models/run_log_line.rs b/crates/tower-api/src/models/run_log_line.rs index 5f85622f..e3f16332 100644 --- a/crates/tower-api/src/models/run_log_line.rs +++ b/crates/tower-api/src/models/run_log_line.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/run_parameter.rs b/crates/tower-api/src/models/run_parameter.rs index 92c5e901..cbd0af78 100644 --- a/crates/tower-api/src/models/run_parameter.rs +++ b/crates/tower-api/src/models/run_parameter.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/run_results.rs b/crates/tower-api/src/models/run_results.rs index bb2d2185..e5a645a6 100644 --- a/crates/tower-api/src/models/run_results.rs +++ b/crates/tower-api/src/models/run_results.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/run_retry_policy.rs b/crates/tower-api/src/models/run_retry_policy.rs index fb9beaa9..4ca93579 100644 --- a/crates/tower-api/src/models/run_retry_policy.rs +++ b/crates/tower-api/src/models/run_retry_policy.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/run_run_initiator_details.rs b/crates/tower-api/src/models/run_run_initiator_details.rs index 8cc3e977..f454292a 100644 --- a/crates/tower-api/src/models/run_run_initiator_details.rs +++ b/crates/tower-api/src/models/run_run_initiator_details.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/run_statistics.rs b/crates/tower-api/src/models/run_statistics.rs index 9e3daa52..9d67d684 100644 --- a/crates/tower-api/src/models/run_statistics.rs +++ b/crates/tower-api/src/models/run_statistics.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/run_timeseries_point.rs b/crates/tower-api/src/models/run_timeseries_point.rs index 38cb0a6f..fc25f41d 100644 --- a/crates/tower-api/src/models/run_timeseries_point.rs +++ b/crates/tower-api/src/models/run_timeseries_point.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/runner.rs b/crates/tower-api/src/models/runner.rs index d7d50001..5135cfd0 100644 --- a/crates/tower-api/src/models/runner.rs +++ b/crates/tower-api/src/models/runner.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/runner_credentials.rs b/crates/tower-api/src/models/runner_credentials.rs index d6a356b5..6152e0bf 100644 --- a/crates/tower-api/src/models/runner_credentials.rs +++ b/crates/tower-api/src/models/runner_credentials.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/schedule.rs b/crates/tower-api/src/models/schedule.rs index bfe69267..f2886166 100644 --- a/crates/tower-api/src/models/schedule.rs +++ b/crates/tower-api/src/models/schedule.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/schedule_owner.rs b/crates/tower-api/src/models/schedule_owner.rs index fa51d221..4b195f18 100644 --- a/crates/tower-api/src/models/schedule_owner.rs +++ b/crates/tower-api/src/models/schedule_owner.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/schedule_run_initiator_details.rs b/crates/tower-api/src/models/schedule_run_initiator_details.rs index 31177899..a7731e04 100644 --- a/crates/tower-api/src/models/schedule_run_initiator_details.rs +++ b/crates/tower-api/src/models/schedule_run_initiator_details.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/search_runs_response.rs b/crates/tower-api/src/models/search_runs_response.rs index 46525224..406e4b54 100644 --- a/crates/tower-api/src/models/search_runs_response.rs +++ b/crates/tower-api/src/models/search_runs_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/secret.rs b/crates/tower-api/src/models/secret.rs index 875456c3..7f291878 100644 --- a/crates/tower-api/src/models/secret.rs +++ b/crates/tower-api/src/models/secret.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/server_sent_events_inner.rs b/crates/tower-api/src/models/server_sent_events_inner.rs index 500613a8..f39b5c01 100644 --- a/crates/tower-api/src/models/server_sent_events_inner.rs +++ b/crates/tower-api/src/models/server_sent_events_inner.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/server_sent_events_inner_1.rs b/crates/tower-api/src/models/server_sent_events_inner_1.rs index 3a685e7c..df59cc9b 100644 --- a/crates/tower-api/src/models/server_sent_events_inner_1.rs +++ b/crates/tower-api/src/models/server_sent_events_inner_1.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/server_sent_events_inner_2.rs b/crates/tower-api/src/models/server_sent_events_inner_2.rs index acd3ee24..9becb74b 100644 --- a/crates/tower-api/src/models/server_sent_events_inner_2.rs +++ b/crates/tower-api/src/models/server_sent_events_inner_2.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/service_account.rs b/crates/tower-api/src/models/service_account.rs index af725e1e..30b80069 100644 --- a/crates/tower-api/src/models/service_account.rs +++ b/crates/tower-api/src/models/service_account.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/service_account_creator.rs b/crates/tower-api/src/models/service_account_creator.rs index 6b932206..ed0f5ce8 100644 --- a/crates/tower-api/src/models/service_account_creator.rs +++ b/crates/tower-api/src/models/service_account_creator.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/session.rs b/crates/tower-api/src/models/session.rs index e50b4821..deaee13e 100644 --- a/crates/tower-api/src/models/session.rs +++ b/crates/tower-api/src/models/session.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/shoulder_tap.rs b/crates/tower-api/src/models/shoulder_tap.rs index a1402155..34a54d08 100644 --- a/crates/tower-api/src/models/shoulder_tap.rs +++ b/crates/tower-api/src/models/shoulder_tap.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/sse_warning.rs b/crates/tower-api/src/models/sse_warning.rs index 93724481..eb331d91 100644 --- a/crates/tower-api/src/models/sse_warning.rs +++ b/crates/tower-api/src/models/sse_warning.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/statistics_settings.rs b/crates/tower-api/src/models/statistics_settings.rs index 1b928471..221e8d58 100644 --- a/crates/tower-api/src/models/statistics_settings.rs +++ b/crates/tower-api/src/models/statistics_settings.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/tag_filter.rs b/crates/tower-api/src/models/tag_filter.rs index f398dd19..b7938997 100644 --- a/crates/tower-api/src/models/tag_filter.rs +++ b/crates/tower-api/src/models/tag_filter.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/team.rs b/crates/tower-api/src/models/team.rs index 1a3378ae..f527e004 100644 --- a/crates/tower-api/src/models/team.rs +++ b/crates/tower-api/src/models/team.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/team_invitation.rs b/crates/tower-api/src/models/team_invitation.rs index cb2d6174..172d39c7 100644 --- a/crates/tower-api/src/models/team_invitation.rs +++ b/crates/tower-api/src/models/team_invitation.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/team_membership.rs b/crates/tower-api/src/models/team_membership.rs index 54703232..0a5e03bd 100644 --- a/crates/tower-api/src/models/team_membership.rs +++ b/crates/tower-api/src/models/team_membership.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/test_webhook_response.rs b/crates/tower-api/src/models/test_webhook_response.rs index fd43fd86..af211d0b 100644 --- a/crates/tower-api/src/models/test_webhook_response.rs +++ b/crates/tower-api/src/models/test_webhook_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/token.rs b/crates/tower-api/src/models/token.rs index e6619048..98794b0b 100644 --- a/crates/tower-api/src/models/token.rs +++ b/crates/tower-api/src/models/token.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ @@ -18,6 +18,7 @@ pub struct Token { #[serde_as(as = "DefaultOnNull")] #[serde(rename = "access_token")] pub access_token: String, + /// This property is deprecated. Use access_token instead. #[serde_as(as = "DefaultOnNull")] #[serde(rename = "jwt")] pub jwt: String, diff --git a/crates/tower-api/src/models/update_account_params.rs b/crates/tower-api/src/models/update_account_params.rs index 531f2c4d..30ba96e5 100644 --- a/crates/tower-api/src/models/update_account_params.rs +++ b/crates/tower-api/src/models/update_account_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ @@ -52,6 +52,10 @@ pub enum ExecutionRegion { UsWest2, #[serde(rename = "eu-west-1")] EuWest1, + #[serde(rename = "ap-northeast-1")] + ApNortheast1, + #[serde(rename = "ap-southeast-2")] + ApSoutheast2, } impl Default for ExecutionRegion { @@ -71,9 +75,18 @@ impl<'de> Deserialize<'de> for ExecutionRegion { "us-east-1" => Ok(Self::UsEast1), "us-west-2" => Ok(Self::UsWest2), "eu-west-1" => Ok(Self::EuWest1), + "ap-northeast-1" => Ok(Self::ApNortheast1), + "ap-southeast-2" => Ok(Self::ApSoutheast2), _ => Err(serde::de::Error::unknown_variant( &s, - &["eu-central-1", "us-east-1", "us-west-2", "eu-west-1"], + &[ + "eu-central-1", + "us-east-1", + "us-west-2", + "eu-west-1", + "ap-northeast-1", + "ap-southeast-2", + ], )), } } diff --git a/crates/tower-api/src/models/update_account_response.rs b/crates/tower-api/src/models/update_account_response.rs index d1f93fa3..8fe41cac 100644 --- a/crates/tower-api/src/models/update_account_response.rs +++ b/crates/tower-api/src/models/update_account_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/update_app_environment_params.rs b/crates/tower-api/src/models/update_app_environment_params.rs index 15576bad..61f871cc 100644 --- a/crates/tower-api/src/models/update_app_environment_params.rs +++ b/crates/tower-api/src/models/update_app_environment_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/update_app_environment_response.rs b/crates/tower-api/src/models/update_app_environment_response.rs index 56f4df95..868bd6c0 100644 --- a/crates/tower-api/src/models/update_app_environment_response.rs +++ b/crates/tower-api/src/models/update_app_environment_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/update_app_params.rs b/crates/tower-api/src/models/update_app_params.rs index 0097d767..6cfc506f 100644 --- a/crates/tower-api/src/models/update_app_params.rs +++ b/crates/tower-api/src/models/update_app_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/update_app_response.rs b/crates/tower-api/src/models/update_app_response.rs index b7cdab5f..98e5d2e8 100644 --- a/crates/tower-api/src/models/update_app_response.rs +++ b/crates/tower-api/src/models/update_app_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/update_catalog_fact_body.rs b/crates/tower-api/src/models/update_catalog_fact_body.rs index 70942a3b..8abb8f59 100644 --- a/crates/tower-api/src/models/update_catalog_fact_body.rs +++ b/crates/tower-api/src/models/update_catalog_fact_body.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/update_catalog_fact_response.rs b/crates/tower-api/src/models/update_catalog_fact_response.rs index a880eafd..042467fb 100644 --- a/crates/tower-api/src/models/update_catalog_fact_response.rs +++ b/crates/tower-api/src/models/update_catalog_fact_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/update_catalog_params.rs b/crates/tower-api/src/models/update_catalog_params.rs index 98c75a2c..a0ad2263 100644 --- a/crates/tower-api/src/models/update_catalog_params.rs +++ b/crates/tower-api/src/models/update_catalog_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ @@ -17,7 +17,7 @@ pub struct UpdateCatalogParams { /// A URL to the JSON Schema for this object. #[serde(rename = "$schema", skip_serializing_if = "Option::is_none")] pub schema: Option, - /// New environment for the catalog + /// The environment containing the catalog to update. Catalogs cannot be moved between environments. #[serde_as(as = "DefaultOnNull")] #[serde(rename = "environment")] pub environment: String, diff --git a/crates/tower-api/src/models/update_catalog_response.rs b/crates/tower-api/src/models/update_catalog_response.rs index 012a5405..c20d2051 100644 --- a/crates/tower-api/src/models/update_catalog_response.rs +++ b/crates/tower-api/src/models/update_catalog_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/update_email_preferences_body.rs b/crates/tower-api/src/models/update_email_preferences_body.rs index 0110b72d..631b30ea 100644 --- a/crates/tower-api/src/models/update_email_preferences_body.rs +++ b/crates/tower-api/src/models/update_email_preferences_body.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/update_environment_params.rs b/crates/tower-api/src/models/update_environment_params.rs index 3dbfaab2..5ba50eb8 100644 --- a/crates/tower-api/src/models/update_environment_params.rs +++ b/crates/tower-api/src/models/update_environment_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/update_environment_response.rs b/crates/tower-api/src/models/update_environment_response.rs index 77acbdee..9b5a9441 100644 --- a/crates/tower-api/src/models/update_environment_response.rs +++ b/crates/tower-api/src/models/update_environment_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/update_my_team_invitation_params.rs b/crates/tower-api/src/models/update_my_team_invitation_params.rs index 4d410c0e..4fceb281 100644 --- a/crates/tower-api/src/models/update_my_team_invitation_params.rs +++ b/crates/tower-api/src/models/update_my_team_invitation_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/update_my_team_invitation_response.rs b/crates/tower-api/src/models/update_my_team_invitation_response.rs index 7b89b844..6d8273fc 100644 --- a/crates/tower-api/src/models/update_my_team_invitation_response.rs +++ b/crates/tower-api/src/models/update_my_team_invitation_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/update_organization_params.rs b/crates/tower-api/src/models/update_organization_params.rs index a7928d5b..f28f0472 100644 --- a/crates/tower-api/src/models/update_organization_params.rs +++ b/crates/tower-api/src/models/update_organization_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/update_organization_response.rs b/crates/tower-api/src/models/update_organization_response.rs index 8d3b9342..bb534867 100644 --- a/crates/tower-api/src/models/update_organization_response.rs +++ b/crates/tower-api/src/models/update_organization_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/update_plan_params.rs b/crates/tower-api/src/models/update_plan_params.rs index 8d5453c6..bc79c07b 100644 --- a/crates/tower-api/src/models/update_plan_params.rs +++ b/crates/tower-api/src/models/update_plan_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/update_plan_response.rs b/crates/tower-api/src/models/update_plan_response.rs index ac46aa70..c45f2482 100644 --- a/crates/tower-api/src/models/update_plan_response.rs +++ b/crates/tower-api/src/models/update_plan_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/update_schedule_params.rs b/crates/tower-api/src/models/update_schedule_params.rs index 353fee57..329c76c3 100644 --- a/crates/tower-api/src/models/update_schedule_params.rs +++ b/crates/tower-api/src/models/update_schedule_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/update_schedule_response.rs b/crates/tower-api/src/models/update_schedule_response.rs index 25c07220..1e42ec6f 100644 --- a/crates/tower-api/src/models/update_schedule_response.rs +++ b/crates/tower-api/src/models/update_schedule_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/update_secret_params.rs b/crates/tower-api/src/models/update_secret_params.rs index 24022a3a..7624d5be 100644 --- a/crates/tower-api/src/models/update_secret_params.rs +++ b/crates/tower-api/src/models/update_secret_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/update_secret_response.rs b/crates/tower-api/src/models/update_secret_response.rs index 6fe7b48c..2f9e3777 100644 --- a/crates/tower-api/src/models/update_secret_response.rs +++ b/crates/tower-api/src/models/update_secret_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/update_service_account_params.rs b/crates/tower-api/src/models/update_service_account_params.rs index e6a748ee..9d131483 100644 --- a/crates/tower-api/src/models/update_service_account_params.rs +++ b/crates/tower-api/src/models/update_service_account_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/update_service_account_response.rs b/crates/tower-api/src/models/update_service_account_response.rs index 2ae9c535..18b67388 100644 --- a/crates/tower-api/src/models/update_service_account_response.rs +++ b/crates/tower-api/src/models/update_service_account_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/update_team_member_params.rs b/crates/tower-api/src/models/update_team_member_params.rs index bec1cf7e..cd6c4b8c 100644 --- a/crates/tower-api/src/models/update_team_member_params.rs +++ b/crates/tower-api/src/models/update_team_member_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/update_team_member_response.rs b/crates/tower-api/src/models/update_team_member_response.rs index c8afc1b3..894fd978 100644 --- a/crates/tower-api/src/models/update_team_member_response.rs +++ b/crates/tower-api/src/models/update_team_member_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/update_team_params.rs b/crates/tower-api/src/models/update_team_params.rs index 9a91486e..0259e1bc 100644 --- a/crates/tower-api/src/models/update_team_params.rs +++ b/crates/tower-api/src/models/update_team_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ @@ -45,6 +45,10 @@ pub enum ExecutionRegion { UsWest2, #[serde(rename = "eu-west-1")] EuWest1, + #[serde(rename = "ap-northeast-1")] + ApNortheast1, + #[serde(rename = "ap-southeast-2")] + ApSoutheast2, } impl Default for ExecutionRegion { @@ -64,9 +68,18 @@ impl<'de> Deserialize<'de> for ExecutionRegion { "us-east-1" => Ok(Self::UsEast1), "us-west-2" => Ok(Self::UsWest2), "eu-west-1" => Ok(Self::EuWest1), + "ap-northeast-1" => Ok(Self::ApNortheast1), + "ap-southeast-2" => Ok(Self::ApSoutheast2), _ => Err(serde::de::Error::unknown_variant( &s, - &["eu-central-1", "us-east-1", "us-west-2", "eu-west-1"], + &[ + "eu-central-1", + "us-east-1", + "us-west-2", + "eu-west-1", + "ap-northeast-1", + "ap-southeast-2", + ], )), } } diff --git a/crates/tower-api/src/models/update_team_response.rs b/crates/tower-api/src/models/update_team_response.rs index 1d3606a8..d8d5ad86 100644 --- a/crates/tower-api/src/models/update_team_response.rs +++ b/crates/tower-api/src/models/update_team_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/update_user_params.rs b/crates/tower-api/src/models/update_user_params.rs index 2f2c68e1..39136583 100644 --- a/crates/tower-api/src/models/update_user_params.rs +++ b/crates/tower-api/src/models/update_user_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/update_user_response.rs b/crates/tower-api/src/models/update_user_response.rs index 051691c7..beb1f28d 100644 --- a/crates/tower-api/src/models/update_user_response.rs +++ b/crates/tower-api/src/models/update_user_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/update_webhook_params.rs b/crates/tower-api/src/models/update_webhook_params.rs index 1bb54639..163f3ee5 100644 --- a/crates/tower-api/src/models/update_webhook_params.rs +++ b/crates/tower-api/src/models/update_webhook_params.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/update_webhook_response.rs b/crates/tower-api/src/models/update_webhook_response.rs index 1a75fd49..cb2ec398 100644 --- a/crates/tower-api/src/models/update_webhook_response.rs +++ b/crates/tower-api/src/models/update_webhook_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/usage_limit.rs b/crates/tower-api/src/models/usage_limit.rs index 9726cf29..8cb271b8 100644 --- a/crates/tower-api/src/models/usage_limit.rs +++ b/crates/tower-api/src/models/usage_limit.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/usage_metric_time_series_point.rs b/crates/tower-api/src/models/usage_metric_time_series_point.rs index 6c4bdef2..9dc2c066 100644 --- a/crates/tower-api/src/models/usage_metric_time_series_point.rs +++ b/crates/tower-api/src/models/usage_metric_time_series_point.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/user.rs b/crates/tower-api/src/models/user.rs index e96c7257..c841aaee 100644 --- a/crates/tower-api/src/models/user.rs +++ b/crates/tower-api/src/models/user.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/vend_catalog_credentials_body.rs b/crates/tower-api/src/models/vend_catalog_credentials_body.rs index 6c54274a..17faff34 100644 --- a/crates/tower-api/src/models/vend_catalog_credentials_body.rs +++ b/crates/tower-api/src/models/vend_catalog_credentials_body.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/vend_catalog_credentials_response.rs b/crates/tower-api/src/models/vend_catalog_credentials_response.rs index 461dd693..5b0a8116 100644 --- a/crates/tower-api/src/models/vend_catalog_credentials_response.rs +++ b/crates/tower-api/src/models/vend_catalog_credentials_response.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-api/src/models/webhook.rs b/crates/tower-api/src/models/webhook.rs index 3f6031bd..8cc817ae 100644 --- a/crates/tower-api/src/models/webhook.rs +++ b/crates/tower-api/src/models/webhook.rs @@ -3,7 +3,7 @@ * * REST API to interact with Tower Services. * - * The version of the OpenAPI document: v0.11.17 + * The version of the OpenAPI document: v0.11.23 * Contact: hello@tower.dev * Generated by: https://openapi-generator.tech */ diff --git a/crates/tower-cmd/src/api.rs b/crates/tower-cmd/src/api.rs index e6b8f4c2..b88c656c 100644 --- a/crates/tower-cmd/src/api.rs +++ b/crates/tower-cmd/src/api.rs @@ -1476,6 +1476,7 @@ pub async fn update_schedule( parameters: run_parameters, ..Default::default() }, + x_tower_request_number: None, }; unwrap_api_response(tower_api::apis::default_api::update_schedule( diff --git a/src/tower/tower_api_client/api/default/batch_describe_runs.py b/src/tower/tower_api_client/api/default/batch_describe_runs.py new file mode 100644 index 00000000..4d966901 --- /dev/null +++ b/src/tower/tower_api_client/api/default/batch_describe_runs.py @@ -0,0 +1,170 @@ +from http import HTTPStatus +from typing import Any + +import httpx + +from ...client import AuthenticatedClient, Client +from ...models.batch_describe_runs_params import BatchDescribeRunsParams +from ...models.batch_describe_runs_response import BatchDescribeRunsResponse +from ...models.error_model import ErrorModel +from ...types import Response + + +def _get_kwargs( + *, + body: list[BatchDescribeRunsParams], +) -> dict[str, Any]: + headers: dict[str, Any] = {} + + _kwargs: dict[str, Any] = { + "method": "post", + "url": "/batch/describe-runs", + } + + _kwargs["json"] = [] + for body_item_data in body: + body_item = body_item_data.to_dict() + _kwargs["json"].append(body_item) + + headers["Content-Type"] = "application/json" + + _kwargs["headers"] = headers + return _kwargs + + +def _parse_response( + *, client: AuthenticatedClient | Client, response: httpx.Response +) -> BatchDescribeRunsResponse | ErrorModel: + if response.status_code == 200: + response_200 = BatchDescribeRunsResponse.from_dict(response.json()) + + return response_200 + + response_default = ErrorModel.from_dict(response.json()) + + return response_default + + +def _build_response( + *, client: AuthenticatedClient | Client, response: httpx.Response +) -> Response[BatchDescribeRunsResponse | ErrorModel]: + return Response( + status_code=HTTPStatus(response.status_code), + content=response.content, + headers=response.headers, + parsed=_parse_response(client=client, response=response), + ) + + +def sync_detailed( + *, + client: AuthenticatedClient, + body: list[BatchDescribeRunsParams], +) -> Response[BatchDescribeRunsResponse | ErrorModel]: + """Batch describe runs + + Describe multiple runs in a single request. + + Args: + body (list[BatchDescribeRunsParams]): + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + Response[BatchDescribeRunsResponse | ErrorModel] + """ + + kwargs = _get_kwargs( + body=body, + ) + + response = client.get_httpx_client().request( + **kwargs, + ) + + return _build_response(client=client, response=response) + + +def sync( + *, + client: AuthenticatedClient, + body: list[BatchDescribeRunsParams], +) -> BatchDescribeRunsResponse | ErrorModel | None: + """Batch describe runs + + Describe multiple runs in a single request. + + Args: + body (list[BatchDescribeRunsParams]): + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + BatchDescribeRunsResponse | ErrorModel + """ + + return sync_detailed( + client=client, + body=body, + ).parsed + + +async def asyncio_detailed( + *, + client: AuthenticatedClient, + body: list[BatchDescribeRunsParams], +) -> Response[BatchDescribeRunsResponse | ErrorModel]: + """Batch describe runs + + Describe multiple runs in a single request. + + Args: + body (list[BatchDescribeRunsParams]): + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + Response[BatchDescribeRunsResponse | ErrorModel] + """ + + kwargs = _get_kwargs( + body=body, + ) + + response = await client.get_async_httpx_client().request(**kwargs) + + return _build_response(client=client, response=response) + + +async def asyncio( + *, + client: AuthenticatedClient, + body: list[BatchDescribeRunsParams], +) -> BatchDescribeRunsResponse | ErrorModel | None: + """Batch describe runs + + Describe multiple runs in a single request. + + Args: + body (list[BatchDescribeRunsParams]): + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + BatchDescribeRunsResponse | ErrorModel + """ + + return ( + await asyncio_detailed( + client=client, + body=body, + ) + ).parsed diff --git a/src/tower/tower_api_client/api/default/batch_describe_runs_logs.py b/src/tower/tower_api_client/api/default/batch_describe_runs_logs.py new file mode 100644 index 00000000..3096693e --- /dev/null +++ b/src/tower/tower_api_client/api/default/batch_describe_runs_logs.py @@ -0,0 +1,175 @@ +from http import HTTPStatus +from typing import Any + +import httpx + +from ...client import AuthenticatedClient, Client +from ...models.batch_describe_runs_logs_params import BatchDescribeRunsLogsParams +from ...models.batched_run_log_lines import BatchedRunLogLines +from ...models.error_model import ErrorModel +from ...types import Response + + +def _get_kwargs( + *, + body: list[BatchDescribeRunsLogsParams], +) -> dict[str, Any]: + headers: dict[str, Any] = {} + + _kwargs: dict[str, Any] = { + "method": "post", + "url": "/batch/describe-runs-logs", + } + + _kwargs["json"] = [] + for body_item_data in body: + body_item = body_item_data.to_dict() + _kwargs["json"].append(body_item) + + headers["Content-Type"] = "application/json" + + _kwargs["headers"] = headers + return _kwargs + + +def _parse_response( + *, client: AuthenticatedClient | Client, response: httpx.Response +) -> ErrorModel | list[BatchedRunLogLines]: + if response.status_code == 200: + response_200 = [] + _response_200 = response.json() + for response_200_item_data in _response_200: + response_200_item = BatchedRunLogLines.from_dict(response_200_item_data) + + response_200.append(response_200_item) + + return response_200 + + response_default = ErrorModel.from_dict(response.json()) + + return response_default + + +def _build_response( + *, client: AuthenticatedClient | Client, response: httpx.Response +) -> Response[ErrorModel | list[BatchedRunLogLines]]: + return Response( + status_code=HTTPStatus(response.status_code), + content=response.content, + headers=response.headers, + parsed=_parse_response(client=client, response=response), + ) + + +def sync_detailed( + *, + client: AuthenticatedClient, + body: list[BatchDescribeRunsLogsParams], +) -> Response[ErrorModel | list[BatchedRunLogLines]]: + """Batch describe runs logs + + Describe multiple run logs in a single request. + + Args: + body (list[BatchDescribeRunsLogsParams]): + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + Response[ErrorModel | list[BatchedRunLogLines]] + """ + + kwargs = _get_kwargs( + body=body, + ) + + response = client.get_httpx_client().request( + **kwargs, + ) + + return _build_response(client=client, response=response) + + +def sync( + *, + client: AuthenticatedClient, + body: list[BatchDescribeRunsLogsParams], +) -> ErrorModel | list[BatchedRunLogLines] | None: + """Batch describe runs logs + + Describe multiple run logs in a single request. + + Args: + body (list[BatchDescribeRunsLogsParams]): + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + ErrorModel | list[BatchedRunLogLines] + """ + + return sync_detailed( + client=client, + body=body, + ).parsed + + +async def asyncio_detailed( + *, + client: AuthenticatedClient, + body: list[BatchDescribeRunsLogsParams], +) -> Response[ErrorModel | list[BatchedRunLogLines]]: + """Batch describe runs logs + + Describe multiple run logs in a single request. + + Args: + body (list[BatchDescribeRunsLogsParams]): + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + Response[ErrorModel | list[BatchedRunLogLines]] + """ + + kwargs = _get_kwargs( + body=body, + ) + + response = await client.get_async_httpx_client().request(**kwargs) + + return _build_response(client=client, response=response) + + +async def asyncio( + *, + client: AuthenticatedClient, + body: list[BatchDescribeRunsLogsParams], +) -> ErrorModel | list[BatchedRunLogLines] | None: + """Batch describe runs logs + + Describe multiple run logs in a single request. + + Args: + body (list[BatchDescribeRunsLogsParams]): + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + ErrorModel | list[BatchedRunLogLines] + """ + + return ( + await asyncio_detailed( + client=client, + body=body, + ) + ).parsed diff --git a/src/tower/tower_api_client/api/default/create_catalog.py b/src/tower/tower_api_client/api/default/create_catalog.py index 37914243..1d7f212b 100644 --- a/src/tower/tower_api_client/api/default/create_catalog.py +++ b/src/tower/tower_api_client/api/default/create_catalog.py @@ -37,6 +37,36 @@ def _parse_response( return response_200 + if response.status_code == 400: + response_400 = ErrorModel.from_dict(response.json()) + + return response_400 + + if response.status_code == 401: + response_401 = ErrorModel.from_dict(response.json()) + + return response_401 + + if response.status_code == 403: + response_403 = ErrorModel.from_dict(response.json()) + + return response_403 + + if response.status_code == 409: + response_409 = ErrorModel.from_dict(response.json()) + + return response_409 + + if response.status_code == 422: + response_422 = ErrorModel.from_dict(response.json()) + + return response_422 + + if response.status_code == 500: + response_500 = ErrorModel.from_dict(response.json()) + + return response_500 + response_default = ErrorModel.from_dict(response.json()) return response_default diff --git a/src/tower/tower_api_client/api/default/delete_catalog.py b/src/tower/tower_api_client/api/default/delete_catalog.py index 3a967033..21b4d1eb 100644 --- a/src/tower/tower_api_client/api/default/delete_catalog.py +++ b/src/tower/tower_api_client/api/default/delete_catalog.py @@ -40,6 +40,36 @@ def _parse_response( return response_204 + if response.status_code == 401: + response_401 = ErrorModel.from_dict(response.json()) + + return response_401 + + if response.status_code == 403: + response_403 = ErrorModel.from_dict(response.json()) + + return response_403 + + if response.status_code == 404: + response_404 = ErrorModel.from_dict(response.json()) + + return response_404 + + if response.status_code == 409: + response_409 = ErrorModel.from_dict(response.json()) + + return response_409 + + if response.status_code == 422: + response_422 = ErrorModel.from_dict(response.json()) + + return response_422 + + if response.status_code == 500: + response_500 = ErrorModel.from_dict(response.json()) + + return response_500 + response_default = ErrorModel.from_dict(response.json()) return response_default diff --git a/src/tower/tower_api_client/api/default/delete_catalog_fact.py b/src/tower/tower_api_client/api/default/delete_catalog_fact.py new file mode 100644 index 00000000..102c05c7 --- /dev/null +++ b/src/tower/tower_api_client/api/default/delete_catalog_fact.py @@ -0,0 +1,194 @@ +from http import HTTPStatus +from typing import Any, cast +from urllib.parse import quote + +import httpx + +from ...client import AuthenticatedClient, Client +from ...models.error_model import ErrorModel +from ...types import UNSET, Response, Unset + + +def _get_kwargs( + catalog: str, + name: str, + *, + environment: str | Unset = "default", +) -> dict[str, Any]: + params: dict[str, Any] = {} + + params["environment"] = environment + + params = {k: v for k, v in params.items() if v is not UNSET and v is not None} + + _kwargs: dict[str, Any] = { + "method": "delete", + "url": "/catalogs/{catalog}/facts/{name}".format( + catalog=quote(str(catalog), safe=""), + name=quote(str(name), safe=""), + ), + "params": params, + } + + return _kwargs + + +def _parse_response( + *, client: AuthenticatedClient | Client, response: httpx.Response +) -> Any | ErrorModel: + if response.status_code == 204: + response_204 = cast(Any, None) + return response_204 + + response_default = ErrorModel.from_dict(response.json()) + + return response_default + + +def _build_response( + *, client: AuthenticatedClient | Client, response: httpx.Response +) -> Response[Any | ErrorModel]: + return Response( + status_code=HTTPStatus(response.status_code), + content=response.content, + headers=response.headers, + parsed=_parse_response(client=client, response=response), + ) + + +def sync_detailed( + catalog: str, + name: str, + *, + client: AuthenticatedClient, + environment: str | Unset = "default", +) -> Response[Any | ErrorModel]: + """Delete a catalog fact + + Deletes a semantic metadata fact addressed by its name within a catalog. + + Args: + catalog (str): The name of the catalog. + name (str): The name of the fact. + environment (str | Unset): The environment of the catalog. Default: 'default'. + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + Response[Any | ErrorModel] + """ + + kwargs = _get_kwargs( + catalog=catalog, + name=name, + environment=environment, + ) + + response = client.get_httpx_client().request( + **kwargs, + ) + + return _build_response(client=client, response=response) + + +def sync( + catalog: str, + name: str, + *, + client: AuthenticatedClient, + environment: str | Unset = "default", +) -> Any | ErrorModel | None: + """Delete a catalog fact + + Deletes a semantic metadata fact addressed by its name within a catalog. + + Args: + catalog (str): The name of the catalog. + name (str): The name of the fact. + environment (str | Unset): The environment of the catalog. Default: 'default'. + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + Any | ErrorModel + """ + + return sync_detailed( + catalog=catalog, + name=name, + client=client, + environment=environment, + ).parsed + + +async def asyncio_detailed( + catalog: str, + name: str, + *, + client: AuthenticatedClient, + environment: str | Unset = "default", +) -> Response[Any | ErrorModel]: + """Delete a catalog fact + + Deletes a semantic metadata fact addressed by its name within a catalog. + + Args: + catalog (str): The name of the catalog. + name (str): The name of the fact. + environment (str | Unset): The environment of the catalog. Default: 'default'. + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + Response[Any | ErrorModel] + """ + + kwargs = _get_kwargs( + catalog=catalog, + name=name, + environment=environment, + ) + + response = await client.get_async_httpx_client().request(**kwargs) + + return _build_response(client=client, response=response) + + +async def asyncio( + catalog: str, + name: str, + *, + client: AuthenticatedClient, + environment: str | Unset = "default", +) -> Any | ErrorModel | None: + """Delete a catalog fact + + Deletes a semantic metadata fact addressed by its name within a catalog. + + Args: + catalog (str): The name of the catalog. + name (str): The name of the fact. + environment (str | Unset): The environment of the catalog. Default: 'default'. + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + Any | ErrorModel + """ + + return ( + await asyncio_detailed( + catalog=catalog, + name=name, + client=client, + environment=environment, + ) + ).parsed diff --git a/src/tower/tower_api_client/api/default/delete_environment.py b/src/tower/tower_api_client/api/default/delete_environment.py index b3263192..a6f4326c 100644 --- a/src/tower/tower_api_client/api/default/delete_environment.py +++ b/src/tower/tower_api_client/api/default/delete_environment.py @@ -31,6 +31,36 @@ def _parse_response( return response_200 + if response.status_code == 401: + response_401 = ErrorModel.from_dict(response.json()) + + return response_401 + + if response.status_code == 403: + response_403 = ErrorModel.from_dict(response.json()) + + return response_403 + + if response.status_code == 404: + response_404 = ErrorModel.from_dict(response.json()) + + return response_404 + + if response.status_code == 409: + response_409 = ErrorModel.from_dict(response.json()) + + return response_409 + + if response.status_code == 422: + response_422 = ErrorModel.from_dict(response.json()) + + return response_422 + + if response.status_code == 500: + response_500 = ErrorModel.from_dict(response.json()) + + return response_500 + response_default = ErrorModel.from_dict(response.json()) return response_default diff --git a/src/tower/tower_api_client/api/default/deploy_app.py b/src/tower/tower_api_client/api/default/deploy_app.py index 47824719..4aa38cf0 100644 --- a/src/tower/tower_api_client/api/default/deploy_app.py +++ b/src/tower/tower_api_client/api/default/deploy_app.py @@ -20,6 +20,7 @@ def _get_kwargs( all_environments: bool | Unset = False, x_tower_checksum_sha256: str | Unset = UNSET, x_tower_idempotency_key: str | Unset = UNSET, + x_tower_request_number: int | Unset = UNSET, content_length: int | Unset = UNSET, ) -> dict[str, Any]: headers: dict[str, Any] = {} @@ -29,6 +30,9 @@ def _get_kwargs( if not isinstance(x_tower_idempotency_key, Unset): headers["X-Tower-Idempotency-Key"] = x_tower_idempotency_key + if not isinstance(x_tower_request_number, Unset): + headers["X-Tower-Request-Number"] = str(x_tower_request_number) + if not isinstance(content_length, Unset): headers["Content-Length"] = str(content_length) @@ -74,6 +78,11 @@ def _parse_response( return response_400 + if response.status_code == 412: + response_412 = ErrorModel.from_dict(response.json()) + + return response_412 + if response.status_code == 422: response_422 = ErrorModel.from_dict(response.json()) @@ -110,6 +119,7 @@ def sync_detailed( all_environments: bool | Unset = False, x_tower_checksum_sha256: str | Unset = UNSET, x_tower_idempotency_key: str | Unset = UNSET, + x_tower_request_number: int | Unset = UNSET, content_length: int | Unset = UNSET, ) -> Response[DeployAppResponse | ErrorModel]: """Deploy app @@ -128,6 +138,9 @@ def sync_detailed( CI build ID). If a prior deploy for this app supplied the same value, the server reuses that AppVersion instead of creating a new one — letting consecutive deploys to different environments share a single version when the source hasn't changed. + x_tower_request_number (int | Unset): Optional account-scoped monotonic sequence token + used to reject out-of-order writes. See the fence documentation for the acceptance window + and retry behavior. content_length (int | Unset): Size of the uploaded bundle in bytes. body (DeployAppJsonBody): Example: {'source_uri': 'https://github.com/tower/tower- examples/tree/main/01-hello-world'}. @@ -149,6 +162,7 @@ def sync_detailed( all_environments=all_environments, x_tower_checksum_sha256=x_tower_checksum_sha256, x_tower_idempotency_key=x_tower_idempotency_key, + x_tower_request_number=x_tower_request_number, content_length=content_length, ) @@ -168,6 +182,7 @@ def sync( all_environments: bool | Unset = False, x_tower_checksum_sha256: str | Unset = UNSET, x_tower_idempotency_key: str | Unset = UNSET, + x_tower_request_number: int | Unset = UNSET, content_length: int | Unset = UNSET, ) -> DeployAppResponse | ErrorModel | None: """Deploy app @@ -186,6 +201,9 @@ def sync( CI build ID). If a prior deploy for this app supplied the same value, the server reuses that AppVersion instead of creating a new one — letting consecutive deploys to different environments share a single version when the source hasn't changed. + x_tower_request_number (int | Unset): Optional account-scoped monotonic sequence token + used to reject out-of-order writes. See the fence documentation for the acceptance window + and retry behavior. content_length (int | Unset): Size of the uploaded bundle in bytes. body (DeployAppJsonBody): Example: {'source_uri': 'https://github.com/tower/tower- examples/tree/main/01-hello-world'}. @@ -208,6 +226,7 @@ def sync( all_environments=all_environments, x_tower_checksum_sha256=x_tower_checksum_sha256, x_tower_idempotency_key=x_tower_idempotency_key, + x_tower_request_number=x_tower_request_number, content_length=content_length, ).parsed @@ -221,6 +240,7 @@ async def asyncio_detailed( all_environments: bool | Unset = False, x_tower_checksum_sha256: str | Unset = UNSET, x_tower_idempotency_key: str | Unset = UNSET, + x_tower_request_number: int | Unset = UNSET, content_length: int | Unset = UNSET, ) -> Response[DeployAppResponse | ErrorModel]: """Deploy app @@ -239,6 +259,9 @@ async def asyncio_detailed( CI build ID). If a prior deploy for this app supplied the same value, the server reuses that AppVersion instead of creating a new one — letting consecutive deploys to different environments share a single version when the source hasn't changed. + x_tower_request_number (int | Unset): Optional account-scoped monotonic sequence token + used to reject out-of-order writes. See the fence documentation for the acceptance window + and retry behavior. content_length (int | Unset): Size of the uploaded bundle in bytes. body (DeployAppJsonBody): Example: {'source_uri': 'https://github.com/tower/tower- examples/tree/main/01-hello-world'}. @@ -260,6 +283,7 @@ async def asyncio_detailed( all_environments=all_environments, x_tower_checksum_sha256=x_tower_checksum_sha256, x_tower_idempotency_key=x_tower_idempotency_key, + x_tower_request_number=x_tower_request_number, content_length=content_length, ) @@ -277,6 +301,7 @@ async def asyncio( all_environments: bool | Unset = False, x_tower_checksum_sha256: str | Unset = UNSET, x_tower_idempotency_key: str | Unset = UNSET, + x_tower_request_number: int | Unset = UNSET, content_length: int | Unset = UNSET, ) -> DeployAppResponse | ErrorModel | None: """Deploy app @@ -295,6 +320,9 @@ async def asyncio( CI build ID). If a prior deploy for this app supplied the same value, the server reuses that AppVersion instead of creating a new one — letting consecutive deploys to different environments share a single version when the source hasn't changed. + x_tower_request_number (int | Unset): Optional account-scoped monotonic sequence token + used to reject out-of-order writes. See the fence documentation for the acceptance window + and retry behavior. content_length (int | Unset): Size of the uploaded bundle in bytes. body (DeployAppJsonBody): Example: {'source_uri': 'https://github.com/tower/tower- examples/tree/main/01-hello-world'}. @@ -318,6 +346,7 @@ async def asyncio( all_environments=all_environments, x_tower_checksum_sha256=x_tower_checksum_sha256, x_tower_idempotency_key=x_tower_idempotency_key, + x_tower_request_number=x_tower_request_number, content_length=content_length, ) ).parsed diff --git a/src/tower/tower_api_client/api/default/describe_catalog_fact.py b/src/tower/tower_api_client/api/default/describe_catalog_fact.py new file mode 100644 index 00000000..e2c697ee --- /dev/null +++ b/src/tower/tower_api_client/api/default/describe_catalog_fact.py @@ -0,0 +1,196 @@ +from http import HTTPStatus +from typing import Any +from urllib.parse import quote + +import httpx + +from ...client import AuthenticatedClient, Client +from ...models.describe_catalog_fact_response import DescribeCatalogFactResponse +from ...models.error_model import ErrorModel +from ...types import UNSET, Response, Unset + + +def _get_kwargs( + catalog: str, + name: str, + *, + environment: str | Unset = "default", +) -> dict[str, Any]: + params: dict[str, Any] = {} + + params["environment"] = environment + + params = {k: v for k, v in params.items() if v is not UNSET and v is not None} + + _kwargs: dict[str, Any] = { + "method": "get", + "url": "/catalogs/{catalog}/facts/{name}".format( + catalog=quote(str(catalog), safe=""), + name=quote(str(name), safe=""), + ), + "params": params, + } + + return _kwargs + + +def _parse_response( + *, client: AuthenticatedClient | Client, response: httpx.Response +) -> DescribeCatalogFactResponse | ErrorModel: + if response.status_code == 200: + response_200 = DescribeCatalogFactResponse.from_dict(response.json()) + + return response_200 + + response_default = ErrorModel.from_dict(response.json()) + + return response_default + + +def _build_response( + *, client: AuthenticatedClient | Client, response: httpx.Response +) -> Response[DescribeCatalogFactResponse | ErrorModel]: + return Response( + status_code=HTTPStatus(response.status_code), + content=response.content, + headers=response.headers, + parsed=_parse_response(client=client, response=response), + ) + + +def sync_detailed( + catalog: str, + name: str, + *, + client: AuthenticatedClient, + environment: str | Unset = "default", +) -> Response[DescribeCatalogFactResponse | ErrorModel]: + """Describe a catalog fact + + Returns a single semantic metadata fact addressed by its name within a catalog. + + Args: + catalog (str): The name of the catalog. + name (str): The name of the fact. + environment (str | Unset): The environment of the catalog. Default: 'default'. + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + Response[DescribeCatalogFactResponse | ErrorModel] + """ + + kwargs = _get_kwargs( + catalog=catalog, + name=name, + environment=environment, + ) + + response = client.get_httpx_client().request( + **kwargs, + ) + + return _build_response(client=client, response=response) + + +def sync( + catalog: str, + name: str, + *, + client: AuthenticatedClient, + environment: str | Unset = "default", +) -> DescribeCatalogFactResponse | ErrorModel | None: + """Describe a catalog fact + + Returns a single semantic metadata fact addressed by its name within a catalog. + + Args: + catalog (str): The name of the catalog. + name (str): The name of the fact. + environment (str | Unset): The environment of the catalog. Default: 'default'. + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + DescribeCatalogFactResponse | ErrorModel + """ + + return sync_detailed( + catalog=catalog, + name=name, + client=client, + environment=environment, + ).parsed + + +async def asyncio_detailed( + catalog: str, + name: str, + *, + client: AuthenticatedClient, + environment: str | Unset = "default", +) -> Response[DescribeCatalogFactResponse | ErrorModel]: + """Describe a catalog fact + + Returns a single semantic metadata fact addressed by its name within a catalog. + + Args: + catalog (str): The name of the catalog. + name (str): The name of the fact. + environment (str | Unset): The environment of the catalog. Default: 'default'. + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + Response[DescribeCatalogFactResponse | ErrorModel] + """ + + kwargs = _get_kwargs( + catalog=catalog, + name=name, + environment=environment, + ) + + response = await client.get_async_httpx_client().request(**kwargs) + + return _build_response(client=client, response=response) + + +async def asyncio( + catalog: str, + name: str, + *, + client: AuthenticatedClient, + environment: str | Unset = "default", +) -> DescribeCatalogFactResponse | ErrorModel | None: + """Describe a catalog fact + + Returns a single semantic metadata fact addressed by its name within a catalog. + + Args: + catalog (str): The name of the catalog. + name (str): The name of the fact. + environment (str | Unset): The environment of the catalog. Default: 'default'. + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + DescribeCatalogFactResponse | ErrorModel + """ + + return ( + await asyncio_detailed( + catalog=catalog, + name=name, + client=client, + environment=environment, + ) + ).parsed diff --git a/src/tower/tower_api_client/api/default/describe_catalog_usage.py b/src/tower/tower_api_client/api/default/describe_catalog_usage.py new file mode 100644 index 00000000..772669a1 --- /dev/null +++ b/src/tower/tower_api_client/api/default/describe_catalog_usage.py @@ -0,0 +1,212 @@ +from http import HTTPStatus +from typing import Any +from urllib.parse import quote + +import httpx + +from ... import errors +from ...client import AuthenticatedClient, Client +from ...models.describe_catalog_usage_response import DescribeCatalogUsageResponse +from ...models.error_model import ErrorModel +from ...types import UNSET, Response, Unset + + +def _get_kwargs( + name: str, + *, + environment: str | Unset = "default", +) -> dict[str, Any]: + params: dict[str, Any] = {} + + params["environment"] = environment + + params = {k: v for k, v in params.items() if v is not UNSET and v is not None} + + _kwargs: dict[str, Any] = { + "method": "get", + "url": "/catalogs/{name}/usage".format( + name=quote(str(name), safe=""), + ), + "params": params, + } + + return _kwargs + + +def _parse_response( + *, client: AuthenticatedClient | Client, response: httpx.Response +) -> DescribeCatalogUsageResponse | ErrorModel | None: + if response.status_code == 200: + response_200 = DescribeCatalogUsageResponse.from_dict(response.json()) + + return response_200 + + if response.status_code == 401: + response_401 = ErrorModel.from_dict(response.json()) + + return response_401 + + if response.status_code == 404: + response_404 = ErrorModel.from_dict(response.json()) + + return response_404 + + if response.status_code == 422: + response_422 = ErrorModel.from_dict(response.json()) + + return response_422 + + if response.status_code == 500: + response_500 = ErrorModel.from_dict(response.json()) + + return response_500 + + if client.raise_on_unexpected_status: + raise errors.UnexpectedStatus(response.status_code, response.content) + else: + return None + + +def _build_response( + *, client: AuthenticatedClient | Client, response: httpx.Response +) -> Response[DescribeCatalogUsageResponse | ErrorModel]: + return Response( + status_code=HTTPStatus(response.status_code), + content=response.content, + headers=response.headers, + parsed=_parse_response(client=client, response=response), + ) + + +def sync_detailed( + name: str, + *, + client: AuthenticatedClient, + environment: str | Unset = "default", +) -> Response[DescribeCatalogUsageResponse | ErrorModel]: + """Describe catalog usage + + Returns physical bytes stored by one Tower-managed catalog, including Iceberg metadata and not-yet- + compacted snapshot history. Measurements are cached and may be temporarily unavailable; measured_at + is null when no measurement exists. BYO and S3 Tables catalogs are not metered. + + Args: + name (str): The name of the catalog. + environment (str | Unset): The environment of the catalog. Default: 'default'. + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + Response[DescribeCatalogUsageResponse | ErrorModel] + """ + + kwargs = _get_kwargs( + name=name, + environment=environment, + ) + + response = client.get_httpx_client().request( + **kwargs, + ) + + return _build_response(client=client, response=response) + + +def sync( + name: str, + *, + client: AuthenticatedClient, + environment: str | Unset = "default", +) -> DescribeCatalogUsageResponse | ErrorModel | None: + """Describe catalog usage + + Returns physical bytes stored by one Tower-managed catalog, including Iceberg metadata and not-yet- + compacted snapshot history. Measurements are cached and may be temporarily unavailable; measured_at + is null when no measurement exists. BYO and S3 Tables catalogs are not metered. + + Args: + name (str): The name of the catalog. + environment (str | Unset): The environment of the catalog. Default: 'default'. + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + DescribeCatalogUsageResponse | ErrorModel + """ + + return sync_detailed( + name=name, + client=client, + environment=environment, + ).parsed + + +async def asyncio_detailed( + name: str, + *, + client: AuthenticatedClient, + environment: str | Unset = "default", +) -> Response[DescribeCatalogUsageResponse | ErrorModel]: + """Describe catalog usage + + Returns physical bytes stored by one Tower-managed catalog, including Iceberg metadata and not-yet- + compacted snapshot history. Measurements are cached and may be temporarily unavailable; measured_at + is null when no measurement exists. BYO and S3 Tables catalogs are not metered. + + Args: + name (str): The name of the catalog. + environment (str | Unset): The environment of the catalog. Default: 'default'. + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + Response[DescribeCatalogUsageResponse | ErrorModel] + """ + + kwargs = _get_kwargs( + name=name, + environment=environment, + ) + + response = await client.get_async_httpx_client().request(**kwargs) + + return _build_response(client=client, response=response) + + +async def asyncio( + name: str, + *, + client: AuthenticatedClient, + environment: str | Unset = "default", +) -> DescribeCatalogUsageResponse | ErrorModel | None: + """Describe catalog usage + + Returns physical bytes stored by one Tower-managed catalog, including Iceberg metadata and not-yet- + compacted snapshot history. Measurements are cached and may be temporarily unavailable; measured_at + is null when no measurement exists. BYO and S3 Tables catalogs are not metered. + + Args: + name (str): The name of the catalog. + environment (str | Unset): The environment of the catalog. Default: 'default'. + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + DescribeCatalogUsageResponse | ErrorModel + """ + + return ( + await asyncio_detailed( + name=name, + client=client, + environment=environment, + ) + ).parsed diff --git a/src/tower/tower_api_client/api/default/describe_run_logs.py b/src/tower/tower_api_client/api/default/describe_run_logs.py index 0d205fdf..c373d299 100644 --- a/src/tower/tower_api_client/api/default/describe_run_logs.py +++ b/src/tower/tower_api_client/api/default/describe_run_logs.py @@ -16,6 +16,8 @@ def _get_kwargs( seq: int, *, start_at: datetime.datetime | Unset = UNSET, + head: int | Unset = UNSET, + tail: int | Unset = UNSET, ) -> dict[str, Any]: params: dict[str, Any] = {} @@ -24,6 +26,10 @@ def _get_kwargs( json_start_at = start_at.isoformat() params["start_at"] = json_start_at + params["head"] = head + + params["tail"] = tail + params = {k: v for k, v in params.items() if v is not UNSET and v is not None} _kwargs: dict[str, Any] = { @@ -68,6 +74,8 @@ def sync_detailed( *, client: AuthenticatedClient, start_at: datetime.datetime | Unset = UNSET, + head: int | Unset = UNSET, + tail: int | Unset = UNSET, ) -> Response[DescribeRunLogsResponse | ErrorModel]: """Describe run logs @@ -77,6 +85,8 @@ def sync_detailed( name (str): The name of the app to get logs for. seq (int): The sequence number of the run to get logs for. start_at (datetime.datetime | Unset): Fetch logs from this timestamp onwards (inclusive). + head (int | Unset): Return only the first N log lines. Cannot be combined with tail. + tail (int | Unset): Return only the last N log lines. Cannot be combined with head. Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -90,6 +100,8 @@ def sync_detailed( name=name, seq=seq, start_at=start_at, + head=head, + tail=tail, ) response = client.get_httpx_client().request( @@ -105,6 +117,8 @@ def sync( *, client: AuthenticatedClient, start_at: datetime.datetime | Unset = UNSET, + head: int | Unset = UNSET, + tail: int | Unset = UNSET, ) -> DescribeRunLogsResponse | ErrorModel | None: """Describe run logs @@ -114,6 +128,8 @@ def sync( name (str): The name of the app to get logs for. seq (int): The sequence number of the run to get logs for. start_at (datetime.datetime | Unset): Fetch logs from this timestamp onwards (inclusive). + head (int | Unset): Return only the first N log lines. Cannot be combined with tail. + tail (int | Unset): Return only the last N log lines. Cannot be combined with head. Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -128,6 +144,8 @@ def sync( seq=seq, client=client, start_at=start_at, + head=head, + tail=tail, ).parsed @@ -137,6 +155,8 @@ async def asyncio_detailed( *, client: AuthenticatedClient, start_at: datetime.datetime | Unset = UNSET, + head: int | Unset = UNSET, + tail: int | Unset = UNSET, ) -> Response[DescribeRunLogsResponse | ErrorModel]: """Describe run logs @@ -146,6 +166,8 @@ async def asyncio_detailed( name (str): The name of the app to get logs for. seq (int): The sequence number of the run to get logs for. start_at (datetime.datetime | Unset): Fetch logs from this timestamp onwards (inclusive). + head (int | Unset): Return only the first N log lines. Cannot be combined with tail. + tail (int | Unset): Return only the last N log lines. Cannot be combined with head. Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -159,6 +181,8 @@ async def asyncio_detailed( name=name, seq=seq, start_at=start_at, + head=head, + tail=tail, ) response = await client.get_async_httpx_client().request(**kwargs) @@ -172,6 +196,8 @@ async def asyncio( *, client: AuthenticatedClient, start_at: datetime.datetime | Unset = UNSET, + head: int | Unset = UNSET, + tail: int | Unset = UNSET, ) -> DescribeRunLogsResponse | ErrorModel | None: """Describe run logs @@ -181,6 +207,8 @@ async def asyncio( name (str): The name of the app to get logs for. seq (int): The sequence number of the run to get logs for. start_at (datetime.datetime | Unset): Fetch logs from this timestamp onwards (inclusive). + head (int | Unset): Return only the first N log lines. Cannot be combined with tail. + tail (int | Unset): Return only the last N log lines. Cannot be combined with head. Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -196,5 +224,7 @@ async def asyncio( seq=seq, client=client, start_at=start_at, + head=head, + tail=tail, ) ).parsed diff --git a/src/tower/tower_api_client/api/default/list_apps.py b/src/tower/tower_api_client/api/default/list_apps.py index c71e0f10..ffe82f04 100644 --- a/src/tower/tower_api_client/api/default/list_apps.py +++ b/src/tower/tower_api_client/api/default/list_apps.py @@ -15,6 +15,7 @@ def _get_kwargs( *, page: int | Unset = 1, page_size: int | Unset = 20, + tag_filter: str | Unset = UNSET, query: str | Unset = UNSET, num_runs: int | Unset = 20, sort: ListAppsSort | Unset = ListAppsSort.CREATED_AT, @@ -27,6 +28,8 @@ def _get_kwargs( params["page_size"] = page_size + params["tag_filter"] = tag_filter + params["query"] = query params["num_runs"] = num_runs @@ -85,6 +88,7 @@ def sync_detailed( client: AuthenticatedClient, page: int | Unset = 1, page_size: int | Unset = 20, + tag_filter: str | Unset = UNSET, query: str | Unset = UNSET, num_runs: int | Unset = 20, sort: ListAppsSort | Unset = ListAppsSort.CREATED_AT, @@ -98,6 +102,9 @@ def sync_detailed( Args: page (int | Unset): The page number to fetch. Default: 1. page_size (int | Unset): The number of records to fetch on each page. Default: 20. + tag_filter (str | Unset): The tag query to filter apps by. Provide a serialized TagFilter + as the value for the parameter. Example: + tag_filter={"op":"eq","name":"foo","value":"bar"}. query (str | Unset): The search query to filter apps by. num_runs (int | Unset): Number of recent runs to fetch (-1 for all runs, defaults to 20) Default: 20. @@ -117,6 +124,7 @@ def sync_detailed( kwargs = _get_kwargs( page=page, page_size=page_size, + tag_filter=tag_filter, query=query, num_runs=num_runs, sort=sort, @@ -136,6 +144,7 @@ def sync( client: AuthenticatedClient, page: int | Unset = 1, page_size: int | Unset = 20, + tag_filter: str | Unset = UNSET, query: str | Unset = UNSET, num_runs: int | Unset = 20, sort: ListAppsSort | Unset = ListAppsSort.CREATED_AT, @@ -149,6 +158,9 @@ def sync( Args: page (int | Unset): The page number to fetch. Default: 1. page_size (int | Unset): The number of records to fetch on each page. Default: 20. + tag_filter (str | Unset): The tag query to filter apps by. Provide a serialized TagFilter + as the value for the parameter. Example: + tag_filter={"op":"eq","name":"foo","value":"bar"}. query (str | Unset): The search query to filter apps by. num_runs (int | Unset): Number of recent runs to fetch (-1 for all runs, defaults to 20) Default: 20. @@ -169,6 +181,7 @@ def sync( client=client, page=page, page_size=page_size, + tag_filter=tag_filter, query=query, num_runs=num_runs, sort=sort, @@ -182,6 +195,7 @@ async def asyncio_detailed( client: AuthenticatedClient, page: int | Unset = 1, page_size: int | Unset = 20, + tag_filter: str | Unset = UNSET, query: str | Unset = UNSET, num_runs: int | Unset = 20, sort: ListAppsSort | Unset = ListAppsSort.CREATED_AT, @@ -195,6 +209,9 @@ async def asyncio_detailed( Args: page (int | Unset): The page number to fetch. Default: 1. page_size (int | Unset): The number of records to fetch on each page. Default: 20. + tag_filter (str | Unset): The tag query to filter apps by. Provide a serialized TagFilter + as the value for the parameter. Example: + tag_filter={"op":"eq","name":"foo","value":"bar"}. query (str | Unset): The search query to filter apps by. num_runs (int | Unset): Number of recent runs to fetch (-1 for all runs, defaults to 20) Default: 20. @@ -214,6 +231,7 @@ async def asyncio_detailed( kwargs = _get_kwargs( page=page, page_size=page_size, + tag_filter=tag_filter, query=query, num_runs=num_runs, sort=sort, @@ -231,6 +249,7 @@ async def asyncio( client: AuthenticatedClient, page: int | Unset = 1, page_size: int | Unset = 20, + tag_filter: str | Unset = UNSET, query: str | Unset = UNSET, num_runs: int | Unset = 20, sort: ListAppsSort | Unset = ListAppsSort.CREATED_AT, @@ -244,6 +263,9 @@ async def asyncio( Args: page (int | Unset): The page number to fetch. Default: 1. page_size (int | Unset): The number of records to fetch on each page. Default: 20. + tag_filter (str | Unset): The tag query to filter apps by. Provide a serialized TagFilter + as the value for the parameter. Example: + tag_filter={"op":"eq","name":"foo","value":"bar"}. query (str | Unset): The search query to filter apps by. num_runs (int | Unset): Number of recent runs to fetch (-1 for all runs, defaults to 20) Default: 20. @@ -265,6 +287,7 @@ async def asyncio( client=client, page=page, page_size=page_size, + tag_filter=tag_filter, query=query, num_runs=num_runs, sort=sort, diff --git a/src/tower/tower_api_client/api/default/list_catalog_facts.py b/src/tower/tower_api_client/api/default/list_catalog_facts.py new file mode 100644 index 00000000..5556b7ad --- /dev/null +++ b/src/tower/tower_api_client/api/default/list_catalog_facts.py @@ -0,0 +1,224 @@ +from http import HTTPStatus +from typing import Any +from urllib.parse import quote + +import httpx + +from ...client import AuthenticatedClient, Client +from ...models.error_model import ErrorModel +from ...models.list_catalog_facts_response import ListCatalogFactsResponse +from ...types import UNSET, Response, Unset + + +def _get_kwargs( + catalog: str, + *, + environment: str | Unset = "default", + scope: str | Unset = UNSET, + object_: str | Unset = UNSET, +) -> dict[str, Any]: + params: dict[str, Any] = {} + + params["environment"] = environment + + params["scope"] = scope + + params["object"] = object_ + + params = {k: v for k, v in params.items() if v is not UNSET and v is not None} + + _kwargs: dict[str, Any] = { + "method": "get", + "url": "/catalogs/{catalog}/facts".format( + catalog=quote(str(catalog), safe=""), + ), + "params": params, + } + + return _kwargs + + +def _parse_response( + *, client: AuthenticatedClient | Client, response: httpx.Response +) -> ErrorModel | ListCatalogFactsResponse: + if response.status_code == 200: + response_200 = ListCatalogFactsResponse.from_dict(response.json()) + + return response_200 + + response_default = ErrorModel.from_dict(response.json()) + + return response_default + + +def _build_response( + *, client: AuthenticatedClient | Client, response: httpx.Response +) -> Response[ErrorModel | ListCatalogFactsResponse]: + return Response( + status_code=HTTPStatus(response.status_code), + content=response.content, + headers=response.headers, + parsed=_parse_response(client=client, response=response), + ) + + +def sync_detailed( + catalog: str, + *, + client: AuthenticatedClient, + environment: str | Unset = "default", + scope: str | Unset = UNSET, + object_: str | Unset = UNSET, +) -> Response[ErrorModel | ListCatalogFactsResponse]: + """List catalog facts + + Lists the semantic metadata facts attached to a catalog, optionally filtered by scope and/or object + path. + + Args: + catalog (str): The name of the catalog. + environment (str | Unset): The environment of the catalog. Default: 'default'. + scope (str | Unset): Filter facts by scope. When omitted, facts of every scope are + returned. + object_ (str | Unset): Filter facts by object path (exact match). When omitted, facts + about any object are returned. + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + Response[ErrorModel | ListCatalogFactsResponse] + """ + + kwargs = _get_kwargs( + catalog=catalog, + environment=environment, + scope=scope, + object_=object_, + ) + + response = client.get_httpx_client().request( + **kwargs, + ) + + return _build_response(client=client, response=response) + + +def sync( + catalog: str, + *, + client: AuthenticatedClient, + environment: str | Unset = "default", + scope: str | Unset = UNSET, + object_: str | Unset = UNSET, +) -> ErrorModel | ListCatalogFactsResponse | None: + """List catalog facts + + Lists the semantic metadata facts attached to a catalog, optionally filtered by scope and/or object + path. + + Args: + catalog (str): The name of the catalog. + environment (str | Unset): The environment of the catalog. Default: 'default'. + scope (str | Unset): Filter facts by scope. When omitted, facts of every scope are + returned. + object_ (str | Unset): Filter facts by object path (exact match). When omitted, facts + about any object are returned. + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + ErrorModel | ListCatalogFactsResponse + """ + + return sync_detailed( + catalog=catalog, + client=client, + environment=environment, + scope=scope, + object_=object_, + ).parsed + + +async def asyncio_detailed( + catalog: str, + *, + client: AuthenticatedClient, + environment: str | Unset = "default", + scope: str | Unset = UNSET, + object_: str | Unset = UNSET, +) -> Response[ErrorModel | ListCatalogFactsResponse]: + """List catalog facts + + Lists the semantic metadata facts attached to a catalog, optionally filtered by scope and/or object + path. + + Args: + catalog (str): The name of the catalog. + environment (str | Unset): The environment of the catalog. Default: 'default'. + scope (str | Unset): Filter facts by scope. When omitted, facts of every scope are + returned. + object_ (str | Unset): Filter facts by object path (exact match). When omitted, facts + about any object are returned. + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + Response[ErrorModel | ListCatalogFactsResponse] + """ + + kwargs = _get_kwargs( + catalog=catalog, + environment=environment, + scope=scope, + object_=object_, + ) + + response = await client.get_async_httpx_client().request(**kwargs) + + return _build_response(client=client, response=response) + + +async def asyncio( + catalog: str, + *, + client: AuthenticatedClient, + environment: str | Unset = "default", + scope: str | Unset = UNSET, + object_: str | Unset = UNSET, +) -> ErrorModel | ListCatalogFactsResponse | None: + """List catalog facts + + Lists the semantic metadata facts attached to a catalog, optionally filtered by scope and/or object + path. + + Args: + catalog (str): The name of the catalog. + environment (str | Unset): The environment of the catalog. Default: 'default'. + scope (str | Unset): Filter facts by scope. When omitted, facts of every scope are + returned. + object_ (str | Unset): Filter facts by object path (exact match). When omitted, facts + about any object are returned. + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + ErrorModel | ListCatalogFactsResponse + """ + + return ( + await asyncio_detailed( + catalog=catalog, + client=client, + environment=environment, + scope=scope, + object_=object_, + ) + ).parsed diff --git a/src/tower/tower_api_client/api/default/update_app.py b/src/tower/tower_api_client/api/default/update_app.py index 6e68bd0c..ed8917ac 100644 --- a/src/tower/tower_api_client/api/default/update_app.py +++ b/src/tower/tower_api_client/api/default/update_app.py @@ -4,19 +4,23 @@ import httpx +from ... import errors from ...client import AuthenticatedClient, Client from ...models.error_model import ErrorModel from ...models.update_app_params import UpdateAppParams from ...models.update_app_response import UpdateAppResponse -from ...types import Response +from ...types import UNSET, Response, Unset def _get_kwargs( name: str, *, body: UpdateAppParams, + x_tower_request_number: int | Unset = UNSET, ) -> dict[str, Any]: headers: dict[str, Any] = {} + if not isinstance(x_tower_request_number, Unset): + headers["X-Tower-Request-Number"] = str(x_tower_request_number) _kwargs: dict[str, Any] = { "method": "put", @@ -35,15 +39,31 @@ def _get_kwargs( def _parse_response( *, client: AuthenticatedClient | Client, response: httpx.Response -) -> ErrorModel | UpdateAppResponse: +) -> ErrorModel | UpdateAppResponse | None: if response.status_code == 200: response_200 = UpdateAppResponse.from_dict(response.json()) return response_200 - response_default = ErrorModel.from_dict(response.json()) + if response.status_code == 412: + response_412 = ErrorModel.from_dict(response.json()) + + return response_412 + + if response.status_code == 422: + response_422 = ErrorModel.from_dict(response.json()) + + return response_422 + + if response.status_code == 500: + response_500 = ErrorModel.from_dict(response.json()) + + return response_500 - return response_default + if client.raise_on_unexpected_status: + raise errors.UnexpectedStatus(response.status_code, response.content) + else: + return None def _build_response( @@ -62,6 +82,7 @@ def sync_detailed( *, client: AuthenticatedClient, body: UpdateAppParams, + x_tower_request_number: int | Unset = UNSET, ) -> Response[ErrorModel | UpdateAppResponse]: """Update app @@ -69,6 +90,9 @@ def sync_detailed( Args: name (str): The name of the App to update. + x_tower_request_number (int | Unset): Optional account-scoped monotonic sequence token + used to reject out-of-order writes. See the fence documentation for the acceptance window + and retry behavior. body (UpdateAppParams): Raises: @@ -82,6 +106,7 @@ def sync_detailed( kwargs = _get_kwargs( name=name, body=body, + x_tower_request_number=x_tower_request_number, ) response = client.get_httpx_client().request( @@ -96,6 +121,7 @@ def sync( *, client: AuthenticatedClient, body: UpdateAppParams, + x_tower_request_number: int | Unset = UNSET, ) -> ErrorModel | UpdateAppResponse | None: """Update app @@ -103,6 +129,9 @@ def sync( Args: name (str): The name of the App to update. + x_tower_request_number (int | Unset): Optional account-scoped monotonic sequence token + used to reject out-of-order writes. See the fence documentation for the acceptance window + and retry behavior. body (UpdateAppParams): Raises: @@ -117,6 +146,7 @@ def sync( name=name, client=client, body=body, + x_tower_request_number=x_tower_request_number, ).parsed @@ -125,6 +155,7 @@ async def asyncio_detailed( *, client: AuthenticatedClient, body: UpdateAppParams, + x_tower_request_number: int | Unset = UNSET, ) -> Response[ErrorModel | UpdateAppResponse]: """Update app @@ -132,6 +163,9 @@ async def asyncio_detailed( Args: name (str): The name of the App to update. + x_tower_request_number (int | Unset): Optional account-scoped monotonic sequence token + used to reject out-of-order writes. See the fence documentation for the acceptance window + and retry behavior. body (UpdateAppParams): Raises: @@ -145,6 +179,7 @@ async def asyncio_detailed( kwargs = _get_kwargs( name=name, body=body, + x_tower_request_number=x_tower_request_number, ) response = await client.get_async_httpx_client().request(**kwargs) @@ -157,6 +192,7 @@ async def asyncio( *, client: AuthenticatedClient, body: UpdateAppParams, + x_tower_request_number: int | Unset = UNSET, ) -> ErrorModel | UpdateAppResponse | None: """Update app @@ -164,6 +200,9 @@ async def asyncio( Args: name (str): The name of the App to update. + x_tower_request_number (int | Unset): Optional account-scoped monotonic sequence token + used to reject out-of-order writes. See the fence documentation for the acceptance window + and retry behavior. body (UpdateAppParams): Raises: @@ -179,5 +218,6 @@ async def asyncio( name=name, client=client, body=body, + x_tower_request_number=x_tower_request_number, ) ).parsed diff --git a/src/tower/tower_api_client/api/default/update_catalog.py b/src/tower/tower_api_client/api/default/update_catalog.py index 446a800c..136bdb82 100644 --- a/src/tower/tower_api_client/api/default/update_catalog.py +++ b/src/tower/tower_api_client/api/default/update_catalog.py @@ -41,6 +41,31 @@ def _parse_response( return response_200 + if response.status_code == 401: + response_401 = ErrorModel.from_dict(response.json()) + + return response_401 + + if response.status_code == 403: + response_403 = ErrorModel.from_dict(response.json()) + + return response_403 + + if response.status_code == 404: + response_404 = ErrorModel.from_dict(response.json()) + + return response_404 + + if response.status_code == 422: + response_422 = ErrorModel.from_dict(response.json()) + + return response_422 + + if response.status_code == 500: + response_500 = ErrorModel.from_dict(response.json()) + + return response_500 + response_default = ErrorModel.from_dict(response.json()) return response_default diff --git a/src/tower/tower_api_client/api/default/update_catalog_fact.py b/src/tower/tower_api_client/api/default/update_catalog_fact.py new file mode 100644 index 00000000..9fbbcb40 --- /dev/null +++ b/src/tower/tower_api_client/api/default/update_catalog_fact.py @@ -0,0 +1,221 @@ +from http import HTTPStatus +from typing import Any +from urllib.parse import quote + +import httpx + +from ...client import AuthenticatedClient, Client +from ...models.error_model import ErrorModel +from ...models.update_catalog_fact_body import UpdateCatalogFactBody +from ...models.update_catalog_fact_response import UpdateCatalogFactResponse +from ...types import UNSET, Response, Unset + + +def _get_kwargs( + catalog: str, + name: str, + *, + body: UpdateCatalogFactBody, + environment: str | Unset = "default", +) -> dict[str, Any]: + headers: dict[str, Any] = {} + + params: dict[str, Any] = {} + + params["environment"] = environment + + params = {k: v for k, v in params.items() if v is not UNSET and v is not None} + + _kwargs: dict[str, Any] = { + "method": "put", + "url": "/catalogs/{catalog}/facts/{name}".format( + catalog=quote(str(catalog), safe=""), + name=quote(str(name), safe=""), + ), + "params": params, + } + + _kwargs["json"] = body.to_dict() + + headers["Content-Type"] = "application/json" + + _kwargs["headers"] = headers + return _kwargs + + +def _parse_response( + *, client: AuthenticatedClient | Client, response: httpx.Response +) -> ErrorModel | UpdateCatalogFactResponse: + if response.status_code == 200: + response_200 = UpdateCatalogFactResponse.from_dict(response.json()) + + return response_200 + + response_default = ErrorModel.from_dict(response.json()) + + return response_default + + +def _build_response( + *, client: AuthenticatedClient | Client, response: httpx.Response +) -> Response[ErrorModel | UpdateCatalogFactResponse]: + return Response( + status_code=HTTPStatus(response.status_code), + content=response.content, + headers=response.headers, + parsed=_parse_response(client=client, response=response), + ) + + +def sync_detailed( + catalog: str, + name: str, + *, + client: AuthenticatedClient, + body: UpdateCatalogFactBody, + environment: str | Unset = "default", +) -> Response[ErrorModel | UpdateCatalogFactResponse]: + """Update a catalog fact + + Idempotently sets a semantic metadata fact by name: creates it when the name is new, updates it when + it already exists. An inferred write cannot overwrite an existing confirmed fact. + + Args: + catalog (str): The name of the catalog. + name (str): The name of the fact. + environment (str | Unset): The environment of the catalog. Default: 'default'. + body (UpdateCatalogFactBody): + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + Response[ErrorModel | UpdateCatalogFactResponse] + """ + + kwargs = _get_kwargs( + catalog=catalog, + name=name, + body=body, + environment=environment, + ) + + response = client.get_httpx_client().request( + **kwargs, + ) + + return _build_response(client=client, response=response) + + +def sync( + catalog: str, + name: str, + *, + client: AuthenticatedClient, + body: UpdateCatalogFactBody, + environment: str | Unset = "default", +) -> ErrorModel | UpdateCatalogFactResponse | None: + """Update a catalog fact + + Idempotently sets a semantic metadata fact by name: creates it when the name is new, updates it when + it already exists. An inferred write cannot overwrite an existing confirmed fact. + + Args: + catalog (str): The name of the catalog. + name (str): The name of the fact. + environment (str | Unset): The environment of the catalog. Default: 'default'. + body (UpdateCatalogFactBody): + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + ErrorModel | UpdateCatalogFactResponse + """ + + return sync_detailed( + catalog=catalog, + name=name, + client=client, + body=body, + environment=environment, + ).parsed + + +async def asyncio_detailed( + catalog: str, + name: str, + *, + client: AuthenticatedClient, + body: UpdateCatalogFactBody, + environment: str | Unset = "default", +) -> Response[ErrorModel | UpdateCatalogFactResponse]: + """Update a catalog fact + + Idempotently sets a semantic metadata fact by name: creates it when the name is new, updates it when + it already exists. An inferred write cannot overwrite an existing confirmed fact. + + Args: + catalog (str): The name of the catalog. + name (str): The name of the fact. + environment (str | Unset): The environment of the catalog. Default: 'default'. + body (UpdateCatalogFactBody): + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + Response[ErrorModel | UpdateCatalogFactResponse] + """ + + kwargs = _get_kwargs( + catalog=catalog, + name=name, + body=body, + environment=environment, + ) + + response = await client.get_async_httpx_client().request(**kwargs) + + return _build_response(client=client, response=response) + + +async def asyncio( + catalog: str, + name: str, + *, + client: AuthenticatedClient, + body: UpdateCatalogFactBody, + environment: str | Unset = "default", +) -> ErrorModel | UpdateCatalogFactResponse | None: + """Update a catalog fact + + Idempotently sets a semantic metadata fact by name: creates it when the name is new, updates it when + it already exists. An inferred write cannot overwrite an existing confirmed fact. + + Args: + catalog (str): The name of the catalog. + name (str): The name of the fact. + environment (str | Unset): The environment of the catalog. Default: 'default'. + body (UpdateCatalogFactBody): + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + ErrorModel | UpdateCatalogFactResponse + """ + + return ( + await asyncio_detailed( + catalog=catalog, + name=name, + client=client, + body=body, + environment=environment, + ) + ).parsed diff --git a/src/tower/tower_api_client/api/default/update_environment.py b/src/tower/tower_api_client/api/default/update_environment.py index c0a2f94a..993956a6 100644 --- a/src/tower/tower_api_client/api/default/update_environment.py +++ b/src/tower/tower_api_client/api/default/update_environment.py @@ -41,6 +41,36 @@ def _parse_response( return response_200 + if response.status_code == 401: + response_401 = ErrorModel.from_dict(response.json()) + + return response_401 + + if response.status_code == 403: + response_403 = ErrorModel.from_dict(response.json()) + + return response_403 + + if response.status_code == 404: + response_404 = ErrorModel.from_dict(response.json()) + + return response_404 + + if response.status_code == 409: + response_409 = ErrorModel.from_dict(response.json()) + + return response_409 + + if response.status_code == 422: + response_422 = ErrorModel.from_dict(response.json()) + + return response_422 + + if response.status_code == 500: + response_500 = ErrorModel.from_dict(response.json()) + + return response_500 + response_default = ErrorModel.from_dict(response.json()) return response_default diff --git a/src/tower/tower_api_client/api/default/update_schedule.py b/src/tower/tower_api_client/api/default/update_schedule.py index 33a68f47..8169965c 100644 --- a/src/tower/tower_api_client/api/default/update_schedule.py +++ b/src/tower/tower_api_client/api/default/update_schedule.py @@ -4,19 +4,23 @@ import httpx +from ... import errors from ...client import AuthenticatedClient, Client from ...models.error_model import ErrorModel from ...models.update_schedule_params import UpdateScheduleParams from ...models.update_schedule_response import UpdateScheduleResponse -from ...types import Response +from ...types import UNSET, Response, Unset def _get_kwargs( id_or_name: str, *, body: UpdateScheduleParams, + x_tower_request_number: int | Unset = UNSET, ) -> dict[str, Any]: headers: dict[str, Any] = {} + if not isinstance(x_tower_request_number, Unset): + headers["X-Tower-Request-Number"] = str(x_tower_request_number) _kwargs: dict[str, Any] = { "method": "put", @@ -35,15 +39,31 @@ def _get_kwargs( def _parse_response( *, client: AuthenticatedClient | Client, response: httpx.Response -) -> ErrorModel | UpdateScheduleResponse: +) -> ErrorModel | UpdateScheduleResponse | None: if response.status_code == 200: response_200 = UpdateScheduleResponse.from_dict(response.json()) return response_200 - response_default = ErrorModel.from_dict(response.json()) + if response.status_code == 412: + response_412 = ErrorModel.from_dict(response.json()) + + return response_412 + + if response.status_code == 422: + response_422 = ErrorModel.from_dict(response.json()) + + return response_422 + + if response.status_code == 500: + response_500 = ErrorModel.from_dict(response.json()) + + return response_500 - return response_default + if client.raise_on_unexpected_status: + raise errors.UnexpectedStatus(response.status_code, response.content) + else: + return None def _build_response( @@ -62,6 +82,7 @@ def sync_detailed( *, client: AuthenticatedClient, body: UpdateScheduleParams, + x_tower_request_number: int | Unset = UNSET, ) -> Response[ErrorModel | UpdateScheduleResponse]: """Update schedule @@ -69,6 +90,9 @@ def sync_detailed( Args: id_or_name (str): The ID or name of the schedule to update. + x_tower_request_number (int | Unset): Optional account-scoped monotonic sequence token + used to reject out-of-order writes. See the fence documentation for the acceptance window + and retry behavior. body (UpdateScheduleParams): Raises: @@ -82,6 +106,7 @@ def sync_detailed( kwargs = _get_kwargs( id_or_name=id_or_name, body=body, + x_tower_request_number=x_tower_request_number, ) response = client.get_httpx_client().request( @@ -96,6 +121,7 @@ def sync( *, client: AuthenticatedClient, body: UpdateScheduleParams, + x_tower_request_number: int | Unset = UNSET, ) -> ErrorModel | UpdateScheduleResponse | None: """Update schedule @@ -103,6 +129,9 @@ def sync( Args: id_or_name (str): The ID or name of the schedule to update. + x_tower_request_number (int | Unset): Optional account-scoped monotonic sequence token + used to reject out-of-order writes. See the fence documentation for the acceptance window + and retry behavior. body (UpdateScheduleParams): Raises: @@ -117,6 +146,7 @@ def sync( id_or_name=id_or_name, client=client, body=body, + x_tower_request_number=x_tower_request_number, ).parsed @@ -125,6 +155,7 @@ async def asyncio_detailed( *, client: AuthenticatedClient, body: UpdateScheduleParams, + x_tower_request_number: int | Unset = UNSET, ) -> Response[ErrorModel | UpdateScheduleResponse]: """Update schedule @@ -132,6 +163,9 @@ async def asyncio_detailed( Args: id_or_name (str): The ID or name of the schedule to update. + x_tower_request_number (int | Unset): Optional account-scoped monotonic sequence token + used to reject out-of-order writes. See the fence documentation for the acceptance window + and retry behavior. body (UpdateScheduleParams): Raises: @@ -145,6 +179,7 @@ async def asyncio_detailed( kwargs = _get_kwargs( id_or_name=id_or_name, body=body, + x_tower_request_number=x_tower_request_number, ) response = await client.get_async_httpx_client().request(**kwargs) @@ -157,6 +192,7 @@ async def asyncio( *, client: AuthenticatedClient, body: UpdateScheduleParams, + x_tower_request_number: int | Unset = UNSET, ) -> ErrorModel | UpdateScheduleResponse | None: """Update schedule @@ -164,6 +200,9 @@ async def asyncio( Args: id_or_name (str): The ID or name of the schedule to update. + x_tower_request_number (int | Unset): Optional account-scoped monotonic sequence token + used to reject out-of-order writes. See the fence documentation for the acceptance window + and retry behavior. body (UpdateScheduleParams): Raises: @@ -179,5 +218,6 @@ async def asyncio( id_or_name=id_or_name, client=client, body=body, + x_tower_request_number=x_tower_request_number, ) ).parsed diff --git a/src/tower/tower_api_client/models/__init__.py b/src/tower/tower_api_client/models/__init__.py index 956c7b07..15753bba 100644 --- a/src/tower/tower_api_client/models/__init__.py +++ b/src/tower/tower_api_client/models/__init__.py @@ -12,14 +12,25 @@ from .app_statistics import AppStatistics from .app_status import AppStatus from .app_summary import AppSummary +from .app_tag import AppTag from .app_version import AppVersion from .authentication_context import AuthenticationContext +from .batch_describe_runs_logs_params import BatchDescribeRunsLogsParams +from .batch_describe_runs_params import BatchDescribeRunsParams +from .batch_describe_runs_response import BatchDescribeRunsResponse +from .batch_error import BatchError +from .batch_run_and_links import BatchRunAndLinks from .batch_schedule_params import BatchScheduleParams from .batch_schedule_response import BatchScheduleResponse +from .batched_run_log_lines import BatchedRunLogLines from .cancel_run_response import CancelRunResponse from .catalog import Catalog from .catalog_credentials import CatalogCredentials +from .catalog_fact import CatalogFact +from .catalog_fact_confidence import CatalogFactConfidence +from .catalog_fact_scope import CatalogFactScope from .catalog_property import CatalogProperty +from .catalog_usage import CatalogUsage from .claim_device_login_ticket_params import ClaimDeviceLoginTicketParams from .claim_device_login_ticket_response import ClaimDeviceLoginTicketResponse from .create_account_params import CreateAccountParams @@ -79,7 +90,9 @@ from .describe_app_response import DescribeAppResponse from .describe_app_version_response import DescribeAppVersionResponse from .describe_authentication_context_body import DescribeAuthenticationContextBody +from .describe_catalog_fact_response import DescribeCatalogFactResponse from .describe_catalog_response import DescribeCatalogResponse +from .describe_catalog_usage_response import DescribeCatalogUsageResponse from .describe_device_login_session_response import DescribeDeviceLoginSessionResponse from .describe_email_preferences_body import DescribeEmailPreferencesBody from .describe_environment_response import DescribeEnvironmentResponse @@ -131,6 +144,7 @@ from .list_apps_filter import ListAppsFilter from .list_apps_response import ListAppsResponse from .list_apps_sort import ListAppsSort +from .list_catalog_facts_response import ListCatalogFactsResponse from .list_catalogs_response import ListCatalogsResponse from .list_environments_response import ListEnvironmentsResponse from .list_guests_response import ListGuestsResponse @@ -148,6 +162,7 @@ from .list_teams_response import ListTeamsResponse from .list_webhooks_response import ListWebhooksResponse from .organization import Organization +from .organization_storage_usage import OrganizationStorageUsage from .organization_usage import OrganizationUsage from .pagination import Pagination from .parameter import Parameter @@ -161,6 +176,7 @@ from .resend_team_invitation_params import ResendTeamInvitationParams from .resend_team_invitation_response import ResendTeamInvitationResponse from .run import Run +from .run_and_links import RunAndLinks from .run_app_initiator_data import RunAppInitiatorData from .run_app_initiator_data_type import RunAppInitiatorDataType from .run_app_params import RunAppParams @@ -173,6 +189,7 @@ from .run_graph_node import RunGraphNode from .run_graph_run_id import RunGraphRunID from .run_initiator import RunInitiator +from .run_links import RunLinks from .run_log_line import RunLogLine from .run_log_line_channel import RunLogLineChannel from .run_parameter import RunParameter @@ -210,6 +227,8 @@ from .stream_run_logs_event_warning import StreamRunLogsEventWarning from .stream_shouldertaps_event_shouldertap import StreamShouldertapsEventShouldertap from .stream_shouldertaps_event_warning import StreamShouldertapsEventWarning +from .tag_filter import TagFilter +from .tag_filter_op import TagFilterOp from .team import Team from .team_invitation import TeamInvitation from .team_membership import TeamMembership @@ -223,6 +242,10 @@ from .update_app_environment_response import UpdateAppEnvironmentResponse from .update_app_params import UpdateAppParams from .update_app_response import UpdateAppResponse +from .update_catalog_fact_body import UpdateCatalogFactBody +from .update_catalog_fact_body_confidence import UpdateCatalogFactBodyConfidence +from .update_catalog_fact_body_scope import UpdateCatalogFactBodyScope +from .update_catalog_fact_response import UpdateCatalogFactResponse from .update_catalog_params import UpdateCatalogParams from .update_catalog_response import UpdateCatalogResponse from .update_email_preferences_body import UpdateEmailPreferencesBody @@ -276,14 +299,25 @@ "AppStatistics", "AppStatus", "AppSummary", + "AppTag", "AppVersion", "AuthenticationContext", + "BatchDescribeRunsLogsParams", + "BatchDescribeRunsParams", + "BatchDescribeRunsResponse", + "BatchedRunLogLines", + "BatchError", + "BatchRunAndLinks", "BatchScheduleParams", "BatchScheduleResponse", "CancelRunResponse", "Catalog", "CatalogCredentials", + "CatalogFact", + "CatalogFactConfidence", + "CatalogFactScope", "CatalogProperty", + "CatalogUsage", "ClaimDeviceLoginTicketParams", "ClaimDeviceLoginTicketResponse", "CreateAccountParams", @@ -343,7 +377,9 @@ "DescribeAppResponse", "DescribeAppVersionResponse", "DescribeAuthenticationContextBody", + "DescribeCatalogFactResponse", "DescribeCatalogResponse", + "DescribeCatalogUsageResponse", "DescribeDeviceLoginSessionResponse", "DescribeEmailPreferencesBody", "DescribeEnvironmentResponse", @@ -391,6 +427,7 @@ "ListAppsResponse", "ListAppsSort", "ListAppVersionsResponse", + "ListCatalogFactsResponse", "ListCatalogsResponse", "ListEnvironmentsResponse", "ListGuestsResponse", @@ -408,6 +445,7 @@ "ListTeamsResponse", "ListWebhooksResponse", "Organization", + "OrganizationStorageUsage", "OrganizationUsage", "Pagination", "Parameter", @@ -421,6 +459,7 @@ "ResendTeamInvitationParams", "ResendTeamInvitationResponse", "Run", + "RunAndLinks", "RunAppInitiatorData", "RunAppInitiatorDataType", "RunAppParams", @@ -433,6 +472,7 @@ "RunGraphNode", "RunGraphRunID", "RunInitiator", + "RunLinks", "RunLogLine", "RunLogLineChannel", "Runner", @@ -470,6 +510,8 @@ "StreamRunLogsEventWarning", "StreamShouldertapsEventShouldertap", "StreamShouldertapsEventWarning", + "TagFilter", + "TagFilterOp", "Team", "TeamInvitation", "TeamMembership", @@ -483,6 +525,10 @@ "UpdateAppEnvironmentResponse", "UpdateAppParams", "UpdateAppResponse", + "UpdateCatalogFactBody", + "UpdateCatalogFactBodyConfidence", + "UpdateCatalogFactBodyScope", + "UpdateCatalogFactResponse", "UpdateCatalogParams", "UpdateCatalogResponse", "UpdateEmailPreferencesBody", diff --git a/src/tower/tower_api_client/models/app.py b/src/tower/tower_api_client/models/app.py index 73d7656b..6dc69873 100644 --- a/src/tower/tower_api_client/models/app.py +++ b/src/tower/tower_api_client/models/app.py @@ -12,6 +12,7 @@ from ..types import UNSET, Unset if TYPE_CHECKING: + from ..models.app_tag import AppTag from ..models.run import Run from ..models.run_results import RunResults from ..models.run_retry_policy import RunRetryPolicy @@ -26,6 +27,7 @@ class App: Attributes: created_at (datetime.datetime): The date and time this app was created. health_status (AppHealthStatus): This property is deprecated. It will always be 'healthy'. + is_example (bool): Whether this app was deployed from the Tower examples catalog. is_externally_accessible (bool): name (str): The name of the app. next_run_at (datetime.datetime | None): The next time this app will run as part of it's schedule, null if none. @@ -43,10 +45,12 @@ class App: slug (str | Unset): This property is deprecated. Use name instead. status (AppStatus | Unset): The status of the app. subdomain (str | Unset): The subdomain that this app is accessible via. Must be externally accessible first. + tags (list[AppTag] | Unset): The tags applied to the app. """ created_at: datetime.datetime health_status: AppHealthStatus + is_example: bool is_externally_accessible: bool name: str next_run_at: datetime.datetime | None @@ -62,12 +66,15 @@ class App: slug: str | Unset = UNSET status: AppStatus | Unset = UNSET subdomain: str | Unset = UNSET + tags: list[AppTag] | Unset = UNSET def to_dict(self) -> dict[str, Any]: created_at = self.created_at.isoformat() health_status = self.health_status.value + is_example = self.is_example + is_externally_accessible = self.is_externally_accessible name = self.name @@ -112,12 +119,20 @@ def to_dict(self) -> dict[str, Any]: subdomain = self.subdomain + tags: list[dict[str, Any]] | Unset = UNSET + if not isinstance(self.tags, Unset): + tags = [] + for tags_item_data in self.tags: + tags_item = tags_item_data.to_dict() + tags.append(tags_item) + field_dict: dict[str, Any] = {} field_dict.update( { "created_at": created_at, "health_status": health_status, + "is_example": is_example, "is_externally_accessible": is_externally_accessible, "name": name, "next_run_at": next_run_at, @@ -141,11 +156,14 @@ def to_dict(self) -> dict[str, Any]: field_dict["status"] = status if subdomain is not UNSET: field_dict["subdomain"] = subdomain + if tags is not UNSET: + field_dict["tags"] = tags return field_dict @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + from ..models.app_tag import AppTag from ..models.run import Run from ..models.run_results import RunResults from ..models.run_retry_policy import RunRetryPolicy @@ -155,6 +173,8 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: health_status = AppHealthStatus(d.pop("health_status")) + is_example = d.pop("is_example") + is_externally_accessible = d.pop("is_externally_accessible") name = d.pop("name") @@ -228,9 +248,19 @@ def _parse_version(data: object) -> None | str: subdomain = d.pop("subdomain", UNSET) + _tags = d.pop("tags", UNSET) + tags: list[AppTag] | Unset = UNSET + if _tags is not UNSET: + tags = [] + for tags_item_data in _tags: + tags_item = AppTag.from_dict(tags_item_data) + + tags.append(tags_item) + app = cls( created_at=created_at, health_status=health_status, + is_example=is_example, is_externally_accessible=is_externally_accessible, name=name, next_run_at=next_run_at, @@ -246,6 +276,7 @@ def _parse_version(data: object) -> None | str: slug=slug, status=status, subdomain=subdomain, + tags=tags, ) return app diff --git a/src/tower/tower_api_client/models/app_tag.py b/src/tower/tower_api_client/models/app_tag.py new file mode 100644 index 00000000..79fdb7ad --- /dev/null +++ b/src/tower/tower_api_client/models/app_tag.py @@ -0,0 +1,50 @@ +from __future__ import annotations + +from collections.abc import Mapping +from typing import Any, TypeVar + +from attrs import define as _attrs_define + +T = TypeVar("T", bound="AppTag") + + +@_attrs_define +class AppTag: + """ + Attributes: + name (str): + value (str): + """ + + name: str + value: str + + def to_dict(self) -> dict[str, Any]: + name = self.name + + value = self.value + + field_dict: dict[str, Any] = {} + + field_dict.update( + { + "name": name, + "value": value, + } + ) + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + d = dict(src_dict) + name = d.pop("name") + + value = d.pop("value") + + app_tag = cls( + name=name, + value=value, + ) + + return app_tag diff --git a/src/tower/tower_api_client/models/batch_describe_runs_logs_params.py b/src/tower/tower_api_client/models/batch_describe_runs_logs_params.py new file mode 100644 index 00000000..9d558855 --- /dev/null +++ b/src/tower/tower_api_client/models/batch_describe_runs_logs_params.py @@ -0,0 +1,124 @@ +from __future__ import annotations + +import datetime +from collections.abc import Mapping +from typing import Any, TypeVar, cast + +from attrs import define as _attrs_define +from dateutil.parser import isoparse + +from ..types import UNSET, Unset + +T = TypeVar("T", bound="BatchDescribeRunsLogsParams") + + +@_attrs_define +class BatchDescribeRunsLogsParams: + """ + Attributes: + name (str): The name of the app to describe the run for. + seq (int): The number of the run to describe. + head (int | None | Unset): Return only the first N log lines. Cannot be combined with tail. + start_at (datetime.datetime | None | Unset): Fetch logs from this timestamp onwards (inclusive). + tail (int | None | Unset): Return only the last N log lines. Cannot be combined with head. + """ + + name: str + seq: int + head: int | None | Unset = UNSET + start_at: datetime.datetime | None | Unset = UNSET + tail: int | None | Unset = UNSET + + def to_dict(self) -> dict[str, Any]: + name = self.name + + seq = self.seq + + head: int | None | Unset + if isinstance(self.head, Unset): + head = UNSET + else: + head = self.head + + start_at: None | str | Unset + if isinstance(self.start_at, Unset): + start_at = UNSET + elif isinstance(self.start_at, datetime.datetime): + start_at = self.start_at.isoformat() + else: + start_at = self.start_at + + tail: int | None | Unset + if isinstance(self.tail, Unset): + tail = UNSET + else: + tail = self.tail + + field_dict: dict[str, Any] = {} + + field_dict.update( + { + "name": name, + "seq": seq, + } + ) + if head is not UNSET: + field_dict["head"] = head + if start_at is not UNSET: + field_dict["start_at"] = start_at + if tail is not UNSET: + field_dict["tail"] = tail + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + d = dict(src_dict) + name = d.pop("name") + + seq = d.pop("seq") + + def _parse_head(data: object) -> int | None | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + return cast(int | None | Unset, data) + + head = _parse_head(d.pop("head", UNSET)) + + def _parse_start_at(data: object) -> datetime.datetime | None | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + start_at_type_0 = isoparse(data) + + return start_at_type_0 + except (TypeError, ValueError, AttributeError, KeyError): + pass + return cast(datetime.datetime | None | Unset, data) + + start_at = _parse_start_at(d.pop("start_at", UNSET)) + + def _parse_tail(data: object) -> int | None | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + return cast(int | None | Unset, data) + + tail = _parse_tail(d.pop("tail", UNSET)) + + batch_describe_runs_logs_params = cls( + name=name, + seq=seq, + head=head, + start_at=start_at, + tail=tail, + ) + + return batch_describe_runs_logs_params diff --git a/src/tower/tower_api_client/models/batch_describe_runs_params.py b/src/tower/tower_api_client/models/batch_describe_runs_params.py new file mode 100644 index 00000000..66fe7b53 --- /dev/null +++ b/src/tower/tower_api_client/models/batch_describe_runs_params.py @@ -0,0 +1,50 @@ +from __future__ import annotations + +from collections.abc import Mapping +from typing import Any, TypeVar + +from attrs import define as _attrs_define + +T = TypeVar("T", bound="BatchDescribeRunsParams") + + +@_attrs_define +class BatchDescribeRunsParams: + """ + Attributes: + name (str): The name of the app to describe the run for. + seq (int): The number of the run to describe. + """ + + name: str + seq: int + + def to_dict(self) -> dict[str, Any]: + name = self.name + + seq = self.seq + + field_dict: dict[str, Any] = {} + + field_dict.update( + { + "name": name, + "seq": seq, + } + ) + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + d = dict(src_dict) + name = d.pop("name") + + seq = d.pop("seq") + + batch_describe_runs_params = cls( + name=name, + seq=seq, + ) + + return batch_describe_runs_params diff --git a/src/tower/tower_api_client/models/batch_describe_runs_response.py b/src/tower/tower_api_client/models/batch_describe_runs_response.py new file mode 100644 index 00000000..5b23963c --- /dev/null +++ b/src/tower/tower_api_client/models/batch_describe_runs_response.py @@ -0,0 +1,68 @@ +from __future__ import annotations + +from collections.abc import Mapping +from typing import TYPE_CHECKING, Any, TypeVar + +from attrs import define as _attrs_define + +from ..types import UNSET, Unset + +if TYPE_CHECKING: + from ..models.batch_run_and_links import BatchRunAndLinks + + +T = TypeVar("T", bound="BatchDescribeRunsResponse") + + +@_attrs_define +class BatchDescribeRunsResponse: + """ + Attributes: + runs (list[BatchRunAndLinks]): + schema (str | Unset): A URL to the JSON Schema for this object. Example: + https://api.tower.dev/v1/schemas/BatchDescribeRunsResponse.json. + """ + + runs: list[BatchRunAndLinks] + schema: str | Unset = UNSET + + def to_dict(self) -> dict[str, Any]: + runs = [] + for runs_item_data in self.runs: + runs_item = runs_item_data.to_dict() + runs.append(runs_item) + + schema = self.schema + + field_dict: dict[str, Any] = {} + + field_dict.update( + { + "runs": runs, + } + ) + if schema is not UNSET: + field_dict["$schema"] = schema + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + from ..models.batch_run_and_links import BatchRunAndLinks + + d = dict(src_dict) + runs = [] + _runs = d.pop("runs") + for runs_item_data in _runs: + runs_item = BatchRunAndLinks.from_dict(runs_item_data) + + runs.append(runs_item) + + schema = d.pop("$schema", UNSET) + + batch_describe_runs_response = cls( + runs=runs, + schema=schema, + ) + + return batch_describe_runs_response diff --git a/src/tower/tower_api_client/models/batch_error.py b/src/tower/tower_api_client/models/batch_error.py new file mode 100644 index 00000000..2b211ba3 --- /dev/null +++ b/src/tower/tower_api_client/models/batch_error.py @@ -0,0 +1,42 @@ +from __future__ import annotations + +from collections.abc import Mapping +from typing import Any, TypeVar + +from attrs import define as _attrs_define + +T = TypeVar("T", bound="BatchError") + + +@_attrs_define +class BatchError: + """ + Attributes: + message (str): + """ + + message: str + + def to_dict(self) -> dict[str, Any]: + message = self.message + + field_dict: dict[str, Any] = {} + + field_dict.update( + { + "message": message, + } + ) + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + d = dict(src_dict) + message = d.pop("message") + + batch_error = cls( + message=message, + ) + + return batch_error diff --git a/src/tower/tower_api_client/models/batch_run_and_links.py b/src/tower/tower_api_client/models/batch_run_and_links.py new file mode 100644 index 00000000..25cc598d --- /dev/null +++ b/src/tower/tower_api_client/models/batch_run_and_links.py @@ -0,0 +1,73 @@ +from __future__ import annotations + +from collections.abc import Mapping +from typing import TYPE_CHECKING, Any, TypeVar + +from attrs import define as _attrs_define + +from ..types import UNSET, Unset + +if TYPE_CHECKING: + from ..models.batch_error import BatchError + from ..models.run_and_links import RunAndLinks + + +T = TypeVar("T", bound="BatchRunAndLinks") + + +@_attrs_define +class BatchRunAndLinks: + """ + Attributes: + data (RunAndLinks | Unset): + error (BatchError | Unset): + """ + + data: RunAndLinks | Unset = UNSET + error: BatchError | Unset = UNSET + + def to_dict(self) -> dict[str, Any]: + data: dict[str, Any] | Unset = UNSET + if not isinstance(self.data, Unset): + data = self.data.to_dict() + + error: dict[str, Any] | Unset = UNSET + if not isinstance(self.error, Unset): + error = self.error.to_dict() + + field_dict: dict[str, Any] = {} + + field_dict.update({}) + if data is not UNSET: + field_dict["data"] = data + if error is not UNSET: + field_dict["error"] = error + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + from ..models.batch_error import BatchError + from ..models.run_and_links import RunAndLinks + + d = dict(src_dict) + _data = d.pop("data", UNSET) + data: RunAndLinks | Unset + if isinstance(_data, Unset): + data = UNSET + else: + data = RunAndLinks.from_dict(_data) + + _error = d.pop("error", UNSET) + error: BatchError | Unset + if isinstance(_error, Unset): + error = UNSET + else: + error = BatchError.from_dict(_error) + + batch_run_and_links = cls( + data=data, + error=error, + ) + + return batch_run_and_links diff --git a/src/tower/tower_api_client/models/batched_run_log_lines.py b/src/tower/tower_api_client/models/batched_run_log_lines.py new file mode 100644 index 00000000..8e2fa515 --- /dev/null +++ b/src/tower/tower_api_client/models/batched_run_log_lines.py @@ -0,0 +1,81 @@ +from __future__ import annotations + +from collections.abc import Mapping +from typing import TYPE_CHECKING, Any, TypeVar, cast + +from attrs import define as _attrs_define + +from ..types import UNSET, Unset + +if TYPE_CHECKING: + from ..models.run_log_line import RunLogLine + + +T = TypeVar("T", bound="BatchedRunLogLines") + + +@_attrs_define +class BatchedRunLogLines: + """ + Attributes: + error (None | str | Unset): + log_lines (list[RunLogLine] | Unset): + """ + + error: None | str | Unset = UNSET + log_lines: list[RunLogLine] | Unset = UNSET + + def to_dict(self) -> dict[str, Any]: + error: None | str | Unset + if isinstance(self.error, Unset): + error = UNSET + else: + error = self.error + + log_lines: list[dict[str, Any]] | Unset = UNSET + if not isinstance(self.log_lines, Unset): + log_lines = [] + for log_lines_item_data in self.log_lines: + log_lines_item = log_lines_item_data.to_dict() + log_lines.append(log_lines_item) + + field_dict: dict[str, Any] = {} + + field_dict.update({}) + if error is not UNSET: + field_dict["error"] = error + if log_lines is not UNSET: + field_dict["log_lines"] = log_lines + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + from ..models.run_log_line import RunLogLine + + d = dict(src_dict) + + def _parse_error(data: object) -> None | str | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + return cast(None | str | Unset, data) + + error = _parse_error(d.pop("error", UNSET)) + + _log_lines = d.pop("log_lines", UNSET) + log_lines: list[RunLogLine] | Unset = UNSET + if _log_lines is not UNSET: + log_lines = [] + for log_lines_item_data in _log_lines: + log_lines_item = RunLogLine.from_dict(log_lines_item_data) + + log_lines.append(log_lines_item) + + batched_run_log_lines = cls( + error=error, + log_lines=log_lines, + ) + + return batched_run_log_lines diff --git a/src/tower/tower_api_client/models/catalog_fact.py b/src/tower/tower_api_client/models/catalog_fact.py new file mode 100644 index 00000000..6db9bb1c --- /dev/null +++ b/src/tower/tower_api_client/models/catalog_fact.py @@ -0,0 +1,115 @@ +from __future__ import annotations + +import datetime +from collections.abc import Mapping +from typing import Any, TypeVar + +from attrs import define as _attrs_define +from dateutil.parser import isoparse + +from ..models.catalog_fact_confidence import CatalogFactConfidence +from ..models.catalog_fact_scope import CatalogFactScope +from ..types import UNSET, Unset + +T = TypeVar("T", bound="CatalogFact") + + +@_attrs_define +class CatalogFact: + """ + Attributes: + confidence (CatalogFactConfidence): How trustworthy the fact is. + created_at (datetime.datetime): + name (str): The natural key of the fact within the catalog. + object_ (str): Descriptive path to what the fact is about, e.g. "bronze.runs.deleted_at". Empty for catalog- + scoped facts. + scope (CatalogFactScope): What kind of object the fact is about. + statement (str): The human-readable meaning of the fact. + updated_at (datetime.datetime): + body (Any | Unset): Optional structured payload (SQL, unit, enum values). + source (str | Unset): Where the fact came from (agent id, user, ...). + """ + + confidence: CatalogFactConfidence + created_at: datetime.datetime + name: str + object_: str + scope: CatalogFactScope + statement: str + updated_at: datetime.datetime + body: Any | Unset = UNSET + source: str | Unset = UNSET + + def to_dict(self) -> dict[str, Any]: + confidence = self.confidence.value + + created_at = self.created_at.isoformat() + + name = self.name + + object_ = self.object_ + + scope = self.scope.value + + statement = self.statement + + updated_at = self.updated_at.isoformat() + + body = self.body + + source = self.source + + field_dict: dict[str, Any] = {} + + field_dict.update( + { + "confidence": confidence, + "created_at": created_at, + "name": name, + "object": object_, + "scope": scope, + "statement": statement, + "updated_at": updated_at, + } + ) + if body is not UNSET: + field_dict["body"] = body + if source is not UNSET: + field_dict["source"] = source + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + d = dict(src_dict) + confidence = CatalogFactConfidence(d.pop("confidence")) + + created_at = isoparse(d.pop("created_at")) + + name = d.pop("name") + + object_ = d.pop("object") + + scope = CatalogFactScope(d.pop("scope")) + + statement = d.pop("statement") + + updated_at = isoparse(d.pop("updated_at")) + + body = d.pop("body", UNSET) + + source = d.pop("source", UNSET) + + catalog_fact = cls( + confidence=confidence, + created_at=created_at, + name=name, + object_=object_, + scope=scope, + statement=statement, + updated_at=updated_at, + body=body, + source=source, + ) + + return catalog_fact diff --git a/src/tower/tower_api_client/models/catalog_fact_confidence.py b/src/tower/tower_api_client/models/catalog_fact_confidence.py new file mode 100644 index 00000000..051d428f --- /dev/null +++ b/src/tower/tower_api_client/models/catalog_fact_confidence.py @@ -0,0 +1,10 @@ +from enum import Enum + + +class CatalogFactConfidence(str, Enum): + CONFIRMED = "confirmed" + HEURISTIC = "heuristic" + INFERRED = "inferred" + + def __str__(self) -> str: + return str(self.value) diff --git a/src/tower/tower_api_client/models/catalog_fact_scope.py b/src/tower/tower_api_client/models/catalog_fact_scope.py new file mode 100644 index 00000000..4793be33 --- /dev/null +++ b/src/tower/tower_api_client/models/catalog_fact_scope.py @@ -0,0 +1,12 @@ +from enum import Enum + + +class CatalogFactScope(str, Enum): + CATALOG = "catalog" + COLUMN = "column" + METRIC = "metric" + NAMESPACE = "namespace" + TABLE = "table" + + def __str__(self) -> str: + return str(self.value) diff --git a/src/tower/tower_api_client/models/catalog_usage.py b/src/tower/tower_api_client/models/catalog_usage.py new file mode 100644 index 00000000..ca554186 --- /dev/null +++ b/src/tower/tower_api_client/models/catalog_usage.py @@ -0,0 +1,72 @@ +from __future__ import annotations + +import datetime +from collections.abc import Mapping +from typing import Any, TypeVar, cast + +from attrs import define as _attrs_define +from dateutil.parser import isoparse + +T = TypeVar("T", bound="CatalogUsage") + + +@_attrs_define +class CatalogUsage: + """ + Attributes: + measured_at (datetime.datetime | None): When this value was measured. Null when metering is unconfigured, + disabled, or failed without a cached value. + total_bytes (int): Physical bytes stored by this Tower-managed catalog, including Iceberg metadata and not-yet- + compacted snapshot history. + """ + + measured_at: datetime.datetime | None + total_bytes: int + + def to_dict(self) -> dict[str, Any]: + measured_at: None | str + if isinstance(self.measured_at, datetime.datetime): + measured_at = self.measured_at.isoformat() + else: + measured_at = self.measured_at + + total_bytes = self.total_bytes + + field_dict: dict[str, Any] = {} + + field_dict.update( + { + "measured_at": measured_at, + "total_bytes": total_bytes, + } + ) + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + d = dict(src_dict) + + def _parse_measured_at(data: object) -> datetime.datetime | None: + if data is None: + return data + try: + if not isinstance(data, str): + raise TypeError() + measured_at_type_0 = isoparse(data) + + return measured_at_type_0 + except (TypeError, ValueError, AttributeError, KeyError): + pass + return cast(datetime.datetime | None, data) + + measured_at = _parse_measured_at(d.pop("measured_at")) + + total_bytes = d.pop("total_bytes") + + catalog_usage = cls( + measured_at=measured_at, + total_bytes=total_bytes, + ) + + return catalog_usage diff --git a/src/tower/tower_api_client/models/create_app_params.py b/src/tower/tower_api_client/models/create_app_params.py index fdf0e085..c219bd33 100644 --- a/src/tower/tower_api_client/models/create_app_params.py +++ b/src/tower/tower_api_client/models/create_app_params.py @@ -1,12 +1,17 @@ from __future__ import annotations from collections.abc import Mapping -from typing import Any, TypeVar, cast +from typing import TYPE_CHECKING, Any, TypeVar, cast from attrs import define as _attrs_define from ..types import UNSET, Unset +if TYPE_CHECKING: + from ..models.app_tag import AppTag + from ..models.run_retry_policy import RunRetryPolicy + + T = TypeVar("T", bound="CreateAppParams") @@ -19,18 +24,28 @@ class CreateAppParams: https://api.tower.dev/v1/schemas/CreateAppParams.json. is_externally_accessible (bool | Unset): Indicates that web traffic should be routed to this app and that its runs should get a hostname assigned to it. Default: False. + pending_timeout (int | None | Unset): The amount of time in seconds that runs of this app can stay in pending + state before being marked as failed. + retry_policy (RunRetryPolicy | Unset): + running_timeout (int | None | Unset): The amount of time in seconds that runs of this app can stay in running + state before being marked as failed. short_description (str | Unset): A description of the app. slug (str | Unset): The slug of the app. Legacy CLI will send it but we don't need it. subdomain (None | str | Unset): The subdomain this app is accessible under. Requires is_externally_accessible to be true. + tags (list[AppTag] | Unset): The tags for this app. """ name: str schema: str | Unset = UNSET is_externally_accessible: bool | Unset = False + pending_timeout: int | None | Unset = UNSET + retry_policy: RunRetryPolicy | Unset = UNSET + running_timeout: int | None | Unset = UNSET short_description: str | Unset = UNSET slug: str | Unset = UNSET subdomain: None | str | Unset = UNSET + tags: list[AppTag] | Unset = UNSET def to_dict(self) -> dict[str, Any]: name = self.name @@ -39,6 +54,22 @@ def to_dict(self) -> dict[str, Any]: is_externally_accessible = self.is_externally_accessible + pending_timeout: int | None | Unset + if isinstance(self.pending_timeout, Unset): + pending_timeout = UNSET + else: + pending_timeout = self.pending_timeout + + retry_policy: dict[str, Any] | Unset = UNSET + if not isinstance(self.retry_policy, Unset): + retry_policy = self.retry_policy.to_dict() + + running_timeout: int | None | Unset + if isinstance(self.running_timeout, Unset): + running_timeout = UNSET + else: + running_timeout = self.running_timeout + short_description = self.short_description slug = self.slug @@ -49,6 +80,13 @@ def to_dict(self) -> dict[str, Any]: else: subdomain = self.subdomain + tags: list[dict[str, Any]] | Unset = UNSET + if not isinstance(self.tags, Unset): + tags = [] + for tags_item_data in self.tags: + tags_item = tags_item_data.to_dict() + tags.append(tags_item) + field_dict: dict[str, Any] = {} field_dict.update( @@ -60,17 +98,28 @@ def to_dict(self) -> dict[str, Any]: field_dict["$schema"] = schema if is_externally_accessible is not UNSET: field_dict["is_externally_accessible"] = is_externally_accessible + if pending_timeout is not UNSET: + field_dict["pending_timeout"] = pending_timeout + if retry_policy is not UNSET: + field_dict["retry_policy"] = retry_policy + if running_timeout is not UNSET: + field_dict["running_timeout"] = running_timeout if short_description is not UNSET: field_dict["short_description"] = short_description if slug is not UNSET: field_dict["slug"] = slug if subdomain is not UNSET: field_dict["subdomain"] = subdomain + if tags is not UNSET: + field_dict["tags"] = tags return field_dict @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + from ..models.app_tag import AppTag + from ..models.run_retry_policy import RunRetryPolicy + d = dict(src_dict) name = d.pop("name") @@ -78,6 +127,31 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: is_externally_accessible = d.pop("is_externally_accessible", UNSET) + def _parse_pending_timeout(data: object) -> int | None | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + return cast(int | None | Unset, data) + + pending_timeout = _parse_pending_timeout(d.pop("pending_timeout", UNSET)) + + _retry_policy = d.pop("retry_policy", UNSET) + retry_policy: RunRetryPolicy | Unset + if isinstance(_retry_policy, Unset): + retry_policy = UNSET + else: + retry_policy = RunRetryPolicy.from_dict(_retry_policy) + + def _parse_running_timeout(data: object) -> int | None | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + return cast(int | None | Unset, data) + + running_timeout = _parse_running_timeout(d.pop("running_timeout", UNSET)) + short_description = d.pop("short_description", UNSET) slug = d.pop("slug", UNSET) @@ -91,13 +165,26 @@ def _parse_subdomain(data: object) -> None | str | Unset: subdomain = _parse_subdomain(d.pop("subdomain", UNSET)) + _tags = d.pop("tags", UNSET) + tags: list[AppTag] | Unset = UNSET + if _tags is not UNSET: + tags = [] + for tags_item_data in _tags: + tags_item = AppTag.from_dict(tags_item_data) + + tags.append(tags_item) + create_app_params = cls( name=name, schema=schema, is_externally_accessible=is_externally_accessible, + pending_timeout=pending_timeout, + retry_policy=retry_policy, + running_timeout=running_timeout, short_description=short_description, slug=slug, subdomain=subdomain, + tags=tags, ) return create_app_params diff --git a/src/tower/tower_api_client/models/describe_catalog_fact_response.py b/src/tower/tower_api_client/models/describe_catalog_fact_response.py new file mode 100644 index 00000000..9a377e0d --- /dev/null +++ b/src/tower/tower_api_client/models/describe_catalog_fact_response.py @@ -0,0 +1,60 @@ +from __future__ import annotations + +from collections.abc import Mapping +from typing import TYPE_CHECKING, Any, TypeVar + +from attrs import define as _attrs_define + +from ..types import UNSET, Unset + +if TYPE_CHECKING: + from ..models.catalog_fact import CatalogFact + + +T = TypeVar("T", bound="DescribeCatalogFactResponse") + + +@_attrs_define +class DescribeCatalogFactResponse: + """ + Attributes: + fact (CatalogFact): + schema (str | Unset): A URL to the JSON Schema for this object. Example: + https://api.tower.dev/v1/schemas/DescribeCatalogFactResponse.json. + """ + + fact: CatalogFact + schema: str | Unset = UNSET + + def to_dict(self) -> dict[str, Any]: + fact = self.fact.to_dict() + + schema = self.schema + + field_dict: dict[str, Any] = {} + + field_dict.update( + { + "fact": fact, + } + ) + if schema is not UNSET: + field_dict["$schema"] = schema + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + from ..models.catalog_fact import CatalogFact + + d = dict(src_dict) + fact = CatalogFact.from_dict(d.pop("fact")) + + schema = d.pop("$schema", UNSET) + + describe_catalog_fact_response = cls( + fact=fact, + schema=schema, + ) + + return describe_catalog_fact_response diff --git a/src/tower/tower_api_client/models/describe_catalog_usage_response.py b/src/tower/tower_api_client/models/describe_catalog_usage_response.py new file mode 100644 index 00000000..37b5001a --- /dev/null +++ b/src/tower/tower_api_client/models/describe_catalog_usage_response.py @@ -0,0 +1,60 @@ +from __future__ import annotations + +from collections.abc import Mapping +from typing import TYPE_CHECKING, Any, TypeVar + +from attrs import define as _attrs_define + +from ..types import UNSET, Unset + +if TYPE_CHECKING: + from ..models.catalog_usage import CatalogUsage + + +T = TypeVar("T", bound="DescribeCatalogUsageResponse") + + +@_attrs_define +class DescribeCatalogUsageResponse: + """ + Attributes: + usage (CatalogUsage): + schema (str | Unset): A URL to the JSON Schema for this object. Example: + https://api.tower.dev/v1/schemas/DescribeCatalogUsageResponse.json. + """ + + usage: CatalogUsage + schema: str | Unset = UNSET + + def to_dict(self) -> dict[str, Any]: + usage = self.usage.to_dict() + + schema = self.schema + + field_dict: dict[str, Any] = {} + + field_dict.update( + { + "usage": usage, + } + ) + if schema is not UNSET: + field_dict["$schema"] = schema + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + from ..models.catalog_usage import CatalogUsage + + d = dict(src_dict) + usage = CatalogUsage.from_dict(d.pop("usage")) + + schema = d.pop("$schema", UNSET) + + describe_catalog_usage_response = cls( + usage=usage, + schema=schema, + ) + + return describe_catalog_usage_response diff --git a/src/tower/tower_api_client/models/list_catalog_facts_response.py b/src/tower/tower_api_client/models/list_catalog_facts_response.py new file mode 100644 index 00000000..b62c4405 --- /dev/null +++ b/src/tower/tower_api_client/models/list_catalog_facts_response.py @@ -0,0 +1,68 @@ +from __future__ import annotations + +from collections.abc import Mapping +from typing import TYPE_CHECKING, Any, TypeVar + +from attrs import define as _attrs_define + +from ..types import UNSET, Unset + +if TYPE_CHECKING: + from ..models.catalog_fact import CatalogFact + + +T = TypeVar("T", bound="ListCatalogFactsResponse") + + +@_attrs_define +class ListCatalogFactsResponse: + """ + Attributes: + facts (list[CatalogFact]): + schema (str | Unset): A URL to the JSON Schema for this object. Example: + https://api.tower.dev/v1/schemas/ListCatalogFactsResponse.json. + """ + + facts: list[CatalogFact] + schema: str | Unset = UNSET + + def to_dict(self) -> dict[str, Any]: + facts = [] + for facts_item_data in self.facts: + facts_item = facts_item_data.to_dict() + facts.append(facts_item) + + schema = self.schema + + field_dict: dict[str, Any] = {} + + field_dict.update( + { + "facts": facts, + } + ) + if schema is not UNSET: + field_dict["$schema"] = schema + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + from ..models.catalog_fact import CatalogFact + + d = dict(src_dict) + facts = [] + _facts = d.pop("facts") + for facts_item_data in _facts: + facts_item = CatalogFact.from_dict(facts_item_data) + + facts.append(facts_item) + + schema = d.pop("$schema", UNSET) + + list_catalog_facts_response = cls( + facts=facts, + schema=schema, + ) + + return list_catalog_facts_response diff --git a/src/tower/tower_api_client/models/organization_storage_usage.py b/src/tower/tower_api_client/models/organization_storage_usage.py new file mode 100644 index 00000000..beb8473b --- /dev/null +++ b/src/tower/tower_api_client/models/organization_storage_usage.py @@ -0,0 +1,71 @@ +from __future__ import annotations + +import datetime +from collections.abc import Mapping +from typing import Any, TypeVar, cast + +from attrs import define as _attrs_define +from dateutil.parser import isoparse + +T = TypeVar("T", bound="OrganizationStorageUsage") + + +@_attrs_define +class OrganizationStorageUsage: + """ + Attributes: + measured_at (datetime.datetime | None): When the total was measured. Null when no measurement is available. + total_bytes (int): Physical bytes across the organization's Tower-managed catalogs, including Iceberg metadata + and not-yet-compacted snapshot history. + """ + + measured_at: datetime.datetime | None + total_bytes: int + + def to_dict(self) -> dict[str, Any]: + measured_at: None | str + if isinstance(self.measured_at, datetime.datetime): + measured_at = self.measured_at.isoformat() + else: + measured_at = self.measured_at + + total_bytes = self.total_bytes + + field_dict: dict[str, Any] = {} + + field_dict.update( + { + "measured_at": measured_at, + "total_bytes": total_bytes, + } + ) + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + d = dict(src_dict) + + def _parse_measured_at(data: object) -> datetime.datetime | None: + if data is None: + return data + try: + if not isinstance(data, str): + raise TypeError() + measured_at_type_0 = isoparse(data) + + return measured_at_type_0 + except (TypeError, ValueError, AttributeError, KeyError): + pass + return cast(datetime.datetime | None, data) + + measured_at = _parse_measured_at(d.pop("measured_at")) + + total_bytes = d.pop("total_bytes") + + organization_storage_usage = cls( + measured_at=measured_at, + total_bytes=total_bytes, + ) + + return organization_storage_usage diff --git a/src/tower/tower_api_client/models/organization_usage.py b/src/tower/tower_api_client/models/organization_usage.py index 74bda4e3..9591c2f7 100644 --- a/src/tower/tower_api_client/models/organization_usage.py +++ b/src/tower/tower_api_client/models/organization_usage.py @@ -8,6 +8,7 @@ from ..types import UNSET, Unset if TYPE_CHECKING: + from ..models.organization_storage_usage import OrganizationStorageUsage from ..models.usage_limit import UsageLimit @@ -25,6 +26,7 @@ class OrganizationUsage: members (UsageLimit): organization_name (str): The name of the organization. self_hosted_runners (UsageLimit): + storage (OrganizationStorageUsage): schema (str | Unset): A URL to the JSON Schema for this object. Example: https://api.tower.dev/v1/schemas/OrganizationUsage.json. """ @@ -36,6 +38,7 @@ class OrganizationUsage: members: UsageLimit organization_name: str self_hosted_runners: UsageLimit + storage: OrganizationStorageUsage schema: str | Unset = UNSET def to_dict(self) -> dict[str, Any]: @@ -53,6 +56,8 @@ def to_dict(self) -> dict[str, Any]: self_hosted_runners = self.self_hosted_runners.to_dict() + storage = self.storage.to_dict() + schema = self.schema field_dict: dict[str, Any] = {} @@ -66,6 +71,7 @@ def to_dict(self) -> dict[str, Any]: "members": members, "organization_name": organization_name, "self_hosted_runners": self_hosted_runners, + "storage": storage, } ) if schema is not UNSET: @@ -75,6 +81,7 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + from ..models.organization_storage_usage import OrganizationStorageUsage from ..models.usage_limit import UsageLimit d = dict(src_dict) @@ -92,6 +99,8 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: self_hosted_runners = UsageLimit.from_dict(d.pop("self_hosted_runners")) + storage = OrganizationStorageUsage.from_dict(d.pop("storage")) + schema = d.pop("$schema", UNSET) organization_usage = cls( @@ -102,6 +111,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: members=members, organization_name=organization_name, self_hosted_runners=self_hosted_runners, + storage=storage, schema=schema, ) diff --git a/src/tower/tower_api_client/models/run_and_links.py b/src/tower/tower_api_client/models/run_and_links.py new file mode 100644 index 00000000..8267fe53 --- /dev/null +++ b/src/tower/tower_api_client/models/run_and_links.py @@ -0,0 +1,58 @@ +from __future__ import annotations + +from collections.abc import Mapping +from typing import TYPE_CHECKING, Any, TypeVar + +from attrs import define as _attrs_define + +if TYPE_CHECKING: + from ..models.run import Run + from ..models.run_links import RunLinks + + +T = TypeVar("T", bound="RunAndLinks") + + +@_attrs_define +class RunAndLinks: + """ + Attributes: + links (RunLinks): + run (Run): + """ + + links: RunLinks + run: Run + + def to_dict(self) -> dict[str, Any]: + links = self.links.to_dict() + + run = self.run.to_dict() + + field_dict: dict[str, Any] = {} + + field_dict.update( + { + "$links": links, + "run": run, + } + ) + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + from ..models.run import Run + from ..models.run_links import RunLinks + + d = dict(src_dict) + links = RunLinks.from_dict(d.pop("$links")) + + run = Run.from_dict(d.pop("run")) + + run_and_links = cls( + links=links, + run=run, + ) + + return run_and_links diff --git a/src/tower/tower_api_client/models/run_links.py b/src/tower/tower_api_client/models/run_links.py new file mode 100644 index 00000000..cccc1afb --- /dev/null +++ b/src/tower/tower_api_client/models/run_links.py @@ -0,0 +1,63 @@ +from __future__ import annotations + +from collections.abc import Mapping +from typing import Any, TypeVar, cast + +from attrs import define as _attrs_define + +T = TypeVar("T", bound="RunLinks") + + +@_attrs_define +class RunLinks: + """ + Attributes: + next_number (int | None): The number of the next run, if any. + prev_number (int | None): The number of the previous run, if any. + """ + + next_number: int | None + prev_number: int | None + + def to_dict(self) -> dict[str, Any]: + next_number: int | None + next_number = self.next_number + + prev_number: int | None + prev_number = self.prev_number + + field_dict: dict[str, Any] = {} + + field_dict.update( + { + "next_number": next_number, + "prev_number": prev_number, + } + ) + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + d = dict(src_dict) + + def _parse_next_number(data: object) -> int | None: + if data is None: + return data + return cast(int | None, data) + + next_number = _parse_next_number(d.pop("next_number")) + + def _parse_prev_number(data: object) -> int | None: + if data is None: + return data + return cast(int | None, data) + + prev_number = _parse_prev_number(d.pop("prev_number")) + + run_links = cls( + next_number=next_number, + prev_number=prev_number, + ) + + return run_links diff --git a/src/tower/tower_api_client/models/tag_filter.py b/src/tower/tower_api_client/models/tag_filter.py new file mode 100644 index 00000000..9dc8d879 --- /dev/null +++ b/src/tower/tower_api_client/models/tag_filter.py @@ -0,0 +1,73 @@ +from __future__ import annotations + +from collections.abc import Mapping +from typing import Any, TypeVar, cast + +from attrs import define as _attrs_define + +from ..models.tag_filter_op import TagFilterOp +from ..types import UNSET, Unset + +T = TypeVar("T", bound="TagFilter") + + +@_attrs_define +class TagFilter: + """ + Attributes: + name (str): The tag name to search. + op (TagFilterOp): + value (str | Unset): Required if operator is eq + values (list[str] | Unset): Required if operator is in or notIn + """ + + name: str + op: TagFilterOp + value: str | Unset = UNSET + values: list[str] | Unset = UNSET + + def to_dict(self) -> dict[str, Any]: + name = self.name + + op = self.op.value + + value = self.value + + values: list[str] | Unset = UNSET + if not isinstance(self.values, Unset): + values = self.values + + field_dict: dict[str, Any] = {} + + field_dict.update( + { + "name": name, + "op": op, + } + ) + if value is not UNSET: + field_dict["value"] = value + if values is not UNSET: + field_dict["values"] = values + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + d = dict(src_dict) + name = d.pop("name") + + op = TagFilterOp(d.pop("op")) + + value = d.pop("value", UNSET) + + values = cast(list[str], d.pop("values", UNSET)) + + tag_filter = cls( + name=name, + op=op, + value=value, + values=values, + ) + + return tag_filter diff --git a/src/tower/tower_api_client/models/tag_filter_op.py b/src/tower/tower_api_client/models/tag_filter_op.py new file mode 100644 index 00000000..4ebd5995 --- /dev/null +++ b/src/tower/tower_api_client/models/tag_filter_op.py @@ -0,0 +1,10 @@ +from enum import Enum + + +class TagFilterOp(str, Enum): + EQ = "eq" + IN = "in" + NOTIN = "notIn" + + def __str__(self) -> str: + return str(self.value) diff --git a/src/tower/tower_api_client/models/token.py b/src/tower/tower_api_client/models/token.py index 598af35c..b61bf039 100644 --- a/src/tower/tower_api_client/models/token.py +++ b/src/tower/tower_api_client/models/token.py @@ -15,7 +15,7 @@ class Token: """ Attributes: access_token (str): The access token to use when authenticating API requests with Tower. - jwt (str): + jwt (str): This property is deprecated. Use access_token instead. refresh_token (str | Unset): The refresh token to use when refreshing an expired access token. For security reasons, refresh tokens should only be transmitted over secure channels and never logged or stored in plaintext. It will only be returned upon initial authentication or when explicitly refreshing the access token. diff --git a/src/tower/tower_api_client/models/update_account_params_execution_region.py b/src/tower/tower_api_client/models/update_account_params_execution_region.py index 132b9ce6..54752542 100644 --- a/src/tower/tower_api_client/models/update_account_params_execution_region.py +++ b/src/tower/tower_api_client/models/update_account_params_execution_region.py @@ -2,7 +2,10 @@ class UpdateAccountParamsExecutionRegion(str, Enum): + AP_NORTHEAST_1 = "ap-northeast-1" + AP_SOUTHEAST_2 = "ap-southeast-2" EU_CENTRAL_1 = "eu-central-1" + EU_WEST_1 = "eu-west-1" US_EAST_1 = "us-east-1" US_WEST_2 = "us-west-2" diff --git a/src/tower/tower_api_client/models/update_app_params.py b/src/tower/tower_api_client/models/update_app_params.py index c970dfd0..97b4846f 100644 --- a/src/tower/tower_api_client/models/update_app_params.py +++ b/src/tower/tower_api_client/models/update_app_params.py @@ -8,6 +8,7 @@ from ..types import UNSET, Unset if TYPE_CHECKING: + from ..models.app_tag import AppTag from ..models.run_retry_policy import RunRetryPolicy @@ -20,7 +21,7 @@ class UpdateAppParams: Attributes: schema (str | Unset): A URL to the JSON Schema for this object. Example: https://api.tower.dev/v1/schemas/UpdateAppParams.json. - description (None | str | Unset): New description for the App + description (None | str | Unset): Deprecated: use short_description instead. is_externally_accessible (bool | None | Unset): Indicates that web traffic should be routed to this app and that its runs should get a hostname assigned to it. pending_timeout (int | None | Unset): The amount of time in seconds that runs of this app can stay in pending @@ -28,9 +29,11 @@ class UpdateAppParams: retry_policy (RunRetryPolicy | Unset): running_timeout (int | None | Unset): The amount of time in seconds that runs of this app can stay in running state before being marked as failed. + short_description (None | str | Unset): New description for the app. status (None | str | Unset): New status for the App subdomain (None | str | Unset): The subdomain this app is accessible under. Requires is_externally_accessible to be true. + tags (list[AppTag] | Unset): The tags for this app. """ schema: str | Unset = UNSET @@ -39,8 +42,10 @@ class UpdateAppParams: pending_timeout: int | None | Unset = UNSET retry_policy: RunRetryPolicy | Unset = UNSET running_timeout: int | None | Unset = UNSET + short_description: None | str | Unset = UNSET status: None | str | Unset = UNSET subdomain: None | str | Unset = UNSET + tags: list[AppTag] | Unset = UNSET def to_dict(self) -> dict[str, Any]: schema = self.schema @@ -73,6 +78,12 @@ def to_dict(self) -> dict[str, Any]: else: running_timeout = self.running_timeout + short_description: None | str | Unset + if isinstance(self.short_description, Unset): + short_description = UNSET + else: + short_description = self.short_description + status: None | str | Unset if isinstance(self.status, Unset): status = UNSET @@ -85,6 +96,13 @@ def to_dict(self) -> dict[str, Any]: else: subdomain = self.subdomain + tags: list[dict[str, Any]] | Unset = UNSET + if not isinstance(self.tags, Unset): + tags = [] + for tags_item_data in self.tags: + tags_item = tags_item_data.to_dict() + tags.append(tags_item) + field_dict: dict[str, Any] = {} field_dict.update({}) @@ -100,15 +118,20 @@ def to_dict(self) -> dict[str, Any]: field_dict["retry_policy"] = retry_policy if running_timeout is not UNSET: field_dict["running_timeout"] = running_timeout + if short_description is not UNSET: + field_dict["short_description"] = short_description if status is not UNSET: field_dict["status"] = status if subdomain is not UNSET: field_dict["subdomain"] = subdomain + if tags is not UNSET: + field_dict["tags"] = tags return field_dict @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + from ..models.app_tag import AppTag from ..models.run_retry_policy import RunRetryPolicy d = dict(src_dict) @@ -159,6 +182,15 @@ def _parse_running_timeout(data: object) -> int | None | Unset: running_timeout = _parse_running_timeout(d.pop("running_timeout", UNSET)) + def _parse_short_description(data: object) -> None | str | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + return cast(None | str | Unset, data) + + short_description = _parse_short_description(d.pop("short_description", UNSET)) + def _parse_status(data: object) -> None | str | Unset: if data is None: return data @@ -177,6 +209,15 @@ def _parse_subdomain(data: object) -> None | str | Unset: subdomain = _parse_subdomain(d.pop("subdomain", UNSET)) + _tags = d.pop("tags", UNSET) + tags: list[AppTag] | Unset = UNSET + if _tags is not UNSET: + tags = [] + for tags_item_data in _tags: + tags_item = AppTag.from_dict(tags_item_data) + + tags.append(tags_item) + update_app_params = cls( schema=schema, description=description, @@ -184,8 +225,10 @@ def _parse_subdomain(data: object) -> None | str | Unset: pending_timeout=pending_timeout, retry_policy=retry_policy, running_timeout=running_timeout, + short_description=short_description, status=status, subdomain=subdomain, + tags=tags, ) return update_app_params diff --git a/src/tower/tower_api_client/models/update_catalog_fact_body.py b/src/tower/tower_api_client/models/update_catalog_fact_body.py new file mode 100644 index 00000000..02d57f5e --- /dev/null +++ b/src/tower/tower_api_client/models/update_catalog_fact_body.py @@ -0,0 +1,100 @@ +from __future__ import annotations + +from collections.abc import Mapping +from typing import Any, TypeVar + +from attrs import define as _attrs_define + +from ..models.update_catalog_fact_body_confidence import UpdateCatalogFactBodyConfidence +from ..models.update_catalog_fact_body_scope import UpdateCatalogFactBodyScope +from ..types import UNSET, Unset + +T = TypeVar("T", bound="UpdateCatalogFactBody") + + +@_attrs_define +class UpdateCatalogFactBody: + """ + Attributes: + confidence (UpdateCatalogFactBodyConfidence): How trustworthy the fact is. + scope (UpdateCatalogFactBodyScope): What kind of object the fact is about. + statement (str): The human-readable meaning of the fact. + schema (str | Unset): A URL to the JSON Schema for this object. Example: + https://api.tower.dev/v1/schemas/UpdateCatalogFactBody.json. + body (str | Unset): Optional structured payload (SQL, unit, enum values) as a JSON string. + object_ (str | Unset): Descriptive path to what the fact is about, e.g. "bronze.runs.deleted_at". Empty for + catalog-scoped facts. + source (str | Unset): Where the fact came from (agent id, user, ...). + """ + + confidence: UpdateCatalogFactBodyConfidence + scope: UpdateCatalogFactBodyScope + statement: str + schema: str | Unset = UNSET + body: str | Unset = UNSET + object_: str | Unset = UNSET + source: str | Unset = UNSET + + def to_dict(self) -> dict[str, Any]: + confidence = self.confidence.value + + scope = self.scope.value + + statement = self.statement + + schema = self.schema + + body = self.body + + object_ = self.object_ + + source = self.source + + field_dict: dict[str, Any] = {} + + field_dict.update( + { + "confidence": confidence, + "scope": scope, + "statement": statement, + } + ) + if schema is not UNSET: + field_dict["$schema"] = schema + if body is not UNSET: + field_dict["body"] = body + if object_ is not UNSET: + field_dict["object"] = object_ + if source is not UNSET: + field_dict["source"] = source + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + d = dict(src_dict) + confidence = UpdateCatalogFactBodyConfidence(d.pop("confidence")) + + scope = UpdateCatalogFactBodyScope(d.pop("scope")) + + statement = d.pop("statement") + + schema = d.pop("$schema", UNSET) + + body = d.pop("body", UNSET) + + object_ = d.pop("object", UNSET) + + source = d.pop("source", UNSET) + + update_catalog_fact_body = cls( + confidence=confidence, + scope=scope, + statement=statement, + schema=schema, + body=body, + object_=object_, + source=source, + ) + + return update_catalog_fact_body diff --git a/src/tower/tower_api_client/models/update_catalog_fact_body_confidence.py b/src/tower/tower_api_client/models/update_catalog_fact_body_confidence.py new file mode 100644 index 00000000..864de3b8 --- /dev/null +++ b/src/tower/tower_api_client/models/update_catalog_fact_body_confidence.py @@ -0,0 +1,10 @@ +from enum import Enum + + +class UpdateCatalogFactBodyConfidence(str, Enum): + CONFIRMED = "confirmed" + HEURISTIC = "heuristic" + INFERRED = "inferred" + + def __str__(self) -> str: + return str(self.value) diff --git a/src/tower/tower_api_client/models/update_catalog_fact_body_scope.py b/src/tower/tower_api_client/models/update_catalog_fact_body_scope.py new file mode 100644 index 00000000..1e6ef283 --- /dev/null +++ b/src/tower/tower_api_client/models/update_catalog_fact_body_scope.py @@ -0,0 +1,12 @@ +from enum import Enum + + +class UpdateCatalogFactBodyScope(str, Enum): + CATALOG = "catalog" + COLUMN = "column" + METRIC = "metric" + NAMESPACE = "namespace" + TABLE = "table" + + def __str__(self) -> str: + return str(self.value) diff --git a/src/tower/tower_api_client/models/update_catalog_fact_response.py b/src/tower/tower_api_client/models/update_catalog_fact_response.py new file mode 100644 index 00000000..d2a77508 --- /dev/null +++ b/src/tower/tower_api_client/models/update_catalog_fact_response.py @@ -0,0 +1,60 @@ +from __future__ import annotations + +from collections.abc import Mapping +from typing import TYPE_CHECKING, Any, TypeVar + +from attrs import define as _attrs_define + +from ..types import UNSET, Unset + +if TYPE_CHECKING: + from ..models.catalog_fact import CatalogFact + + +T = TypeVar("T", bound="UpdateCatalogFactResponse") + + +@_attrs_define +class UpdateCatalogFactResponse: + """ + Attributes: + fact (CatalogFact): + schema (str | Unset): A URL to the JSON Schema for this object. Example: + https://api.tower.dev/v1/schemas/UpdateCatalogFactResponse.json. + """ + + fact: CatalogFact + schema: str | Unset = UNSET + + def to_dict(self) -> dict[str, Any]: + fact = self.fact.to_dict() + + schema = self.schema + + field_dict: dict[str, Any] = {} + + field_dict.update( + { + "fact": fact, + } + ) + if schema is not UNSET: + field_dict["$schema"] = schema + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + from ..models.catalog_fact import CatalogFact + + d = dict(src_dict) + fact = CatalogFact.from_dict(d.pop("fact")) + + schema = d.pop("$schema", UNSET) + + update_catalog_fact_response = cls( + fact=fact, + schema=schema, + ) + + return update_catalog_fact_response diff --git a/src/tower/tower_api_client/models/update_catalog_params.py b/src/tower/tower_api_client/models/update_catalog_params.py index 673099c9..555e31b8 100644 --- a/src/tower/tower_api_client/models/update_catalog_params.py +++ b/src/tower/tower_api_client/models/update_catalog_params.py @@ -18,7 +18,8 @@ class UpdateCatalogParams: """ Attributes: - environment (str): New environment for the catalog + environment (str): The environment containing the catalog to update. Catalogs cannot be moved between + environments. properties (list[EncryptedCatalogProperty]): schema (str | Unset): A URL to the JSON Schema for this object. Example: https://api.tower.dev/v1/schemas/UpdateCatalogParams.json. diff --git a/src/tower/tower_api_client/models/update_team_params_execution_region.py b/src/tower/tower_api_client/models/update_team_params_execution_region.py index de99bdc5..e209436e 100644 --- a/src/tower/tower_api_client/models/update_team_params_execution_region.py +++ b/src/tower/tower_api_client/models/update_team_params_execution_region.py @@ -2,7 +2,10 @@ class UpdateTeamParamsExecutionRegion(str, Enum): + AP_NORTHEAST_1 = "ap-northeast-1" + AP_SOUTHEAST_2 = "ap-southeast-2" EU_CENTRAL_1 = "eu-central-1" + EU_WEST_1 = "eu-west-1" US_EAST_1 = "us-east-1" US_WEST_2 = "us-west-2" diff --git a/tests/mock-api-server/main.py b/tests/mock-api-server/main.py index af30b4a7..f16d829c 100644 --- a/tests/mock-api-server/main.py +++ b/tests/mock-api-server/main.py @@ -67,6 +67,7 @@ async def log_requests(request: Request, call_next): "created_at": datetime.datetime.now().isoformat(), "next_run_at": None, "health_status": "healthy", + "is_example": False, "pending_timeout": 300, "running_timeout": 0, "run_results": { @@ -153,6 +154,7 @@ async def create_app(app_data: Dict[str, Any]): new_app = { "created_at": datetime.datetime.now().isoformat(), "health_status": "healthy", + "is_example": False, "is_externally_accessible": True, "name": app_name, "next_run_at": None,