Skip to main content

greentic_deployer/
lib.rs

1#![forbid(unsafe_code)]
2// The env-manifest JSON schema (`cli::env_manifest::manifest_schema`) is one
3// large `serde_json::json!` literal; `json!` recurses once per object key, so
4// the default limit of 128 is exceeded as the schema grows.
5#![recursion_limit = "256"]
6
7pub mod adapter;
8pub mod admin_access;
9/// Legacy/provider-oriented multi-target implementation module.
10///
11/// Prefer `multi_target` or `surface::multi_target` for new call sites.
12pub mod apply;
13pub mod aws;
14pub mod azure;
15pub mod bundle_upload;
16pub mod cli;
17pub mod config;
18pub mod contract;
19pub mod credentials;
20pub mod defaults;
21pub mod deployment;
22pub mod desktop;
23pub mod env_packs;
24pub mod environment;
25pub mod error;
26pub mod extension;
27pub mod extension_sources;
28pub mod gcp;
29pub mod helm;
30pub mod juju_k8s;
31pub mod juju_machine;
32pub mod k8s_raw;
33pub mod multi_target;
34pub mod operator;
35// Moved to the `greentic-operator-trust` crate (PR-4.2e) so the
36// operator-store-server can load/generate its own operator key; re-exported
37// so `crate::operator_key::*` call sites stay unchanged.
38pub use greentic_operator_trust::operator_key;
39pub mod pack_introspect;
40pub mod path_safety;
41pub mod plan;
42pub(crate) mod rollout_telemetry;
43pub mod runtime_secret_sink;
44pub mod runtime_secrets;
45pub mod serverless;
46pub mod single_vm;
47pub mod snap;
48pub mod sorx_routing;
49pub mod spec;
50pub mod surface;
51pub mod telemetry;
52pub mod terraform;
53pub mod tool_check;
54
55pub use adapter::{AdapterFamily, MultiTargetKind, UnifiedTargetSelection};
56pub use admin_access::{
57    AdminAccessInfo, AdminAccessMode, AdminHealthProbe, AdminSecretRefs, AdminTunnelSupport,
58    MaterializedAdminCerts, MaterializedAdminRelayToken, materialize_admin_client_certs,
59    materialize_admin_relay_token, probe_admin_health, render_admin_access,
60    render_admin_health_probe, render_materialized_admin_certs,
61    render_materialized_admin_relay_token, resolve_admin_access,
62};
63pub use aws::{AwsAdminTunnelRequest, AwsRequest};
64pub use azure::AzureRequest;
65pub use config::{DeployerConfig, DeployerRequest, OutputFormat, Provider};
66pub use contract::{
67    CapabilitySpecV1, CloudCredentialKind, CloudTargetRequirementsV1, ContractAsset,
68    CredentialRequirementV1, DeployerCapability, DeployerContractV1, PlannerSpecV1,
69    ResolvedCapabilityContract, ResolvedDeployerContract, ResolvedPlannerContract,
70    VariableRequirementV1,
71};
72pub use deployment::{
73    ApplyExecutionOutcome, DestroyExecutionOutcome, ExecutionOutcome, ExecutionOutcomePayload,
74    StatusExecutionOutcome,
75};
76pub use env_packs::{EnvPackHandler, EnvPackRegistry, RegistryError};
77pub use error::DeployerError;
78pub use extension::{
79    BuiltinBackendDescriptor, BuiltinBackendExecutionKind, BuiltinBackendHandlerId,
80    BuiltinBackendId, BuiltinExtensionBackendDescriptor, BuiltinExtensionDescriptor,
81    BuiltinHandlerDescriptor, DeploymentExtensionContract, DeploymentExtensionDescriptor,
82    DeploymentExtensionKind, DeploymentExtensionSourceKind, DeploymentHandlerDescriptor,
83    list_builtin_extensions, list_builtin_handlers, list_deployment_extension_contracts,
84    list_deployment_extension_contracts_from_sources,
85    list_deployment_extension_contracts_from_sources_with_options,
86    resolve_builtin_backend_descriptor, resolve_builtin_extension_detail_for_provider,
87    resolve_builtin_extension_detail_for_target_name, resolve_builtin_extension_for_config,
88    resolve_builtin_extension_for_provider, resolve_builtin_extension_for_target_name,
89    resolve_builtin_handler_descriptor, resolve_deployment_extension_contract_for_provider,
90    resolve_deployment_extension_contract_for_provider_from_sources,
91    resolve_deployment_extension_contract_for_provider_from_sources_with_options,
92    resolve_deployment_extension_contract_for_target_name,
93    resolve_deployment_extension_contract_for_target_name_from_sources,
94    resolve_deployment_extension_contract_for_target_name_from_sources_with_options,
95    run_builtin_extension, single_vm_builtin_extension,
96};
97pub use extension_sources::DeploymentExtensionSourceOptions;
98pub use gcp::GcpRequest;
99pub use helm::HelmRequest;
100pub use juju_k8s::JujuK8sRequest;
101pub use juju_machine::JujuMachineRequest;
102pub use k8s_raw::K8sRawRequest;
103pub use multi_target::{
104    ApplyPayload, CapabilityPayload, DestroyPayload, ExecutionReport, GeneratePayload,
105    OperationPayload, OperationResult, OutputValidation, PlanPayload, RollbackPayload,
106    StatusPayload, render_operation_result,
107};
108pub use operator::OperatorRequest;
109pub use plan::{
110    ChannelContext, ComponentRole, DeploymentProfile, InferenceNotes, InfraPlan, MessagingContext,
111    PlanContext, PlannedComponent, Target, TelemetryContext,
112};
113pub use serverless::ServerlessRequest;
114pub use single_vm::{
115    SingleVmAdminPlan, SingleVmApplyOptions, SingleVmApplyReport, SingleVmBundlePlan,
116    SingleVmDeploymentStatus, SingleVmDestroyOptions, SingleVmDestroyReport, SingleVmHealthPlan,
117    SingleVmLastAction, SingleVmPersistedState, SingleVmPlan, SingleVmPlanOutput,
118    SingleVmPlannedFile, SingleVmPlannedFileKind, SingleVmRenderSpecRequest, SingleVmRolloutPlan,
119    SingleVmRuntimePlan, SingleVmServicePlan, SingleVmStatusReport, SingleVmStoragePlan,
120    apply_single_vm_plan_output, apply_single_vm_plan_output_with_options, apply_single_vm_spec,
121    apply_single_vm_spec_path, build_single_vm_plan, destroy_single_vm_plan_output,
122    destroy_single_vm_plan_output_with_options, destroy_single_vm_spec,
123    destroy_single_vm_spec_path, plan_single_vm_spec, plan_single_vm_spec_path,
124    preview_single_vm_apply_plan_output, preview_single_vm_destroy_plan_output, render_env_file,
125    render_single_vm_apply_report, render_single_vm_destroy_report, render_single_vm_plan,
126    render_single_vm_plan_output, render_single_vm_status_report, render_systemd_unit,
127    status_single_vm_plan_output, status_single_vm_spec, status_single_vm_spec_path,
128    write_single_vm_spec,
129};
130pub use snap::SnapRequest;
131pub use spec::{
132    AdminEndpointSpec, BundleFormat, BundleSpec, DEPLOYMENT_SPEC_API_VERSION_V1ALPHA1,
133    DEPLOYMENT_SPEC_KIND, DeploymentMetadata, DeploymentSpecBody, DeploymentSpecV1,
134    DeploymentTarget, HealthSpec, LinuxArch, MtlsSpec, RolloutSpec, RolloutStrategy, RuntimeSpec,
135    ServiceManager, ServiceSpec, StorageSpec,
136};
137pub use terraform::TerraformRequest;
138pub use tool_check::{ToolCheck, ToolCheckOutcome};