[1/5] [codex] sync managed-layer bundle schema (#31285)

## Why

The backend config-bundle contract now exposes managed configuration in
`managed_layers`, split into `baseline` and `system_overlay`. The Rust
transport models need to match that contract before any runtime behavior
changes.

## What changed

- add the generated `DeliveredManagedLayers` model
- model `baseline` and `system_overlay` as required arrays
- expose optional/null `managed_layers` on delivered config and
requirements documents
- retain `enterprise_managed` for transport compatibility

This PR changes transport types only; cloud-config runtime behavior is
unchanged.

## Stack

1 of 4. Next: #31286.

## Validation

- `just test -p codex-backend-openapi-models -p codex-backend-client`
- `just test -p codex-cloud-config`
- revalidated against the current generated backend schema
This commit is contained in:
hefuc-oai
2026-07-07 13:00:44 -07:00
committed by GitHub
parent 1bd9d841ca
commit 777f5da55c
7 changed files with 56 additions and 0 deletions

View File

@@ -15,6 +15,7 @@ pub use types::ConfigBundleResponse;
pub use types::ConsumeRateLimitResetCreditCode;
pub use types::ConsumeRateLimitResetCreditResponse;
pub use types::DeliveredConfigToml;
pub use types::DeliveredManagedLayers;
pub use types::DeliveredRequirementsToml;
pub use types::DeliveredTomlFragment;
pub use types::PaginatedListTaskListItem;

View File

@@ -1,6 +1,7 @@
pub use codex_backend_openapi_models::models::ConfigBundleResponse;
pub use codex_backend_openapi_models::models::CreditStatusDetails;
pub use codex_backend_openapi_models::models::DeliveredConfigToml;
pub use codex_backend_openapi_models::models::DeliveredManagedLayers;
pub use codex_backend_openapi_models::models::DeliveredRequirementsToml;
pub use codex_backend_openapi_models::models::DeliveredTomlFragment;
pub use codex_backend_openapi_models::models::PaginatedListTaskListItem;

View File

@@ -1037,6 +1037,7 @@ fn bundle_response_conversion_preserves_fragment_order() {
"model = \"low\"".to_string(),
),
])),
managed_layers: None,
}))),
requirements_toml: Some(Some(Box::new(
codex_backend_client::DeliveredRequirementsToml {
@@ -1045,6 +1046,7 @@ fn bundle_response_conversion_preserves_fragment_order() {
"High requirements".to_string(),
"allowed_approval_policies = [\"never\"]".to_string(),
)])),
managed_layers: None,
},
))),
};

View File

@@ -21,12 +21,20 @@ pub struct DeliveredConfigToml {
skip_serializing_if = "Option::is_none"
)]
pub enterprise_managed: Option<Option<Vec<models::DeliveredTomlFragment>>>,
#[serde(
rename = "managed_layers",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub managed_layers: Option<Option<Box<models::DeliveredManagedLayers>>>,
}
impl DeliveredConfigToml {
pub fn new() -> DeliveredConfigToml {
DeliveredConfigToml {
enterprise_managed: None,
managed_layers: None,
}
}
}

View File

@@ -0,0 +1,33 @@
/*
* codex-backend
*
* codex-backend
*
* The version of the OpenAPI document: 0.0.1
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::Deserialize;
use serde::Serialize;
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct DeliveredManagedLayers {
#[serde(rename = "baseline")]
pub baseline: Vec<models::DeliveredTomlFragment>,
#[serde(rename = "system_overlay")]
pub system_overlay: Vec<models::DeliveredTomlFragment>,
}
impl DeliveredManagedLayers {
pub fn new(
baseline: Vec<models::DeliveredTomlFragment>,
system_overlay: Vec<models::DeliveredTomlFragment>,
) -> DeliveredManagedLayers {
DeliveredManagedLayers {
baseline,
system_overlay,
}
}
}

View File

@@ -21,12 +21,20 @@ pub struct DeliveredRequirementsToml {
skip_serializing_if = "Option::is_none"
)]
pub enterprise_managed: Option<Option<Vec<models::DeliveredTomlFragment>>>,
#[serde(
rename = "managed_layers",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub managed_layers: Option<Option<Box<models::DeliveredManagedLayers>>>,
}
impl DeliveredRequirementsToml {
pub fn new() -> DeliveredRequirementsToml {
DeliveredRequirementsToml {
enterprise_managed: None,
managed_layers: None,
}
}
}

View File

@@ -13,6 +13,9 @@ pub use self::config_file_response::ConfigFileResponse;
pub(crate) mod delivered_config_toml;
pub use self::delivered_config_toml::DeliveredConfigToml;
pub(crate) mod delivered_managed_layers;
pub use self::delivered_managed_layers::DeliveredManagedLayers;
pub(crate) mod delivered_requirements_toml;
pub use self::delivered_requirements_toml::DeliveredRequirementsToml;